From 2a7e3d5e03404d1b12902040be110a4ac901ff5e Mon Sep 17 00:00:00 2001 From: Harvey Zack Date: Sun, 20 Apr 2025 19:35:10 +0800 Subject: [PATCH] add index.esm.html --- docs/compiled/artplayer-plugin-ads.esm.js | 17 + docs/compiled/artplayer-plugin-ads.js | 2 +- docs/compiled/artplayer-plugin-ads.legacy.js | 2 +- .../artplayer-plugin-ambilight.esm.js | 10 + docs/compiled/artplayer-plugin-ambilight.js | 2 +- .../artplayer-plugin-ambilight.legacy.js | 2 +- .../artplayer-plugin-auto-thumbnail.esm.js | 10 + .../artplayer-plugin-auto-thumbnail.js | 2 +- .../artplayer-plugin-auto-thumbnail.legacy.js | 2 +- docs/compiled/artplayer-plugin-chapter.esm.js | 18 + docs/compiled/artplayer-plugin-chapter.js | 2 +- .../artplayer-plugin-chapter.legacy.js | 2 +- .../artplayer-plugin-chromecast.esm.js | 10 + docs/compiled/artplayer-plugin-chromecast.js | 2 +- .../artplayer-plugin-chromecast.legacy.js | 2 +- .../artplayer-plugin-danmuku-mask.esm.js | 4981 +++++++++++++++++ .../compiled/artplayer-plugin-danmuku-mask.js | 4 +- .../artplayer-plugin-danmuku-mask.legacy.js | 4 +- docs/compiled/artplayer-plugin-danmuku.esm.js | 142 + docs/compiled/artplayer-plugin-danmuku.js | 2 +- .../artplayer-plugin-danmuku.legacy.js | 2 +- .../artplayer-plugin-dash-control.esm.js | 10 + .../compiled/artplayer-plugin-dash-control.js | 2 +- .../artplayer-plugin-dash-control.legacy.js | 2 +- .../artplayer-plugin-hls-control.esm.js | 10 + docs/compiled/artplayer-plugin-hls-control.js | 2 +- .../artplayer-plugin-hls-control.legacy.js | 2 +- docs/compiled/artplayer-plugin-iframe.esm.js | 12 + docs/compiled/artplayer-plugin-iframe.js | 2 +- .../artplayer-plugin-iframe.legacy.js | 2 +- docs/compiled/artplayer-plugin-libass.esm.js | 19 + docs/compiled/artplayer-plugin-libass.js | 2 +- .../artplayer-plugin-libass.legacy.js | 2 +- ...artplayer-plugin-multiple-subtitles.esm.js | 10 + .../artplayer-plugin-multiple-subtitles.js | 2 +- ...player-plugin-multiple-subtitles.legacy.js | 2 +- docs/compiled/artplayer-plugin-vast.esm.js | 10 + docs/compiled/artplayer-plugin-vast.js | 2 +- docs/compiled/artplayer-plugin-vast.legacy.js | 2 +- .../artplayer-plugin-vtt-thumbnail.esm.js | 10 + .../artplayer-plugin-vtt-thumbnail.js | 2 +- .../artplayer-plugin-vtt-thumbnail.legacy.js | 2 +- docs/compiled/artplayer-proxy-canvas.esm.js | 10 + docs/compiled/artplayer-proxy-canvas.js | 2 +- .../compiled/artplayer-proxy-canvas.legacy.js | 2 +- docs/compiled/artplayer-proxy-webav.esm.js | 67 + docs/compiled/artplayer-proxy-webav.js | 2 +- docs/compiled/artplayer-proxy-webav.legacy.js | 2 +- docs/compiled/artplayer-tool-thumbnail.esm.js | 10 + docs/compiled/artplayer-tool-thumbnail.js | 2 +- .../artplayer-tool-thumbnail.legacy.js | 2 +- docs/compiled/artplayer.esm.js | 83 + docs/compiled/artplayer.js | 2 +- docs/compiled/artplayer.legacy.js | 2 +- docs/document/404.html | 2 +- docs/document/advanced/built-in.html | 2 +- docs/document/advanced/class.html | 2 +- docs/document/advanced/event.html | 2 +- docs/document/advanced/global.html | 2 +- docs/document/advanced/plugin.html | 2 +- docs/document/advanced/property.html | 2 +- ...md.C5Q5CphE.js => en_index.md.kTZkfRT-.js} | 8 +- ...E.lean.js => en_index.md.kTZkfRT-.lean.js} | 0 ...odGftR.js => en_start_i18n.md.tulf_fkW.js} | 2 +- ...n.js => en_start_i18n.md.tulf_fkW.lean.js} | 0 ...ex.md.D3g3xAoX.js => index.md.C6LGAVu8.js} | 8 +- ...xAoX.lean.js => index.md.C6LGAVu8.lean.js} | 0 ...WAnMR.js => plugin_danmuku.md.D3fHuMpT.js} | 2 +- ....js => plugin_danmuku.md.D3fHuMpT.lean.js} | 0 ....pF9oCBr8.js => start_i18n.md.CITlB1C5.js} | 2 +- ...lean.js => start_i18n.md.CITlB1C5.lean.js} | 0 docs/document/component/contextmenu.html | 2 +- docs/document/component/controls.html | 2 +- docs/document/component/layers.html | 2 +- docs/document/component/setting.html | 2 +- docs/document/en/advanced/built-in.html | 2 +- docs/document/en/advanced/class.html | 2 +- docs/document/en/advanced/event.html | 2 +- docs/document/en/advanced/global.html | 2 +- docs/document/en/advanced/plugin.html | 2 +- docs/document/en/advanced/property.html | 2 +- docs/document/en/component/contextmenu.html | 2 +- docs/document/en/component/controls.html | 2 +- docs/document/en/component/layers.html | 2 +- docs/document/en/component/setting.html | 2 +- docs/document/en/index.html | 12 +- docs/document/en/start/i18n.html | 6 +- docs/document/en/start/option.html | 2 +- docs/document/hashmap.json | 2 +- docs/document/index.html | 12 +- docs/document/plugin/danmuku.html | 6 +- docs/document/start/i18n.html | 6 +- docs/document/start/option.html | 2 +- docs/uncompiled/artplayer/index.js | 277 +- docs/uncompiled/artplayer/index.js.map | 2 +- .../dist/artplayer-plugin-ads.esm.js | 17 + .../dist/artplayer-plugin-ads.js | 2 +- .../dist/artplayer-plugin-ads.legacy.js | 2 +- .../artplayer-plugin-ads/dist/index.js.map | 1 + packages/artplayer-plugin-ads/package.json | 10 +- .../dist/artplayer-plugin-ambilight.esm.js | 10 + .../dist/artplayer-plugin-ambilight.js | 2 +- .../dist/artplayer-plugin-ambilight.legacy.js | 2 +- .../dist/index.js.map | 1 + .../artplayer-plugin-ambilight/package.json | 10 +- .../artplayer-plugin-auto-thumbnail.esm.js | 10 + .../dist/artplayer-plugin-auto-thumbnail.js | 2 +- .../artplayer-plugin-auto-thumbnail.legacy.js | 2 +- .../dist/index.js.map | 1 + .../package.json | 10 +- .../dist/artplayer-plugin-chapter.esm.js | 18 + .../dist/artplayer-plugin-chapter.js | 2 +- .../dist/artplayer-plugin-chapter.legacy.js | 2 +- .../dist/index.js.map | 1 + .../artplayer-plugin-chapter/package.json | 10 +- .../dist/artplayer-plugin-chromecast.esm.js | 10 + .../dist/artplayer-plugin-chromecast.js | 2 +- .../artplayer-plugin-chromecast.legacy.js | 2 +- .../dist/index.js.map | 1 + .../artplayer-plugin-chromecast/package.json | 10 +- .../dist/artplayer-plugin-danmuku-mask.esm.js | 4981 +++++++++++++++++ .../dist/artplayer-plugin-danmuku-mask.js | 4 +- .../artplayer-plugin-danmuku-mask.legacy.js | 4 +- .../dist/index.js.map | 1 + .../package.json | 10 +- .../dist/artplayer-plugin-danmuku.esm.js | 142 + .../dist/artplayer-plugin-danmuku.js | 2 +- .../dist/artplayer-plugin-danmuku.legacy.js | 2 +- .../dist/index.js.map | 1 + .../artplayer-plugin-danmuku/package.json | 10 +- .../dist/artplayer-plugin-dash-control.esm.js | 10 + .../dist/artplayer-plugin-dash-control.js | 2 +- .../artplayer-plugin-dash-control.legacy.js | 2 +- .../dist/index.js.map | 1 + .../package.json | 10 +- .../dist/artplayer-plugin-hls-control.esm.js | 10 + .../dist/artplayer-plugin-hls-control.js | 2 +- .../artplayer-plugin-hls-control.legacy.js | 2 +- .../dist/index.js.map | 1 + .../artplayer-plugin-hls-control/package.json | 10 +- .../dist/artplayer-plugin-iframe.esm.js | 12 + .../dist/artplayer-plugin-iframe.js | 2 +- .../dist/artplayer-plugin-iframe.legacy.js | 2 +- .../artplayer-plugin-iframe/dist/index.js.map | 1 + packages/artplayer-plugin-iframe/package.json | 10 +- .../dist/artplayer-plugin-libass.esm.js | 19 + .../dist/artplayer-plugin-libass.js | 2 +- .../dist/artplayer-plugin-libass.legacy.js | 2 +- .../artplayer-plugin-libass/dist/index.js.map | 1 + packages/artplayer-plugin-libass/package.json | 10 +- ...artplayer-plugin-multiple-subtitles.esm.js | 10 + .../artplayer-plugin-multiple-subtitles.js | 2 +- ...player-plugin-multiple-subtitles.legacy.js | 2 +- .../dist/index.js.map | 1 + .../package.json | 10 +- .../dist/artplayer-plugin-vast.esm.js | 10 + .../dist/artplayer-plugin-vast.js | 2 +- .../dist/artplayer-plugin-vast.legacy.js | 2 +- .../artplayer-plugin-vast/dist/index.js.map | 1 + packages/artplayer-plugin-vast/package.json | 10 +- .../artplayer-plugin-vtt-thumbnail.esm.js | 10 + .../dist/artplayer-plugin-vtt-thumbnail.js | 2 +- .../artplayer-plugin-vtt-thumbnail.legacy.js | 2 +- .../dist/index.js.map | 1 + .../package.json | 10 +- .../dist/artplayer-proxy-canvas.esm.js | 10 + .../dist/artplayer-proxy-canvas.js | 2 +- .../dist/artplayer-proxy-canvas.legacy.js | 2 +- .../artplayer-proxy-canvas/dist/index.js.map | 1 + packages/artplayer-proxy-canvas/package.json | 10 +- .../dist/artplayer-proxy-webav.esm.js | 67 + .../dist/artplayer-proxy-webav.js | 2 +- .../dist/artplayer-proxy-webav.legacy.js | 2 +- .../artplayer-proxy-webav/dist/index.js.map | 1 + packages/artplayer-proxy-webav/package.json | 11 +- .../dist/artplayer-tool-thumbnail.esm.js | 10 + .../dist/artplayer-tool-thumbnail.js | 2 +- .../dist/artplayer-tool-thumbnail.legacy.js | 2 +- .../dist/index.js.map | 1 + .../artplayer-tool-thumbnail/package.json | 10 +- .../cache/deps/chunk-4ZLE7ZEE.js.map | 40 +- .../cache/deps/chunk-QWTIQNIZ.js.map | 164 +- packages/artplayer/dist/artplayer.esm.js | 83 + packages/artplayer/dist/artplayer.js | 2 +- packages/artplayer/dist/artplayer.legacy.js | 2 +- packages/artplayer/dist/index.js.map | 1 + packages/artplayer/package.json | 8 +- packages/artplayer/src/contextmenu/version.js | 2 +- packages/artplayer/src/index.js | 8 +- packages/artplayer/src/template.js | 2 +- scripts/build.js | 43 +- scripts/dev.js | 66 +- scripts/utils.js | 24 +- test/index.esm.html | 36 + 194 files changed, 11632 insertions(+), 371 deletions(-) create mode 100644 docs/compiled/artplayer-plugin-ads.esm.js create mode 100644 docs/compiled/artplayer-plugin-ambilight.esm.js create mode 100644 docs/compiled/artplayer-plugin-auto-thumbnail.esm.js create mode 100644 docs/compiled/artplayer-plugin-chapter.esm.js create mode 100644 docs/compiled/artplayer-plugin-chromecast.esm.js create mode 100644 docs/compiled/artplayer-plugin-danmuku-mask.esm.js create mode 100644 docs/compiled/artplayer-plugin-danmuku.esm.js create mode 100644 docs/compiled/artplayer-plugin-dash-control.esm.js create mode 100644 docs/compiled/artplayer-plugin-hls-control.esm.js create mode 100644 docs/compiled/artplayer-plugin-iframe.esm.js create mode 100644 docs/compiled/artplayer-plugin-libass.esm.js create mode 100644 docs/compiled/artplayer-plugin-multiple-subtitles.esm.js create mode 100644 docs/compiled/artplayer-plugin-vast.esm.js create mode 100644 docs/compiled/artplayer-plugin-vtt-thumbnail.esm.js create mode 100644 docs/compiled/artplayer-proxy-canvas.esm.js create mode 100644 docs/compiled/artplayer-proxy-webav.esm.js create mode 100644 docs/compiled/artplayer-tool-thumbnail.esm.js create mode 100644 docs/compiled/artplayer.esm.js rename docs/document/assets/{en_index.md.C5Q5CphE.js => en_index.md.kTZkfRT-.js} (97%) rename docs/document/assets/{en_index.md.C5Q5CphE.lean.js => en_index.md.kTZkfRT-.lean.js} (100%) rename docs/document/assets/{en_start_i18n.md.DdodGftR.js => en_start_i18n.md.tulf_fkW.js} (98%) rename docs/document/assets/{en_start_i18n.md.DdodGftR.lean.js => en_start_i18n.md.tulf_fkW.lean.js} (100%) rename docs/document/assets/{index.md.D3g3xAoX.js => index.md.C6LGAVu8.js} (97%) rename docs/document/assets/{index.md.D3g3xAoX.lean.js => index.md.C6LGAVu8.lean.js} (100%) rename docs/document/assets/{plugin_danmuku.md.DbxWAnMR.js => plugin_danmuku.md.D3fHuMpT.js} (99%) rename docs/document/assets/{plugin_danmuku.md.DbxWAnMR.lean.js => plugin_danmuku.md.D3fHuMpT.lean.js} (100%) rename docs/document/assets/{start_i18n.md.pF9oCBr8.js => start_i18n.md.CITlB1C5.js} (98%) rename docs/document/assets/{start_i18n.md.pF9oCBr8.lean.js => start_i18n.md.CITlB1C5.lean.js} (100%) create mode 100644 packages/artplayer-plugin-ads/dist/artplayer-plugin-ads.esm.js create mode 100644 packages/artplayer-plugin-ads/dist/index.js.map create mode 100644 packages/artplayer-plugin-ambilight/dist/artplayer-plugin-ambilight.esm.js create mode 100644 packages/artplayer-plugin-ambilight/dist/index.js.map create mode 100644 packages/artplayer-plugin-auto-thumbnail/dist/artplayer-plugin-auto-thumbnail.esm.js create mode 100644 packages/artplayer-plugin-auto-thumbnail/dist/index.js.map create mode 100644 packages/artplayer-plugin-chapter/dist/artplayer-plugin-chapter.esm.js create mode 100644 packages/artplayer-plugin-chapter/dist/index.js.map create mode 100644 packages/artplayer-plugin-chromecast/dist/artplayer-plugin-chromecast.esm.js create mode 100644 packages/artplayer-plugin-chromecast/dist/index.js.map create mode 100644 packages/artplayer-plugin-danmuku-mask/dist/artplayer-plugin-danmuku-mask.esm.js create mode 100644 packages/artplayer-plugin-danmuku-mask/dist/index.js.map create mode 100644 packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.esm.js create mode 100644 packages/artplayer-plugin-danmuku/dist/index.js.map create mode 100644 packages/artplayer-plugin-dash-control/dist/artplayer-plugin-dash-control.esm.js create mode 100644 packages/artplayer-plugin-dash-control/dist/index.js.map create mode 100644 packages/artplayer-plugin-hls-control/dist/artplayer-plugin-hls-control.esm.js create mode 100644 packages/artplayer-plugin-hls-control/dist/index.js.map create mode 100644 packages/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.esm.js create mode 100644 packages/artplayer-plugin-iframe/dist/index.js.map create mode 100644 packages/artplayer-plugin-libass/dist/artplayer-plugin-libass.esm.js create mode 100644 packages/artplayer-plugin-libass/dist/index.js.map create mode 100644 packages/artplayer-plugin-multiple-subtitles/dist/artplayer-plugin-multiple-subtitles.esm.js create mode 100644 packages/artplayer-plugin-multiple-subtitles/dist/index.js.map create mode 100644 packages/artplayer-plugin-vast/dist/artplayer-plugin-vast.esm.js create mode 100644 packages/artplayer-plugin-vast/dist/index.js.map create mode 100644 packages/artplayer-plugin-vtt-thumbnail/dist/artplayer-plugin-vtt-thumbnail.esm.js create mode 100644 packages/artplayer-plugin-vtt-thumbnail/dist/index.js.map create mode 100644 packages/artplayer-proxy-canvas/dist/artplayer-proxy-canvas.esm.js create mode 100644 packages/artplayer-proxy-canvas/dist/index.js.map create mode 100644 packages/artplayer-proxy-webav/dist/artplayer-proxy-webav.esm.js create mode 100644 packages/artplayer-proxy-webav/dist/index.js.map create mode 100644 packages/artplayer-tool-thumbnail/dist/artplayer-tool-thumbnail.esm.js create mode 100644 packages/artplayer-tool-thumbnail/dist/index.js.map create mode 100644 packages/artplayer/dist/artplayer.esm.js create mode 100644 packages/artplayer/dist/index.js.map create mode 100644 test/index.esm.html diff --git a/docs/compiled/artplayer-plugin-ads.esm.js b/docs/compiled/artplayer-plugin-ads.esm.js new file mode 100644 index 000000000..61b66b9dc --- /dev/null +++ b/docs/compiled/artplayer-plugin-ads.esm.js @@ -0,0 +1,17 @@ + +/*! + * artplayer-plugin-ads.js v2.0.0 + * Github: https://github.com/zhw2590582/ArtPlayer + * (c) 2017-2025 Harvey Zack + * Released under the MIT License. + */ + +!function(e,n,l,t,i,a,r,o){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[t]&&d[t],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function y(n,l){if(!u[n]){if(!e[n]){if(i[n])return i[n];var a="function"==typeof d[t]&&d[t];if(!l&&a)return a(n,!0);if(p)return p(n,!0);if(c&&"string"==typeof n)return c(n);var r=Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}s.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},s.cache={};var o=u[n]=new y.Module(n);e[n][0].call(o.exports,s,o,o.exports,d)}return u[n].exports;function s(e){var n=s.resolve(e);return!1===n?{}:y(n)}}y.isParcelRequire=!0,y.Module=function(e){this.id=e,this.bundle=y,this.require=c,this.exports={}},y.modules=e,y.cache=u,y.parent=p,y.distDir=void 0,y.publicUrl=void 0,y.devServer=void 0,y.i=s,y.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(y,"root",{get:function(){return d[t]}}),d[t]=y;for(var f=0;fo);var a=e("bundle-text:./style.less"),r=i.interopDefault(a);function o(e){return n=>{let{version:l,utils:{errorHandle:t}}=n.constructor,i=l.split(".").map(Number);t(i[0]+i[1]/100>=5,`Artplayer.js@${l} is not compatible the artplayerPluginAds@${o.version}. Please update it to version Artplayer.js@5.x.x`);let{template:{$player:a},icons:{volume:r,volumeClose:d,fullscreenOn:p,fullscreenOff:s,loading:u},constructor:{validator:c,utils:{query:y,append:f,setStyle:g}}}=n;e=c({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"},...e},{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});let m=null,v=null,x=null,h=null,b=null,w=null,D=0,j=null,P=!1,$=!1,k=!1;function M(e,n){return n.replace("%s",e)}function O(){P=!0,n.play(),e.video&&m.pause(),g(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function A(){P||(j=setTimeout(()=>{D+=1;let n=e.playDuration-D;n>=1?x.innerHTML=M(n,e.i18n.canBeClosed):(x.innerHTML=e.i18n.close,k||(k=!0)),h.innerHTML=M(e.totalDuration-D,e.i18n.countdown),D>=e.totalDuration?O():A()},1e3))}function _(){P||clearTimeout(j)}function T(){$||($=!0,function(){n.template.$ads=f(a,'
'),m=f(n.template.$ads,e.video?``:`
${e.html}
`),w=f(n.template.$ads,'
'),f(w,u),x=y(".artplayer-plugin-ads-close",v=f(n.template.$ads,`
+
${e.playDuration<=0?e.i18n.close:M(e.playDuration,e.i18n.canBeClosed)}
+
${M(e.totalDuration,e.i18n.countdown)}
+
`)),h=y(".artplayer-plugin-ads-countdown",v),e.playDuration>=e.totalDuration&&g(x,"display","none"),n.proxy(x,"click",()=>{k&&O()});let l=y(".artplayer-plugin-ads-detail",b=f(n.template.$ads,`
+
${e.i18n.detail}
+
+
+
`)),t=y(".artplayer-plugin-ads-muted",b),i=y(".artplayer-plugin-ads-fullscreen",b);if(e.url?n.proxy(l,"click",()=>{window.open(e.url),n.emit("artplayerPluginAds:click",e)}):g(l,"display","none"),e.video){let l=f(t,r),i=f(t,d);g(i,"display","none"),e.muted&&(m.muted=!0,g(l,"display","none"),g(i,"display","inline-flex")),n.proxy(t,"click",()=>{m.muted=!m.muted,m.muted?(g(l,"display","none"),g(i,"display","inline-flex")):(g(l,"display","inline-flex"),g(i,"display","none"))})}else g(t,"display","none");let o=f(i,p),c=f(i,s);g(c,"display","none"),n.proxy(i,"click",()=>{n.fullscreen=!n.fullscreen,n.fullscreen?(g(o,"display","inline-flex"),g(c,"display","none")):(g(o,"display","none"),g(c,"display","inline-flex"))}),n.proxy(m,"click",()=>{e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)})}(),n.pause(),e.video?(n.proxy(m,"error",O),n.proxy(m,"loadedmetadata",()=>{A(),m.play(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")})):(A(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")),n.proxy(document,"visibilitychange",()=>{document.hidden?_():A()}))}return n.on("ready",()=>{n.once("play",T),n.once("video:playing",T)}),{name:"artplayerPluginAds",skip:O,pause:_,play:A}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-ads")){let e=document.createElement("style");e.id="artplayer-plugin-ads",e.textContent=r.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginAds=o)},{"bundle-text:./style.less":"1GXMH","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1GXMH":[function(e,n,l,t){n.exports=".artplayer-plugin-ads{z-index:150;color:#fff;background-color:#000;width:100%;height:100%;font-size:13px;line-height:1;position:absolute;inset:0;overflow:hidden}.artplayer-plugin-ads .artplayer-plugin-ads-html{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-video{width:100%;height:100%}.artplayer-plugin-ads .artplayer-plugin-ads-timer{display:none;position:absolute;top:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-timer>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control{display:none;position:absolute;bottom:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-control>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control .art-icon svg{width:20px;height:20px}.artplayer-plugin-ads .artplayer-plugin-ads-loading{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}"},{}],"5lQoW":[function(e,n,l,t){l.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},l.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},l.exportAll=function(e,n){return Object.keys(e).forEach(function(l){"default"===l||"__esModule"===l||Object.prototype.hasOwnProperty.call(n,l)||Object.defineProperty(n,l,{enumerable:!0,get:function(){return e[l]}})}),n},l.export=function(e,n,l){Object.defineProperty(e,n,{enumerable:!0,get:l})}},{}]},["2Uydo"],"2Uydo","parcelRequire4dc0",{});let{default:e}=parcelRequire4dc0("2Uydo");export{e as default}; +//# sourceMappingURL=index.js.map diff --git a/docs/compiled/artplayer-plugin-ads.js b/docs/compiled/artplayer-plugin-ads.js index 744ac59a0..16bc81deb 100644 --- a/docs/compiled/artplayer-plugin-ads.js +++ b/docs/compiled/artplayer-plugin-ads.js @@ -5,4 +5,4 @@ * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,n,l,t,i,r,a,o){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[t]&&d[t],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function y(n,l){if(!u[n]){if(!e[n]){if(i[n])return i[n];var r="function"==typeof d[t]&&d[t];if(!l&&r)return r(n,!0);if(p)return p(n,!0);if(c&&"string"==typeof n)return c(n);var a=Error("Cannot find module '"+n+"'");throw a.code="MODULE_NOT_FOUND",a}s.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},s.cache={};var o=u[n]=new y.Module(n);e[n][0].call(o.exports,s,o,o.exports,d)}return u[n].exports;function s(e){var n=s.resolve(e);return!1===n?{}:y(n)}}y.isParcelRequire=!0,y.Module=function(e){this.id=e,this.bundle=y,this.require=c,this.exports={}},y.modules=e,y.cache=u,y.parent=p,y.distDir=void 0,y.publicUrl=void 0,y.devServer=void 0,y.i=s,y.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(y,"root",{get:function(){return d[t]}}),d[t]=y;for(var f=0;fo);var r=e("bundle-text:./style.less"),a=i.interopDefault(r);function o(e){return n=>{let{version:l,utils:{errorHandle:t}}=n.constructor,i=l.split(".").map(Number);t(i[0]+i[1]/100>=5,`Artplayer.js@${l} is not compatible the artplayerPluginAds@${o.version}. Please update it to version Artplayer.js@5.x.x`);let{template:{$player:r},icons:{volume:a,volumeClose:d,fullscreenOn:p,fullscreenOff:s,loading:u},constructor:{validator:c,utils:{query:y,append:f,setStyle:g}}}=n;e=c({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"},...e},{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});let m=null,v=null,x=null,h=null,b=null,w=null,j=0,D=null,P=!1,$=!1,k=!1;function A(e,n){return n.replace("%s",e)}function O(){P=!0,n.play(),e.video&&m.pause(),g(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function C(){P||(D=setTimeout(()=>{j+=1;let n=e.playDuration-j;n>=1?x.innerHTML=A(n,e.i18n.canBeClosed):(x.innerHTML=e.i18n.close,k||(k=!0)),h.innerHTML=A(e.totalDuration-j,e.i18n.countdown),j>=e.totalDuration?O():C()},1e3))}function M(){P||clearTimeout(D)}function T(){$||($=!0,function(){n.template.$ads=f(r,'
'),m=f(n.template.$ads,e.video?``:`
${e.html}
`),w=f(n.template.$ads,'
'),f(w,u),x=y(".artplayer-plugin-ads-close",v=f(n.template.$ads,`
${e.playDuration<=0?e.i18n.close:A(e.playDuration,e.i18n.canBeClosed)}
${A(e.totalDuration,e.i18n.countdown)}
`)),h=y(".artplayer-plugin-ads-countdown",v),e.playDuration>=e.totalDuration&&g(x,"display","none"),n.proxy(x,"click",()=>{k&&O()});let l=y(".artplayer-plugin-ads-detail",b=f(n.template.$ads,`
${e.i18n.detail}
`)),t=y(".artplayer-plugin-ads-muted",b),i=y(".artplayer-plugin-ads-fullscreen",b);if(e.url?n.proxy(l,"click",()=>{window.open(e.url),n.emit("artplayerPluginAds:click",e)}):g(l,"display","none"),e.video){let l=f(t,a),i=f(t,d);g(i,"display","none"),e.muted&&(m.muted=!0,g(l,"display","none"),g(i,"display","inline-flex")),n.proxy(t,"click",()=>{m.muted=!m.muted,m.muted?(g(l,"display","none"),g(i,"display","inline-flex")):(g(l,"display","inline-flex"),g(i,"display","none"))})}else g(t,"display","none");let o=f(i,p),c=f(i,s);g(c,"display","none"),n.proxy(i,"click",()=>{n.fullscreen=!n.fullscreen,n.fullscreen?(g(o,"display","inline-flex"),g(c,"display","none")):(g(o,"display","none"),g(c,"display","inline-flex"))}),n.proxy(m,"click",()=>{e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)})}(),n.pause(),e.video?(n.proxy(m,"error",O),n.proxy(m,"loadedmetadata",()=>{C(),m.play(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")})):(C(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")),n.proxy(document,"visibilitychange",()=>{document.hidden?M():C()}))}return n.on("ready",()=>{n.once("play",T),n.once("video:playing",T)}),{name:"artplayerPluginAds",skip:O,pause:M,play:C}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-ads")){let e=document.createElement("style");e.id="artplayer-plugin-ads",e.textContent=a.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginAds=o)},{"bundle-text:./style.less":"jDrWj","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],jDrWj:[function(e,n,l,t){n.exports=".artplayer-plugin-ads{z-index:150;color:#fff;background-color:#000;width:100%;height:100%;font-size:13px;line-height:1;position:absolute;inset:0;overflow:hidden}.artplayer-plugin-ads .artplayer-plugin-ads-html{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-video{width:100%;height:100%}.artplayer-plugin-ads .artplayer-plugin-ads-timer{display:none;position:absolute;top:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-timer>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control{display:none;position:absolute;bottom:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-control>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control .art-icon svg{width:20px;height:20px}.artplayer-plugin-ads .artplayer-plugin-ads-loading{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}"},{}],"9pCYc":[function(e,n,l,t){l.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},l.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},l.exportAll=function(e,n){return Object.keys(e).forEach(function(l){"default"===l||"__esModule"===l||Object.prototype.hasOwnProperty.call(n,l)||Object.defineProperty(n,l,{enumerable:!0,get:function(){return e[l]}})}),n},l.export=function(e,n,l){Object.defineProperty(e,n,{enumerable:!0,get:l})}},{}]},["hUYA0"],"hUYA0","parcelRequire4dc0",{}); \ No newline at end of file +!function(e,n,l,t,i,a,r,o){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[t]&&d[t],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function y(n,l){if(!u[n]){if(!e[n]){if(i[n])return i[n];var a="function"==typeof d[t]&&d[t];if(!l&&a)return a(n,!0);if(p)return p(n,!0);if(c&&"string"==typeof n)return c(n);var r=Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}s.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},s.cache={};var o=u[n]=new y.Module(n);e[n][0].call(o.exports,s,o,o.exports,d)}return u[n].exports;function s(e){var n=s.resolve(e);return!1===n?{}:y(n)}}y.isParcelRequire=!0,y.Module=function(e){this.id=e,this.bundle=y,this.require=c,this.exports={}},y.modules=e,y.cache=u,y.parent=p,y.distDir=void 0,y.publicUrl=void 0,y.devServer=void 0,y.i=s,y.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(y,"root",{get:function(){return d[t]}}),d[t]=y;for(var f=0;fo);var a=e("bundle-text:./style.less"),r=i.interopDefault(a);function o(e){return n=>{let{version:l,utils:{errorHandle:t}}=n.constructor,i=l.split(".").map(Number);t(i[0]+i[1]/100>=5,`Artplayer.js@${l} is not compatible the artplayerPluginAds@${o.version}. Please update it to version Artplayer.js@5.x.x`);let{template:{$player:a},icons:{volume:r,volumeClose:d,fullscreenOn:p,fullscreenOff:s,loading:u},constructor:{validator:c,utils:{query:y,append:f,setStyle:g}}}=n;e=c({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"},...e},{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});let m=null,v=null,x=null,h=null,b=null,w=null,D=0,j=null,k=!1,P=!1,$=!1;function O(e,n){return n.replace("%s",e)}function A(){k=!0,n.play(),e.video&&m.pause(),g(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function M(){k||(j=setTimeout(()=>{D+=1;let n=e.playDuration-D;n>=1?x.innerHTML=O(n,e.i18n.canBeClosed):(x.innerHTML=e.i18n.close,$||($=!0)),h.innerHTML=O(e.totalDuration-D,e.i18n.countdown),D>=e.totalDuration?A():M()},1e3))}function T(){k||clearTimeout(j)}function _(){P||(P=!0,function(){n.template.$ads=f(a,'
'),m=f(n.template.$ads,e.video?``:`
${e.html}
`),w=f(n.template.$ads,'
'),f(w,u),x=y(".artplayer-plugin-ads-close",v=f(n.template.$ads,`
${e.playDuration<=0?e.i18n.close:O(e.playDuration,e.i18n.canBeClosed)}
${O(e.totalDuration,e.i18n.countdown)}
`)),h=y(".artplayer-plugin-ads-countdown",v),e.playDuration>=e.totalDuration&&g(x,"display","none"),n.proxy(x,"click",()=>{$&&A()});let l=y(".artplayer-plugin-ads-detail",b=f(n.template.$ads,`
${e.i18n.detail}
`)),t=y(".artplayer-plugin-ads-muted",b),i=y(".artplayer-plugin-ads-fullscreen",b);if(e.url?n.proxy(l,"click",()=>{window.open(e.url),n.emit("artplayerPluginAds:click",e)}):g(l,"display","none"),e.video){let l=f(t,r),i=f(t,d);g(i,"display","none"),e.muted&&(m.muted=!0,g(l,"display","none"),g(i,"display","inline-flex")),n.proxy(t,"click",()=>{m.muted=!m.muted,m.muted?(g(l,"display","none"),g(i,"display","inline-flex")):(g(l,"display","inline-flex"),g(i,"display","none"))})}else g(t,"display","none");let o=f(i,p),c=f(i,s);g(c,"display","none"),n.proxy(i,"click",()=>{n.fullscreen=!n.fullscreen,n.fullscreen?(g(o,"display","inline-flex"),g(c,"display","none")):(g(o,"display","none"),g(c,"display","inline-flex"))}),n.proxy(m,"click",()=>{e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)})}(),n.pause(),e.video?(n.proxy(m,"error",A),n.proxy(m,"loadedmetadata",()=>{M(),m.play(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")})):(M(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")),n.proxy(document,"visibilitychange",()=>{document.hidden?T():M()}))}return n.on("ready",()=>{n.once("play",_),n.once("video:playing",_)}),{name:"artplayerPluginAds",skip:A,pause:T,play:M}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-ads")){let e=document.createElement("style");e.id="artplayer-plugin-ads",e.textContent=r.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginAds=o)},{"bundle-text:./style.less":"1lYSU","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1lYSU":[function(e,n,l,t){n.exports=".artplayer-plugin-ads{z-index:150;color:#fff;background-color:#000;width:100%;height:100%;font-size:13px;line-height:1;position:absolute;inset:0;overflow:hidden}.artplayer-plugin-ads .artplayer-plugin-ads-html{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-video{width:100%;height:100%}.artplayer-plugin-ads .artplayer-plugin-ads-timer{display:none;position:absolute;top:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-timer>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control{display:none;position:absolute;bottom:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-control>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control .art-icon svg{width:20px;height:20px}.artplayer-plugin-ads .artplayer-plugin-ads-loading{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}"},{}],"6ykb1":[function(e,n,l,t){l.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},l.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},l.exportAll=function(e,n){return Object.keys(e).forEach(function(l){"default"===l||"__esModule"===l||Object.prototype.hasOwnProperty.call(n,l)||Object.defineProperty(n,l,{enumerable:!0,get:function(){return e[l]}})}),n},l.export=function(e,n,l){Object.defineProperty(e,n,{enumerable:!0,get:l})}},{}]},["ezZng"],"ezZng","parcelRequire4dc0",{}); \ No newline at end of file diff --git a/docs/compiled/artplayer-plugin-ads.legacy.js b/docs/compiled/artplayer-plugin-ads.legacy.js index 7815d74ac..c954eb795 100644 --- a/docs/compiled/artplayer-plugin-ads.legacy.js +++ b/docs/compiled/artplayer-plugin-ads.legacy.js @@ -5,4 +5,4 @@ * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,n,t,r,l,i,a,o){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof s[r]&&s[r],p=d.i||{},u=d.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(n,t){if(!u[n]){if(!e[n]){if(l[n])return l[n];var i="function"==typeof s[r]&&s[r];if(!t&&i)return i(n,!0);if(d)return d(n,!0);if(c&&"string"==typeof n)return c(n);var a=Error("Cannot find module '"+n+"'");throw a.code="MODULE_NOT_FOUND",a}p.resolve=function(t){var r=e[n][1][t];return null!=r?r:t},p.cache={};var o=u[n]=new f.Module(n);e[n][0].call(o.exports,p,o,o.exports,s)}return u[n].exports;function p(e){var n=p.resolve(e);return!1===n?{}:f(n)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=u,f.parent=d,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=p,f.register=function(n,t){e[n]=[function(e,n){n.exports=t},{}]},Object.defineProperty(f,"root",{get:function(){return s[r]}}),s[r]=f;for(var y=0;y=5,"Artplayer.js@".concat(r," is not compatible the artplayerPluginAds@").concat(s.version,". Please update it to version Artplayer.js@5.x.x"));var t,r,l,a=n.template.$player,o=n.icons,d=o.volume,p=o.volumeClose,u=o.fullscreenOn,c=o.fullscreenOff,f=o.loading,y=n.constructor,g=y.validator,m=y.utils,v=m.query,h=m.append,x=m.setStyle;e=g((0,i._)({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"}},e),{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});var b=null,w=null,j=null,D=null,_=null,O=null,P=0,k=null,A=!1,I=!1,M=!1;function C(e,n){return n.replace("%s",e)}function L(){A=!0,n.play(),e.video&&b.pause(),x(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function T(){A||(k=setTimeout(function(){P+=1;var n=e.playDuration-P;n>=1?j.innerHTML=C(n,e.i18n.canBeClosed):(j.innerHTML=e.i18n.close,M||(M=!0)),D.innerHTML=C(e.totalDuration-P,e.i18n.countdown),P>=e.totalDuration?L():T()},1e3))}function U(){A||clearTimeout(k)}function F(){I||(I=!0,function(){n.template.$ads=h(a,'
'),b=h(n.template.$ads,e.video?''):'
'.concat(e.html,"
")),O=h(n.template.$ads,'
'),h(O,f),j=v(".artplayer-plugin-ads-close",w=h(n.template.$ads,'
\n
'.concat(e.playDuration<=0?e.i18n.close:C(e.playDuration,e.i18n.canBeClosed),'
\n
').concat(C(e.totalDuration,e.i18n.countdown),"
\n
"))),D=v(".artplayer-plugin-ads-countdown",w),e.playDuration>=e.totalDuration&&x(j,"display","none"),n.proxy(j,"click",function(){M&&L()});var t=v(".artplayer-plugin-ads-detail",_=h(n.template.$ads,'
\n
'.concat(e.i18n.detail,'
\n
\n
\n
'))),r=v(".artplayer-plugin-ads-muted",_),l=v(".artplayer-plugin-ads-fullscreen",_);if(e.url?n.proxy(t,"click",function(){window.open(e.url),n.emit("artplayerPluginAds:click",e)}):x(t,"display","none"),e.video){var i=h(r,d),o=h(r,p);x(o,"display","none"),e.muted&&(b.muted=!0,x(i,"display","none"),x(o,"display","inline-flex")),n.proxy(r,"click",function(){b.muted=!b.muted,b.muted?(x(i,"display","none"),x(o,"display","inline-flex")):(x(i,"display","inline-flex"),x(o,"display","none"))})}else x(r,"display","none");var s=h(l,u),y=h(l,c);x(y,"display","none"),n.proxy(l,"click",function(){n.fullscreen=!n.fullscreen,n.fullscreen?(x(s,"display","inline-flex"),x(y,"display","none")):(x(s,"display","none"),x(y,"display","inline-flex"))}),n.proxy(b,"click",function(){e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)})}(),n.pause(),e.video?(n.proxy(b,"error",L),n.proxy(b,"loadedmetadata",function(){T(),b.play(),x(w,"display","flex"),x(_,"display","flex"),x(O,"display","none")})):(T(),x(w,"display","flex"),x(_,"display","flex"),x(O,"display","none")),n.proxy(document,"visibilitychange",function(){document.hidden?U():T()}))}return n.on("ready",function(){n.once("play",F),n.once("video:playing",F)}),{name:"artplayerPluginAds",skip:L,pause:U,play:T}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-ads")){var d=document.createElement("style");d.id="artplayer-plugin-ads",d.textContent=o.default,document.head.appendChild(d)}"undefined"!=typeof window&&(window.artplayerPluginAds=s)},{"@swc/helpers/_/_object_spread":"9agdF","bundle-text:./style.less":"1LZhU","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],"9agdF":[function(e,n,t,r){var l=e("@parcel/transformer-js/src/esmodule-helpers.js");l.defineInteropFlag(t),l.export(t,"_",function(){return a});var i=e("./_define_property.js");function a(e){for(var n=1;ndiv{cursor:pointer;background-color:rgba(0,0,0,.5);border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control{display:none;position:absolute;bottom:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-control>div{cursor:pointer;background-color:rgba(0,0,0,.5);border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control .art-icon svg{width:20px;height:20px}.artplayer-plugin-ads .artplayer-plugin-ads-loading{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}"},{}]},["69VIU"],"69VIU","parcelRequire4dc0",{}); \ No newline at end of file +!function(e,n,t,l,i,r,a,o){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof d[l]&&d[l],s=u.i||{},p=u.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(n,t){if(!p[n]){if(!e[n]){if(i[n])return i[n];var r="function"==typeof d[l]&&d[l];if(!t&&r)return r(n,!0);if(u)return u(n,!0);if(c&&"string"==typeof n)return c(n);var a=Error("Cannot find module '"+n+"'");throw a.code="MODULE_NOT_FOUND",a}s.resolve=function(t){var l=e[n][1][t];return null!=l?l:t},s.cache={};var o=p[n]=new f.Module(n);e[n][0].call(o.exports,s,o,o.exports,d)}return p[n].exports;function s(e){var n=s.resolve(e);return!1===n?{}:f(n)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=p,f.parent=u,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(n,t){e[n]=[function(e,n){n.exports=t},{}]},Object.defineProperty(f,"root",{get:function(){return d[l]}}),d[l]=f;for(var y=0;y=5,"Artplayer.js@".concat(l," is not compatible the artplayerPluginAds@").concat(d.version,". Please update it to version Artplayer.js@5.x.x"));var t,l,i,a=n.template.$player,o=n.icons,u=o.volume,s=o.volumeClose,p=o.fullscreenOn,c=o.fullscreenOff,f=o.loading,y=n.constructor,g=y.validator,m=y.utils,v=m.query,b=m.append,x=m.setStyle;e=g((0,r._)({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"}},e),{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});var h=null,w=null,j=null,O=null,P=null,k=null,D=0,_=null,M=!1,q=!1,A=!1;function C(e,n){return n.replace("%s",e)}function E(){M=!0,n.play(),e.video&&h.pause(),x(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function T(){M||(_=setTimeout(function(){D+=1;var n=e.playDuration-D;n>=1?j.innerHTML=C(n,e.i18n.canBeClosed):(j.innerHTML=e.i18n.close,A||(A=!0)),O.innerHTML=C(e.totalDuration-D,e.i18n.countdown),D>=e.totalDuration?E():T()},1e3))}function H(){M||clearTimeout(_)}function $(){q||(q=!0,function(){n.template.$ads=b(a,'
'),h=b(n.template.$ads,e.video?''):'
'.concat(e.html,"
")),k=b(n.template.$ads,'
'),b(k,f),j=v(".artplayer-plugin-ads-close",w=b(n.template.$ads,'
\n
'.concat(e.playDuration<=0?e.i18n.close:C(e.playDuration,e.i18n.canBeClosed),'
\n
').concat(C(e.totalDuration,e.i18n.countdown),"
\n
"))),O=v(".artplayer-plugin-ads-countdown",w),e.playDuration>=e.totalDuration&&x(j,"display","none"),n.proxy(j,"click",function(){A&&E()});var t=v(".artplayer-plugin-ads-detail",P=b(n.template.$ads,'
\n
'.concat(e.i18n.detail,'
\n
\n
\n
'))),l=v(".artplayer-plugin-ads-muted",P),i=v(".artplayer-plugin-ads-fullscreen",P);if(e.url?n.proxy(t,"click",function(){window.open(e.url),n.emit("artplayerPluginAds:click",e)}):x(t,"display","none"),e.video){var r=b(l,u),o=b(l,s);x(o,"display","none"),e.muted&&(h.muted=!0,x(r,"display","none"),x(o,"display","inline-flex")),n.proxy(l,"click",function(){h.muted=!h.muted,h.muted?(x(r,"display","none"),x(o,"display","inline-flex")):(x(r,"display","inline-flex"),x(o,"display","none"))})}else x(l,"display","none");var d=b(i,p),y=b(i,c);x(y,"display","none"),n.proxy(i,"click",function(){n.fullscreen=!n.fullscreen,n.fullscreen?(x(d,"display","inline-flex"),x(y,"display","none")):(x(d,"display","none"),x(y,"display","inline-flex"))}),n.proxy(h,"click",function(){e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)})}(),n.pause(),e.video?(n.proxy(h,"error",E),n.proxy(h,"loadedmetadata",function(){T(),h.play(),x(w,"display","flex"),x(P,"display","flex"),x(k,"display","none")})):(T(),x(w,"display","flex"),x(P,"display","flex"),x(k,"display","none")),n.proxy(document,"visibilitychange",function(){document.hidden?H():T()}))}return n.on("ready",function(){n.once("play",$),n.once("video:playing",$)}),{name:"artplayerPluginAds",skip:E,pause:H,play:T}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-ads")){var u=document.createElement("style");u.id="artplayer-plugin-ads",u.textContent=o.default,document.head.appendChild(u)}"undefined"!=typeof window&&(window.artplayerPluginAds=d)},{"@swc/helpers/cjs/_object_spread.cjs":"kyoEj","bundle-text:./style.less":"g8Z3k","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],kyoEj:[function(e,n,t,l){"use strict";var i=e("9f9b8a24218ee51e");t._=function(e){for(var n=1;ndiv{cursor:pointer;background-color:rgba(0,0,0,.5);border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control{display:none;position:absolute;bottom:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-control>div{cursor:pointer;background-color:rgba(0,0,0,.5);border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control .art-icon svg{width:20px;height:20px}.artplayer-plugin-ads .artplayer-plugin-ads-loading{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}"},{}],qpMMf:[function(e,n,t,l){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,n){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:function(){return e[t]}})}),n},t.export=function(e,n,t){Object.defineProperty(e,n,{enumerable:!0,get:t})}},{}]},["1qHWP"],"1qHWP","parcelRequire4dc0",{}); \ No newline at end of file diff --git a/docs/compiled/artplayer-plugin-ambilight.esm.js b/docs/compiled/artplayer-plugin-ambilight.esm.js new file mode 100644 index 000000000..962aaae78 --- /dev/null +++ b/docs/compiled/artplayer-plugin-ambilight.esm.js @@ -0,0 +1,10 @@ + +/*! + * artplayer-plugin-ambilight.js v1.0.0 + * Github: https://github.com/zhw2590582/ArtPlayer + * (c) 2017-2025 Harvey Zack + * Released under the MIT License. + */ + +!function(e,r,t,n,o,i,l,u){var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},a="function"==typeof f[n]&&f[n],d=a.i||{},c=a.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(r,t){if(!c[r]){if(!e[r]){if(o[r])return o[r];var i="function"==typeof f[n]&&f[n];if(!t&&i)return i(r,!0);if(a)return a(r,!0);if(s&&"string"==typeof r)return s(r);var l=Error("Cannot find module '"+r+"'");throw l.code="MODULE_NOT_FOUND",l}d.resolve=function(t){var n=e[r][1][t];return null!=n?n:t},d.cache={};var u=c[r]=new p.Module(r);e[r][0].call(u.exports,d,u,u.exports,f)}return c[r].exports;function d(e){var r=d.resolve(e);return!1===r?{}:p(r)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=c,p.parent=a,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=d,p.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]},Object.defineProperty(p,"root",{get:function(){return f[n]}}),f[n]=p;for(var m=0;m{var t,n,o,i,l,u,f;let{$video:a}=r.template,{createElement:d,addClass:c,setStyles:s}=r.constructor.utils,{blur:p="50px",opacity:m=.5,frequency:g=10,duration:y=.3}=e,h=d("div"),b=((t=h).innerHTML=Array(9).fill("
").join(""),Array.from(t.children));n=h,o=a,c(n,"artplayer-plugin-ambilight"),o.parentNode.insertBefore(n,o),s(n,{position:"absolute",top:0,left:0,zIndex:9,inset:0,display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gridTemplateRows:"1fr 1fr 1fr"}),i=b,l=p,u=m,f=y,i.forEach(e=>{s(e,{opacity:u,filter:`blur(${l})`,transition:`background-color ${f}s ease`})});let v=function(e,t,n){let o=d("canvas"),i=o.getContext("2d");o.width=3,o.height=3;let l=0;return function o(){let u=performance.now();if(u-l<1e3/n||!r.playing){w=requestAnimationFrame(o);return}l=u;let f=e.videoWidth/3,a=e.videoHeight/3,d=[[0,0],[f,0],[2*f,0],[0,a],[f,a],[2*f,a],[0,2*a],[f,2*a],[2*f,2*a]].map(([r,t])=>(function(r,t,n,o){i.drawImage(e,r,t,n,o,0,0,1,1);let[l,u,f]=i.getImageData(0,0,1,1).data;return`rgb(${l}, ${u}, ${f})`})(r,t,f,a));t.forEach((e,r)=>{e.style.backgroundColor=d[r]}),w=requestAnimationFrame(o)}}(a,b,g),w=null;function x(){w||v()}function j(){w&&(cancelAnimationFrame(w),w=null)}return r.on("ready",x),r.on("destroy",j),{name:"artplayerPluginAmbilight",start:x,stop:j}}}o.defineInteropFlag(t),o.export(t,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginAmbilight=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5lQoW":[function(e,r,t,n){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,r){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(r,t)||Object.defineProperty(r,t,{enumerable:!0,get:function(){return e[t]}})}),r},t.export=function(e,r,t){Object.defineProperty(e,r,{enumerable:!0,get:t})}},{}]},["9P7rs"],"9P7rs","parcelRequire4dc0",{});let{default:e}=parcelRequire4dc0("9P7rs");export{e as default}; +//# sourceMappingURL=index.js.map diff --git a/docs/compiled/artplayer-plugin-ambilight.js b/docs/compiled/artplayer-plugin-ambilight.js index 9f24a629c..bfac77de6 100644 --- a/docs/compiled/artplayer-plugin-ambilight.js +++ b/docs/compiled/artplayer-plugin-ambilight.js @@ -5,4 +5,4 @@ * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,r,t,n,o,i,u,l){var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},a="function"==typeof f[n]&&f[n],d=a.i||{},c=a.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(r,t){if(!c[r]){if(!e[r]){if(o[r])return o[r];var i="function"==typeof f[n]&&f[n];if(!t&&i)return i(r,!0);if(a)return a(r,!0);if(p&&"string"==typeof r)return p(r);var u=Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}d.resolve=function(t){var n=e[r][1][t];return null!=n?n:t},d.cache={};var l=c[r]=new s.Module(r);e[r][0].call(l.exports,d,l,l.exports,f)}return c[r].exports;function d(e){var r=d.resolve(e);return!1===r?{}:s(r)}}s.isParcelRequire=!0,s.Module=function(e){this.id=e,this.bundle=s,this.require=p,this.exports={}},s.modules=e,s.cache=c,s.parent=a,s.distDir=void 0,s.publicUrl=void 0,s.devServer=void 0,s.i=d,s.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]},Object.defineProperty(s,"root",{get:function(){return f[n]}}),f[n]=s;for(var m=0;m{var t,n,o,i,u,l,f;let{$video:a}=r.template,{createElement:d,addClass:c,setStyles:p}=r.constructor.utils,{blur:s="50px",opacity:m=.5,frequency:g=10,duration:y=.3}=e,h=d("div"),b=((t=h).innerHTML=Array(9).fill("
").join(""),Array.from(t.children));n=h,o=a,c(n,"artplayer-plugin-ambilight"),o.parentNode.insertBefore(n,o),p(n,{position:"absolute",top:0,left:0,zIndex:9,inset:0,display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gridTemplateRows:"1fr 1fr 1fr"}),i=b,u=s,l=m,f=y,i.forEach(e=>{p(e,{opacity:l,filter:`blur(${u})`,transition:`background-color ${f}s ease`})});let v=function(e,t,n){let o=d("canvas"),i=o.getContext("2d");o.width=3,o.height=3;let u=0;return function o(){let l=performance.now();if(l-u<1e3/n||!r.playing){w=requestAnimationFrame(o);return}u=l;let f=e.videoWidth/3,a=e.videoHeight/3,d=[[0,0],[f,0],[2*f,0],[0,a],[f,a],[2*f,a],[0,2*a],[f,2*a],[2*f,2*a]].map(([r,t])=>(function(r,t,n,o){i.drawImage(e,r,t,n,o,0,0,1,1);let[u,l,f]=i.getImageData(0,0,1,1).data;return`rgb(${u}, ${l}, ${f})`})(r,t,f,a));t.forEach((e,r)=>{e.style.backgroundColor=d[r]}),w=requestAnimationFrame(o)}}(a,b,g),w=null;function x(){w||v()}function j(){w&&(cancelAnimationFrame(w),w=null)}return r.on("ready",x),r.on("destroy",j),{name:"artplayerPluginAmbilight",start:x,stop:j}}}o.defineInteropFlag(t),o.export(t,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginAmbilight=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"9pCYc":[function(e,r,t,n){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,r){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(r,t)||Object.defineProperty(r,t,{enumerable:!0,get:function(){return e[t]}})}),r},t.export=function(e,r,t){Object.defineProperty(e,r,{enumerable:!0,get:t})}},{}]},["4TtJY"],"4TtJY","parcelRequire4dc0",{}); \ No newline at end of file +!function(e,r,t,n,o,i,u,l){var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},a="function"==typeof f[n]&&f[n],d=a.i||{},c=a.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(r,t){if(!c[r]){if(!e[r]){if(o[r])return o[r];var i="function"==typeof f[n]&&f[n];if(!t&&i)return i(r,!0);if(a)return a(r,!0);if(s&&"string"==typeof r)return s(r);var u=Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}d.resolve=function(t){var n=e[r][1][t];return null!=n?n:t},d.cache={};var l=c[r]=new p.Module(r);e[r][0].call(l.exports,d,l,l.exports,f)}return c[r].exports;function d(e){var r=d.resolve(e);return!1===r?{}:p(r)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=c,p.parent=a,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=d,p.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]},Object.defineProperty(p,"root",{get:function(){return f[n]}}),f[n]=p;for(var m=0;m{var t,n,o,i,u,l,f;let{$video:a}=r.template,{createElement:d,addClass:c,setStyles:s}=r.constructor.utils,{blur:p="50px",opacity:m=.5,frequency:y=10,duration:g=.3}=e,b=d("div"),h=((t=b).innerHTML=Array(9).fill("
").join(""),Array.from(t.children));n=b,o=a,c(n,"artplayer-plugin-ambilight"),o.parentNode.insertBefore(n,o),s(n,{position:"absolute",top:0,left:0,zIndex:9,inset:0,display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gridTemplateRows:"1fr 1fr 1fr"}),i=h,u=p,l=m,f=g,i.forEach(e=>{s(e,{opacity:l,filter:`blur(${u})`,transition:`background-color ${f}s ease`})});let v=function(e,t,n){let o=d("canvas"),i=o.getContext("2d");o.width=3,o.height=3;let u=0;return function o(){let l=performance.now();if(l-u<1e3/n||!r.playing){w=requestAnimationFrame(o);return}u=l;let f=e.videoWidth/3,a=e.videoHeight/3,d=[[0,0],[f,0],[2*f,0],[0,a],[f,a],[2*f,a],[0,2*a],[f,2*a],[2*f,2*a]].map(([r,t])=>(function(r,t,n,o){i.drawImage(e,r,t,n,o,0,0,1,1);let[u,l,f]=i.getImageData(0,0,1,1).data;return`rgb(${u}, ${l}, ${f})`})(r,t,f,a));t.forEach((e,r)=>{e.style.backgroundColor=d[r]}),w=requestAnimationFrame(o)}}(a,h,y),w=null;function x(){w||v()}function j(){w&&(cancelAnimationFrame(w),w=null)}return r.on("ready",x),r.on("destroy",j),{name:"artplayerPluginAmbilight",start:x,stop:j}}}o.defineInteropFlag(t),o.export(t,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginAmbilight=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6ykb1":[function(e,r,t,n){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,r){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(r,t)||Object.defineProperty(r,t,{enumerable:!0,get:function(){return e[t]}})}),r},t.export=function(e,r,t){Object.defineProperty(e,r,{enumerable:!0,get:t})}},{}]},["2PWBI"],"2PWBI","parcelRequire4dc0",{}); \ No newline at end of file diff --git a/docs/compiled/artplayer-plugin-ambilight.legacy.js b/docs/compiled/artplayer-plugin-ambilight.legacy.js index 6d71e7a2a..f3e622e5d 100644 --- a/docs/compiled/artplayer-plugin-ambilight.legacy.js +++ b/docs/compiled/artplayer-plugin-ambilight.legacy.js @@ -5,4 +5,4 @@ * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,r,t,n,o,i,a,l){var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof u[n]&&u[n],f=s.i||{},c=s.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(r,t){if(!c[r]){if(!e[r]){if(o[r])return o[r];var i="function"==typeof u[n]&&u[n];if(!t&&i)return i(r,!0);if(s)return s(r,!0);if(d&&"string"==typeof r)return d(r);var a=Error("Cannot find module '"+r+"'");throw a.code="MODULE_NOT_FOUND",a}f.resolve=function(t){var n=e[r][1][t];return null!=n?n:t},f.cache={};var l=c[r]=new p.Module(r);e[r][0].call(l.exports,f,l,l.exports,u)}return c[r].exports;function f(e){var r=f.resolve(e);return!1===r?{}:p(r)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=d,this.exports={}},p.modules=e,p.cache=c,p.parent=s,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=f,p.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]},Object.defineProperty(p,"root",{get:function(){return u[n]}}),u[n]=p;for(var m=0;m0&&void 0!==arguments[0]?arguments[0]:{};return function(r){var t,n,o,a,l,u,s,f,c,d,p,m,y,_=r.template.$video,h=r.constructor.utils,j=h.createElement,v=h.addClass,g=h.setStyles,b=e.blur,w=e.opacity,x=e.frequency,D=e.duration,A=j("div"),F=((t=A).innerHTML=Array(9).fill("
").join(""),Array.from(t.children));n=A,o=_,v(n,"artplayer-plugin-ambilight"),o.parentNode.insertBefore(n,o),g(n,{position:"absolute",top:0,left:0,zIndex:9,inset:0,display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gridTemplateRows:"1fr 1fr 1fr"}),a=F,l=void 0===b?"50px":b,u=void 0===w?.5:w,s=void 0===D?.3:D,a.forEach(function(e){g(e,{opacity:u,filter:"blur(".concat(l,")"),transition:"background-color ".concat(s,"s ease")})});var I=(f=_,c=F,d=void 0===x?10:x,m=(p=j("canvas")).getContext("2d"),p.width=3,p.height=3,y=0,function e(){var t=performance.now();if(t-y<1e3/d||!r.playing){M=requestAnimationFrame(e);return}y=t;var n=f.videoWidth/3,o=f.videoHeight/3,a=[[0,0],[n,0],[2*n,0],[0,o],[n,o],[2*n,o],[0,2*o],[n,2*o],[2*n,2*o]].map(function(e){var r,t,a,l,u=(0,i._)(e,2),s=u[0],c=u[1];return m.drawImage(f,s,c,n,o,0,0,1,1),t=(r=(0,i._)(m.getImageData(0,0,1,1).data,3))[0],a=r[1],l=r[2],"rgb(".concat(t,", ").concat(a,", ").concat(l,")")});c.forEach(function(e,r){e.style.backgroundColor=a[r]}),M=requestAnimationFrame(e)}),M=null;function O(){M||I()}function W(){M&&(cancelAnimationFrame(M),M=null)}return r.on("ready",O),r.on("destroy",W),{name:"artplayerPluginAmbilight",start:O,stop:W}}}"undefined"!=typeof window&&(window.artplayerPluginAmbilight=a)},{"@swc/helpers/_/_sliced_to_array":"uVQht","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],uVQht:[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(t),o.export(t,"_",function(){return s});var i=e("./_array_with_holes.js"),a=e("./_iterable_to_array_limit.js"),l=e("./_non_iterable_rest.js"),u=e("./_unsupported_iterable_to_array.js");function s(e,r){return(0,i._)(e)||(0,a._)(e,r)||(0,u._)(e,r)||(0,l._)()}},{"./_array_with_holes.js":"hF14e","./_iterable_to_array_limit.js":"loYCM","./_non_iterable_rest.js":"2Mjp1","./_unsupported_iterable_to_array.js":"5m31D","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],hF14e:[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){if(Array.isArray(e))return e}o.defineInteropFlag(t),o.export(t,"_",function(){return i})},{"@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],iWrD0:[function(e,r,t,n){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,r){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(r,t)||Object.defineProperty(r,t,{enumerable:!0,get:function(){return e[t]}})}),r},t.export=function(e,r,t){Object.defineProperty(e,r,{enumerable:!0,get:t})}},{}],loYCM:[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,r){var t,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,l=!1;try{for(o=o.call(e);!(a=(t=o.next()).done)&&(i.push(t.value),!r||i.length!==r);a=!0);}catch(e){l=!0,n=e}finally{try{a||null==o.return||o.return()}finally{if(l)throw n}}return i}}o.defineInteropFlag(t),o.export(t,"_",function(){return i})},{"@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],"2Mjp1":[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}o.defineInteropFlag(t),o.export(t,"_",function(){return i})},{"@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],"5m31D":[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(t),o.export(t,"_",function(){return a});var i=e("./_array_like_to_array.js");function a(e,r){if(e){if("string"==typeof e)return(0,i._)(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return(0,i._)(e,r)}}},{"./_array_like_to_array.js":"djwRR","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],djwRR:[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t0&&void 0!==arguments[0]?arguments[0]:{};return function(r){var t,n,o,a,u,f,c,l,d,s,p,y,m,v=r.template.$video,h=r.constructor.utils,b=h.createElement,g=h.addClass,_=h.setStyles,j=e.blur,w=e.opacity,x=e.frequency,A=e.duration,S=b("div"),O=((t=S).innerHTML=Array(9).fill("
").join(""),Array.from(t.children));n=S,o=v,g(n,"artplayer-plugin-ambilight"),o.parentNode.insertBefore(n,o),_(n,{position:"absolute",top:0,left:0,zIndex:9,inset:0,display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gridTemplateRows:"1fr 1fr 1fr"}),a=O,u=void 0===j?"50px":j,f=void 0===w?.5:w,c=void 0===A?.3:A,a.forEach(function(e){_(e,{opacity:f,filter:"blur(".concat(u,")"),transition:"background-color ".concat(c,"s ease")})});var M=(l=v,d=O,s=void 0===x?10:x,y=(p=b("canvas")).getContext("2d"),p.width=3,p.height=3,m=0,function e(){var t=performance.now();if(t-m<1e3/s||!r.playing){q=requestAnimationFrame(e);return}m=t;var n=l.videoWidth/3,o=l.videoHeight/3,a=[[0,0],[n,0],[2*n,0],[0,o],[n,o],[2*n,o],[0,2*o],[n,2*o],[2*n,2*o]].map(function(e){var r,t,a,u,f=(0,i._)(e,2),c=f[0],d=f[1];return y.drawImage(l,c,d,n,o,0,0,1,1),t=(r=(0,i._)(y.getImageData(0,0,1,1).data,3))[0],a=r[1],u=r[2],"rgb(".concat(t,", ").concat(a,", ").concat(u,")")});d.forEach(function(e,r){e.style.backgroundColor=a[r]}),q=requestAnimationFrame(e)}),q=null;function I(){q||M()}function P(){q&&(cancelAnimationFrame(q),q=null)}return r.on("ready",I),r.on("destroy",P),{name:"artplayerPluginAmbilight",start:I,stop:P}}}"undefined"!=typeof window&&(window.artplayerPluginAmbilight=a)},{"@swc/helpers/cjs/_sliced_to_array.cjs":"gIQTH","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],gIQTH:[function(e,r,t,n){"use strict";var o=e("d7c30a5ae0c1ab2"),i=e("3aacfce52f67defd"),a=e("f0dae09a1a08b16a"),u=e("83f3648e614d0830");t._=function(e,r){return o._(e)||i._(e,r)||u._(e,r)||a._()}},{d7c30a5ae0c1ab2:"3QSPl","3aacfce52f67defd":"5SSeo",f0dae09a1a08b16a:"heYSj","83f3648e614d0830":"fh7mx"}],"3QSPl":[function(e,r,t,n){"use strict";t._=function(e){if(Array.isArray(e))return e}},{}],"5SSeo":[function(e,r,t,n){"use strict";t._=function(e,r){var t,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,u=!1;try{for(o=o.call(e);!(a=(t=o.next()).done)&&(i.push(t.value),!r||i.length!==r);a=!0);}catch(e){u=!0,n=e}finally{try{a||null==o.return||o.return()}finally{if(u)throw n}}return i}}},{}],heYSj:[function(e,r,t,n){"use strict";t._=function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},{}],fh7mx:[function(e,r,t,n){"use strict";var o=e("3ee51b7dc02d0c44");t._=function(e,r){if(e){if("string"==typeof e)return o._(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return o._(e,r)}}},{"3ee51b7dc02d0c44":"1WOAB"}],"1WOAB":[function(e,r,t,n){"use strict";t._=function(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t(t.on("video:loadedmetadata",()=>{let n=e.url||t.option.url,o=e.width||160,r=e.number||100,i=e.scale||1;!function({url:e,width:t,number:n},o){let r=document.createElement("video");r.crossOrigin="anonymous",r.src=e,r.onloadedmetadata=()=>{let e=r.duration,i=document.createElement("canvas"),u=i.getContext("2d"),l=Math.floor(t*r.videoHeight/r.videoWidth);i.width=10*t,i.height=l*Math.ceil(n/10);let d=0,f=null;!function a(c){i.toBlob(e=>{URL.revokeObjectURL(f),o({url:f=URL.createObjectURL(e),height:l})},"image/jpeg"),c>=n||(r.currentTime=e*c/n,r.onseeked=()=>{u.drawImage(r,c%10*t,Math.floor(c/10)*l,t,l),d++,a(c+1)})}(0)}}({url:n,width:o,number:r},e=>{t.thumbnails={...e,column:10,number:r,width:o,scale:i}})}),{name:"artplayerPluginAutoThumbnail"})}r.defineInteropFlag(n),r.export(n,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginAutoThumbnail=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5lQoW":[function(e,t,n,o){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach(function(n){"default"===n||"__esModule"===n||Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})}),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["guSFC"],"guSFC","parcelRequire4dc0",{});let{default:e}=parcelRequire4dc0("guSFC");export{e as default}; +//# sourceMappingURL=index.js.map diff --git a/docs/compiled/artplayer-plugin-auto-thumbnail.js b/docs/compiled/artplayer-plugin-auto-thumbnail.js index 882661215..1c92680b9 100644 --- a/docs/compiled/artplayer-plugin-auto-thumbnail.js +++ b/docs/compiled/artplayer-plugin-auto-thumbnail.js @@ -5,4 +5,4 @@ * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,t,n,o,r,i,u,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},f="function"==typeof d[o]&&d[o],a=f.i||{},c=f.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!c[t]){if(!e[t]){if(r[t])return r[t];var i="function"==typeof d[o]&&d[o];if(!n&&i)return i(t,!0);if(f)return f(t,!0);if(s&&"string"==typeof t)return s(t);var u=Error("Cannot find module '"+t+"'");throw u.code="MODULE_NOT_FOUND",u}a.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},a.cache={};var l=c[t]=new p.Module(t);e[t][0].call(l.exports,a,l,l.exports,d)}return c[t].exports;function a(e){var t=a.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=c,p.parent=f,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=a,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return d[o]}}),d[o]=p;for(var m=0;m(t.on("video:loadedmetadata",()=>{let n=e.url||t.option.url,o=e.width||160,r=e.number||100,i=e.scale||1;!function({url:e,width:t,number:n},o){let r=document.createElement("video");r.crossOrigin="anonymous",r.src=e,r.onloadedmetadata=()=>{let e=r.duration,i=document.createElement("canvas"),u=i.getContext("2d"),l=Math.floor(t*r.videoHeight/r.videoWidth);i.width=10*t,i.height=l*Math.ceil(n/10);let d=0,f=null;!function a(c){i.toBlob(e=>{URL.revokeObjectURL(f),o({url:f=URL.createObjectURL(e),height:l})},"image/jpeg"),c>=n||(r.currentTime=e*c/n,r.onseeked=()=>{u.drawImage(r,c%10*t,Math.floor(c/10)*l,t,l),d++,a(c+1)})}(0)}}({url:n,width:o,number:r},e=>{t.thumbnails={...e,column:10,number:r,width:o,scale:i}})}),{name:"artplayerPluginAutoThumbnail"})}r.defineInteropFlag(n),r.export(n,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginAutoThumbnail=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"9pCYc":[function(e,t,n,o){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach(function(n){"default"===n||"__esModule"===n||Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})}),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["gj1wy"],"gj1wy","parcelRequire4dc0",{}); \ No newline at end of file +!function(e,t,n,o,r,i,u,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},f="function"==typeof d[o]&&d[o],a=f.i||{},c=f.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!c[t]){if(!e[t]){if(r[t])return r[t];var i="function"==typeof d[o]&&d[o];if(!n&&i)return i(t,!0);if(f)return f(t,!0);if(s&&"string"==typeof t)return s(t);var u=Error("Cannot find module '"+t+"'");throw u.code="MODULE_NOT_FOUND",u}a.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},a.cache={};var l=c[t]=new p.Module(t);e[t][0].call(l.exports,a,l,l.exports,d)}return c[t].exports;function a(e){var t=a.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=c,p.parent=f,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=a,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return d[o]}}),d[o]=p;for(var m=0;m(t.on("video:loadedmetadata",()=>{let n=e.url||t.option.url,o=e.width||160,r=e.number||100,i=e.scale||1;!function({url:e,width:t,number:n},o){let r=document.createElement("video");r.crossOrigin="anonymous",r.src=e,r.onloadedmetadata=()=>{let e=r.duration,i=document.createElement("canvas"),u=i.getContext("2d"),l=Math.floor(t*r.videoHeight/r.videoWidth);i.width=10*t,i.height=l*Math.ceil(n/10);let d=0,f=null;!function a(c){i.toBlob(e=>{URL.revokeObjectURL(f),o({url:f=URL.createObjectURL(e),height:l})},"image/jpeg"),c>=n||(r.currentTime=e*c/n,r.onseeked=()=>{u.drawImage(r,c%10*t,Math.floor(c/10)*l,t,l),d++,a(c+1)})}(0)}}({url:n,width:o,number:r},e=>{t.thumbnails={...e,column:10,number:r,width:o,scale:i}})}),{name:"artplayerPluginAutoThumbnail"})}r.defineInteropFlag(n),r.export(n,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginAutoThumbnail=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6ykb1":[function(e,t,n,o){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach(function(n){"default"===n||"__esModule"===n||Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})}),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["6MsoC"],"6MsoC","parcelRequire4dc0",{}); \ No newline at end of file diff --git a/docs/compiled/artplayer-plugin-auto-thumbnail.legacy.js b/docs/compiled/artplayer-plugin-auto-thumbnail.legacy.js index 88b0a720e..e643f722a 100644 --- a/docs/compiled/artplayer-plugin-auto-thumbnail.legacy.js +++ b/docs/compiled/artplayer-plugin-auto-thumbnail.legacy.js @@ -5,4 +5,4 @@ * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,r,t,n,o,i,c,u){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof a[n]&&a[n],f=s.i||{},l=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(r,t){if(!l[r]){if(!e[r]){if(o[r])return o[r];var i="function"==typeof a[n]&&a[n];if(!t&&i)return i(r,!0);if(s)return s(r,!0);if(p&&"string"==typeof r)return p(r);var c=Error("Cannot find module '"+r+"'");throw c.code="MODULE_NOT_FOUND",c}f.resolve=function(t){var n=e[r][1][t];return null!=n?n:t},f.cache={};var u=l[r]=new d.Module(r);e[r][0].call(u.exports,f,u,u.exports,a)}return l[r].exports;function f(e){var r=f.resolve(e);return!1===r?{}:d(r)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=p,this.exports={}},d.modules=e,d.cache=l,d.parent=s,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=f,d.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]},Object.defineProperty(d,"root",{get:function(){return a[n]}}),a[n]=d;for(var _=0;_=a||(s.currentTime=e*l/a,s.onseeked=function(){t.drawImage(s,l%10*i,Math.floor(l/10)*o,i,o),c++,f(l+1)})}(0)}}),[2,{name:"artplayerPluginAutoThumbnail"}]})}),function(e){return r.apply(this,arguments)}}"undefined"!=typeof window&&(window.artplayerPluginAutoThumbnail=s)},{"@swc/helpers/_/_async_to_generator":"eONSn","@swc/helpers/_/_object_spread":"9agdF","@swc/helpers/_/_object_spread_props":"gJNH2","@swc/helpers/_/_ts_generator":"6Xyd0","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],eONSn:[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,r,t,n,o,i,c){try{var u=e[i](c),a=u.value}catch(e){t(e);return}u.done?r(a):Promise.resolve(a).then(n,o)}function c(e){return function(){var r=this,t=arguments;return new Promise(function(n,o){var c=e.apply(r,t);function u(e){i(c,n,o,u,a,"next",e)}function a(e){i(c,n,o,u,a,"throw",e)}u(void 0)})}}o.defineInteropFlag(t),o.export(t,"_",function(){return c})},{"@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],iWrD0:[function(e,r,t,n){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,r){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(r,t)||Object.defineProperty(r,t,{enumerable:!0,get:function(){return e[t]}})}),r},t.export=function(e,r,t){Object.defineProperty(e,r,{enumerable:!0,get:t})}},{}],"9agdF":[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(t),o.export(t,"_",function(){return c});var i=e("./_define_property.js");function c(e){for(var r=1;rr.indexOf(n)&&(t[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);or.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(t[n[o]]=e[n[o]]);return t}function f(e,r,t,n){var o,c=arguments.length,u=c<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,t):n;if(("undefined"==typeof Reflect?"undefined":(0,i._)(Reflect))==="object"&&"function"==typeof Reflect.decorate)u=Reflect.decorate(e,r,t,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(u=(c<3?o(u):c>3?o(r,t,u):o(r,t))||u);return c>3&&u&&Object.defineProperty(r,t,u),u}function l(e,r){return function(t,n){r(t,n,e)}}function p(e,r,t,n,o,c){function u(e){if(void 0!==e&&"function"!=typeof e)throw TypeError("Function expected");return e}for(var a,s=n.kind,f="getter"===s?"get":"setter"===s?"set":"value",l=!r&&e?n.static?e:e.prototype:null,p=r||(l?Object.getOwnPropertyDescriptor(l,n.name):{}),d=!1,_=t.length-1;_>=0;_--){var y={};for(var h in n)y[h]="access"===h?{}:n[h];for(var h in n.access)y.access[h]=n.access[h];y.addInitializer=function(e){if(d)throw TypeError("Cannot add initializers after decoration has completed");c.push(u(e||null))};var v=(0,t[_])("accessor"===s?{get:p.get,set:p.set}:p[f],y);if("accessor"===s){if(void 0===v)continue;if(null===v||(void 0===v?"undefined":(0,i._)(v))!=="object")throw TypeError("Object expected");(a=u(v.get))&&(p.get=a),(a=u(v.set))&&(p.set=a),(a=u(v.init))&&o.unshift(a)}else(a=u(v))&&("field"===s?o.unshift(a):p[f]=a)}l&&Object.defineProperty(l,n.name,p),d=!0}function d(e,r,t){for(var n=arguments.length>2,o=0;o0&&o[o.length-1])&&(6===s[0]||2===s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")}function g(e,r){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var n,o,i=t.call(e),c=[];try{for(;(void 0===r||r-- >0)&&!(n=i.next()).done;)c.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return c}function O(){for(var e=[],r=0;r1||u(e,r)})},r&&(n[e]=r(n[e])))}function u(e,r){try{var t;(t=o[e](r)).value instanceof S?Promise.resolve(t.value.v).then(a,s):f(i[0][2],t)}catch(e){f(i[0][3],e)}}function a(e){u("next",e)}function s(e){u("throw",e)}function f(e,r){e(r),i.shift(),i.length&&u(i[0][0],i[0][1])}}function D(e){var r,t;return r={},n("next"),n("throw",function(e){throw e}),n("return"),r[Symbol.iterator]=function(){return this},r;function n(n,o){r[n]=e[n]?function(r){return(t=!t)?{value:S(e[n](r)),done:!1}:o?o(r):r}:o}}function I(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var r,t=e[Symbol.asyncIterator];return t?t.call(e):(e=w(e),r={},n("next"),n("throw"),n("return"),r[Symbol.asyncIterator]=function(){return this},r);function n(t){r[t]=e[t]&&function(r){return new Promise(function(n,o){var i,c,u;i=n,c=o,u=(r=e[t](r)).done,Promise.resolve(r.value).then(function(e){i({value:e,done:u})},c)})}}}function T(e,r){return Object.defineProperty?Object.defineProperty(e,"raw",{value:r}):e.raw=r,e}var F=Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r},R=function(e){return(R=Object.getOwnPropertyNames||function(e){var r=[];for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[r.length]=t);return r})(e)};function k(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t=R(e),n=0;n=a||(s.currentTime=e*l/a,s.onseeked=function(){r.drawImage(s,l%10*i,Math.floor(l/10)*o,i,o),c++,f(l+1)})}(0)}}),[2,{name:"artplayerPluginAutoThumbnail"}]})}),function(e){return t.apply(this,arguments)}}"undefined"!=typeof window&&(window.artplayerPluginAutoThumbnail=s)},{"@swc/helpers/cjs/_async_to_generator.cjs":"cZn0e","@swc/helpers/cjs/_object_spread.cjs":"kyoEj","@swc/helpers/cjs/_object_spread_props.cjs":"3G1wX","@swc/helpers/cjs/_ts_generator.cjs":"eltGh","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],cZn0e:[function(e,t,r,n){"use strict";function o(e,t,r,n,o,i,c){try{var u=e[i](c),a=u.value}catch(e){r(e);return}u.done?t(a):Promise.resolve(a).then(n,o)}r._=function(e){return function(){var t=this,r=arguments;return new Promise(function(n,i){var c=e.apply(t,r);function u(e){o(c,n,i,u,a,"next",e)}function a(e){o(c,n,i,u,a,"throw",e)}u(void 0)})}}},{}],kyoEj:[function(e,t,r,n){"use strict";var o=e("9f9b8a24218ee51e");r._=function(e){for(var t=1;tt.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r}function f(e,t,r,n){var o,c=arguments.length,u=c<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if(("undefined"==typeof Reflect?"undefined":(0,i._)(Reflect))==="object"&&"function"==typeof Reflect.decorate)u=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(u=(c<3?o(u):c>3?o(t,r,u):o(t,r))||u);return c>3&&u&&Object.defineProperty(t,r,u),u}function l(e,t){return function(r,n){t(r,n,e)}}function p(e,t,r,n,o,c){function u(e){if(void 0!==e&&"function"!=typeof e)throw TypeError("Function expected");return e}for(var a,s=n.kind,f="getter"===s?"get":"setter"===s?"set":"value",l=!t&&e?n.static?e:e.prototype:null,p=t||(l?Object.getOwnPropertyDescriptor(l,n.name):{}),d=!1,y=r.length-1;y>=0;y--){var _={};for(var h in n)_[h]="access"===h?{}:n[h];for(var h in n.access)_.access[h]=n.access[h];_.addInitializer=function(e){if(d)throw TypeError("Cannot add initializers after decoration has completed");c.push(u(e||null))};var b=(0,r[y])("accessor"===s?{get:p.get,set:p.set}:p[f],_);if("accessor"===s){if(void 0===b)continue;if(null===b||(void 0===b?"undefined":(0,i._)(b))!=="object")throw TypeError("Object expected");(a=u(b.get))&&(p.get=a),(a=u(b.set))&&(p.set=a),(a=u(b.init))&&o.unshift(a)}else(a=u(b))&&("field"===s?o.unshift(a):p[f]=a)}l&&Object.defineProperty(l,n.name,p),d=!0}function d(e,t,r){for(var n=arguments.length>2,o=0;o0&&o[o.length-1])&&(6===s[0]||2===s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function g(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),c=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)c.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return c}function O(){for(var e=[],t=0;t1||u(e,t)})},t&&(n[e]=t(n[e])))}function u(e,t){try{var r;(r=o[e](t)).value instanceof S?Promise.resolve(r.value.v).then(a,s):f(i[0][2],r)}catch(e){f(i[0][3],e)}}function a(e){u("next",e)}function s(e){u("throw",e)}function f(e,t){e(t),i.shift(),i.length&&u(i[0][0],i[0][1])}}function T(e){var t,r;return t={},n("next"),n("throw",function(e){throw e}),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:S(e[n](t)),done:!1}:o?o(t):t}:o}}function I(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=j(e),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise(function(n,o){var i,c,u;i=n,c=o,u=(t=e[r](t)).done,Promise.resolve(t.value).then(function(e){i({value:e,done:u})},c)})}}}function D(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var R=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},k=function(e){return(k=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t})(e)};function M(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=k(e),n=0;nl);var o=e("bundle-text:./style.less"),i=n.interopDefault(o);function l(e={}){return t=>{let{$player:r}=t.template,{setStyle:a,append:n,clamp:o,query:i,isMobile:l,addClass:d,removeClass:p}=t.constructor.utils,s=` +
+
+
+
+
+
+
+ `,u=null,c=[],f=t.query(".art-control-progress"),h=t.query(".art-control-progress-inner"),g=n(h,'
'),y=n(h,'
');function m({$chapter:e,width:t}){let r=e.dataset.title.trim();if(r){a(y,"display","flex"),y.innerText=r;let e=y.clientWidth;t<=e/2?a(y,"left",0):t>h.clientWidth-e/2?a(y,"left",`${h.clientWidth-e}px`):a(y,"left",`${t-e/2}px`)}else a(y,"display","none")}function v(e=[]){if((c=[],g.innerText="",p(r,"artplayer-plugin-chapter"),Array.isArray(e)&&e.length)&&t.duration){e=e.sort((e,t)=>e.start-t.start);for(let r=0;rt.duration||a.start>=a.end||n&&a.end>n.start)throw Error("Illegal chapter time point")}e[0].start>0&&e.unshift({start:0,end:e[0].start,title:""}),e[e.length-1].end{let r=n(g,s),a=o(e.start,0,t.duration),l=o(e.end,0,t.duration),d=l-a,p=d/t.duration;return r.dataset.start=a,r.dataset.end=l,r.dataset.duration=d,r.dataset.title=e.title.trim(),r.style.width=`${100*p}%`,{$chapter:r,$hover:i(".art-progress-hover",r),$loaded:i(".art-progress-loaded",r),$played:i(".art-progress-played",r)}}),d(r,"artplayer-plugin-chapter"),t.emit("setBar","loaded",t.loaded||0)}}return t.on("setBar",(e,r,n)=>{if(c.length)for(let o=0;ow&&a(f,"width","100%"),v>=x&&v<=w){let t=(v-x)/b;a(f,"width",`${100*t}%`),l?"played"===e&&n&&(m({$chapter:i,width:h}),clearTimeout(u),u=setTimeout(()=>{a(y,"display","none")},500)):"hover"===e&&m({$chapter:i,width:h})}}}),l||t.proxy(f,"mouseleave",()=>{c.length&&a(y,"display","none")}),t.once("video:loadedmetadata",()=>v(e.chapters)),{name:"artplayerPluginChapter",update:({chapters:e})=>v(e)}}}if("undefined"!=typeof document){let e="artplayer-plugin-chapter",t=document.getElementById(e);t||((t=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{document.head.appendChild(t)}):(document.head||document.documentElement).appendChild(t)),t.textContent=i.default}"undefined"!=typeof window&&(window.artplayerPluginChapter=l)},{"bundle-text:./style.less":"e5E4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],e5E4m:[function(e,t,r,a){t.exports=".artplayer-plugin-chapter .art-control-progress-inner{background-color:#0000!important;height:100%!important}.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-hover,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-loaded,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-played{display:none!important}.artplayer-plugin-chapter .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 64px)!important}.artplayer-plugin-chapter .art-chapters{z-index:0;align-items:center;gap:4px;height:100%;display:flex;position:absolute;inset:0;transform:scaleY(1.25)}.artplayer-plugin-chapter .art-chapters .art-chapter{align-items:center;height:100%;display:flex}.artplayer-plugin-chapter .art-chapters .art-chapter .art-chapter-inner{cursor:pointer;width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);border-radius:10px;position:relative;overflow:hidden}.artplayer-plugin-chapter .art-chapters .art-chapter:hover .art-chapter-inner{height:100%}.artplayer-plugin-chapter .art-chapter-title{z-index:70;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:14px;line-height:1;display:none;position:absolute;top:-50px;left:0}"},{}],"5lQoW":[function(e,t,r,a){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})}),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}]},["1LLzi"],"1LLzi","parcelRequire4dc0",{});let{default:e}=parcelRequire4dc0("1LLzi");export{e as default}; +//# sourceMappingURL=index.js.map diff --git a/docs/compiled/artplayer-plugin-chapter.js b/docs/compiled/artplayer-plugin-chapter.js index 4c378abb2..225ace5e4 100644 --- a/docs/compiled/artplayer-plugin-chapter.js +++ b/docs/compiled/artplayer-plugin-chapter.js @@ -5,4 +5,4 @@ * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,t,r,a,n,o,i,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[a]&&d[a],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(n[t])return n[t];var o="function"==typeof d[a]&&d[a];if(!r&&o)return o(t,!0);if(p)return p(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}s.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},s.cache={};var l=u[t]=new f.Module(t);e[t][0].call(l.exports,s,l,l.exports,d)}return u[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=u,f.parent=p,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return d[a]}}),d[a]=f;for(var h=0;hl);var o=e("bundle-text:./style.less"),i=n.interopDefault(o);function l(e={}){return t=>{let{$player:r}=t.template,{setStyle:a,append:n,clamp:o,query:i,isMobile:l,addClass:d,removeClass:p}=t.constructor.utils,s=`
`,u=null,c=[],f=t.query(".art-control-progress"),h=t.query(".art-control-progress-inner"),g=n(h,'
'),y=n(h,'
');function m({$chapter:e,width:t}){let r=e.dataset.title.trim();if(r){a(y,"display","flex"),y.innerText=r;let e=y.clientWidth;t<=e/2?a(y,"left",0):t>h.clientWidth-e/2?a(y,"left",`${h.clientWidth-e}px`):a(y,"left",`${t-e/2}px`)}else a(y,"display","none")}function v(e=[]){if((c=[],g.innerText="",p(r,"artplayer-plugin-chapter"),Array.isArray(e)&&e.length)&&t.duration){e=e.sort((e,t)=>e.start-t.start);for(let r=0;rt.duration||a.start>=a.end||n&&a.end>n.start)throw Error("Illegal chapter time point")}e[0].start>0&&e.unshift({start:0,end:e[0].start,title:""}),e[e.length-1].end{let r=n(g,s),a=o(e.start,0,t.duration),l=o(e.end,0,t.duration),d=l-a,p=d/t.duration;return r.dataset.start=a,r.dataset.end=l,r.dataset.duration=d,r.dataset.title=e.title.trim(),r.style.width=`${100*p}%`,{$chapter:r,$hover:i(".art-progress-hover",r),$loaded:i(".art-progress-loaded",r),$played:i(".art-progress-played",r)}}),d(r,"artplayer-plugin-chapter"),t.emit("setBar","loaded",t.loaded||0)}}return t.on("setBar",(e,r,n)=>{if(c.length)for(let o=0;ow&&a(f,"width","100%"),v>=x&&v<=w){let t=(v-x)/b;a(f,"width",`${100*t}%`),l?"played"===e&&n&&(m({$chapter:i,width:h}),clearTimeout(u),u=setTimeout(()=>{a(y,"display","none")},500)):"hover"===e&&m({$chapter:i,width:h})}}}),l||t.proxy(f,"mouseleave",()=>{c.length&&a(y,"display","none")}),t.once("video:loadedmetadata",()=>v(e.chapters)),{name:"artplayerPluginChapter",update:({chapters:e})=>v(e)}}}if("undefined"!=typeof document){let e="artplayer-plugin-chapter",t=document.getElementById(e);t||((t=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{document.head.appendChild(t)}):(document.head||document.documentElement).appendChild(t)),t.textContent=i.default}"undefined"!=typeof window&&(window.artplayerPluginChapter=l)},{"bundle-text:./style.less":"9CXLk","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"9CXLk":[function(e,t,r,a){t.exports=".artplayer-plugin-chapter .art-control-progress-inner{background-color:#0000!important;height:100%!important}.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-hover,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-loaded,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-played{display:none!important}.artplayer-plugin-chapter .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 64px)!important}.artplayer-plugin-chapter .art-chapters{z-index:0;align-items:center;gap:4px;height:100%;display:flex;position:absolute;inset:0;transform:scaleY(1.25)}.artplayer-plugin-chapter .art-chapters .art-chapter{align-items:center;height:100%;display:flex}.artplayer-plugin-chapter .art-chapters .art-chapter .art-chapter-inner{cursor:pointer;width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);border-radius:10px;position:relative;overflow:hidden}.artplayer-plugin-chapter .art-chapters .art-chapter:hover .art-chapter-inner{height:100%}.artplayer-plugin-chapter .art-chapter-title{z-index:70;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:14px;line-height:1;display:none;position:absolute;top:-50px;left:0}"},{}],"9pCYc":[function(e,t,r,a){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})}),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}]},["eSFsM"],"eSFsM","parcelRequire4dc0",{}); \ No newline at end of file +!function(e,t,r,a,n,o,i,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[a]&&d[a],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(n[t])return n[t];var o="function"==typeof d[a]&&d[a];if(!r&&o)return o(t,!0);if(p)return p(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}s.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},s.cache={};var l=u[t]=new f.Module(t);e[t][0].call(l.exports,s,l,l.exports,d)}return u[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=u,f.parent=p,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return d[a]}}),d[a]=f;for(var h=0;hl);var o=e("bundle-text:./style.less"),i=n.interopDefault(o);function l(e={}){return t=>{let{$player:r}=t.template,{setStyle:a,append:n,clamp:o,query:i,isMobile:l,addClass:d,removeClass:p}=t.constructor.utils,s=`
`,u=null,c=[],f=t.query(".art-control-progress"),h=t.query(".art-control-progress-inner"),g=n(h,'
'),y=n(h,'
');function m({$chapter:e,width:t}){let r=e.dataset.title.trim();if(r){a(y,"display","flex"),y.innerText=r;let e=y.clientWidth;t<=e/2?a(y,"left",0):t>h.clientWidth-e/2?a(y,"left",`${h.clientWidth-e}px`):a(y,"left",`${t-e/2}px`)}else a(y,"display","none")}function v(e=[]){if((c=[],g.innerText="",p(r,"artplayer-plugin-chapter"),Array.isArray(e)&&e.length)&&t.duration){e=e.sort((e,t)=>e.start-t.start);for(let r=0;rt.duration||a.start>=a.end||n&&a.end>n.start)throw Error("Illegal chapter time point")}e[0].start>0&&e.unshift({start:0,end:e[0].start,title:""}),e[e.length-1].end{let r=n(g,s),a=o(e.start,0,t.duration),l=o(e.end,0,t.duration),d=l-a,p=d/t.duration;return r.dataset.start=a,r.dataset.end=l,r.dataset.duration=d,r.dataset.title=e.title.trim(),r.style.width=`${100*p}%`,{$chapter:r,$hover:i(".art-progress-hover",r),$loaded:i(".art-progress-loaded",r),$played:i(".art-progress-played",r)}}),d(r,"artplayer-plugin-chapter"),t.emit("setBar","loaded",t.loaded||0)}}return t.on("setBar",(e,r,n)=>{if(c.length)for(let o=0;ow&&a(f,"width","100%"),v>=x&&v<=w){let t=(v-x)/b;a(f,"width",`${100*t}%`),l?"played"===e&&n&&(m({$chapter:i,width:h}),clearTimeout(u),u=setTimeout(()=>{a(y,"display","none")},500)):"hover"===e&&m({$chapter:i,width:h})}}}),l||t.proxy(f,"mouseleave",()=>{c.length&&a(y,"display","none")}),t.once("video:loadedmetadata",()=>v(e.chapters)),{name:"artplayerPluginChapter",update:({chapters:e})=>v(e)}}}if("undefined"!=typeof document){let e="artplayer-plugin-chapter",t=document.getElementById(e);t||((t=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{document.head.appendChild(t)}):(document.head||document.documentElement).appendChild(t)),t.textContent=i.default}"undefined"!=typeof window&&(window.artplayerPluginChapter=l)},{"bundle-text:./style.less":"emPWt","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],emPWt:[function(e,t,r,a){t.exports=".artplayer-plugin-chapter .art-control-progress-inner{background-color:#0000!important;height:100%!important}.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-hover,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-loaded,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-played{display:none!important}.artplayer-plugin-chapter .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 64px)!important}.artplayer-plugin-chapter .art-chapters{z-index:0;align-items:center;gap:4px;height:100%;display:flex;position:absolute;inset:0;transform:scaleY(1.25)}.artplayer-plugin-chapter .art-chapters .art-chapter{align-items:center;height:100%;display:flex}.artplayer-plugin-chapter .art-chapters .art-chapter .art-chapter-inner{cursor:pointer;width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);border-radius:10px;position:relative;overflow:hidden}.artplayer-plugin-chapter .art-chapters .art-chapter:hover .art-chapter-inner{height:100%}.artplayer-plugin-chapter .art-chapter-title{z-index:70;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:14px;line-height:1;display:none;position:absolute;top:-50px;left:0}"},{}],"6ykb1":[function(e,t,r,a){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})}),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}]},["3VfEb"],"3VfEb","parcelRequire4dc0",{}); \ No newline at end of file diff --git a/docs/compiled/artplayer-plugin-chapter.legacy.js b/docs/compiled/artplayer-plugin-chapter.legacy.js index 0303a1e69..d72e740f9 100644 --- a/docs/compiled/artplayer-plugin-chapter.legacy.js +++ b/docs/compiled/artplayer-plugin-chapter.legacy.js @@ -5,4 +5,4 @@ * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,t,r,a,n,o,i,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[a]&&d[a],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(n[t])return n[t];var o="function"==typeof d[a]&&d[a];if(!r&&o)return o(t,!0);if(p)return p(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}s.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},s.cache={};var l=u[t]=new f.Module(t);e[t][0].call(l.exports,s,l,l.exports,d)}return u[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=u,f.parent=p,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return d[a]}}),d[a]=f;for(var h=0;h0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var r=t.template.$player,a=t.constructor.utils,n=a.setStyle,o=a.append,i=a.clamp,l=a.query,d=a.isMobile,p=a.addClass,s=a.removeClass,u=null,c=[],f=t.query(".art-control-progress"),h=t.query(".art-control-progress-inner"),g=o(h,'
'),y=o(h,'
');function v(e){var t=e.$chapter,r=e.width,a=t.dataset.title.trim();if(a){n(y,"display","flex"),y.innerText=a;var o=y.clientWidth;r<=o/2?n(y,"left",0):r>h.clientWidth-o/2?n(y,"left","".concat(h.clientWidth-o,"px")):n(y,"left","".concat(r-o/2,"px"))}else n(y,"display","none")}function m(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if((c=[],g.innerText="",s(r,"artplayer-plugin-chapter"),Array.isArray(e)&&e.length)&&t.duration){e=e.sort(function(e,t){return e.start-t.start});for(var a=0;at.duration||n.start>=n.end||d&&n.end>d.start)throw Error("Illegal chapter time point")}e[0].start>0&&e.unshift({start:0,end:e[0].start,title:""}),e[e.length-1].end\n
\n
\n
\n
\n
\n\n '),a=i(e.start,0,t.duration),n=i(e.end,0,t.duration),d=n-a,p=d/t.duration;return r.dataset.start=a,r.dataset.end=n,r.dataset.duration=d,r.dataset.title=e.title.trim(),r.style.width="".concat(100*p,"%"),{$chapter:r,$hover:l(".art-progress-hover",r),$loaded:l(".art-progress-loaded",r),$played:l(".art-progress-played",r)}}),p(r,"artplayer-plugin-chapter"),t.emit("setBar","loaded",t.loaded||0)}}return t.on("setBar",function(e,r,a){if(c.length)for(var o=0;ow&&n(f,"width","100%"),m>=x&&m<=w){var j=(m-x)/b;n(f,"width","".concat(100*j,"%")),d?"played"===e&&a&&(v({$chapter:l,width:h}),clearTimeout(u),u=setTimeout(function(){n(y,"display","none")},500)):"hover"===e&&v({$chapter:l,width:h})}}}),d||t.proxy(f,"mouseleave",function(){c.length&&n(y,"display","none")}),t.once("video:loadedmetadata",function(){return m(e.chapters)}),{name:"artplayerPluginChapter",update:function(e){return m(e.chapters)}}}}if("undefined"!=typeof document){var d="artplayer-plugin-chapter",p=document.getElementById(d);p||((p=document.createElement("style")).id=d,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",function(){document.head.appendChild(p)}):(document.head||document.documentElement).appendChild(p)),p.textContent=i.default}"undefined"!=typeof window&&(window.artplayerPluginChapter=l)},{"bundle-text:./style.less":"4jhrf","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],"4jhrf":[function(e,t,r,a){t.exports=".artplayer-plugin-chapter .art-control-progress-inner{background-color:transparent!important;height:100%!important}.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-hover,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-loaded,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-played{display:none!important}.artplayer-plugin-chapter .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 64px)!important}.artplayer-plugin-chapter .art-chapters{z-index:0;align-items:center;gap:4px;height:100%;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;transform:scaleY(1.25)}.artplayer-plugin-chapter .art-chapters .art-chapter{align-items:center;height:100%;display:flex}.artplayer-plugin-chapter .art-chapters .art-chapter .art-chapter-inner{cursor:pointer;width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);border-radius:10px;position:relative;overflow:hidden}.artplayer-plugin-chapter .art-chapters .art-chapter:hover .art-chapter-inner{height:100%}.artplayer-plugin-chapter .art-chapter-title{z-index:70;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:14px;line-height:1;display:none;position:absolute;top:-50px;left:0}"},{}],iWrD0:[function(e,t,r,a){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})}),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}]},["9rqDr"],"9rqDr","parcelRequire4dc0",{}); \ No newline at end of file +!function(e,t,r,a,n,o,i,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[a]&&d[a],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(n[t])return n[t];var o="function"==typeof d[a]&&d[a];if(!r&&o)return o(t,!0);if(p)return p(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}s.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},s.cache={};var l=u[t]=new f.Module(t);e[t][0].call(l.exports,s,l,l.exports,d)}return u[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=u,f.parent=p,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return d[a]}}),d[a]=f;for(var h=0;h0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var r=t.template.$player,a=t.constructor.utils,n=a.setStyle,o=a.append,i=a.clamp,l=a.query,d=a.isMobile,p=a.addClass,s=a.removeClass,u=null,c=[],f=t.query(".art-control-progress"),h=t.query(".art-control-progress-inner"),g=o(h,'
'),y=o(h,'
');function v(e){var t=e.$chapter,r=e.width,a=t.dataset.title.trim();if(a){n(y,"display","flex"),y.innerText=a;var o=y.clientWidth;r<=o/2?n(y,"left",0):r>h.clientWidth-o/2?n(y,"left","".concat(h.clientWidth-o,"px")):n(y,"left","".concat(r-o/2,"px"))}else n(y,"display","none")}function m(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if((c=[],g.innerText="",s(r,"artplayer-plugin-chapter"),Array.isArray(e)&&e.length)&&t.duration){e=e.sort(function(e,t){return e.start-t.start});for(var a=0;at.duration||n.start>=n.end||d&&n.end>d.start)throw Error("Illegal chapter time point")}e[0].start>0&&e.unshift({start:0,end:e[0].start,title:""}),e[e.length-1].end\n
\n
\n
\n
\n
\n\n '),a=i(e.start,0,t.duration),n=i(e.end,0,t.duration),d=n-a,p=d/t.duration;return r.dataset.start=a,r.dataset.end=n,r.dataset.duration=d,r.dataset.title=e.title.trim(),r.style.width="".concat(100*p,"%"),{$chapter:r,$hover:l(".art-progress-hover",r),$loaded:l(".art-progress-loaded",r),$played:l(".art-progress-played",r)}}),p(r,"artplayer-plugin-chapter"),t.emit("setBar","loaded",t.loaded||0)}}return t.on("setBar",function(e,r,a){if(c.length)for(var o=0;ow&&n(f,"width","100%"),m>=x&&m<=w){var M=(m-x)/b;n(f,"width","".concat(100*M,"%")),d?"played"===e&&a&&(v({$chapter:l,width:h}),clearTimeout(u),u=setTimeout(function(){n(y,"display","none")},500)):"hover"===e&&v({$chapter:l,width:h})}}}),d||t.proxy(f,"mouseleave",function(){c.length&&n(y,"display","none")}),t.once("video:loadedmetadata",function(){return m(e.chapters)}),{name:"artplayerPluginChapter",update:function(e){return m(e.chapters)}}}}if("undefined"!=typeof document){var d="artplayer-plugin-chapter",p=document.getElementById(d);p||((p=document.createElement("style")).id=d,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",function(){document.head.appendChild(p)}):(document.head||document.documentElement).appendChild(p)),p.textContent=i.default}"undefined"!=typeof window&&(window.artplayerPluginChapter=l)},{"bundle-text:./style.less":"fcXWB","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],fcXWB:[function(e,t,r,a){t.exports=".artplayer-plugin-chapter .art-control-progress-inner{background-color:transparent!important;height:100%!important}.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-hover,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-loaded,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-played{display:none!important}.artplayer-plugin-chapter .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 64px)!important}.artplayer-plugin-chapter .art-chapters{z-index:0;align-items:center;gap:4px;height:100%;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;transform:scaleY(1.25)}.artplayer-plugin-chapter .art-chapters .art-chapter{align-items:center;height:100%;display:flex}.artplayer-plugin-chapter .art-chapters .art-chapter .art-chapter-inner{cursor:pointer;width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);border-radius:10px;position:relative;overflow:hidden}.artplayer-plugin-chapter .art-chapters .art-chapter:hover .art-chapter-inner{height:100%}.artplayer-plugin-chapter .art-chapter-title{z-index:70;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:14px;line-height:1;display:none;position:absolute;top:-50px;left:0}"},{}],qpMMf:[function(e,t,r,a){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})}),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}]},["7hySu"],"7hySu","parcelRequire4dc0",{}); \ No newline at end of file diff --git a/docs/compiled/artplayer-plugin-chromecast.esm.js b/docs/compiled/artplayer-plugin-chromecast.esm.js new file mode 100644 index 000000000..00e3442c9 --- /dev/null +++ b/docs/compiled/artplayer-plugin-chromecast.esm.js @@ -0,0 +1,10 @@ + +/*! + * artplayer-plugin-chromecast.js v1.0.1 + * Github: https://github.com/zhw2590582/ArtPlayer + * (c) 2017-2025 Harvey Zack + * Released under the MIT License. + */ + +!function(e,t,o,n,i,r,a,c){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof s[n]&&s[n],l=d.i||{},u=d.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,o){if(!u[t]){if(!e[t]){if(i[t])return i[t];var r="function"==typeof s[n]&&s[n];if(!o&&r)return r(t,!0);if(d)return d(t,!0);if(f&&"string"==typeof t)return f(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(o){var n=e[t][1][o];return null!=n?n:o},l.cache={};var c=u[t]=new p.Module(t);e[t][0].call(c.exports,l,c,c.exports,s)}return u[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=f,this.exports={}},p.modules=e,p.cache=u,p.parent=d,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=l,p.register=function(t,o){e[t]=[function(e,t){t.exports=o},{}]},Object.defineProperty(p,"root",{get:function(){return s[n]}}),s[n]=p;for(var w=0;wc);let r=e=>new Promise((t,o)=>{let n=document.createElement("script");n.src=e,n.onload=t,n.onerror=o,document.body.appendChild(n)}),a=e=>({mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",ogv:"video/ogg",mp3:"audio/mp3",wav:"audio/wav",flv:"video/x-flv",mov:"video/quicktime",avi:"video/x-msvideo",wmv:"video/x-ms-wmv",mpd:"application/dash+xml",m3u8:"application/x-mpegURL"})[e.split("?")[0].split("#")[0].split(".").pop().toLowerCase()]||"application/octet-stream";function c(e){let t=!1,o=null,n=null,i=()=>new Promise((i,a)=>{window.__onGCastApiAvailable=r=>{if(r){let r=window.cast.framework.CastContext.getInstance();r.setOptions({receiverApplicationId:window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),r.addEventListener(window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,t=>{let i=window.cast.framework.SessionState;switch(n=t.sessionState,o=t.session,t.sessionState){case i.NO_SESSION:e.onStateChange?.("disconnected"),s("disconnected");break;case i.SESSION_STARTING:e.onStateChange?.("connecting"),s("connecting");break;case i.SESSION_STARTED:e.onStateChange?.("connected"),s("connected");break;case i.SESSION_ENDING:e.onStateChange?.("disconnecting"),s("disconnecting");break;case i.SESSION_RESUMED:e.onStateChange?.("connected"),s("connected")}}),r.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED,t=>{let o=window.cast.framework.CastState;switch(t.castState){case o.NO_DEVICES_AVAILABLE:e.onCastAvailable?.(!1);break;case o.NOT_CONNECTED:case o.CONNECTING:case o.CONNECTED:e.onCastAvailable?.(!0)}}),t=!0,i()}else a(Error("Cast API is not available"))},window.chrome&&window.chrome.cast||r(e.sdk||"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(a)}),c=(t,o)=>{let n=e.url||t.option.url,i=new window.chrome.cast.media.MediaInfo(n,e.mimeType||a(n)),r=new window.chrome.cast.media.LoadRequest(i);o.loadMedia(r).then(()=>{t.notice.show="Casting started",e.onCastStart?.()}).catch(o=>{throw t.notice.show="Error casting media",e.onError?.(o),o})},s=e=>{let t=document.querySelector(".art-icon-cast");if(t)switch(e){case"connected":t.style.color="red";break;case"connecting":case"disconnecting":t.style.color="orange";break;default:t.style.color="white"}};return async r=>(r.controls.add({name:"chromecast",position:"right",tooltip:"Chromecast",html:`${e.icon||''}`,click:async()=>{if(!t)try{await i()}catch(t){throw r.notice.show="Failed to initialize Cast API",e.onError?.(t),t}let n=window.cast.framework.CastContext.getInstance();if(o)c(r,o);else try{let e=await n.requestSession();c(r,e)}catch(t){throw r.notice.show="Error connecting to cast session",e.onError?.(t),t}}}),{name:"artplayerPluginChromecast",getCastState:()=>n,isCasting:()=>null!==o})}"undefined"!=typeof window&&(window.artplayerPluginChromecast=c)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5lQoW":[function(e,t,o,n){o.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},o.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},o.exportAll=function(e,t){return Object.keys(e).forEach(function(o){"default"===o||"__esModule"===o||Object.prototype.hasOwnProperty.call(t,o)||Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[o]}})}),t},o.export=function(e,t,o){Object.defineProperty(e,t,{enumerable:!0,get:o})}},{}]},["cv67D"],"cv67D","parcelRequire4dc0",{});let{default:e}=parcelRequire4dc0("cv67D");export{e as default}; +//# sourceMappingURL=index.js.map diff --git a/docs/compiled/artplayer-plugin-chromecast.js b/docs/compiled/artplayer-plugin-chromecast.js index becbbcc00..0c89f9487 100644 --- a/docs/compiled/artplayer-plugin-chromecast.js +++ b/docs/compiled/artplayer-plugin-chromecast.js @@ -5,4 +5,4 @@ * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,t,o,n,i,r,a,c){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof s[n]&&s[n],l=d.i||{},u=d.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function w(t,o){if(!u[t]){if(!e[t]){if(i[t])return i[t];var r="function"==typeof s[n]&&s[n];if(!o&&r)return r(t,!0);if(d)return d(t,!0);if(f&&"string"==typeof t)return f(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(o){var n=e[t][1][o];return null!=n?n:o},l.cache={};var c=u[t]=new w.Module(t);e[t][0].call(c.exports,l,c,c.exports,s)}return u[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:w(t)}}w.isParcelRequire=!0,w.Module=function(e){this.id=e,this.bundle=w,this.require=f,this.exports={}},w.modules=e,w.cache=u,w.parent=d,w.distDir=void 0,w.publicUrl=void 0,w.devServer=void 0,w.i=l,w.register=function(t,o){e[t]=[function(e,t){t.exports=o},{}]},Object.defineProperty(w,"root",{get:function(){return s[n]}}),s[n]=w;for(var p=0;pc);let r=e=>new Promise((t,o)=>{let n=document.createElement("script");n.src=e,n.onload=t,n.onerror=o,document.body.appendChild(n)}),a=e=>({mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",ogv:"video/ogg",mp3:"audio/mp3",wav:"audio/wav",flv:"video/x-flv",mov:"video/quicktime",avi:"video/x-msvideo",wmv:"video/x-ms-wmv",mpd:"application/dash+xml",m3u8:"application/x-mpegURL"})[e.split("?")[0].split("#")[0].split(".").pop().toLowerCase()]||"application/octet-stream";function c(e){let t=!1,o=null,n=null,i=()=>new Promise((i,a)=>{window.__onGCastApiAvailable=r=>{if(r){let r=window.cast.framework.CastContext.getInstance();r.setOptions({receiverApplicationId:window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),r.addEventListener(window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,t=>{let i=window.cast.framework.SessionState;switch(n=t.sessionState,o=t.session,t.sessionState){case i.NO_SESSION:e.onStateChange?.("disconnected"),s("disconnected");break;case i.SESSION_STARTING:e.onStateChange?.("connecting"),s("connecting");break;case i.SESSION_STARTED:e.onStateChange?.("connected"),s("connected");break;case i.SESSION_ENDING:e.onStateChange?.("disconnecting"),s("disconnecting");break;case i.SESSION_RESUMED:e.onStateChange?.("connected"),s("connected")}}),r.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED,t=>{let o=window.cast.framework.CastState;switch(t.castState){case o.NO_DEVICES_AVAILABLE:e.onCastAvailable?.(!1);break;case o.NOT_CONNECTED:case o.CONNECTING:case o.CONNECTED:e.onCastAvailable?.(!0)}}),t=!0,i()}else a(Error("Cast API is not available"))},window.chrome&&window.chrome.cast||r(e.sdk||"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(a)}),c=(t,o)=>{let n=e.url||t.option.url,i=new window.chrome.cast.media.MediaInfo(n,e.mimeType||a(n)),r=new window.chrome.cast.media.LoadRequest(i);o.loadMedia(r).then(()=>{t.notice.show="Casting started",e.onCastStart?.()}).catch(o=>{throw t.notice.show="Error casting media",e.onError?.(o),o})},s=e=>{let t=document.querySelector(".art-icon-cast");if(t)switch(e){case"connected":t.style.color="red";break;case"connecting":case"disconnecting":t.style.color="orange";break;default:t.style.color="white"}};return async r=>(r.controls.add({name:"chromecast",position:"right",tooltip:"Chromecast",html:`${e.icon||''}`,click:async()=>{if(!t)try{await i()}catch(t){throw r.notice.show="Failed to initialize Cast API",e.onError?.(t),t}let n=window.cast.framework.CastContext.getInstance();if(o)c(r,o);else try{let e=await n.requestSession();c(r,e)}catch(t){throw r.notice.show="Error connecting to cast session",e.onError?.(t),t}}}),{name:"artplayerPluginChromecast",getCastState:()=>n,isCasting:()=>null!==o})}"undefined"!=typeof window&&(window.artplayerPluginChromecast=c)},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"9pCYc":[function(e,t,o,n){o.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},o.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},o.exportAll=function(e,t){return Object.keys(e).forEach(function(o){"default"===o||"__esModule"===o||Object.prototype.hasOwnProperty.call(t,o)||Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[o]}})}),t},o.export=function(e,t,o){Object.defineProperty(e,t,{enumerable:!0,get:o})}},{}]},["3wl5Y"],"3wl5Y","parcelRequire4dc0",{}); \ No newline at end of file +!function(e,t,o,n,i,r,a,c){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof s[n]&&s[n],l=d.i||{},u=d.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function w(t,o){if(!u[t]){if(!e[t]){if(i[t])return i[t];var r="function"==typeof s[n]&&s[n];if(!o&&r)return r(t,!0);if(d)return d(t,!0);if(f&&"string"==typeof t)return f(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(o){var n=e[t][1][o];return null!=n?n:o},l.cache={};var c=u[t]=new w.Module(t);e[t][0].call(c.exports,l,c,c.exports,s)}return u[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:w(t)}}w.isParcelRequire=!0,w.Module=function(e){this.id=e,this.bundle=w,this.require=f,this.exports={}},w.modules=e,w.cache=u,w.parent=d,w.distDir=void 0,w.publicUrl=void 0,w.devServer=void 0,w.i=l,w.register=function(t,o){e[t]=[function(e,t){t.exports=o},{}]},Object.defineProperty(w,"root",{get:function(){return s[n]}}),s[n]=w;for(var p=0;pc);let r=e=>new Promise((t,o)=>{let n=document.createElement("script");n.src=e,n.onload=t,n.onerror=o,document.body.appendChild(n)}),a=e=>({mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",ogv:"video/ogg",mp3:"audio/mp3",wav:"audio/wav",flv:"video/x-flv",mov:"video/quicktime",avi:"video/x-msvideo",wmv:"video/x-ms-wmv",mpd:"application/dash+xml",m3u8:"application/x-mpegURL"})[e.split("?")[0].split("#")[0].split(".").pop().toLowerCase()]||"application/octet-stream";function c(e){let t=!1,o=null,n=null,i=()=>new Promise((i,a)=>{window.__onGCastApiAvailable=r=>{if(r){let r=window.cast.framework.CastContext.getInstance();r.setOptions({receiverApplicationId:window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),r.addEventListener(window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,t=>{let i=window.cast.framework.SessionState;switch(n=t.sessionState,o=t.session,t.sessionState){case i.NO_SESSION:e.onStateChange?.("disconnected"),s("disconnected");break;case i.SESSION_STARTING:e.onStateChange?.("connecting"),s("connecting");break;case i.SESSION_STARTED:e.onStateChange?.("connected"),s("connected");break;case i.SESSION_ENDING:e.onStateChange?.("disconnecting"),s("disconnecting");break;case i.SESSION_RESUMED:e.onStateChange?.("connected"),s("connected")}}),r.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED,t=>{let o=window.cast.framework.CastState;switch(t.castState){case o.NO_DEVICES_AVAILABLE:e.onCastAvailable?.(!1);break;case o.NOT_CONNECTED:case o.CONNECTING:case o.CONNECTED:e.onCastAvailable?.(!0)}}),t=!0,i()}else a(Error("Cast API is not available"))},window.chrome&&window.chrome.cast||r(e.sdk||"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(a)}),c=(t,o)=>{let n=e.url||t.option.url,i=new window.chrome.cast.media.MediaInfo(n,e.mimeType||a(n)),r=new window.chrome.cast.media.LoadRequest(i);o.loadMedia(r).then(()=>{t.notice.show="Casting started",e.onCastStart?.()}).catch(o=>{throw t.notice.show="Error casting media",e.onError?.(o),o})},s=e=>{let t=document.querySelector(".art-icon-cast");if(t)switch(e){case"connected":t.style.color="red";break;case"connecting":case"disconnecting":t.style.color="orange";break;default:t.style.color="white"}};return async r=>(r.controls.add({name:"chromecast",position:"right",tooltip:"Chromecast",html:`${e.icon||''}`,click:async()=>{if(!t)try{await i()}catch(t){throw r.notice.show="Failed to initialize Cast API",e.onError?.(t),t}let n=window.cast.framework.CastContext.getInstance();if(o)c(r,o);else try{let e=await n.requestSession();c(r,e)}catch(t){throw r.notice.show="Error connecting to cast session",e.onError?.(t),t}}}),{name:"artplayerPluginChromecast",getCastState:()=>n,isCasting:()=>null!==o})}"undefined"!=typeof window&&(window.artplayerPluginChromecast=c)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6ykb1":[function(e,t,o,n){o.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},o.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},o.exportAll=function(e,t){return Object.keys(e).forEach(function(o){"default"===o||"__esModule"===o||Object.prototype.hasOwnProperty.call(t,o)||Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[o]}})}),t},o.export=function(e,t,o){Object.defineProperty(e,t,{enumerable:!0,get:o})}},{}]},["18Aaf"],"18Aaf","parcelRequire4dc0",{}); \ No newline at end of file diff --git a/docs/compiled/artplayer-plugin-chromecast.legacy.js b/docs/compiled/artplayer-plugin-chromecast.legacy.js index 86dfe2a45..1c079ce83 100644 --- a/docs/compiled/artplayer-plugin-chromecast.legacy.js +++ b/docs/compiled/artplayer-plugin-chromecast.legacy.js @@ -5,4 +5,4 @@ * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,t,r,n,o,i,a,c){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof s[n]&&s[n],l=u.i||{},f=u.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!f[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof s[n]&&s[n];if(!r&&i)return i(t,!0);if(u)return u(t,!0);if(p&&"string"==typeof t)return p(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},l.cache={};var c=f[t]=new d.Module(t);e[t][0].call(c.exports,l,c,c.exports,s)}return f[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=p,this.exports={}},d.modules=e,d.cache=f,d.parent=u,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=l,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return s[n]}}),s[n]=d;for(var _=0;_'.concat(e.icon||'',""),click:(0,i._)(function(){var i,u,l,f,p;return(0,a._)(this,function(a){switch(a.label){case 0:if(r)return[3,4];a.label=1;case 1:return a.trys.push([1,3,,4]),[4,new Promise(function(t,i){var a;window.__onGCastApiAvailable=function(a){if(a){var c=window.cast.framework.CastContext.getInstance();c.setOptions({receiverApplicationId:window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),c.addEventListener(window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,function(t){var r,i,a,c,u,l=window.cast.framework.SessionState;switch(o=t.sessionState,n=t.session,t.sessionState){case l.NO_SESSION:null==(r=e.onStateChange)||r.call(e,"disconnected"),s("disconnected");break;case l.SESSION_STARTING:null==(i=e.onStateChange)||i.call(e,"connecting"),s("connecting");break;case l.SESSION_STARTED:null==(a=e.onStateChange)||a.call(e,"connected"),s("connected");break;case l.SESSION_ENDING:null==(c=e.onStateChange)||c.call(e,"disconnecting"),s("disconnecting");break;case l.SESSION_RESUMED:null==(u=e.onStateChange)||u.call(e,"connected"),s("connected")}}),c.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED,function(t){var r,n,o,i=window.cast.framework.CastState;switch(t.castState){case i.NO_DEVICES_AVAILABLE:null==(r=e.onCastAvailable)||r.call(e,!1);break;case i.NOT_CONNECTED:null==(n=e.onCastAvailable)||n.call(e,!0);break;case i.CONNECTING:case i.CONNECTED:null==(o=e.onCastAvailable)||o.call(e,!0)}}),r=!0,t()}else i(Error("Cast API is not available"))},window.chrome&&window.chrome.cast||(a=e.sdk||"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1",new Promise(function(e,t){var r=document.createElement("script");r.src=a,r.onload=e,r.onerror=t,document.body.appendChild(r)})).catch(i)})];case 2:return a.sent(),[3,4];case 3:throw i=a.sent(),t.notice.show="Failed to initialize Cast API",null==(u=e.onError)||u.call(e,i),i;case 4:if(l=window.cast.framework.CastContext.getInstance(),!n)return[3,5];return c(t,n),[3,8];case 5:return a.trys.push([5,7,,8]),[4,l.requestSession()];case 6:return c(t,a.sent()),[3,8];case 7:throw f=a.sent(),t.notice.show="Error connecting to cast session",null==(p=e.onError)||p.call(e,f),f;case 8:return[2]}})})}),[2,{name:"artplayerPluginChromecast",getCastState:function(){return o},isCasting:function(){return null!==n}}]})}),function(e){return t.apply(this,arguments)}}"undefined"!=typeof window&&(window.artplayerPluginChromecast=c)},{"@swc/helpers/_/_async_to_generator":"eONSn","@swc/helpers/_/_ts_generator":"6Xyd0","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],eONSn:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t,r,n,o,i,a){try{var c=e[i](a),s=c.value}catch(e){r(e);return}c.done?t(s):Promise.resolve(s).then(n,o)}function a(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var a=e.apply(t,r);function c(e){i(a,n,o,c,s,"next",e)}function s(e){i(a,n,o,c,s,"throw",e)}c(void 0)})}}o.defineInteropFlag(r),o.export(r,"_",function(){return a})},{"@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],iWrD0:[function(e,t,r,n){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})}),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}],"6Xyd0":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"_",function(){return i.__generator});var i=e("tslib")},{tslib:"c0d7h","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],c0d7h:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"__extends",function(){return c}),o.export(r,"__assign",function(){return s}),o.export(r,"__rest",function(){return u}),o.export(r,"__decorate",function(){return l}),o.export(r,"__param",function(){return f}),o.export(r,"__esDecorate",function(){return p}),o.export(r,"__runInitializers",function(){return d}),o.export(r,"__propKey",function(){return _}),o.export(r,"__setFunctionName",function(){return y}),o.export(r,"__metadata",function(){return h}),o.export(r,"__awaiter",function(){return v}),o.export(r,"__generator",function(){return m}),o.export(r,"__createBinding",function(){return w}),o.export(r,"__exportStar",function(){return b}),o.export(r,"__values",function(){return g}),o.export(r,"__read",function(){return x}),o.export(r,"__spread",function(){return S}),o.export(r,"__spreadArrays",function(){return j}),o.export(r,"__spreadArray",function(){return O}),o.export(r,"__await",function(){return E}),o.export(r,"__asyncGenerator",function(){return P}),o.export(r,"__asyncDelegator",function(){return C}),o.export(r,"__asyncValues",function(){return I}),o.export(r,"__makeTemplateObject",function(){return T}),o.export(r,"__importStar",function(){return k}),o.export(r,"__importDefault",function(){return N}),o.export(r,"__classPrivateFieldGet",function(){return R}),o.export(r,"__classPrivateFieldSet",function(){return F}),o.export(r,"__classPrivateFieldIn",function(){return M}),o.export(r,"__addDisposableResource",function(){return G}),o.export(r,"__disposeResources",function(){return q}),o.export(r,"__rewriteRelativeImportExtension",function(){return z});var i=e("@swc/helpers/_/_type_of"),a=function(e,t){return(a=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)};function c(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}a(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var s=function(){return(s=Object.assign||function(e){for(var t,r=1,n=arguments.length;rt.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r}function l(e,t,r,n){var o,a=arguments.length,c=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if(("undefined"==typeof Reflect?"undefined":(0,i._)(Reflect))==="object"&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(c=(a<3?o(c):a>3?o(t,r,c):o(t,r))||c);return a>3&&c&&Object.defineProperty(t,r,c),c}function f(e,t){return function(r,n){t(r,n,e)}}function p(e,t,r,n,o,a){function c(e){if(void 0!==e&&"function"!=typeof e)throw TypeError("Function expected");return e}for(var s,u=n.kind,l="getter"===u?"get":"setter"===u?"set":"value",f=!t&&e?n.static?e:e.prototype:null,p=t||(f?Object.getOwnPropertyDescriptor(f,n.name):{}),d=!1,_=r.length-1;_>=0;_--){var y={};for(var h in n)y[h]="access"===h?{}:n[h];for(var h in n.access)y.access[h]=n.access[h];y.addInitializer=function(e){if(d)throw TypeError("Cannot add initializers after decoration has completed");a.push(c(e||null))};var v=(0,r[_])("accessor"===u?{get:p.get,set:p.set}:p[l],y);if("accessor"===u){if(void 0===v)continue;if(null===v||(void 0===v?"undefined":(0,i._)(v))!=="object")throw TypeError("Object expected");(s=c(v.get))&&(p.get=s),(s=c(v.set))&&(p.set=s),(s=c(v.init))&&o.unshift(s)}else(s=c(v))&&("field"===u?o.unshift(s):p[l]=s)}f&&Object.defineProperty(f,n.name,p),d=!0}function d(e,t,r){for(var n=arguments.length>2,o=0;o0&&o[o.length-1])&&(6===u[0]||2===u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function x(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a}function S(){for(var e=[],t=0;t1||c(e,t)})},t&&(n[e]=t(n[e])))}function c(e,t){try{var r;(r=o[e](t)).value instanceof E?Promise.resolve(r.value.v).then(s,u):l(i[0][2],r)}catch(e){l(i[0][3],e)}}function s(e){c("next",e)}function u(e){c("throw",e)}function l(e,t){e(t),i.shift(),i.length&&c(i[0][0],i[0][1])}}function C(e){var t,r;return t={},n("next"),n("throw",function(e){throw e}),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:E(e[n](t)),done:!1}:o?o(t):t}:o}}function I(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=g(e),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise(function(n,o){var i,a,c;i=n,a=o,c=(t=e[r](t)).done,Promise.resolve(t.value).then(function(e){i({value:e,done:c})},a)})}}}function T(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var D=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},A=function(e){return(A=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t})(e)};function k(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=A(e),n=0;n'.concat(e.icon||'',""),click:(0,i._)(function(){var i,u,l,f,p;return(0,c._)(this,function(c){switch(c.label){case 0:if(r)return[3,4];c.label=1;case 1:return c.trys.push([1,3,,4]),[4,new Promise(function(t,i){var c;window.__onGCastApiAvailable=function(c){if(c){var a=window.cast.framework.CastContext.getInstance();a.setOptions({receiverApplicationId:window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),a.addEventListener(window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,function(t){var r,i,c,a,u,l=window.cast.framework.SessionState;switch(o=t.sessionState,n=t.session,t.sessionState){case l.NO_SESSION:null==(r=e.onStateChange)||r.call(e,"disconnected"),s("disconnected");break;case l.SESSION_STARTING:null==(i=e.onStateChange)||i.call(e,"connecting"),s("connecting");break;case l.SESSION_STARTED:null==(c=e.onStateChange)||c.call(e,"connected"),s("connected");break;case l.SESSION_ENDING:null==(a=e.onStateChange)||a.call(e,"disconnecting"),s("disconnecting");break;case l.SESSION_RESUMED:null==(u=e.onStateChange)||u.call(e,"connected"),s("connected")}}),a.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED,function(t){var r,n,o,i=window.cast.framework.CastState;switch(t.castState){case i.NO_DEVICES_AVAILABLE:null==(r=e.onCastAvailable)||r.call(e,!1);break;case i.NOT_CONNECTED:null==(n=e.onCastAvailable)||n.call(e,!0);break;case i.CONNECTING:case i.CONNECTED:null==(o=e.onCastAvailable)||o.call(e,!0)}}),r=!0,t()}else i(Error("Cast API is not available"))},window.chrome&&window.chrome.cast||(c=e.sdk||"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1",new Promise(function(e,t){var r=document.createElement("script");r.src=c,r.onload=e,r.onerror=t,document.body.appendChild(r)})).catch(i)})];case 2:return c.sent(),[3,4];case 3:throw i=c.sent(),t.notice.show="Failed to initialize Cast API",null==(u=e.onError)||u.call(e,i),i;case 4:if(l=window.cast.framework.CastContext.getInstance(),!n)return[3,5];return a(t,n),[3,8];case 5:return c.trys.push([5,7,,8]),[4,l.requestSession()];case 6:return a(t,c.sent()),[3,8];case 7:throw f=c.sent(),t.notice.show="Error connecting to cast session",null==(p=e.onError)||p.call(e,f),f;case 8:return[2]}})})}),[2,{name:"artplayerPluginChromecast",getCastState:function(){return o},isCasting:function(){return null!==n}}]})}),function(e){return t.apply(this,arguments)}}"undefined"!=typeof window&&(window.artplayerPluginChromecast=a)},{"@swc/helpers/cjs/_async_to_generator.cjs":"cZn0e","@swc/helpers/cjs/_ts_generator.cjs":"eltGh","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],cZn0e:[function(e,t,r,n){"use strict";function o(e,t,r,n,o,i,c){try{var a=e[i](c),s=a.value}catch(e){r(e);return}a.done?t(s):Promise.resolve(s).then(n,o)}r._=function(e){return function(){var t=this,r=arguments;return new Promise(function(n,i){var c=e.apply(t,r);function a(e){o(c,n,i,a,s,"next",e)}function s(e){o(c,n,i,a,s,"throw",e)}a(void 0)})}}},{}],eltGh:[function(e,t,r,n){"use strict";r._=e("eb260df52bffddd").__generator},{eb260df52bffddd:"6yrAu"}],"6yrAu":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"__extends",function(){return a}),o.export(r,"__assign",function(){return s}),o.export(r,"__rest",function(){return u}),o.export(r,"__decorate",function(){return l}),o.export(r,"__param",function(){return f}),o.export(r,"__esDecorate",function(){return p}),o.export(r,"__runInitializers",function(){return d}),o.export(r,"__propKey",function(){return _}),o.export(r,"__setFunctionName",function(){return y}),o.export(r,"__metadata",function(){return h}),o.export(r,"__awaiter",function(){return v}),o.export(r,"__generator",function(){return w}),o.export(r,"__createBinding",function(){return m}),o.export(r,"__exportStar",function(){return b}),o.export(r,"__values",function(){return g}),o.export(r,"__read",function(){return x}),o.export(r,"__spread",function(){return S}),o.export(r,"__spreadArrays",function(){return j}),o.export(r,"__spreadArray",function(){return O}),o.export(r,"__await",function(){return E}),o.export(r,"__asyncGenerator",function(){return P}),o.export(r,"__asyncDelegator",function(){return C}),o.export(r,"__asyncValues",function(){return I}),o.export(r,"__makeTemplateObject",function(){return T}),o.export(r,"__importStar",function(){return D}),o.export(r,"__importDefault",function(){return N}),o.export(r,"__classPrivateFieldGet",function(){return R}),o.export(r,"__classPrivateFieldSet",function(){return M}),o.export(r,"__classPrivateFieldIn",function(){return G}),o.export(r,"__addDisposableResource",function(){return F}),o.export(r,"__disposeResources",function(){return L}),o.export(r,"__rewriteRelativeImportExtension",function(){return z});var i=e("@swc/helpers/cjs/_type_of.cjs"),c=function(e,t){return(c=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}c(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var s=function(){return(s=Object.assign||function(e){for(var t,r=1,n=arguments.length;rt.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r}function l(e,t,r,n){var o,c=arguments.length,a=c<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if(("undefined"==typeof Reflect?"undefined":(0,i._)(Reflect))==="object"&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(c<3?o(a):c>3?o(t,r,a):o(t,r))||a);return c>3&&a&&Object.defineProperty(t,r,a),a}function f(e,t){return function(r,n){t(r,n,e)}}function p(e,t,r,n,o,c){function a(e){if(void 0!==e&&"function"!=typeof e)throw TypeError("Function expected");return e}for(var s,u=n.kind,l="getter"===u?"get":"setter"===u?"set":"value",f=!t&&e?n.static?e:e.prototype:null,p=t||(f?Object.getOwnPropertyDescriptor(f,n.name):{}),d=!1,_=r.length-1;_>=0;_--){var y={};for(var h in n)y[h]="access"===h?{}:n[h];for(var h in n.access)y.access[h]=n.access[h];y.addInitializer=function(e){if(d)throw TypeError("Cannot add initializers after decoration has completed");c.push(a(e||null))};var v=(0,r[_])("accessor"===u?{get:p.get,set:p.set}:p[l],y);if("accessor"===u){if(void 0===v)continue;if(null===v||(void 0===v?"undefined":(0,i._)(v))!=="object")throw TypeError("Object expected");(s=a(v.get))&&(p.get=s),(s=a(v.set))&&(p.set=s),(s=a(v.init))&&o.unshift(s)}else(s=a(v))&&("field"===u?o.unshift(s):p[l]=s)}f&&Object.defineProperty(f,n.name,p),d=!0}function d(e,t,r){for(var n=arguments.length>2,o=0;o0&&o[o.length-1])&&(6===u[0]||2===u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function x(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),c=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)c.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return c}function S(){for(var e=[],t=0;t1||a(e,t)})},t&&(n[e]=t(n[e])))}function a(e,t){try{var r;(r=o[e](t)).value instanceof E?Promise.resolve(r.value.v).then(s,u):l(i[0][2],r)}catch(e){l(i[0][3],e)}}function s(e){a("next",e)}function u(e){a("throw",e)}function l(e,t){e(t),i.shift(),i.length&&a(i[0][0],i[0][1])}}function C(e){var t,r;return t={},n("next"),n("throw",function(e){throw e}),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:E(e[n](t)),done:!1}:o?o(t):t}:o}}function I(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=g(e),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise(function(n,o){var i,c,a;i=n,c=o,a=(t=e[r](t)).done,Promise.resolve(t.value).then(function(e){i({value:e,done:a})},c)})}}}function T(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var A=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},k=function(e){return(k=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t})(e)};function D(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=k(e),n=0;nl);var a=e("@tensorflow/tfjs-core");e("@tensorflow/tfjs-backend-webgl"),e("@tensorflow/tfjs-backend-cpu");var o=e("@tensorflow-models/body-segmentation");function l(e={}){return t=>{let{template:{$video:r,$danmuku:n}}=t,s=null,l=null,i=null,u=null,p=!1,c={solutionPath:e.solutionPath||"https://cdn.jsdelivr.net/npm/@mediapipe/selfie_segmentation",modelSelection:e.modelSelection||1,smoothSegmentation:void 0===e.smoothSegmentation||e.smoothSegmentation,minDetectionConfidence:e.minDetectionConfidence||.5,minTrackingConfidence:e.minTrackingConfidence||.5,selfieMode:e.selfieMode||!1,drawContour:e.drawContour||!1,foregroundThreshold:e.foregroundThreshold||.5,opacity:e.opacity||1,maskBlurAmount:e.maskBlurAmount||3};async function d(){try{await a.setBackend("webgl")}catch(e){console.warn("WebGL backend not available, falling back to CPU"),await a.setBackend("cpu")}}async function f(){await d();let e=o.SupportedModels.MediaPipeSelfieSegmentation,t={runtime:"mediapipe",modelType:"general",solutionPath:c.solutionPath,modelSelection:c.modelSelection,smoothSegmentation:c.smoothSegmentation,minDetectionConfidence:c.minDetectionConfidence,minTrackingConfidence:c.minTrackingConfidence,selfieMode:c.selfieMode};try{s=await o.createSegmenter(e,t),console.log("Segmenter initialized:",s),p=!0}catch(e){console.error("Error initializing segmenter:",e),p=!1}}async function m(){if(!p||r.paused||r.ended){u=requestAnimationFrame(m);return}try{l.width=r.videoWidth,l.height=r.videoHeight;let e=await s.segmentPeople(r);if(!e||0===e.length){u=requestAnimationFrame(m);return}let t=await o.toBinaryMask(e,{r:255,g:255,b:255,a:255},{r:0,g:0,b:0,a:255},c.drawContour,c.foregroundThreshold);await o.drawMask(l,r,t,c.opacity,c.maskBlurAmount);let a=i.getImageData(0,0,l.width,l.height);i.putImageData(function(e){let t=e.data;for(let e=0;e250&&t[e+1]>250&&t[e+2]>250&&(t[e+3]=0);return e}(a),0,0),n.style.maskImage=`url(${l.toDataURL()})`}catch(e){console.error("Error in segmentBody:",e)}u=requestAnimationFrame(m)}async function h(){p||await f(),l||(i=(l=document.createElement("canvas")).getContext("2d")),Object.assign(n.style,{maskMode:"alpha",maskSize:"contain",maskRepeat:"no-repeat",backgroundSize:"contain",backgroundRepeat:"no-repeat"}),m()}function g(){n.style.maskImage="none",u&&(cancelAnimationFrame(u),u=null)}return t.on("ready",h),t.on("destroy",g),{name:"artplayerPluginDanmukuMask",start:h,stop:g}}}"undefined"!=typeof window&&(window.artplayerPluginDanmukuMask=l)},{"@tensorflow/tfjs-core":"biUij","@tensorflow/tfjs-backend-webgl":"c8bRp","@tensorflow/tfjs-backend-cpu":"hOvdB","@tensorflow-models/body-segmentation":"lcmzA","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],biUij:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),e("./base_side_effects");var a=e("./optimizers/register_optimizers"),o=e("./base");s.exportAll(o,r),(0,a.registerOptimizers)()},{"./base_side_effects":"gTsb3","./optimizers/register_optimizers":"1NAAy","./base":"2mOyX","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gTsb3:[function(e,t,r,n){var s=e("./engine");e("./flags"),e("./platforms/platform_browser"),e("./platforms/platform_node");var a=e("./ops/buffer"),o=e("./ops/cast"),l=e("./ops/clone"),i=e("./ops/print"),u=e("./tensor");(0,s.getOrMakeEngine)();let p={buffer:a.buffer,cast:o.cast,clone:l.clone,print:i.print};(0,u.setOpHandler)(p)},{"./engine":"c6qwc","./flags":"8o4LZ","./platforms/platform_browser":"brkqc","./platforms/platform_node":"a3UX5","./ops/buffer":"1EiiB","./ops/cast":"juFUN","./ops/clone":"lH8Rn","./ops/print":"l1jud","./tensor":"cfIkd"}],c6qwc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Engine",()=>v),s.export(r,"getOrMakeEngine",()=>y),s.export(r,"ENGINE",()=>b),s.export(r,"add",()=>_);var a=e("./backends/backend"),o=e("./environment"),l=e("./global_util"),i=e("./kernel_names"),u=e("./kernel_registry"),p=e("./log"),c=e("./profiler"),d=e("./tape"),f=e("./tensor"),m=e("./tensor_util"),h=e("./util");function g(e){return null!=e.kernelName}class x{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(e=>e.name)))}}}dispose(){for(let e in this.registeredVariables)this.registeredVariables[e].dispose()}}class v{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new x}async ready(){if(null!=this.pendingBackendInit)return this.pendingBackendInit.then(()=>{});if(null!=this.backendInstance)return;let e=this.getSortedBackends();for(let t=0;t{null!=e.setupFunc&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){(0,u.getKernelsForBackend)(e).forEach(t=>{null!=t.disposeFunc&&t.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(null==t)throw Error(`Cannot initialize backend ${e}, no registration found.`);try{let r=t.factory();if(!r||r instanceof a.KernelBackend||"function"!=typeof r.then)return this.registry[e]=r,{success:!0,asyncInit:!1};{let t=++this.pendingBackendInitId,n=r.then(r=>!(t!(tthis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(n),()=>this.endScope(r),()=>((r=t())instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),r))}scopedRun(e,t,r){e();try{let e=r();return t(),e}catch(e){throw t(),e}}nextTensorId(){return v.nextTensorId++}nextVariableId(){return v.nextVariableId++}clone(e){let t=b.runKernel(i.Identity,{x:e});return this.addTapeNode(this.state.activeScope.name,{x:e},[t],e=>({x:()=>b.runKernel(i.Cast,{x:e},{dtype:"float32"})}),[],{}),t}runKernel(e,t,r){if(null==this.backendName&&this.backend,null==(0,u.getKernel)(e,this.backendName))throw Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:r})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,r){let n=this.backend.numDataIds(),s=0;r.forEach(e=>{s+="complex64"===e.dtype?3:1});let a=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],o=n-t-s-a;if(o>0)throw Error(`Backend '${this.backendName}' has an internal memory leak (${o} data ids) after running '${e}'`)}runKernelFunc(e){let t,r,n,s,a=[],o=this.isTapeOn(),l=this.state.numBytes,i=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0),null==this.backendName&&this.backend;let p=g(e)?e.kernelName:null!=this.state.activeScope?this.state.activeScope.name:"";if(g(e)){let{kernelName:t,inputs:s,attrs:l}=e;null==this.backendName&&this.backend;let i=(0,u.getKernel)(t,this.backendName);h.assert(null!=i,()=>`Cannot find registered kernel '${t}' for backend '${this.backendName}'`),r=()=>{let e=this.backend.numDataIds(),r=Array.isArray(n=i.kernelFunc({inputs:s,attrs:l,backend:this.backend}))?n:[n];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(t,e,r);let u=r.map(e=>null!=e.rank?e:this.makeTensorFromTensorInfo(e));if(o){let e=this.getTensorsForGradient(t,s,u);a=this.saveTensorsForBackwardMode(e)}return u}}else{let{forwardFunc:t}=e,s=e=>{o&&(a=e.map(e=>this.keep(this.clone(e))))};r=()=>{let e=this.backend.numDataIds(),r=Array.isArray(n=this.tidy(()=>t(this.backend,s)))?n:[n];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(p,e,r),r}}let{inputs:c,attrs:d}=e,f=g(e)?null:e.backwardsFunc;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{this.ENV.getBool("DEBUG")||this.state.profiling?(s=this.profiler.profileKernel(p,c,()=>r()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(s),t=s.outputs):t=r()}),o&&this.addTapeNode(p,c,t,f,a,d),this.state.profiling&&this.state.activeProfile.kernels.push({name:p,bytesAdded:this.state.numBytes-l,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(e=>null!=c[e]?c[e].shape:null),outputShapes:t.map(e=>e.shape),kernelTimeMs:s.timeMs,extraInfo:s.extraInfo}),Array.isArray(n)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(e=>this.keep(this.clone(e)))}getTensorsForGradient(e,t,r){let n=(0,u.getGradient)(e);if(null!=n){let e,s=n.inputsToSave||[],a=n.outputsToSave||[];n.saveAllInputs?(h.assert(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),e=Object.keys(t).map(e=>t[e])):e=s.map(e=>t[e]);let o=r.filter((e,t)=>a[t]);return e.concat(o)}return[]}makeTensor(e,t,r,n){if(null==e)throw Error("Values passed to engine.makeTensor() are null");r=r||"float32",n=n||this.backend;let s=e;"string"===r&&h.isString(e[0])&&(s=e.map(e=>h.encodeString(e)));let a=n.write(s,t,r),o=new(0,f.Tensor)(t,r,a,this.nextTensorId());if(this.trackTensor(o,n),"string"===r){let e=this.state.tensorInfo.get(a),t=(0,h.bytesFromStringArray)(s);this.state.numBytes+=t-e.bytes,e.bytes=t}return o}makeTensorFromDataId(e,t,r,n){let s={dataId:e,shape:t,dtype:r=r||"float32"};return this.makeTensorFromTensorInfo(s,n)}makeTensorFromTensorInfo(e,t){let{dataId:r,shape:n,dtype:s}=e,a=new(0,f.Tensor)(n,s,r,this.nextTensorId());return this.trackTensor(a,t),a}makeVariable(e,t=!0,r,n){r=r||this.nextVariableId().toString(),null!=n&&n!==e.dtype&&(e=e.cast(n));let s=new(0,f.Variable)(e,t,r,this.nextTensorId());if(null!=this.state.registeredVariables[s.name])throw Error(`Variable with name ${s.name} was already registered`);return this.state.registeredVariables[s.name]=s,this.incRef(s,this.backend),s}trackTensor(e,t){this.state.numTensors++,"string"===e.dtype&&this.state.numStringTensors++;let r=0;"complex64"!==e.dtype&&"string"!==e.dtype&&(r=e.size*h.bytesPerElement(e.dtype)),this.state.numBytes+=r,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:r})),e instanceof f.Variable||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;let t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,"string"===e.dtype&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),"complex64"!==e.dtype&&"string"!==e.dtype){let t=e.size*h.bytesPerElement(e.dtype);this.state.numBytes-=t}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),null!=this.state.registeredVariables[e.name]&&delete this.state.registeredVariables[e.name]}memory(){let e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,null==e.reasons&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let t=this.state.numBytes,r=this.state.numTensors;for(let n of(this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(e=>e.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-r,this.state.activeProfile.kernels))n.kernelTimeMs=await n.kernelTimeMs,n.extraInfo=await n.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&0===this.state.kernelDepth}addTapeNode(e,t,r,n,s,a){let o={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:r,saved:s},l=(0,u.getGradient)(e);null!=l&&(n=l.gradFunc),null!=n&&(o.gradient=e=>(e=e.map((e,t)=>{if(null==e){let e=r[t],n=h.makeZerosTypedArray(e.size,e.dtype);return this.makeTensor(n,e.shape,e.dtype)}return e}),n(e.length>1?e:e[0],s,a))),this.state.activeTape.push(o)}keep(e){return e.kept=!0,e}startTape(){0===this.state.gradientDepth&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=(0,m.getTensorsInContainer)(e),r=new Set(t.map(e=>e.id));for(let e=0;e{e.kept||e.scopeId!==n.id||this.track(e)})}gradients(e,t,r,n=!1){if(h.assert(t.length>0,()=>"gradients() received an empty list of xs."),null!=r&&"float32"!==r.dtype)throw Error(`dy must have 'float32' dtype, but has '${r.dtype}'`);let s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));h.assert(s instanceof f.Tensor,()=>"The result y returned by f() must be a tensor.");let a=(0,d.getFilteredNodesXToY)(this.state.activeTape,t,s);if(!n&&0===a.length&&t.length>0)throw Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let e={};e[s.id]=null==r?function(e){let t=(0,h.makeOnesTypedArray)((0,h.sizeFromShape)(e),"float32");return b.makeTensor(t,e,"float32")}(s.shape):r,(0,d.backpropagateGradients)(e,a,e=>this.tidy(e),_);let n=t.map(t=>e[t.id]);return 0===this.state.gradientDepth&&(this.state.activeTape.forEach(e=>{for(let t of e.saved)t.dispose()}),this.state.activeTape=null),{value:s,grads:n}})}customGrad(e){return h.assert(h.isFunction(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{let r;h.assert(t.every(e=>e instanceof f.Tensor),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n={};return t.forEach((e,t)=>{n[t]=e}),this.runKernelFunc({forwardFunc:(n,s)=>(r=e(...t,s),h.assert(r.value instanceof f.Tensor,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),h.assert(h.isFunction(r.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),r.value),backwardsFunc:(e,n)=>{let s=r.gradFunc(e,n),a=Array.isArray(s)?s:[s];h.assert(a.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),h.assert(a.every(e=>e instanceof f.Tensor),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let o={};return a.forEach((e,t)=>{o[t]=()=>e}),o},inputs:n})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}readToGPU(e,t){return this.state.tensorInfo.get(e).backend.readToGPU(e,t)}async time(e){let t=(0,h.now)(),r=await this.backend.time(e);return r.wallMs=(0,h.now)()-t,r}track(e){return null!=this.state.activeScope&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){for(let e in this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new x,this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}}function y(){let e=(0,l.getGlobalNamespace)();if(null==e._tfengine){let t=new(0,o.Environment)(e);e._tfengine=new v(t)}return(0,o.setEnvironmentGlobal)(e._tfengine.ENV),(0,f.setTensorTracker)(()=>e._tfengine),e._tfengine}v.nextTensorId=0,v.nextVariableId=0;let b=y();function _(e,t){return b.runKernel(i.Add,{a:e,b:t})}},{"./backends/backend":"4gYBc","./environment":"h8BWL","./global_util":"b45Tz","./kernel_names":"349aa","./kernel_registry":"11iA6","./log":"dvDGk","./profiler":"d83tJ","./tape":"fvtMq","./tensor":"cfIkd","./tensor_util":"7PL4y","./util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4gYBc":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EPSILON_FLOAT32",()=>a),s.export(r,"EPSILON_FLOAT16",()=>o),s.export(r,"DataStorage",()=>l),s.export(r,"KernelBackend",()=>i);let a=1e-7,o=1e-4;class l{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}}class i{refCount(e){return u("refCount")}incRef(e){return u("incRef")}timerAvailable(){return!0}time(e){return u("time")}read(e){return u("read")}readSync(e){return u("readSync")}readToGPU(e,t){return u("readToGPU")}numDataIds(){return u("numDataIds")}disposeData(e,t){return u("disposeData")}write(e,t,r){return u("write")}move(e,t,r,n,s){return u("move")}createTensorFromGPUData(e,t,r){return u("createTensorFromGPUData")}memory(){return u("memory")}floatPrecision(){return u("floatPrecision")}epsilon(){return 32===this.floatPrecision()?a:o}dispose(){return u("dispose")}}function u(e){throw Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5lQoW":[function(e,t,r,n){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})}),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}],h8BWL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Environment",()=>l),s.export(r,"getQueryParams",()=>i),s.export(r,"env",()=>u),s.export(r,"ENV",()=>p),s.export(r,"setEnvironmentGlobal",()=>c);var a=e("./util_base");let o="tfjsflags";class l{constructor(e){this.global=e,this.flags={},this.flagRegistry={},this.urlFlags={},this.getQueryParams=i,this.populateURLFlags()}setPlatform(e,t){null==this.platform||p.getBool("IS_TEST")||p.getBool("PROD")||console.warn(`Platform ${this.platformName} has already been set. Overwriting the platform with ${e}.`),this.platformName=e,this.platform=t}registerFlag(e,t,r){if(this.flagRegistry[e]={evaluationFn:t,setHook:r},null!=this.urlFlags[e]){let t=this.urlFlags[e];p.getBool("IS_TEST")||p.getBool("PROD")||console.warn(`Setting feature override from URL ${e}: ${t}.`),this.set(e,t)}}async getAsync(e){return e in this.flags||(this.flags[e]=await this.evaluateFlag(e)),this.flags[e]}get(e){if(e in this.flags)return this.flags[e];let t=this.evaluateFlag(e);if((0,a.isPromise)(t))throw Error(`Flag ${e} cannot be synchronously evaluated. Please use getAsync() instead.`);return this.flags[e]=t,this.flags[e]}getNumber(e){return this.get(e)}getBool(e){return this.get(e)}getString(e){return this.get(e)}getFlags(){return this.flags}get features(){return this.flags}set(e,t){if(null==this.flagRegistry[e])throw Error(`Cannot set flag ${e} as it has not been registered.`);this.flags[e]=t,null!=this.flagRegistry[e].setHook&&this.flagRegistry[e].setHook(t)}evaluateFlag(e){if(null==this.flagRegistry[e])throw Error(`Cannot evaluate flag '${e}': no evaluation function found.`);return this.flagRegistry[e].evaluationFn()}setFlags(e){this.flags=Object.assign({},e)}reset(){this.flags={},this.urlFlags={},this.populateURLFlags()}populateURLFlags(){if(void 0===this.global||void 0===this.global.location||void 0===this.global.location.search)return;let e=this.getQueryParams(this.global.location.search);o in e&&e[o].split(",").forEach(e=>{let[t,r]=e.split(":");this.urlFlags[t]=function(e,t){let r=t.toLowerCase();return"true"===r||"false"===r?"true"===r:`${+r}`===r?+r:t}(0,r)})}}function i(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...r)=>{var n,s,a;return n=t,s=r[0],a=r[1],n[decodeURIComponent(s)]=decodeURIComponent(a||""),r.join("=")}),t}function u(){return p}let p=null;function c(e){p=e}},{"./util_base":"bNQH0","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bNQH0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let t=e.length,r=0;for(;t>0;)r=Math.random()*t|0,u(e,--t,r)}function o(e,t){if(e.length!==t.length)throw Error(`Array sizes must match to be shuffled together First array length was ${e.length}Second array length was ${t.length}`);let r=e.length,n=0;for(;r>0;)n=Math.random()*r|0,u(e,--r,n),u(t,r,n)}function l(e,t,r){return Math.max(e,Math.min(t,r))}function i(e){return e%2==0?e:e+1}function u(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}function p(e){let t=0;for(let r=0;rr+` Shapes ${e} and ${t} must match`)}function h(e){f(null!=e,()=>"The input to the tensor constructor must be a non-null value.")}function g(e){if(0===e.length)return 1;let t=e[0];for(let r=1;r0,r,n){return new Promise((s,a)=>{let o=0,l=()=>{if(e())return void s();let i=t(++o);if(null!=r&&o>=r)return void a();null!=n?n(l,i):setTimeout(l,i)};l()})}function T(e,t){let r=1,n=-1;for(let t=0;t=0)r*=e[t];else if(-1===e[t]){if(-1!==n)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${t}`);n=t}else if(e[t]<0)throw Error(`Shapes can not be < 0. Found ${e[t]} at dim ${t}`);if(-1===n){if(t>0&&t!==r)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(0===r)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%r!=0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${r}`);let s=e.slice();return s[n]=t/r,s}function N(e,t){let r=t.length;return f((e=null==e?t.map((e,t)=>t):[].concat(e)).every(e=>e>=-r&&e`All values in axis param must be in range [-${r}, ${r}) but got axis ${e}`),f(e.every(e=>b(e)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(e=>e<0?r+e:e)}function S(e,t){let r=[],n=[],s=null!=t&&Array.isArray(t)&&0===t.length,a=null==t||s?null:N(t,e).sort(),o=0;for(let t=0;tt)&&1===e[t]&&(r.push(e[t]),n.push(t)),a[o]<=t&&o++}1!==e[t]&&(r.push(e[t]),n.push(t))}return{newShape:r,keptDims:n}}function C(e,t){return E(e,t)}function E(e,t){let r=null;if(null==e||"float32"===e)r=new Float32Array(t);else if("int32"===e)r=new Int32Array(t);else if("bool"===e)r=new Uint8Array(t);else if("string"===e)r=Array(t);else throw Error(`Unknown data type ${e}`);return r}function F(e,t){for(let r=0;rt+=e.length),t}function $(e){return"string"==typeof e||e instanceof String}function O(e){return"boolean"==typeof e}function M(e){return"number"==typeof e}function W(e){return!!(e&&e.constructor&&e.call&&e.apply)}function B(e,t){for(let r=t;r=0;--n)r[n]=r[n+1]*e[n+1];return r}function V(e,t,r=!1){if(0===e.length)return t[0];let n=e.reduce((e,t)=>e*t)*(r?2:1);if(0===n)return[];if(n!==t.length)throw Error(`[${e}] does not match the input size ${t.length}${r?" for a complex tensor":""}.`);return function e(t,r,n,s=!1){let a=[];if(1===r.length){let e=r[0]*(s?2:1);for(let r=0;re*t)*(s?2:1);for(let r=0;re*t,1);if(null==t||"float32"===t)return V(e,new Float32Array(r));if("int32"===t)return V(e,new Int32Array(r));if("bool"===t)return V(e,new Uint8Array(r));throw Error(`Unknown data type ${t}`)}function q(e){e.forEach(t=>{f(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function H(e,t,r){if(0===t)return 0;if(1===t)return e[0];let n=e[e.length-1];for(let t=0;ta),s.export(r,"shuffleCombo",()=>o),s.export(r,"clamp",()=>l),s.export(r,"nearestLargerEven",()=>i),s.export(r,"swap",()=>u),s.export(r,"sum",()=>p),s.export(r,"randUniform",()=>c),s.export(r,"distSquared",()=>d),s.export(r,"assert",()=>f),s.export(r,"assertShapesMatch",()=>m),s.export(r,"assertNonNull",()=>h),s.export(r,"sizeFromShape",()=>g),s.export(r,"isScalarShape",()=>x),s.export(r,"arraysEqualWithNull",()=>v),s.export(r,"arraysEqual",()=>y),s.export(r,"isInt",()=>b),s.export(r,"tanh",()=>_),s.export(r,"sizeToSquarishShape",()=>k),s.export(r,"createShuffledIndices",()=>j),s.export(r,"rightPad",()=>I),s.export(r,"repeatedTry",()=>w),s.export(r,"inferFromImplicitShape",()=>T),s.export(r,"parseAxisParam",()=>N),s.export(r,"squeezeShape",()=>S),s.export(r,"getTypedArrayFromDType",()=>C),s.export(r,"getArrayFromDType",()=>E),s.export(r,"checkConversionForErrors",()=>F),s.export(r,"isValidDtype",()=>A),s.export(r,"hasEncodingLoss",()=>R),s.export(r,"bytesPerElement",()=>P),s.export(r,"bytesFromStringArray",()=>D),s.export(r,"isString",()=>$),s.export(r,"isBoolean",()=>O),s.export(r,"isNumber",()=>M),s.export(r,"inferDtype",()=>function e(t){if(Array.isArray(t))return e(t[0]);if(t instanceof Float32Array);else if(t instanceof Int32Array||t instanceof Uint8Array||t instanceof Uint8ClampedArray)return"int32";else if(M(t));else if($(t))return"string";else if(O(t))return"bool";return"float32"}),s.export(r,"isFunction",()=>W),s.export(r,"nearestDivisor",()=>B),s.export(r,"computeStrides",()=>L),s.export(r,"toNestedArray",()=>V),s.export(r,"convertBackendValuesAndArrayBuffer",()=>U),s.export(r,"makeOnesTypedArray",()=>G),s.export(r,"makeZerosTypedArray",()=>z),s.export(r,"makeZerosNestedTypedArray",()=>Q),s.export(r,"assertNonNegativeIntegerDimensions",()=>q),s.export(r,"locToIndex",()=>H),s.export(r,"indexToLoc",()=>K),s.export(r,"isPromise",()=>X)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],b45Tz:[function(e,t,r,n){let s;var a=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(){if(null==s){let e;if("undefined"!=typeof window)e=window;else if("undefined"!=typeof global)e=global;else if("undefined"!=typeof process)e=process;else if("undefined"!=typeof self)e=self;else throw Error("Could not find a global object");s=e}return s}function l(e,t){let r=function(){let e=o();return null==e._tfGlobals&&(e._tfGlobals=new Map),e._tfGlobals}();if(r.has(e))return r.get(e);{let n=t();return r.set(e,n),r.get(e)}}a.defineInteropFlag(r),a.export(r,"getGlobalNamespace",()=>o),a.export(r,"getGlobal",()=>l)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"349aa":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Abs",()=>a),s.export(r,"Acos",()=>o),s.export(r,"Acosh",()=>l),s.export(r,"Add",()=>i),s.export(r,"AddN",()=>u),s.export(r,"All",()=>p),s.export(r,"Any",()=>c),s.export(r,"ArgMax",()=>d),s.export(r,"ArgMin",()=>f),s.export(r,"Asin",()=>m),s.export(r,"Asinh",()=>h),s.export(r,"Atan",()=>g),s.export(r,"Atanh",()=>x),s.export(r,"Atan2",()=>v),s.export(r,"AvgPool",()=>y),s.export(r,"AvgPoolGrad",()=>b),s.export(r,"AvgPool3D",()=>_),s.export(r,"AvgPool3DGrad",()=>k),s.export(r,"BatchMatMul",()=>j),s.export(r,"BatchToSpaceND",()=>I),s.export(r,"Bincount",()=>w),s.export(r,"BitwiseAnd",()=>T),s.export(r,"BroadcastTo",()=>N),s.export(r,"BroadcastArgs",()=>S),s.export(r,"Cast",()=>C),s.export(r,"Ceil",()=>E),s.export(r,"ClipByValue",()=>F),s.export(r,"Complex",()=>A),s.export(r,"ComplexAbs",()=>R),s.export(r,"Concat",()=>P),s.export(r,"Conv2D",()=>D),s.export(r,"Conv2DBackpropFilter",()=>$),s.export(r,"Conv2DBackpropInput",()=>O),s.export(r,"Conv3D",()=>M),s.export(r,"Conv3DBackpropFilterV2",()=>W),s.export(r,"Conv3DBackpropInputV2",()=>B),s.export(r,"Cos",()=>L),s.export(r,"Cosh",()=>V),s.export(r,"Cumprod",()=>U),s.export(r,"Cumsum",()=>G),s.export(r,"CropAndResize",()=>z),s.export(r,"DenseBincount",()=>Q),s.export(r,"DepthToSpace",()=>q),s.export(r,"DepthwiseConv2dNative",()=>H),s.export(r,"DepthwiseConv2dNativeBackpropFilter",()=>K),s.export(r,"DepthwiseConv2dNativeBackpropInput",()=>X),s.export(r,"Diag",()=>Y),s.export(r,"Dilation2D",()=>J),s.export(r,"Dilation2DBackpropInput",()=>Z),s.export(r,"Dilation2DBackpropFilter",()=>ee),s.export(r,"Draw",()=>et),s.export(r,"RealDiv",()=>er),s.export(r,"Einsum",()=>en),s.export(r,"Elu",()=>es),s.export(r,"EluGrad",()=>ea),s.export(r,"Erf",()=>eo),s.export(r,"Equal",()=>el),s.export(r,"Exp",()=>ei),s.export(r,"ExpandDims",()=>eu),s.export(r,"Expm1",()=>ep),s.export(r,"FFT",()=>ec),s.export(r,"Fill",()=>ed),s.export(r,"FlipLeftRight",()=>ef),s.export(r,"Floor",()=>em),s.export(r,"FloorDiv",()=>eh),s.export(r,"FusedBatchNorm",()=>eg),s.export(r,"GatherV2",()=>ex),s.export(r,"GatherNd",()=>ev),s.export(r,"Greater",()=>ey),s.export(r,"GreaterEqual",()=>eb),s.export(r,"Identity",()=>e_),s.export(r,"IFFT",()=>ek),s.export(r,"Imag",()=>ej),s.export(r,"IsFinite",()=>eI),s.export(r,"IsInf",()=>ew),s.export(r,"IsNan",()=>eT),s.export(r,"LeakyRelu",()=>eN),s.export(r,"Less",()=>eS),s.export(r,"LessEqual",()=>eC),s.export(r,"LinSpace",()=>eE),s.export(r,"Log",()=>eF),s.export(r,"Log1p",()=>eA),s.export(r,"LogicalAnd",()=>eR),s.export(r,"LogicalNot",()=>eP),s.export(r,"LogicalOr",()=>eD),s.export(r,"LogicalXor",()=>e$),s.export(r,"LogSoftmax",()=>eO),s.export(r,"LowerBound",()=>eM),s.export(r,"LRN",()=>eW),s.export(r,"LRNGrad",()=>eB),s.export(r,"MatrixBandPart",()=>eL),s.export(r,"Max",()=>eV),s.export(r,"Maximum",()=>eU),s.export(r,"MaxPool",()=>eG),s.export(r,"MaxPoolGrad",()=>ez),s.export(r,"MaxPool3D",()=>eQ),s.export(r,"MaxPool3DGrad",()=>eq),s.export(r,"MaxPoolWithArgmax",()=>eH),s.export(r,"Mean",()=>eK),s.export(r,"Min",()=>eX),s.export(r,"Minimum",()=>eY),s.export(r,"MirrorPad",()=>eJ),s.export(r,"Mod",()=>eZ),s.export(r,"Multinomial",()=>e0),s.export(r,"Multiply",()=>e1),s.export(r,"Neg",()=>e2),s.export(r,"NotEqual",()=>e3),s.export(r,"NonMaxSuppressionV3",()=>e5),s.export(r,"NonMaxSuppressionV4",()=>e4),s.export(r,"NonMaxSuppressionV5",()=>e6),s.export(r,"OnesLike",()=>e8),s.export(r,"OneHot",()=>e9),s.export(r,"Pack",()=>e7),s.export(r,"PadV2",()=>te),s.export(r,"Pool",()=>tt),s.export(r,"Pow",()=>tr),s.export(r,"Prelu",()=>tn),s.export(r,"Prod",()=>ts),s.export(r,"RaggedGather",()=>ta),s.export(r,"RaggedRange",()=>to),s.export(r,"RaggedTensorToTensor",()=>tl),s.export(r,"Range",()=>ti),s.export(r,"Real",()=>tu),s.export(r,"Reciprocal",()=>tp),s.export(r,"Relu",()=>tc),s.export(r,"Reshape",()=>td),s.export(r,"ResizeNearestNeighbor",()=>tf),s.export(r,"ResizeNearestNeighborGrad",()=>tm),s.export(r,"ResizeBilinear",()=>th),s.export(r,"ResizeBilinearGrad",()=>tg),s.export(r,"Relu6",()=>tx),s.export(r,"Reverse",()=>tv),s.export(r,"Round",()=>ty),s.export(r,"Rsqrt",()=>tb),s.export(r,"ScatterNd",()=>t_),s.export(r,"TensorScatterUpdate",()=>tk),s.export(r,"SearchSorted",()=>tj),s.export(r,"Select",()=>tI),s.export(r,"Selu",()=>tw),s.export(r,"Slice",()=>tT),s.export(r,"Sin",()=>tN),s.export(r,"Sinh",()=>tS),s.export(r,"Sign",()=>tC),s.export(r,"Sigmoid",()=>tE),s.export(r,"Softplus",()=>tF),s.export(r,"Sqrt",()=>tA),s.export(r,"Sum",()=>tR),s.export(r,"SpaceToBatchND",()=>tP),s.export(r,"SplitV",()=>tD),s.export(r,"Softmax",()=>t$),s.export(r,"SparseFillEmptyRows",()=>tO),s.export(r,"SparseReshape",()=>tM),s.export(r,"SparseSegmentMean",()=>tW),s.export(r,"SparseSegmentSum",()=>tB),s.export(r,"SparseToDense",()=>tL),s.export(r,"SquaredDifference",()=>tV),s.export(r,"Square",()=>tU),s.export(r,"StaticRegexReplace",()=>tG),s.export(r,"StridedSlice",()=>tz),s.export(r,"StringNGrams",()=>tQ),s.export(r,"StringSplit",()=>tq),s.export(r,"StringToHashBucketFast",()=>tH),s.export(r,"Sub",()=>tK),s.export(r,"Tan",()=>tX),s.export(r,"Tanh",()=>tY),s.export(r,"Tile",()=>tJ),s.export(r,"TopK",()=>tZ),s.export(r,"Transform",()=>t0),s.export(r,"Transpose",()=>t1),s.export(r,"Unique",()=>t2),s.export(r,"Unpack",()=>t3),s.export(r,"UnsortedSegmentSum",()=>t5),s.export(r,"UpperBound",()=>t4),s.export(r,"ZerosLike",()=>t6),s.export(r,"Step",()=>t8),s.export(r,"FromPixels",()=>t9),s.export(r,"RotateWithOffset",()=>t7),s.export(r,"_FusedMatMul",()=>re),s.export(r,"FusedConv2D",()=>rt),s.export(r,"FusedDepthwiseConv2D",()=>rr);let a="Abs",o="Acos",l="Acosh",i="Add",u="AddN",p="All",c="Any",d="ArgMax",f="ArgMin",m="Asin",h="Asinh",g="Atan",x="Atanh",v="Atan2",y="AvgPool",b="AvgPoolGrad",_="AvgPool3D",k="AvgPool3DGrad",j="BatchMatMul",I="BatchToSpaceND",w="Bincount",T="BitwiseAnd",N="BroadcastTo",S="BroadcastArgs",C="Cast",E="Ceil",F="ClipByValue",A="Complex",R="ComplexAbs",P="Concat",D="Conv2D",$="Conv2DBackpropFilter",O="Conv2DBackpropInput",M="Conv3D",W="Conv3DBackpropFilterV2",B="Conv3DBackpropInputV2",L="Cos",V="Cosh",U="Cumprod",G="Cumsum",z="CropAndResize",Q="DenseBincount",q="DepthToSpace",H="DepthwiseConv2dNative",K="DepthwiseConv2dNativeBackpropFilter",X="DepthwiseConv2dNativeBackpropInput",Y="Diag",J="Dilation2D",Z="Dilation2DBackpropInput",ee="Dilation2DBackpropFilter",et="Draw",er="RealDiv",en="Einsum",es="Elu",ea="EluGrad",eo="Erf",el="Equal",ei="Exp",eu="ExpandDims",ep="Expm1",ec="FFT",ed="Fill",ef="FlipLeftRight",em="Floor",eh="FloorDiv",eg="FusedBatchNorm",ex="GatherV2",ev="GatherNd",ey="Greater",eb="GreaterEqual",e_="Identity",ek="IFFT",ej="Imag",eI="IsFinite",ew="IsInf",eT="IsNan",eN="LeakyRelu",eS="Less",eC="LessEqual",eE="LinSpace",eF="Log",eA="Log1p",eR="LogicalAnd",eP="LogicalNot",eD="LogicalOr",e$="LogicalXor",eO="LogSoftmax",eM="LowerBound",eW="LRN",eB="LRNGrad",eL="MatrixBandPart",eV="Max",eU="Maximum",eG="MaxPool",ez="MaxPoolGrad",eQ="MaxPool3D",eq="MaxPool3DGrad",eH="MaxPoolWithArgmax",eK="Mean",eX="Min",eY="Minimum",eJ="MirrorPad",eZ="Mod",e0="Multinomial",e1="Multiply",e2="Neg",e3="NotEqual",e5="NonMaxSuppressionV3",e4="NonMaxSuppressionV4",e6="NonMaxSuppressionV5",e8="OnesLike",e9="OneHot",e7="Pack",te="PadV2",tt="Pool",tr="Pow",tn="Prelu",ts="Prod",ta="RaggedGather",to="RaggedRange",tl="RaggedTensorToTensor",ti="Range",tu="Real",tp="Reciprocal",tc="Relu",td="Reshape",tf="ResizeNearestNeighbor",tm="ResizeNearestNeighborGrad",th="ResizeBilinear",tg="ResizeBilinearGrad",tx="Relu6",tv="Reverse",ty="Round",tb="Rsqrt",t_="ScatterNd",tk="TensorScatterUpdate",tj="SearchSorted",tI="Select",tw="Selu",tT="Slice",tN="Sin",tS="Sinh",tC="Sign",tE="Sigmoid",tF="Softplus",tA="Sqrt",tR="Sum",tP="SpaceToBatchND",tD="SplitV",t$="Softmax",tO="SparseFillEmptyRows",tM="SparseReshape",tW="SparseSegmentMean",tB="SparseSegmentSum",tL="SparseToDense",tV="SquaredDifference",tU="Square",tG="StaticRegexReplace",tz="StridedSlice",tQ="StringNGrams",tq="StringSplit",tH="StringToHashBucketFast",tK="Sub",tX="Tan",tY="Tanh",tJ="Tile",tZ="TopK",t0="Transform",t1="Transpose",t2="Unique",t3="Unpack",t5="UnsortedSegmentSum",t4="UpperBound",t6="ZerosLike",t8="Step",t9="FromPixels",t7="RotateWithOffset",re="_FusedMatMul",rt="FusedConv2D",rr="FusedDepthwiseConv2D"},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"11iA6":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getKernel",()=>p),s.export(r,"getGradient",()=>c),s.export(r,"getKernelsForBackend",()=>d),s.export(r,"registerKernel",()=>f),s.export(r,"registerGradient",()=>m),s.export(r,"unregisterKernel",()=>h),s.export(r,"unregisterGradient",()=>g),s.export(r,"copyRegisteredKernels",()=>x);var a=e("./environment"),o=e("./global_util"),l=e("./log");let i=(0,o.getGlobal)("kernelRegistry",()=>new Map),u=(0,o.getGlobal)("gradRegistry",()=>new Map);function p(e,t){let r=v(e,t);return i.get(r)}function c(e){return u.get(e)}function d(e){let t=i.entries(),r=[];for(;;){let{done:n,value:s}=t.next();if(n)break;let[a,o]=s,[l]=a.split("_");l===e&&r.push(o)}return r}function f(e){let{kernelName:t,backendName:r}=e,n=v(t,r);i.has(n)&&l.warn(`The kernel '${t}' for backend '${r}' is already registered`),i.set(n,e)}function m(e){let{kernelName:t}=e;u.has(t)&&(0,a.env)().getBool("DEBUG")&&l.warn(`Overriding the gradient for '${t}'`),u.set(t,e)}function h(e,t){let r=v(e,t);if(!i.has(r))throw Error(`The kernel '${e}' for backend '${t}' is not registered`);i.delete(r)}function g(e){if(!u.has(e))throw Error(`The gradient '${e}' for backend is not registered`);u.delete(e)}function x(e,t){d(e).forEach(e=>{f(Object.assign({},e,{backendName:t}))})}function v(e,t){return`${t}_${e}`}},{"./environment":"h8BWL","./global_util":"b45Tz","./log":"dvDGk","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dvDGk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"warn",()=>o),s.export(r,"log",()=>l);var a=e("./environment");function o(...e){(0,a.env)().getBool("IS_TEST")||(0,a.env)().getBool("PROD")||console.warn(...e)}function l(...e){(0,a.env)().getBool("IS_TEST")||(0,a.env)().getBool("PROD")||console.log(...e)}},{"./environment":"h8BWL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],d83tJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Profiler",()=>l),s.export(r,"checkComputationForErrors",()=>i),s.export(r,"Logger",()=>u);var a=e("./environment"),o=e("./util");class l{constructor(e,t){this.backendTimer=e,this.logger=t,null==t&&(this.logger=new u)}profileKernel(e,t,r){let n,s,l=()=>{n=r()},u=o.now();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(l);else{for(let e of(l(),n))e.dataSync();s=Promise.resolve({kernelMs:o.now()-u})}if((0,a.env)().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let t=0;t{i(t,r.dtype,e)})}return{kernelName:e,outputs:n,inputs:t,timeMs:s.then(e=>e.kernelMs),extraInfo:s.then(e=>null!=e.getExtraProfileInfo?e.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:r,timeMs:n,inputs:s,extraInfo:a}=e;r.forEach(e=>{Promise.all([e.data(),n,a]).then(r=>{this.logger.logKernelProfile(t,e,r[0],r[1],s,r[2])})})}}function i(e,t,r){if("float32"!==t)return!1;for(let t=0;t0?n:""} `}}console.log(`%c${i} %c${l} %c${u}D ${c} %c${p} %c${d} %c${a}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}}},{"./environment":"h8BWL","./util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],icflD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"createScalarValue",()=>u),s.export(r,"toTypedArray",()=>p),s.export(r,"now",()=>c),s.export(r,"fetch",()=>d),s.export(r,"encodeString",()=>f),s.export(r,"decodeString",()=>m),s.export(r,"isTypedArray",()=>h),s.export(r,"flatten",()=>g);var a=e("./environment"),o=e("./platforms/is_typed_array_browser"),l=e("./util_base");s.exportAll(l,r);var i=e("./hash_util");function u(e,t){return"string"===t?f(e):p([e],t)}function p(e,t){var r;if("string"===t)throw Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=g(e)),(0,a.env)().getBool("DEBUG")&&l.checkConversionForErrors(e,t),(r=e)instanceof Float32Array&&"float32"===t||r instanceof Int32Array&&"int32"===t||r instanceof Uint8Array&&"bool"===t)return e;if(null==t||"float32"===t||"complex64"===t)return new Float32Array(e);if("int32"===t)return new Int32Array(e);if("bool"===t){let t=new Uint8Array(e.length);for(let r=0;ra)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2vzeg":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"hexToLong",()=>l),s.export(r,"fingerPrint64",()=>x);var a=e("long");let o=a.default||a;function l(e){return o.fromString(e,!0,16)}let i=l("c3a5c85c97cb3127"),u=l("b492b66fbe98f273"),p=l("9ae16a3b2f90404f");function c(e){return e.xor(e.shru(47))}function d(e,t,r){let n=e.slice(t,t+r);return o.fromBytes(Array.from(n),!0,!0)}function f(e,t){return d(e,t,8)}function m(e,t){return 0===t?e:e.shru(t).or(e.shl(64-t))}function h(e,t,r=l("9ddfea08eb382d69")){let n=e.xor(t).mul(r);n=n.xor(n.shru(47));let s=t.xor(n).mul(r);return(s=s.xor(s.shru(47))).mul(r)}function g(e,t,r,n){return function(e,t,r,n,s,a){s=s.add(e),a=m(a.add(s).add(n),21);let o=s;return s=(s=s.add(t)).add(r),a=a.add(m(s,44)),[s.add(n),a.add(o)]}(f(e,t),f(e,t+8),f(e,t+16),f(e,t+24),r,n)}function x(e,t=e.length){let r=o.fromNumber(81,!0);if(t<=32)if(t<=16)return function(e,t=e.length){if(t>=8){let r=p.add(2*t),n=f(e,0).add(p),s=f(e,t-8);return h(m(s,37).mul(r).add(n),m(n,25).add(s).mul(r),r)}if(t>=4){let r=p.add(2*t);return h(d(e,0,4).shl(3).add(t),d(e,t-4,4),r)}if(t>0){let r=e[0],n=e[t>>1],s=e[t-1];return c(p.mul(r+(n<<8)).xor(i.mul(t+(s<<2)))).mul(p)}return p}(e,t);else return function(e,t=e.length){let r=p.add(2*t),n=f(e,0).mul(u),s=f(e,8),a=f(e,t-8).mul(r),o=f(e,t-16).mul(p);return h(m(n.add(s),43).add(m(a,30)).add(o),n.add(m(s.add(p),18)).add(a),r)}(e,t);if(t<=64)return function(e,t=e.length){let r=p.add(2*t),n=f(e,0).mul(p),s=f(e,8),a=f(e,t-8).mul(r),o=f(e,t-16).mul(p),l=m(n.add(s),43).add(m(a,30)).add(o),i=h(l,n.add(m(s.add(p),18)).add(a),r),u=f(e,16).mul(r),c=f(e,24),d=l.add(f(e,t-32)).mul(r),g=i.add(f(e,t-24)).mul(r);return h(m(u.add(c),43).add(m(d,30)).add(g),u.add(m(c.add(n),18)).add(d),r)}(e,t);let n=r,s=r.mul(u).add(113),a=c(s.mul(p).add(113)).mul(p),l=[o.UZERO,o.UZERO],v=[o.UZERO,o.UZERO];n=n.mul(p).add(f(e,0));let y=0,b=(t-1>>6)*64,_=b+(t-1&63)-63;do n=m(n.add(s).add(l[0]).add(f(e,y+8)),37).mul(u),s=m(s.add(l[1]).add(f(e,y+48)),42).mul(u),n=n.xor(v[1]),s=s.add(l[0]).add(f(e,y+40)),a=m(a.add(v[0]),33).mul(u),l=g(e,y,l[1].mul(u),n.add(v[0])),v=g(e,y+32,a.add(v[1]),s.add(f(e,y+16))),[a,n]=[n,a],y+=64;while(y!==b)let k=u.add(a.and(255).shl(1));return y=_,v[0]=v[0].add(t-1&63),l[0]=l[0].add(v[0]),v[0]=v[0].add(l[0]),n=m(n.add(s).add(l[0]).add(f(e,y+8)),37).mul(k),s=m(s.add(l[1]).add(f(e,y+48)),42).mul(k),n=n.xor(v[1].mul(9)),s=s.add(l[0].mul(9).add(f(e,y+40))),a=m(a.add(v[0]),33).mul(k),l=g(e,y,l[1].mul(k),n.add(v[0])),v=g(e,y+32,a.add(v[1]),s.add(f(e,y+16))),[a,n]=[n,a],h(h(l[0],v[0],k).add(c(s).mul(i)).add(a),h(l[1],v[1],k).add(n),k)}},{long:"bDzCi","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bDzCi:[function(e,t,r,n){t.exports=a;var s=null;try{s=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(e){}function a(e,t,r){this.low=0|e,this.high=0|t,this.unsigned=!!r}function o(e){return!0===(e&&e.__isLong__)}a.prototype.__isLong__,Object.defineProperty(a.prototype,"__isLong__",{value:!0}),a.isLong=o;var l={},i={};function u(e,t){var r,n,s;if(t)return(e>>>=0,(s=0<=e&&e<256)&&(n=i[e]))?n:(r=c(e,(0|e)<0?-1:0,!0),s&&(i[e]=r),r);return(e|=0,(s=-128<=e&&e<128)&&(n=l[e]))?n:(r=c(e,e<0?-1:0,!1),s&&(l[e]=r),r)}function p(e,t){if(isNaN(e))return t?b:y;if(t){if(e<0)return b;if(e>=g)return w}else{if(e<=-x)return T;if(e+1>=x)return I}return e<0?p(-e,t).neg():c(e%h|0,e/h|0,t)}function c(e,t,r){return new a(e,t,r)}a.fromInt=u,a.fromNumber=p,a.fromBits=c;var d=Math.pow;function f(e,t,r){if(0===e.length)throw Error("empty string");if("NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return y;if("number"==typeof t?(r=t,t=!1):t=!!t,(r=r||10)<2||360)throw Error("interior hyphen");if(0===n)return f(e.substring(1),t,r).neg();for(var n,s=p(d(r,8)),a=y,o=0;o>>0:this.low},N.toNumber=function(){return this.unsigned?(this.high>>>0)*h+(this.low>>>0):this.high*h+(this.low>>>0)},N.toString=function(e){if((e=e||10)<2||36>>0).toString(e);if((a=l).isZero())return i+o;for(;i.length<6;)i="0"+i;o=""+i+o}},N.getHighBits=function(){return this.high},N.getHighBitsUnsigned=function(){return this.high>>>0},N.getLowBits=function(){return this.low},N.getLowBitsUnsigned=function(){return this.low>>>0},N.getNumBitsAbs=function(){if(this.isNegative())return this.eq(T)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&(e&1<=0},N.isOdd=function(){return(1&this.low)==1},N.isEven=function(){return(1&this.low)==0},N.equals=function(e){return o(e)||(e=m(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&this.high===e.high&&this.low===e.low},N.eq=N.equals,N.notEquals=function(e){return!this.eq(e)},N.neq=N.notEquals,N.ne=N.notEquals,N.lessThan=function(e){return 0>this.comp(e)},N.lt=N.lessThan,N.lessThanOrEqual=function(e){return 0>=this.comp(e)},N.lte=N.lessThanOrEqual,N.le=N.lessThanOrEqual,N.greaterThan=function(e){return this.comp(e)>0},N.gt=N.greaterThan,N.greaterThanOrEqual=function(e){return this.comp(e)>=0},N.gte=N.greaterThanOrEqual,N.ge=N.greaterThanOrEqual,N.compare=function(e){if(o(e)||(e=m(e)),this.eq(e))return 0;var t=this.isNegative(),r=e.isNegative();return t&&!r?-1:!t&&r?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},N.comp=N.compare,N.negate=function(){return!this.unsigned&&this.eq(T)?T:this.not().add(_)},N.neg=N.negate,N.add=function(e){o(e)||(e=m(e));var t,r,n=this.high>>>16,s=65535&this.high,a=this.low>>>16,l=65535&this.low,i=e.high>>>16,u=65535&e.high,p=e.low>>>16,d=65535&e.low,f=0,h=0;return t=0+((r=0+(l+d))>>>16),r&=65535,t+=a+p,h+=t>>>16,t&=65535,h+=s+u,f+=h>>>16,h&=65535,f+=n+i,c(t<<16|r,(f&=65535)<<16|h,this.unsigned)},N.subtract=function(e){return o(e)||(e=m(e)),this.add(e.neg())},N.sub=N.subtract,N.multiply=function(e){if(this.isZero())return y;if(o(e)||(e=m(e)),s)return c(s.mul(this.low,this.high,e.low,e.high),s.get_high(),this.unsigned);if(e.isZero())return y;if(this.eq(T))return e.isOdd()?T:y;if(e.eq(T))return this.isOdd()?T:y;if(this.isNegative())if(e.isNegative())return this.neg().mul(e.neg());else return this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(v)&&e.lt(v))return p(this.toNumber()*e.toNumber(),this.unsigned);var t,r,n=this.high>>>16,a=65535&this.high,l=this.low>>>16,i=65535&this.low,u=e.high>>>16,d=65535&e.high,f=e.low>>>16,h=65535&e.low,g=0,x=0;return t=0+((r=0+i*h)>>>16),r&=65535,t+=l*h,x+=t>>>16,t&=65535,t+=i*f,x+=t>>>16,t&=65535,x+=a*h,g+=x>>>16,x&=65535,x+=l*f,g+=x>>>16,x&=65535,x+=i*d,g+=x>>>16,x&=65535,g+=n*h+a*f+l*d+i*u,c(t<<16|r,(g&=65535)<<16|x,this.unsigned)},N.mul=N.multiply,N.divide=function(e){if(o(e)||(e=m(e)),e.isZero())throw Error("division by zero");if(s){var t,r,n;return this.unsigned||-0x80000000!==this.high||-1!==e.low||-1!==e.high?c((this.unsigned?s.div_u:s.div_s)(this.low,this.high,e.low,e.high),s.get_high(),this.unsigned):this}if(this.isZero())return this.unsigned?b:y;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return b;if(e.gt(this.shru(1)))return k;n=b}else{if(this.eq(T))if(e.eq(_)||e.eq(j))return T;else return e.eq(T)?_:(t=this.shr(1).div(e).shl(1)).eq(y)?e.isNegative()?_:j:(r=this.sub(e.mul(t)),n=t.add(r.div(e)));if(e.eq(T))return this.unsigned?b:y;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();n=y}for(r=this;r.gte(e);){for(var a=Math.ceil(Math.log(t=Math.max(1,Math.floor(r.toNumber()/e.toNumber())))/Math.LN2),l=a<=48?1:d(2,a-48),i=p(t),u=i.mul(e);u.isNegative()||u.gt(r);)t-=l,u=(i=p(t,this.unsigned)).mul(e);i.isZero()&&(i=_),n=n.add(i),r=r.sub(u)}return n},N.div=N.divide,N.modulo=function(e){return(o(e)||(e=m(e)),s)?c((this.unsigned?s.rem_u:s.rem_s)(this.low,this.high,e.low,e.high),s.get_high(),this.unsigned):this.sub(this.div(e).mul(e))},N.mod=N.modulo,N.rem=N.modulo,N.not=function(){return c(~this.low,~this.high,this.unsigned)},N.and=function(e){return o(e)||(e=m(e)),c(this.low&e.low,this.high&e.high,this.unsigned)},N.or=function(e){return o(e)||(e=m(e)),c(this.low|e.low,this.high|e.high,this.unsigned)},N.xor=function(e){return o(e)||(e=m(e)),c(this.low^e.low,this.high^e.high,this.unsigned)},N.shiftLeft=function(e){return(o(e)&&(e=e.toInt()),0==(e&=63))?this:e<32?c(this.low<>>32-e,this.unsigned):c(0,this.low<>>e|this.high<<32-e,this.high>>e,this.unsigned):c(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},N.shr=N.shiftRight,N.shiftRightUnsigned=function(e){if(o(e)&&(e=e.toInt()),0==(e&=63))return this;var t=this.high;return e<32?c(this.low>>>e|t<<32-e,t>>>e,this.unsigned):32===e?c(t,0,this.unsigned):c(t>>>e-32,0,this.unsigned)},N.shru=N.shiftRightUnsigned,N.shr_u=N.shiftRightUnsigned,N.toSigned=function(){return this.unsigned?c(this.low,this.high,!1):this},N.toUnsigned=function(){return this.unsigned?this:c(this.low,this.high,!0)},N.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},N.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},N.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},a.fromBytes=function(e,t,r){return r?a.fromBytesLE(e,t):a.fromBytesBE(e,t)},a.fromBytesLE=function(e,t){return new a(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)},a.fromBytesBE=function(e,t){return new a(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)}},{}],fvtMq:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getFilteredNodesXToY",()=>o),s.export(r,"backpropagateGradients",()=>l);var a=e("./util");function o(e,t,r){let n={},s={};for(let e=0;en[e.id]=!0),l=!0,s[a.id]=!0;break}if(l)break}}let a={};a[r.id]=!0;let o={};for(let t=e.length-1;t>=0;t--){let r=e[t],n=r.inputs;for(let e=0;e=0;s--){let o=t[s],l=[];if(o.outputs.forEach(t=>{let r=e[t.id];null!=r?l.push(r):l.push(null)}),null==o.gradient)throw Error(`Cannot compute gradient: gradient function not found for ${o.kernelName}.`);let i=o.gradient(l);for(let t in o.inputs){if(!(t in i))throw Error(`Cannot backprop through input ${t}. Available gradients found: ${Object.keys(i)}.`);let s=r(()=>i[t]());if("float32"!==s.dtype)throw Error(`Error in gradient for op ${o.kernelName}. The gradient of input ${t} must have 'float32' dtype, but has '${s.dtype}'`);let l=o.inputs[t];if(!a.arraysEqual(s.shape,l.shape))throw Error(`Error in gradient for op ${o.kernelName}. The gradient of input '${t}' has shape '${s.shape}', which does not match the shape of the input '${l.shape}'`);if(null==e[l.id])e[l.id]=s;else{let t=e[l.id];e[l.id]=n(t,s),t.dispose()}}}}},{"./util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cfIkd:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TensorBuffer",()=>i),s.export(r,"setTensorTracker",()=>c),s.export(r,"setOpHandler",()=>d),s.export(r,"setDeprecationWarningFn",()=>f),s.export(r,"Tensor",()=>m),s.export(r,"getGlobalTensorClass",()=>h),s.export(r,"Variable",()=>g);var a=e("./global_util"),o=e("./tensor_format"),l=e("./util");class i{constructor(e,t,r){if(this.dtype=t,this.shape=e.slice(),this.size=l.sizeFromShape(e),null!=r){let e=r.length;l.assert(e===this.size,()=>`Length of values '${e}' does not match the size inferred by the shape '${this.size}'.`)}if("complex64"===t)throw Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=r||l.getArrayFromDType(t,this.size),this.strides=(0,l.computeStrides)(e)}set(e,...t){0===t.length&&(t=[0]),l.assert(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);let r=this.locToIndex(t);this.values[r]=e}get(...e){0===e.length&&(e=[0]);let t=0;for(let r of e){if(r<0||r>=this.shape[t])throw Error(`Requested out of range element at ${e}. Buffer shape=${this.shape}`);t++}let r=e[e.length-1];for(let t=0;tl.decodeString(e))}catch(e){throw Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataToGPU(e){return this.throwIfDisposed(),u().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=u().readSync(this.dataId);if("string"===this.dtype)try{return e.map(e=>l.decodeString(e))}catch(e){throw Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();let e=await u().read(this.dataId);return"string"===this.dtype?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(this.kerasMask&&this.kerasMask.dispose(),u().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw Error("Tensor is disposed.")}print(e=!1){return p.print(this,e)}clone(){return this.throwIfDisposed(),p.clone(this)}toString(e=!1){let t=this.dataSync();return(0,o.tensorToString)(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),p.cast(this,e)}variable(e=!0,t,r){return this.throwIfDisposed(),u().makeVariable(this,e,t,r)}}function h(){return(0,a.getGlobal)("Tensor",()=>m)}Object.defineProperty(m,Symbol.hasInstance,{value:e=>!!e&&null!=e.data&&null!=e.dataSync&&null!=e.throwIfDisposed}),h();class g extends m{constructor(e,t,r,n){super(e.shape,e.dtype,e.dataId,n),this.trainable=t,this.name=r}assign(e){if(e.dtype!==this.dtype)throw Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!l.arraysEqual(e.shape,this.shape))throw Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);u().disposeTensor(this),this.dataId=e.dataId,u().incRef(this,null)}dispose(){u().disposeVariable(this),this.isDisposedInternal=!0}}Object.defineProperty(g,Symbol.hasInstance,{value:e=>e instanceof m&&null!=e.assign&&e.assign instanceof Function})},{"./global_util":"b45Tz","./tensor_format":"bLvwc","./util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bLvwc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensorToString",()=>o);var a=e("./util");function o(e,t,r,n){let s=(0,a.computeStrides)(t),o=function(e,t,r,n){let s=(0,a.sizeFromShape)(t),o=n[n.length-1],i=Array(o).fill(0),p=t.length,c="complex64"===r?u(e):e;if(p>1)for(let e=0;e20){let e=Array.from(t.slice(0,3*p)),r=Array.from(t.slice((c-3)*p,c*p));return"complex64"===n&&(e=u(e),r=u(r)),["["+e.map((e,t)=>l(e,a[t],n)).join(", ")+", ..., "+r.map((e,t)=>l(e,a[c-3+t],n)).join(", ")+"]"]}return["["+("complex64"===n?u(t):Array.from(t)).map((e,t)=>l(e,a[t],n)).join(", ")+"]"]}let f=r.slice(1),m=s.slice(1),h=s[0]*p,g=[];if(c>20){for(let r=0;r<3;r++){let s=r*h,o=s+h;g.push(...e(t.slice(s,o),f,n,m,a,!1))}g.push("...");for(let r=c-3;r0?g[0]+x:"");for(let e=1;e" "+e).join("\n")),d.join("\n")}function l(e,t,r){let n;return n=Array.isArray(e)?`${parseFloat(e[0].toFixed(7))} + ${parseFloat(e[1].toFixed(7))}j`:(0,a.isString)(e)?`'${e}'`:"bool"===r?i(e):parseFloat(e.toFixed(7)).toString(),(0,a.rightPad)(n,t)}function i(e){return 0===e?"false":"true"}function u(e){let t=[];for(let r=0;ri),s.export(r,"assertTypesMatch",()=>u),s.export(r,"isTensorInList",()=>p),s.export(r,"getTensorsInContainer",()=>c);var a=e("./tensor"),o=e("./types"),l=e("./util");function i(e,t){if(e.dtype===t.dtype)return[e,t];let r=(0,o.upcastType)(e.dtype,t.dtype);return[e.cast(r),t.cast(r)]}function u(e,t){(0,l.assert)(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function p(e,t){return t.some(t=>t.id===e.id)}function c(e){let t=[];return function e(t,r,n){var s;if(null!=t){if(t instanceof a.Tensor)return void r.push(t);if(Array.isArray(s=t)||"object"==typeof s)for(let s in t){let a=t[s];n.has(a)||(n.add(a),e(a,r,n))}}}(e,t,new Set),t}},{"./tensor":"cfIkd","./types":"huvyT","./util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],huvyT:[function(e,t,r,n){var s,a,o,l,i,u,p,c,d,f,m=e("@parcel/transformer-js/src/esmodule-helpers.js");m.defineInteropFlag(r),m.export(r,"Rank",()=>u),m.export(r,"upcastType",()=>g),m.export(r,"sumOutType",()=>x),m.export(r,"isWebGLData",()=>v),m.export(r,"isWebGPUData",()=>y),(s=u||(u={})).R0="R0",s.R1="R1",s.R2="R2",s.R3="R3",s.R4="R4",s.R5="R5",s.R6="R6",(a=p||(p={})).float32="float32",a.int32="int32",a.bool="int32",a.complex64="complex64",(o=c||(c={})).float32="float32",o.int32="int32",o.bool="bool",o.complex64="complex64",(l=d||(d={})).float32="float32",l.int32="float32",l.bool="float32",l.complex64="complex64",(i=f||(f={})).float32="complex64",i.int32="complex64",i.bool="complex64",i.complex64="complex64";let h={float32:d,int32:p,bool:c,complex64:f};function g(e,t){if("string"===e||"string"===t){if("string"===e&&"string"===t)return"string";throw Error(`Can not upcast ${e} with ${t}`)}return h[e][t]}function x(e){return g(e,"int32")}function v(e){return null!=e&&"object"==typeof e&&"texture"in e&&e.texture instanceof WebGLTexture}function y(e){return"undefined"!=typeof GPUBuffer&&null!=e&&"object"==typeof e&&"buffer"in e&&e.buffer instanceof GPUBuffer}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8o4LZ":[function(e,t,r,n){e("./engine");var s=e("./device_util");let a=(0,e("./environment").env)();a.registerFlag("DEBUG",()=>!1,e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")}),a.registerFlag("IS_BROWSER",()=>s.isBrowser()),a.registerFlag("IS_NODE",()=>!1),a.registerFlag("IS_CHROME",()=>"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)),a.registerFlag("IS_SAFARI",()=>"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor)),a.registerFlag("PROD",()=>!1),a.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>a.getBool("DEBUG")),a.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0),a.registerFlag("IS_TEST",()=>!1),a.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>a.getBool("DEBUG")),a.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1),a.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1),a.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1)},{"./engine":"c6qwc","./device_util":"dDH0G","./environment":"h8BWL"}],dDH0G:[function(e,t,r,n){let s;var a=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e){s=e}function l(e){if(void 0!==s)return s;if(e||"undefined"!=typeof navigator&&null!=navigator){if(e||(e=navigator),"ReactNative"===e.product)return!0;let t=e.userAgent||e.vendor||("undefined"!=typeof window?window.opera:"");if(!t){let t=e;return t.userAgentData&&t.userAgentData.mobile}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.test(t)||/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.test(t.substr(0,4))}return!1}function i(){return"undefined"!=typeof window&&null!=window.document||"undefined"!=typeof WorkerGlobalScope}a.defineInteropFlag(r),a.export(r,"mockIsMobile",()=>o),a.export(r,"isMobile",()=>l),a.export(r,"isBrowser",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],brkqc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"PlatformBrowser",()=>p),e("../flags");var a=e("../environment"),o=e("../io/indexed_db"),l=e("../io/local_storage"),i=e("../io/model_management"),u=e("./is_typed_array_browser");class p{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if("utf-8"!==t&&"utf8"!==t)throw Error(`Browser's encoder only supports utf-8, but got ${t}`);return null==this.textEncoder&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}setTimeoutCustom(e,t){if("undefined"==typeof window||!(0,a.env)().getBool("USE_SETTIMEOUTCUSTOM"))return void setTimeout(e,t);this.functionRefs.push(e),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},t),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",e=>{e.source===window&&e.data.name===this.messageName&&(e.stopPropagation(),(0,this.functionRefs[e.data.index])(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0))},!0))}isTypedArray(e){return(0,u.isTypedArrayBrowser)(e)}}if((0,a.env)().get("IS_BROWSER")){(0,a.env)().setPlatform("browser",new p);try{i.ModelStoreManagerRegistry.registerManager(l.BrowserLocalStorage.URL_SCHEME,new(0,l.BrowserLocalStorageManager))}catch(e){}try{i.ModelStoreManagerRegistry.registerManager(o.BrowserIndexedDB.URL_SCHEME,new(0,o.BrowserIndexedDBManager))}catch(e){}}},{"../flags":"8o4LZ","../environment":"h8BWL","../io/indexed_db":"aOV6O","../io/local_storage":"fYfpb","../io/model_management":"1lmNR","./is_typed_array_browser":"4W7WA","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aOV6O:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"deleteDatabase",()=>d),s.export(r,"BrowserIndexedDB",()=>h),s.export(r,"indexedDBRouter",()=>g),s.export(r,"browserIndexedDB",()=>x),s.export(r,"BrowserIndexedDBManager",()=>v),e("../flags");var a=e("../environment"),o=e("./io_utils"),l=e("./router_registry"),i=e("./composite_array_buffer");let u="tensorflowjs",p="models_store",c="model_info_store";async function d(){let e=f();return new Promise((t,r)=>{let n=e.deleteDatabase(u);n.onsuccess=()=>t(),n.onerror=e=>r(e)})}function f(){if(!(0,a.env)().getBool("IS_BROWSER"))throw Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let e="undefined"==typeof window?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(null==t)throw Error("The current browser does not appear to support IndexedDB.");return t}function m(e){let t=e.result;t.createObjectStore(p,{keyPath:"modelPath"}),t.createObjectStore(c,{keyPath:"modelPath"})}class h{constructor(e){if(this.indexedDB=f(),null==e||!e)throw Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise((e,r)=>{let n=this.indexedDB.open(u,1);n.onupgradeneeded=()=>m(n),n.onsuccess=()=>{let s=n.result;if(null==t){let t=s.transaction(p,"readonly"),n=t.objectStore(p).get(this.modelPath);n.onsuccess=()=>{if(null==n.result)return s.close(),r(Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));e(n.result.modelArtifacts)},n.onerror=e=>(s.close(),r(n.error)),t.oncomplete=()=>s.close()}else{let n,a;t.weightData=i.CompositeArrayBuffer.join(t.weightData);let l=(0,o.getModelArtifactsInfoForJSON)(t),u=s.transaction(c,"readwrite"),d=u.objectStore(c);try{n=d.put({modelPath:this.modelPath,modelArtifactsInfo:l})}catch(e){return r(e)}n.onsuccess=()=>{let n,o=(a=s.transaction(p,"readwrite")).objectStore(p);try{n=o.put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:l})}catch(e){return r(e)}n.onsuccess=()=>e({modelArtifactsInfo:l}),n.onerror=e=>{let t=(d=u.objectStore(c)).delete(this.modelPath);t.onsuccess=()=>(s.close(),r(n.error)),t.onerror=e=>(s.close(),r(n.error))}},n.onerror=e=>(s.close(),r(n.error)),u.oncomplete=()=>{null==a?s.close():a.oncomplete=()=>s.close()}}},n.onerror=e=>r(n.error)})}}h.URL_SCHEME="indexeddb://";let g=e=>(0,a.env)().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(h.URL_SCHEME)?x(e.slice(h.URL_SCHEME.length)):null;function x(e){return new h(e)}l.IORouterRegistry.registerSaveRouter(g),l.IORouterRegistry.registerLoadRouter(g);class v{constructor(){this.indexedDB=f()}async listModels(){return new Promise((e,t)=>{let r=this.indexedDB.open(u,1);r.onupgradeneeded=()=>m(r),r.onsuccess=()=>{let n=r.result,s=n.transaction(c,"readonly"),a=s.objectStore(c).getAll();a.onsuccess=()=>{let t={};for(let e of a.result)t[e.modelPath]=e.modelArtifactsInfo;e(t)},a.onerror=e=>(n.close(),t(a.error)),s.oncomplete=()=>n.close()},r.onerror=e=>t(r.error)})}async removeModel(e){var t;return e=(t=e).startsWith(h.URL_SCHEME)?t.slice(h.URL_SCHEME.length):t,new Promise((t,r)=>{let n=this.indexedDB.open(u,1);n.onupgradeneeded=()=>m(n),n.onsuccess=()=>{let s,a=n.result,o=a.transaction(c,"readwrite"),l=o.objectStore(c),i=l.get(e);i.onsuccess=()=>{if(null==i.result)return a.close(),r(Error(`Cannot find model with path '${e}' in IndexedDB.`));{let n=l.delete(e),o=()=>{let n=(s=a.transaction(p,"readwrite")).objectStore(p).delete(e);n.onsuccess=()=>t(i.result.modelArtifactsInfo),n.onerror=e=>r(i.error)};n.onsuccess=o,n.onerror=e=>(o(),a.close(),r(i.error))}},i.onerror=e=>(a.close(),r(i.error)),o.oncomplete=()=>{null==s?a.close():s.oncomplete=()=>a.close()}},n.onerror=e=>r(n.error)})}}},{"../flags":"8o4LZ","../environment":"h8BWL","./io_utils":"I1MAO","./router_registry":"luXuJ","./composite_array_buffer":"d6FlQ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],I1MAO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"encodeWeights",()=>d),s.export(r,"decodeWeights",()=>f),s.export(r,"decodeWeightsStream",()=>x),s.export(r,"concatenateTypedArrays",()=>v),s.export(r,"stringByteLength",()=>b),s.export(r,"arrayBufferToBase64String",()=>_),s.export(r,"base64StringToArrayBuffer",()=>k),s.export(r,"concatenateArrayBuffers",()=>j),s.export(r,"basename",()=>I),s.export(r,"getModelJSONForModelArtifacts",()=>w),s.export(r,"getModelArtifactsForJSONSync",()=>T),s.export(r,"getModelArtifactsForJSON",()=>N),s.export(r,"getModelArtifactsInfoForJSON",()=>S),s.export(r,"getWeightSpecs",()=>C),s.export(r,"getFloat16Decoder",()=>E);var a=e("../ops/complex"),o=e("../ops/tensor"),l=e("../util"),i=e("./types"),u=e("./composite_array_buffer"),p=e("../globals"),c=e("../environment");async function d(e,t){let r=[],n=[],s=Array.isArray(e)?e.map(e=>e.name):Object.keys(e);for(let a=0;a{let t=await l.bytes(),r=new Uint8Array(t.reduce((e,t)=>e+t.length,0)+4*t.length),n=0;for(let e=0;er.slice(s+e,s+t));n[e.name]=h(e,r.slice(s,s+t)),s+=t}return n}async function m(e,t){let r,n=(0,l.sizeFromShape)(e.shape);if("quantization"in e){let t=e.quantization;r=i.DTYPE_VALUE_SIZE_MAP[t.dtype]}else if("string"===e.dtype){let e=0;for(let r=0;r(s=await g(n,s,t)).slice(e,t)),a=(s=await g(n,s,t)).slice(0,t);s=s.slice(t);let o=h(e,a);if(r[e.name]=o,"webgpu"===(0,p.getBackend)()){let e=(0,p.backend)();"uploadToGPU"in e&&(0,l.sizeFromShape)(o.shape)>=(0,c.env)().get("WEBGPU_CPU_HANDOFF_SIZE_THRESHOLD")&&e.uploadToGPU(o.dataId)}}return r}function v(e){if(null===e)throw Error(`Invalid input value: ${JSON.stringify(e)}`);let t=0,r=[];e.forEach(e=>{if(t+=e.byteLength,r.push(e.byteLength===e.buffer.byteLength?e:new e.constructor(e)),!(e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array))throw Error(`Unsupported TypedArray subtype: ${e.constructor.name}`)});let n=new Uint8Array(t),s=0;return r.forEach(e=>{n.set(new Uint8Array(e.buffer),s),s+=e.byteLength}),n.buffer}let y="undefined"!=typeof Buffer&&("undefined"==typeof Blob||"undefined"==typeof atob||"undefined"==typeof btoa);function b(e){return y?Buffer.byteLength(e,"utf8"):new Blob([e]).size}function _(e){if(y)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),r="";for(let e=0,n=t.length;e{let t=e<<13,r=0;for(;(8388608&t)==0;)r-=8388608,t<<=1;return(t&=-8388609)|(r+=0x38800000)},t=new Uint32Array(2048);t[0]=0;for(let r=1;r<1024;r++)t[r]=e(r);for(let e=1024;e<2048;e++)t[e]=0x38000000+(e-1024<<13);return t}(),t=function(){let e=new Uint32Array(64);e[0]=0,e[31]=0x47800000,e[32]=0x80000000,e[63]=0xc7800000;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=0x80000000+(t-32<<23);return e}(),r=function(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}();return n=>{let s=new ArrayBuffer(4*n.length),a=new Uint32Array(s);for(let s=0;s>10]+(1023&o)]+t[o>>10];a[s]=l}return new Float32Array(s)}}},{"../ops/complex":"5ASH6","../ops/tensor":"7c5MK","../util":"icflD","./types":"8bskX","./composite_array_buffer":"d6FlQ","../globals":"kUewM","../environment":"h8BWL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5ASH6":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"complex",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({complex_:function(e,t){let r=(0,l.convertToTensor)(e,"real","complex"),n=(0,l.convertToTensor)(t,"imag","complex");return i.assertShapesMatch(r.shape,n.shape,`real and imag shapes, ${r.shape} and ${n.shape}, must match in call to tf.complex().`),a.ENGINE.runKernel(o.Complex,{real:r,imag:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5isXB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"inferShape",()=>c),s.export(r,"convertToTensor",()=>f),s.export(r,"convertToTensorArray",()=>m);var a=e("./engine"),o=e("./environment"),l=e("./tensor"),i=e("./types"),u=e("./util"),p=e("./util_base");function c(e,t){let r=e;if((0,u.isTypedArray)(e))return"string"===t?[]:[e.length];if((0,i.isWebGLData)(e)){let t=e.channels||"RGBA";return[e.height,e.width*t.length]}if((0,i.isWebGPUData)(e))return[e.buffer.size/(null==t?4:(0,p.bytesPerElement)(t))];if(!Array.isArray(e))return[];let n=[];for(;Array.isArray(r)||(0,u.isTypedArray)(r)&&"string"!==t;)n.push(r.length),r=r[0];return Array.isArray(e)&&(0,o.env)().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&function e(t,r,n){if(n=n||[],!Array.isArray(t)&&!(0,u.isTypedArray)(t))return void(0,u.assert)(0===r.length,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${r[0]} elements`);(0,u.assert)(r.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${t.length} elements`),(0,u.assert)(t.length===r[0],()=>`Element arr[${n.join("][")}] should have ${r[0]} elements, but has ${t.length} elements`);let s=r.slice(1);for(let r=0;r=0&&(s=n),d(n,s,t,r),null==e||!(0,u.isTypedArray)(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e){let n=null==e?"null":e.constructor.name;throw Error(`Argument '${t}' passed to '${r}' must be a Tensor or TensorLike, but got '${n}'`)}let o=c(e,s);(0,u.isTypedArray)(e)||Array.isArray(e)||(e=[e]);let i="string"!==s?(0,u.toTypedArray)(e,s):(0,u.flatten)(e,[],!0);return a.ENGINE.makeTensor(i,o,s)}function m(e,t,r,n="numeric"){if(!Array.isArray(e))throw Error(`Argument ${t} passed to ${r} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map((e,s)=>f(e,`${t}[${s}]`,r,n))}},{"./engine":"c6qwc","./environment":"h8BWL","./tensor":"cfIkd","./types":"huvyT","./util":"icflD","./util_base":"bNQH0","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2me4m":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"OP_SCOPE_SUFFIX",()=>l),s.export(r,"op",()=>i);var a=e("../engine"),o=e("../util");let l="__op";function i(e){let t=Object.keys(e);if(1!==t.length)throw Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let r=t[0],n=e[r];r.endsWith("_")&&(r=r.substring(0,r.length-1));let s=(...e)=>{a.ENGINE.startScope(r);try{let t=n(...e);return(0,o.isPromise)(t)&&console.error("Cannot return a Promise inside of tidy."),a.ENGINE.endScope(t),t}catch(e){throw a.ENGINE.endScope(null),e}};return Object.defineProperty(s,"name",{value:r+=l,configurable:!0}),s}},{"../engine":"c6qwc","../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7c5MK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor",()=>l);var a=e("../tensor_util_env"),o=e("./tensor_ops_util");function l(e,t,r){let n=(0,a.inferShape)(e,r);return(0,o.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"5isXB","./tensor_ops_util":"7gShZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7gShZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"makeTensor",()=>i);var a=e("../engine"),o=e("../types"),l=e("../util");function i(e,t,r,n){if(null==n)n=(0,l.inferDtype)(e);else if("complex64"===n)throw Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if((0,o.isWebGPUData)(e)||(0,o.isWebGLData)(e)){if("float32"!==n&&"int32"!==n)throw Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${n}.`);return a.ENGINE.backend.createTensorFromGPUData(e,t||r,n)}if(!(0,l.isTypedArray)(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e)throw Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(null!=t){(0,l.assertNonNegativeIntegerDimensions)(t);let e=(0,l.sizeFromShape)(t),n=(0,l.sizeFromShape)(r);(0,l.assert)(e===n,()=>`Based on the provided shape, [${t}], the tensor should have ${e} values but has ${n}`);for(let e=0;e`Error creating a new Tensor. Inferred shape (${r}) does not match the provided shape (${t}). `)}}return(0,l.isTypedArray)(e)||Array.isArray(e)||(e=[e]),t=t||r,e="string"!==n?(0,l.toTypedArray)(e,n):(0,l.flatten)(e,[],!0),a.ENGINE.makeTensor(e,t,n)}},{"../engine":"c6qwc","../types":"huvyT","../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8bskX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DTYPE_VALUE_SIZE_MAP",()=>a);let a={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],d6FlQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"CompositeArrayBuffer",()=>o),s.export(r,"search",()=>l);var a=e("../util");class o{static join(e){return new o(e).slice()}constructor(e){if(this.shards=[],this.previousShardIndex=0,null==e||(e instanceof Array||(e=[e]),0===(e=e.map(e=>a.isTypedArray(e)?e.buffer:e)).length))return;this.bufferUniformSize=e[0].byteLength;let t=0;for(let r=0;r=this.byteLength)return -1;if(null!=this.bufferUniformSize)return this.previousShardIndex=Math.floor(e/this.bufferUniformSize),this.previousShardIndex;function t(t){return e=t.end)}if(0===t(this.shards[this.previousShardIndex]))return this.previousShardIndex;let r=l(this.shards,t);return -1===r?-1:(this.previousShardIndex=r,this.previousShardIndex)}}function l(e,t){let r=0,n=e.length;for(;r<=n;){let s=Math.floor((n-r)/2)+r,a=t(e[s]);if(0===a)return s;a<0?n=s:r=s+1}return -1}},{"../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kUewM:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"enableProdMode",()=>u),s.export(r,"enableDebugMode",()=>p),s.export(r,"disableDeprecationWarnings",()=>c),s.export(r,"deprecationWarn",()=>d),s.export(r,"disposeVariables",()=>f),s.export(r,"engine",()=>m),s.export(r,"memory",()=>h),s.export(r,"profile",()=>g),s.export(r,"tidy",()=>x),s.export(r,"dispose",()=>v),s.export(r,"keep",()=>y),s.export(r,"time",()=>b),s.export(r,"setBackend",()=>_),s.export(r,"ready",()=>k),s.export(r,"getBackend",()=>j),s.export(r,"removeBackend",()=>I),s.export(r,"findBackend",()=>w),s.export(r,"findBackendFactory",()=>T),s.export(r,"registerBackend",()=>N),s.export(r,"backend",()=>S),s.export(r,"setPlatform",()=>C);var a=e("./engine"),o=e("./environment"),l=e("./tensor"),i=e("./tensor_util");function u(){(0,o.env)().set("PROD",!0)}function p(){(0,o.env)().set("DEBUG",!0)}function c(){(0,o.env)().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function d(e){(0,o.env)().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}function f(){a.ENGINE.disposeVariables()}function m(){return a.ENGINE}function h(){return a.ENGINE.memory()}function g(e){return a.ENGINE.profile(e)}function x(e,t){return a.ENGINE.tidy(e,t)}function v(e){(0,i.getTensorsInContainer)(e).forEach(e=>e.dispose())}function y(e){return a.ENGINE.keep(e)}function b(e){return a.ENGINE.time(e)}function _(e){return a.ENGINE.setBackend(e)}function k(){return a.ENGINE.ready()}function j(){return a.ENGINE.backendName}function I(e){a.ENGINE.removeBackend(e)}function w(e){return a.ENGINE.findBackend(e)}function T(e){return a.ENGINE.findBackendFactory(e)}function N(e,t,r=1){return a.ENGINE.registerBackend(e,t,r)}function S(){return a.ENGINE.backend}function C(e,t){(0,o.env)().setPlatform(e,t)}(0,l.setDeprecationWarningFn)(d)},{"./engine":"c6qwc","./environment":"h8BWL","./tensor":"cfIkd","./tensor_util":"7PL4y","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],luXuJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"IORouterRegistry",()=>a),s.export(r,"registerSaveRouter",()=>o),s.export(r,"registerLoadRouter",()=>l),s.export(r,"getSaveHandlers",()=>i),s.export(r,"getLoadHandlers",()=>u);class a{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return null==a.instance&&(a.instance=new a),a.instance}static registerSaveRouter(e){a.getInstance().saveRouters.push(e)}static registerLoadRouter(e){a.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return a.getHandlers(e,"save")}static getLoadHandlers(e,t){return a.getHandlers(e,"load",t)}static getHandlers(e,t,r){let n=[];return("load"===t?a.getInstance().loadRouters:a.getInstance().saveRouters).forEach(t=>{let s=t(e,r);null!==s&&n.push(s)}),n}}let o=e=>a.registerSaveRouter(e),l=e=>a.registerLoadRouter(e),i=e=>a.getSaveHandlers(e),u=(e,t)=>a.getLoadHandlers(e,t)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fYfpb:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"purgeLocalStorageArtifacts",()=>d),s.export(r,"BrowserLocalStorage",()=>g),s.export(r,"localStorageRouter",()=>x),s.export(r,"browserLocalStorage",()=>v),s.export(r,"BrowserLocalStorageManager",()=>y),e("../flags");var a=e("../environment"),o=e("../util"),l=e("./io_utils"),i=e("./composite_array_buffer"),u=e("./router_registry");let p="tensorflowjs_models",c="info";function d(){if(!(0,a.env)().getBool("IS_BROWSER")||"undefined"==typeof window||void 0===window.localStorage)throw Error("purgeLocalStorageModels() cannot proceed because local storage is unavailable in the current environment.");let e=window.localStorage,t=[];for(let r=0;rs.length){e.removeItem(n);let r=h(n);-1===t.indexOf(r)&&t.push(r)}}return t}function f(e){return{info:[p,e,c].join("/"),topology:[p,e,"model_topology"].join("/"),weightSpecs:[p,e,"weight_specs"].join("/"),weightData:[p,e,"weight_data"].join("/"),modelMetadata:[p,e,"model_metadata"].join("/")}}function m(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function h(e){let t=e.split("/");if(t.length<3)throw Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join("/")}class g{constructor(e){if(!(0,a.env)().getBool("IS_BROWSER")||"undefined"==typeof window||void 0===window.localStorage)throw Error("The current environment does not support local storage.");if(this.LS=window.localStorage,null==e||!e)throw Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=f(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let t=JSON.stringify(e.modelTopology),r=JSON.stringify(e.weightSpecs),n=(0,l.getModelArtifactsInfoForJSON)(e),s=i.CompositeArrayBuffer.join(e.weightData);try{this.LS.setItem(this.keys.info,JSON.stringify(n)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,r),this.LS.setItem(this.keys.weightData,(0,l.arrayBufferToBase64String)(s));let a={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,signature:null!=e.signature?e.signature:void 0,userDefinedMetadata:null!=e.userDefinedMetadata?e.userDefinedMetadata:void 0,modelInitializer:null!=e.modelInitializer?e.modelInitializer:void 0,initializerSignature:null!=e.initializerSignature?e.initializerSignature:void 0,trainingConfig:null!=e.trainingConfig?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(a)),{modelArtifactsInfo:n}}catch(e){throw m(this.keys),Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${n.modelTopologyBytes}, weightSpecsBytes=${n.weightSpecsBytes}, weightDataBytes=${n.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(null==e)throw Error(`In local storage, there is no model with name '${this.modelPath}'`);if("JSON"!==e.modelTopologyType)throw Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},r=JSON.parse(this.LS.getItem(this.keys.topology));if(null==r)throw Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=r;let n=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(null==n)throw Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=n;let s=this.LS.getItem(this.keys.modelMetadata);if(null!=s){let e=JSON.parse(s);t.format=e.format,t.generatedBy=e.generatedBy,t.convertedBy=e.convertedBy,null!=e.signature&&(t.signature=e.signature),null!=e.userDefinedMetadata&&(t.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(t.modelInitializer=e.modelInitializer),null!=e.initializerSignature&&(t.initializerSignature=e.initializerSignature),null!=e.trainingConfig&&(t.trainingConfig=e.trainingConfig)}let a=this.LS.getItem(this.keys.weightData);if(null==a)throw Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=(0,l.base64StringToArrayBuffer)(a),t}}g.URL_SCHEME="localstorage://";let x=e=>(0,a.env)().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(g.URL_SCHEME)?v(e.slice(g.URL_SCHEME.length)):null;function v(e){return new g(e)}u.IORouterRegistry.registerSaveRouter(x),u.IORouterRegistry.registerLoadRouter(x);class y{constructor(){(0,o.assert)((0,a.env)().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),(0,o.assert)("undefined"==typeof window||void 0!==window.localStorage,()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=p+"/",r="/"+c;for(let n=0;nl),s.export(r,"moveModel",()=>f),s.export(r,"copyModel",()=>d),s.export(r,"removeModel",()=>c),s.export(r,"listModels",()=>p);var a=e("../util"),o=e("./router_registry");class l{constructor(){this.managers={}}static getInstance(){return null==l.instance&&(l.instance=new l),l.instance}static registerManager(e,t){(0,a.assert)(null!=e,()=>"scheme must not be undefined or null."),e.endsWith("://")&&(e=e.slice(0,e.indexOf("://"))),(0,a.assert)(e.length>0,()=>"scheme must not be an empty string.");let r=l.getInstance();(0,a.assert)(null==r.managers[e],()=>`A model store manager is already registered for scheme '${e}'.`),r.managers[e]=t}static getManager(e){let t=l.getInstance().managers[e];if(null==t)throw Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(l.getInstance().managers)}}function i(e){if(-1===e.indexOf("://"))throw Error(`The url string provided does not contain a scheme. Supported schemes are: ${l.getSchemes().join(",")}`);return{scheme:e.split("://")[0],path:e.split("://")[1]}}async function u(e,t,r=!1){(0,a.assert)(e!==t,()=>`Old path and new path are the same: '${e}'`);let n=o.IORouterRegistry.getLoadHandlers(e);(0,a.assert)(n.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),(0,a.assert)(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${e}.`);let s=n[0],p=o.IORouterRegistry.getSaveHandlers(t);(0,a.assert)(p.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),(0,a.assert)(p.length<2,()=>`Copying failed because more than one (${n.length}) save handlers for destination URL ${t}.`);let c=p[0],d=i(e).scheme,f=i(e).path,m=d===i(e).scheme,h=await s.load();r&&m&&await l.getManager(d).removeModel(f);let g=await c.save(h);return r&&!m&&await l.getManager(d).removeModel(f),g.modelArtifactsInfo}async function p(){let e=l.getSchemes(),t={};for(let r of e){let e=await l.getManager(r).listModels();for(let n in e)t[r+"://"+n]=e[n]}return t}async function c(e){let t=i(e);return l.getManager(t.scheme).removeModel(t.path)}async function d(e,t){return u(e,t,!1)}async function f(e,t){return u(e,t,!0)}},{"../util":"icflD","./router_registry":"luXuJ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],a3UX5:[function(e,t,r,n){let s;var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"getNodeFetch",()=>l),a.export(r,"resetSystemFetch",()=>i),a.export(r,"setSystemFetch",()=>u),a.export(r,"getSystemFetch",()=>p),a.export(r,"PlatformNode",()=>c);var o=e("../environment");let l={importFetch:()=>e("dfcdb939bb56fbb8")};function i(){s=null}function u(e){s=e}function p(){return s}class c{constructor(){this.util=e("3818a9dc927c4605"),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return null!=(0,o.env)().global.fetch?(0,o.env)().global.fetch(e,t):(null==s&&(s=l.importFetch()),s(e,t))}now(){let e=process.hrtime();return 1e3*e[0]+e[1]/1e6}encode(e,t){if("utf-8"!==t&&"utf8"!==t)throw Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return 0===e.length?"":new this.util.TextDecoder(t).decode(e)}isTypedArray(e){return this.util.types.isFloat32Array(e)||this.util.types.isInt32Array(e)||this.util.types.isUint8Array(e)||this.util.types.isUint8ClampedArray(e)}}(0,o.env)().get("IS_NODE")&&!(0,o.env)().get("IS_BROWSER")&&(0,o.env)().setPlatform("node",new c)},{"../environment":"h8BWL",dfcdb939bb56fbb8:"9xOkC","3818a9dc927c4605":"9xOkC","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9xOkC":[function(e,t,r,n){},{}],"1EiiB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"buffer",()=>l);var a=e("../tensor"),o=e("../util");function l(e,t="float32",r){return t=t||"float32",o.assertNonNegativeIntegerDimensions(e),new(0,a.TensorBuffer)(e,t,r)}},{"../tensor":"cfIkd","../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],juFUN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cast",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({cast_:function(e,t){let r=(0,l.convertToTensor)(e,"x","cast");if(!i.isValidDtype(t))throw Error(`Failed to cast to unknown dtype ${t}`);if("string"===t&&"string"!==r.dtype||"string"!==t&&"string"===r.dtype)throw Error("Only strings can be casted to strings");return a.ENGINE.runKernel(o.Cast,{x:r},{dtype:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lH8Rn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"clone",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({clone_:function(e){let t=(0,l.convertToTensor)(e,"x","clone","string_or_numeric");return a.ENGINE.runKernel(o.Identity,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],l1jud:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t=!1){console.log(e.toString(t))}s.defineInteropFlag(r),s.export(r,"print",()=>a)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1NAAy":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"registerOptimizers",()=>m);var a=e("./adadelta_optimizer"),o=e("./adagrad_optimizer"),l=e("./adam_optimizer"),i=e("./adamax_optimizer"),u=e("./momentum_optimizer"),p=e("./rmsprop_optimizer"),c=e("./sgd_optimizer"),d=e("../serialization");let f=[a.AdadeltaOptimizer,o.AdagradOptimizer,l.AdamOptimizer,i.AdamaxOptimizer,u.MomentumOptimizer,p.RMSPropOptimizer,c.SGDOptimizer];function m(){for(let e of f)(0,d.registerClass)(e)}},{"./adadelta_optimizer":"j1AeL","./adagrad_optimizer":"4w9Rg","./adam_optimizer":"f7FpJ","./adamax_optimizer":"aoq0y","./momentum_optimizer":"68FSY","./rmsprop_optimizer":"jahoj","./sgd_optimizer":"h6aU6","../serialization":"3f8fL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],j1AeL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AdadeltaOptimizer",()=>m);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/div"),u=e("../ops/mul"),p=e("../ops/ops"),c=e("../ops/square"),d=e("../ops/zeros_like"),f=e("./optimizer");class m extends f.Optimizer{static get className(){return"Adadelta"}constructor(e,t,r=null){super(),this.learningRate=e,this.rho=t,this.epsilon=r,this.accumulatedGrads=[],this.accumulatedUpdates=[],null==r&&(this.epsilon=a.ENGINE.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(e=>e.name):Object.keys(e)).forEach((t,r)=>{let n=a.ENGINE.registeredVariables[t];null==this.accumulatedGrads[r]&&(this.accumulatedGrads[r]={originalName:`${t}/accum_grad`,variable:(0,o.tidy)(()=>(0,d.zerosLike)(n).variable(!1))}),null==this.accumulatedUpdates[r]&&(this.accumulatedUpdates[r]={originalName:`${t}/accum_var`,variable:(0,o.tidy)(()=>(0,d.zerosLike)(n).variable(!1))});let s=Array.isArray(e)?e[r].tensor:e[t];if(null==s)return;let f=this.accumulatedGrads[r].variable,m=this.accumulatedUpdates[r].variable;(0,o.tidy)(()=>{let e=(0,l.add)((0,u.mul)(f,this.rho),(0,u.mul)((0,c.square)(s),1-this.rho)),t=(0,u.mul)((0,i.div)((0,p.sqrt)((0,l.add)(m,this.epsilon)),(0,p.sqrt)((0,l.add)(f,this.epsilon))),s),r=(0,l.add)((0,u.mul)(m,this.rho),(0,u.mul)((0,c.square)(t),1-this.rho));f.assign(e),m.assign(r);let a=(0,l.add)((0,u.mul)(t,-this.learningRate),n);n.assign(a)})}),this.incrementIterations()}dispose(){null!=this.accumulatedUpdates&&((0,o.dispose)(this.accumulatedGrads.map(e=>e.variable)),(0,o.dispose)(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){let t=(e=await this.extractIterations(e)).length/2;this.accumulatedGrads=e.slice(0,t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)})),this.accumulatedUpdates=e.slice(t,2*t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}}},{"../engine":"c6qwc","../globals":"kUewM","../ops/add":"dX80O","../ops/div":"lbTan","../ops/mul":"3233B","../ops/ops":"165HQ","../ops/square":"kNrd2","../ops/zeros_like":"1peA5","./optimizer":"kmErF","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dX80O:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"add",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({add_:function(e,t){let r=(0,i.convertToTensor)(e,"a","add"),n=(0,i.convertToTensor)(t,"b","add");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Add,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lbTan:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"div",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./floorDiv");let p=(0,e("./operation").op)({div_:function(e,t){let r=(0,i.convertToTensor)(e,"a","div"),n=(0,i.convertToTensor)(t,"b","div");if([r,n]=(0,l.makeTypesMatch)(r,n),"int32"===r.dtype&&"int32"===n.dtype)return(0,u.floorDiv)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.RealDiv,s,{})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./floorDiv":"hd4UF","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hd4UF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floorDiv",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({floorDiv_:function(e,t){let r=(0,i.convertToTensor)(e,"a","floorDiv"),n=(0,i.convertToTensor)(t,"b","floorDiv");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.FloorDiv,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3233B":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mul",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({mul_:function(e,t){let r=(0,i.convertToTensor)(e,"a","mul"),n=(0,i.convertToTensor)(t,"b","mul");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Multiply,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"165HQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"abs",()=>a.abs),s.export(r,"acos",()=>o.acos),s.export(r,"acosh",()=>l.acosh),s.export(r,"add",()=>i.add),s.export(r,"addN",()=>u.addN),s.export(r,"all",()=>p.all),s.export(r,"any",()=>c.any),s.export(r,"argMax",()=>d.argMax),s.export(r,"argMin",()=>f.argMin),s.export(r,"asin",()=>m.asin),s.export(r,"asinh",()=>h.asinh),s.export(r,"atan",()=>g.atan),s.export(r,"atan2",()=>x.atan2),s.export(r,"atanh",()=>v.atanh),s.export(r,"avgPool",()=>y.avgPool),s.export(r,"avgPool3d",()=>b.avgPool3d),s.export(r,"basicLSTMCell",()=>_.basicLSTMCell),s.export(r,"batchToSpaceND",()=>k.batchToSpaceND),s.export(r,"batchNorm",()=>j.batchNorm),s.export(r,"batchNorm2d",()=>I.batchNorm2d),s.export(r,"batchNorm3d",()=>w.batchNorm3d),s.export(r,"batchNorm4d",()=>T.batchNorm4d),s.export(r,"bincount",()=>N.bincount),s.export(r,"bitwiseAnd",()=>S.bitwiseAnd),s.export(r,"broadcastArgs",()=>C.broadcastArgs),s.export(r,"broadcastTo",()=>E.broadcastTo),s.export(r,"buffer",()=>F.buffer),s.export(r,"cast",()=>A.cast),s.export(r,"ceil",()=>R.ceil),s.export(r,"clipByValue",()=>P.clipByValue),s.export(r,"clone",()=>D.clone),s.export(r,"complex",()=>$.complex),s.export(r,"concat",()=>O.concat),s.export(r,"concat1d",()=>M.concat1d),s.export(r,"concat2d",()=>W.concat2d),s.export(r,"concat3d",()=>B.concat3d),s.export(r,"concat4d",()=>L.concat4d),s.export(r,"conv1d",()=>V.conv1d),s.export(r,"conv2d",()=>U.conv2d),s.export(r,"conv2dTranspose",()=>G.conv2dTranspose),s.export(r,"conv3d",()=>z.conv3d),s.export(r,"conv3dTranspose",()=>Q.conv3dTranspose),s.export(r,"cos",()=>q.cos),s.export(r,"cosh",()=>H.cosh),s.export(r,"cumprod",()=>K.cumprod),s.export(r,"cumsum",()=>X.cumsum),s.export(r,"denseBincount",()=>Y.denseBincount),s.export(r,"depthToSpace",()=>J.depthToSpace),s.export(r,"depthwiseConv2d",()=>Z.depthwiseConv2d),s.export(r,"diag",()=>ee.diag),s.export(r,"dilation2d",()=>et.dilation2d),s.export(r,"div",()=>er.div),s.export(r,"divNoNan",()=>en.divNoNan),s.export(r,"dot",()=>es.dot),s.export(r,"einsum",()=>ea.einsum),s.export(r,"elu",()=>eo.elu),s.export(r,"ensureShape",()=>el.ensureShape),s.export(r,"equal",()=>ei.equal),s.export(r,"erf",()=>eu.erf),s.export(r,"euclideanNorm",()=>ep.euclideanNorm),s.export(r,"exp",()=>ec.exp),s.export(r,"expandDims",()=>ed.expandDims),s.export(r,"expm1",()=>ef.expm1),s.export(r,"eye",()=>em.eye),s.export(r,"fill",()=>eh.fill),s.export(r,"floor",()=>eg.floor),s.export(r,"floorDiv",()=>ex.floorDiv),s.export(r,"gather",()=>ev.gather),s.export(r,"greater",()=>ey.greater),s.export(r,"greaterEqual",()=>eb.greaterEqual),s.export(r,"imag",()=>e_.imag),s.export(r,"isFinite",()=>ek.isFinite),s.export(r,"isInf",()=>ej.isInf),s.export(r,"isNaN",()=>eI.isNaN),s.export(r,"leakyRelu",()=>ew.leakyRelu),s.export(r,"less",()=>eT.less),s.export(r,"lessEqual",()=>eN.lessEqual),s.export(r,"linspace",()=>eS.linspace),s.export(r,"localResponseNormalization",()=>eC.localResponseNormalization),s.export(r,"log",()=>eE.log),s.export(r,"log1p",()=>eF.log1p),s.export(r,"logSigmoid",()=>eA.logSigmoid),s.export(r,"logSoftmax",()=>eR.logSoftmax),s.export(r,"logSumExp",()=>eP.logSumExp),s.export(r,"logicalAnd",()=>eD.logicalAnd),s.export(r,"logicalNot",()=>e$.logicalNot),s.export(r,"logicalOr",()=>eO.logicalOr),s.export(r,"logicalXor",()=>eM.logicalXor),s.export(r,"lowerBound",()=>eW.lowerBound),s.export(r,"matMul",()=>eB.matMul),s.export(r,"max",()=>eL.max),s.export(r,"maxPool",()=>eV.maxPool),s.export(r,"maxPool3d",()=>eU.maxPool3d),s.export(r,"maxPoolWithArgmax",()=>eG.maxPoolWithArgmax),s.export(r,"maximum",()=>ez.maximum),s.export(r,"mean",()=>eQ.mean),s.export(r,"meshgrid",()=>eq.meshgrid),s.export(r,"min",()=>eH.min),s.export(r,"minimum",()=>eK.minimum),s.export(r,"mirrorPad",()=>eX.mirrorPad),s.export(r,"mod",()=>eY.mod),s.export(r,"moments",()=>eJ.moments),s.export(r,"mul",()=>eZ.mul),s.export(r,"multiRNNCell",()=>e0.multiRNNCell),s.export(r,"multinomial",()=>e1.multinomial),s.export(r,"neg",()=>e2.neg),s.export(r,"notEqual",()=>e3.notEqual),s.export(r,"oneHot",()=>e5.oneHot),s.export(r,"ones",()=>e4.ones),s.export(r,"onesLike",()=>e6.onesLike),s.export(r,"outerProduct",()=>e8.outerProduct),s.export(r,"pad",()=>e9.pad),s.export(r,"pad1d",()=>e7.pad1d),s.export(r,"pad2d",()=>te.pad2d),s.export(r,"pad3d",()=>tt.pad3d),s.export(r,"pad4d",()=>tr.pad4d),s.export(r,"pool",()=>tn.pool),s.export(r,"pow",()=>ts.pow),s.export(r,"prelu",()=>ta.prelu),s.export(r,"print",()=>to.print),s.export(r,"prod",()=>tl.prod),s.export(r,"raggedGather",()=>ti.raggedGather),s.export(r,"raggedRange",()=>tu.raggedRange),s.export(r,"raggedTensorToTensor",()=>tp.raggedTensorToTensor),s.export(r,"rand",()=>tc.rand),s.export(r,"randomGamma",()=>td.randomGamma),s.export(r,"randomNormal",()=>tf.randomNormal),s.export(r,"randomStandardNormal",()=>tm.randomStandardNormal),s.export(r,"randomUniform",()=>th.randomUniform),s.export(r,"randomUniformInt",()=>tg.randomUniformInt),s.export(r,"range",()=>tx.range),s.export(r,"real",()=>tv.real),s.export(r,"reciprocal",()=>ty.reciprocal),s.export(r,"relu",()=>tb.relu),s.export(r,"relu6",()=>t_.relu6),s.export(r,"reshape",()=>tk.reshape),s.export(r,"reverse",()=>tj.reverse),s.export(r,"reverse1d",()=>tI.reverse1d),s.export(r,"reverse2d",()=>tw.reverse2d),s.export(r,"reverse3d",()=>tT.reverse3d),s.export(r,"reverse4d",()=>tN.reverse4d),s.export(r,"round",()=>tS.round),s.export(r,"rsqrt",()=>tC.rsqrt),s.export(r,"scalar",()=>tE.scalar),s.export(r,"selu",()=>tF.selu),s.export(r,"separableConv2d",()=>tA.separableConv2d),s.export(r,"setdiff1dAsync",()=>tR.setdiff1dAsync),s.export(r,"sigmoid",()=>tP.sigmoid),s.export(r,"sign",()=>tD.sign),s.export(r,"sin",()=>t$.sin),s.export(r,"sinh",()=>tO.sinh),s.export(r,"slice",()=>tM.slice),s.export(r,"slice1d",()=>tW.slice1d),s.export(r,"slice2d",()=>tB.slice2d),s.export(r,"slice3d",()=>tL.slice3d),s.export(r,"slice4d",()=>tV.slice4d),s.export(r,"softmax",()=>tU.softmax),s.export(r,"softplus",()=>tG.softplus),s.export(r,"spaceToBatchND",()=>tz.spaceToBatchND),s.export(r,"fft",()=>tQ.fft),s.export(r,"ifft",()=>tq.ifft),s.export(r,"irfft",()=>tH.irfft),s.export(r,"rfft",()=>tK.rfft),s.export(r,"split",()=>tX.split),s.export(r,"sqrt",()=>tY.sqrt),s.export(r,"square",()=>tJ.square),s.export(r,"squaredDifference",()=>tZ.squaredDifference),s.export(r,"squeeze",()=>t0.squeeze),s.export(r,"stack",()=>t1.stack),s.export(r,"step",()=>t2.step),s.export(r,"stridedSlice",()=>t3.stridedSlice),s.export(r,"sub",()=>t5.sub),s.export(r,"sum",()=>t4.sum),s.export(r,"tan",()=>t6.tan),s.export(r,"tanh",()=>t8.tanh),s.export(r,"tensor",()=>t9.tensor),s.export(r,"tensor1d",()=>t7.tensor1d),s.export(r,"tensor2d",()=>re.tensor2d),s.export(r,"tensor3d",()=>rt.tensor3d),s.export(r,"tensor4d",()=>rr.tensor4d),s.export(r,"tensor5d",()=>rn.tensor5d),s.export(r,"tensor6d",()=>rs.tensor6d),s.export(r,"tensorScatterUpdate",()=>ra.tensorScatterUpdate),s.export(r,"tile",()=>ro.tile),s.export(r,"topk",()=>rl.topk),s.export(r,"truncatedNormal",()=>ri.truncatedNormal),s.export(r,"unique",()=>ru.unique),s.export(r,"unsortedSegmentSum",()=>rp.unsortedSegmentSum),s.export(r,"unstack",()=>rc.unstack),s.export(r,"upperBound",()=>rd.upperBound),s.export(r,"variable",()=>rf.variable),s.export(r,"where",()=>rm.where),s.export(r,"whereAsync",()=>rh.whereAsync),s.export(r,"zeros",()=>rg.zeros),s.export(r,"zerosLike",()=>rx.zerosLike),s.export(r,"op",()=>rC.op),s.export(r,"OP_SCOPE_SUFFIX",()=>rC.OP_SCOPE_SUFFIX),s.export(r,"image",()=>ni),s.export(r,"linalg",()=>nu),s.export(r,"losses",()=>np),s.export(r,"spectral",()=>no),s.export(r,"fused",()=>rE),s.export(r,"signal",()=>nl),s.export(r,"sparse",()=>nc),s.export(r,"string",()=>nd);var a=e("./abs"),o=e("./acos"),l=e("./acosh"),i=e("./add"),u=e("./add_n"),p=e("./all"),c=e("./any"),d=e("./arg_max"),f=e("./arg_min"),m=e("./asin"),h=e("./asinh"),g=e("./atan"),x=e("./atan2"),v=e("./atanh"),y=e("./avg_pool"),b=e("./avg_pool_3d"),_=e("./basic_lstm_cell"),k=e("./batch_to_space_nd"),j=e("./batchnorm"),I=e("./batchnorm2d"),w=e("./batchnorm3d"),T=e("./batchnorm4d"),N=e("./bincount"),S=e("./bitwise_and"),C=e("./broadcast_args"),E=e("./broadcast_to"),F=e("./buffer"),A=e("./cast"),R=e("./ceil"),P=e("./clip_by_value"),D=e("./clone"),$=e("./complex"),O=e("./concat"),M=e("./concat_1d"),W=e("./concat_2d"),B=e("./concat_3d"),L=e("./concat_4d"),V=e("./conv1d"),U=e("./conv2d"),G=e("./conv2d_transpose"),z=e("./conv3d"),Q=e("./conv3d_transpose"),q=e("./cos"),H=e("./cosh"),K=e("./cumprod"),X=e("./cumsum"),Y=e("./dense_bincount"),J=e("./depth_to_space"),Z=e("./depthwise_conv2d"),ee=e("./diag"),et=e("./dilation2d"),er=e("./div"),en=e("./div_no_nan"),es=e("./dot"),ea=e("./einsum"),eo=e("./elu"),el=e("./ensure_shape"),ei=e("./equal"),eu=e("./erf"),ep=e("./euclidean_norm"),ec=e("./exp"),ed=e("./expand_dims"),ef=e("./expm1"),em=e("./eye"),eh=e("./fill"),eg=e("./floor"),ex=e("./floorDiv"),ev=e("./gather"),ey=e("./greater"),eb=e("./greater_equal"),e_=e("./imag"),ek=e("./is_finite"),ej=e("./is_inf"),eI=e("./is_nan"),ew=e("./leaky_relu"),eT=e("./less"),eN=e("./less_equal"),eS=e("./linspace"),eC=e("./local_response_normalization"),eE=e("./log"),eF=e("./log1p"),eA=e("./log_sigmoid"),eR=e("./log_softmax"),eP=e("./log_sum_exp"),eD=e("./logical_and"),e$=e("./logical_not"),eO=e("./logical_or"),eM=e("./logical_xor"),eW=e("./lower_bound"),eB=e("./mat_mul"),eL=e("./max"),eV=e("./max_pool"),eU=e("./max_pool_3d"),eG=e("./max_pool_with_argmax"),ez=e("./maximum"),eQ=e("./mean"),eq=e("./meshgrid"),eH=e("./min"),eK=e("./minimum"),eX=e("./mirror_pad"),eY=e("./mod"),eJ=e("./moments"),eZ=e("./mul"),e0=e("./multi_rnn_cell"),e1=e("./multinomial"),e2=e("./neg"),e3=e("./not_equal"),e5=e("./one_hot"),e4=e("./ones"),e6=e("./ones_like"),e8=e("./outer_product"),e9=e("./pad"),e7=e("./pad1d"),te=e("./pad2d"),tt=e("./pad3d"),tr=e("./pad4d"),tn=e("./pool"),ts=e("./pow"),ta=e("./prelu"),to=e("./print"),tl=e("./prod"),ti=e("./ragged_gather"),tu=e("./ragged_range"),tp=e("./ragged_tensor_to_tensor"),tc=e("./rand"),td=e("./random_gamma"),tf=e("./random_normal"),tm=e("./random_standard_normal"),th=e("./random_uniform"),tg=e("./random_uniform_int"),tx=e("./range"),tv=e("./real"),ty=e("./reciprocal"),tb=e("./relu"),t_=e("./relu6"),tk=e("./reshape"),tj=e("./reverse"),tI=e("./reverse_1d"),tw=e("./reverse_2d"),tT=e("./reverse_3d"),tN=e("./reverse_4d"),tS=e("./round"),tC=e("./rsqrt"),tE=e("./scalar"),tF=e("./selu"),tA=e("./separable_conv2d"),tR=e("./setdiff1d_async"),tP=e("./sigmoid"),tD=e("./sign"),t$=e("./sin"),tO=e("./sinh"),tM=e("./slice"),tW=e("./slice1d"),tB=e("./slice2d"),tL=e("./slice3d"),tV=e("./slice4d"),tU=e("./softmax"),tG=e("./softplus"),tz=e("./space_to_batch_nd"),tQ=e("./spectral/fft"),tq=e("./spectral/ifft"),tH=e("./spectral/irfft"),tK=e("./spectral/rfft"),tX=e("./split"),tY=e("./sqrt"),tJ=e("./square"),tZ=e("./squared_difference"),t0=e("./squeeze"),t1=e("./stack"),t2=e("./step"),t3=e("./strided_slice"),t5=e("./sub"),t4=e("./sum"),t6=e("./tan"),t8=e("./tanh"),t9=e("./tensor"),t7=e("./tensor1d"),re=e("./tensor2d"),rt=e("./tensor3d"),rr=e("./tensor4d"),rn=e("./tensor5d"),rs=e("./tensor6d"),ra=e("./tensor_scatter_update"),ro=e("./tile"),rl=e("./topk"),ri=e("./truncated_normal"),ru=e("./unique"),rp=e("./unsorted_segment_sum"),rc=e("./unstack"),rd=e("./upper_bound"),rf=e("./variable"),rm=e("./where"),rh=e("./where_async"),rg=e("./zeros"),rx=e("./zeros_like"),rv=e("./boolean_mask");s.exportAll(rv,r);var ry=e("./transpose");s.exportAll(ry,r);var rb=e("./norm");s.exportAll(rb,r);var r_=e("./moving_average");s.exportAll(r_,r);var rk=e("./scatter_nd");s.exportAll(rk,r);var rj=e("./search_sorted");s.exportAll(rj,r);var rI=e("./sparse_to_dense");s.exportAll(rI,r);var rw=e("./gather_nd");s.exportAll(rw,r);var rT=e("./dropout");s.exportAll(rT,r);var rN=e("./signal_ops_util");s.exportAll(rN,r);var rS=e("./in_top_k");s.exportAll(rS,r);var rC=e("./operation"),rE=e("./fused_ops"),rF=e("./signal/hamming_window"),rA=e("./signal/hann_window"),rR=e("./signal/frame"),rP=e("./signal/stft"),rD=e("./image/crop_and_resize"),r$=e("./image/flip_left_right"),rO=e("./image/grayscale_to_rgb"),rM=e("./image/rgb_to_grayscale"),rW=e("./image/rotate_with_offset"),rB=e("./image/non_max_suppression"),rL=e("./image/non_max_suppression_async"),rV=e("./image/non_max_suppression_with_score"),rU=e("./image/non_max_suppression_with_score_async"),rG=e("./image/non_max_suppression_padded"),rz=e("./image/non_max_suppression_padded_async"),rQ=e("./image/resize_bilinear"),rq=e("./image/resize_nearest_neighbor"),rH=e("./image/threshold"),rK=e("./image/transform"),rX=e("./linalg/band_part"),rY=e("./linalg/gram_schmidt"),rJ=e("./linalg/qr"),rZ=e("./losses/absolute_difference"),r0=e("./losses/compute_weighted_loss"),r1=e("./losses/cosine_distance"),r2=e("./losses/hinge_loss"),r3=e("./losses/huber_loss"),r5=e("./losses/log_loss"),r4=e("./losses/mean_squared_error"),r6=e("./losses/sigmoid_cross_entropy"),r8=e("./losses/softmax_cross_entropy"),r9=e("./sparse/sparse_fill_empty_rows"),r7=e("./sparse/sparse_reshape"),ne=e("./sparse/sparse_segment_mean"),nt=e("./sparse/sparse_segment_sum"),nr=e("./string/string_n_grams"),nn=e("./string/string_split"),ns=e("./string/string_to_hash_bucket_fast"),na=e("./string/static_regex_replace");let no={fft:tQ.fft,ifft:tq.ifft,rfft:tK.rfft,irfft:tH.irfft},nl={hammingWindow:rF.hammingWindow,hannWindow:rA.hannWindow,frame:rR.frame,stft:rP.stft},ni={flipLeftRight:r$.flipLeftRight,grayscaleToRGB:rO.grayscaleToRGB,resizeNearestNeighbor:rq.resizeNearestNeighbor,resizeBilinear:rQ.resizeBilinear,rgbToGrayscale:rM.rgbToGrayscale,rotateWithOffset:rW.rotateWithOffset,cropAndResize:rD.cropAndResize,nonMaxSuppression:rB.nonMaxSuppression,nonMaxSuppressionAsync:rL.nonMaxSuppressionAsync,nonMaxSuppressionWithScore:rV.nonMaxSuppressionWithScore,nonMaxSuppressionWithScoreAsync:rU.nonMaxSuppressionWithScoreAsync,nonMaxSuppressionPadded:rG.nonMaxSuppressionPadded,nonMaxSuppressionPaddedAsync:rz.nonMaxSuppressionPaddedAsync,threshold:rH.threshold,transform:rK.transform},nu={bandPart:rX.bandPart,gramSchmidt:rY.gramSchmidt,qr:rJ.qr},np={absoluteDifference:rZ.absoluteDifference,computeWeightedLoss:r0.computeWeightedLoss,cosineDistance:r1.cosineDistance,hingeLoss:r2.hingeLoss,huberLoss:r3.huberLoss,logLoss:r5.logLoss,meanSquaredError:r4.meanSquaredError,sigmoidCrossEntropy:r6.sigmoidCrossEntropy,softmaxCrossEntropy:r8.softmaxCrossEntropy},nc={sparseFillEmptyRows:r9.sparseFillEmptyRows,sparseReshape:r7.sparseReshape,sparseSegmentMean:ne.sparseSegmentMean,sparseSegmentSum:nt.sparseSegmentSum},nd={stringNGrams:nr.stringNGrams,stringSplit:nn.stringSplit,stringToHashBucketFast:ns.stringToHashBucketFast,staticRegexReplace:na.staticRegexReplace}},{"./abs":"9L54v","./acos":"3F3Au","./acosh":"e95zu","./add":"dX80O","./add_n":"5lntY","./all":"aCEYc","./any":"b6liB","./arg_max":"8W1JY","./arg_min":"1RlxL","./asin":"4OGEM","./asinh":"dvHGj","./atan":"2RiRW","./atan2":"8Y0P5","./atanh":"5WGMQ","./avg_pool":"jw2jw","./avg_pool_3d":"3n4qA","./basic_lstm_cell":"7RBRT","./batch_to_space_nd":"48Xl7","./batchnorm":"7fvnN","./batchnorm2d":"jQqu2","./batchnorm3d":"jVTK1","./batchnorm4d":"eQRnY","./bincount":"87h6O","./bitwise_and":"99SCY","./broadcast_args":"e160q","./broadcast_to":"4YYa0","./buffer":"1EiiB","./cast":"juFUN","./ceil":"hFqEA","./clip_by_value":"31hx8","./clone":"lH8Rn","./complex":"5ASH6","./concat":"56PTj","./concat_1d":"kkDXR","./concat_2d":"llNx8","./concat_3d":"a0OBC","./concat_4d":"h700a","./conv1d":"7NGKU","./conv2d":"iHP9e","./conv2d_transpose":"c5wsu","./conv3d":"aflLe","./conv3d_transpose":"5RHpg","./cos":"bj03v","./cosh":"24JjO","./cumprod":"5RZdI","./cumsum":"4ULzW","./dense_bincount":"cOTcl","./depth_to_space":"8r7gw","./depthwise_conv2d":"ffu4I","./diag":"bS9J2","./dilation2d":"lPY76","./div":"lbTan","./div_no_nan":"8msU1","./dot":"1Be6D","./einsum":"bFs63","./elu":"elRT9","./ensure_shape":"6l9tH","./equal":"4fBRt","./erf":"gmOa2","./euclidean_norm":"aYQZA","./exp":"aYtA8","./expand_dims":"6YWDL","./expm1":"ak9I4","./eye":"j8T5c","./fill":"d4iwa","./floor":"Urqox","./floorDiv":"hd4UF","./gather":"9M6NX","./greater":"3KUcR","./greater_equal":"ai7qe","./imag":"iepBk","./is_finite":"bOC6f","./is_inf":"d61Qv","./is_nan":"jOr5d","./leaky_relu":"bECmF","./less":"3qq9g","./less_equal":"hEbcw","./linspace":"8RguN","./local_response_normalization":"jRGtA","./log":"bjj59","./log1p":"acqft","./log_sigmoid":"3aDHP","./log_softmax":"7nk63","./log_sum_exp":"gPZz6","./logical_and":"8lNbb","./logical_not":"cYHsS","./logical_or":"jhe6h","./logical_xor":"crgLh","./lower_bound":"f4R9w","./mat_mul":"hHb0J","./max":"erFBB","./max_pool":"2rPA7","./max_pool_3d":"3kM0r","./max_pool_with_argmax":"1yBgJ","./maximum":"4zHPo","./mean":"9PJXN","./meshgrid":"6E9wv","./min":"1qUuZ","./minimum":"74TYW","./mirror_pad":"6rahc","./mod":"7txgC","./moments":"gJMJe","./mul":"3233B","./multi_rnn_cell":"9EDr2","./multinomial":"kzL7d","./neg":"8HIhG","./not_equal":"h3Wiz","./one_hot":"iJ8nQ","./ones":"eYvGK","./ones_like":"5sNCT","./outer_product":"hI835","./pad":"5dL6W","./pad1d":"hehEW","./pad2d":"6X05W","./pad3d":"eFaKt","./pad4d":"5JIjy","./pool":"fa7rV","./pow":"aku8e","./prelu":"97Biq","./print":"l1jud","./prod":"iMnCC","./ragged_gather":"6u9WD","./ragged_range":"4Ep5b","./ragged_tensor_to_tensor":"aUd7A","./rand":"45bji","./random_gamma":"4Shud","./random_normal":"bxT1q","./random_standard_normal":"S4qSH","./random_uniform":"gjT1I","./random_uniform_int":"bebcB","./range":"df8SO","./real":"7sSnd","./reciprocal":"7nJ8T","./relu":"iPhge","./relu6":"9bTwM","./reshape":"2znRS","./reverse":"7nB8F","./reverse_1d":"dpiTC","./reverse_2d":"lVjOl","./reverse_3d":"9WHF4","./reverse_4d":"ejR4t","./round":"akrBk","./rsqrt":"kIOsn","./scalar":"aCdNN","./selu":"8dfci","./separable_conv2d":"98wnK","./setdiff1d_async":"lXzGk","./sigmoid":"kgtAa","./sign":"l9avF","./sin":"kIvC3","./sinh":"7qO0g","./slice":"eDdeL","./slice1d":"fzEWF","./slice2d":"1igm0","./slice3d":"l7XO8","./slice4d":"9lnOO","./softmax":"5nqhK","./softplus":"G5sKZ","./space_to_batch_nd":"kCZXN","./spectral/fft":"2AXDW","./spectral/ifft":"8tqLN","./spectral/irfft":"108TA","./spectral/rfft":"6UY7r","./split":"FQ7hs","./sqrt":"946JS","./square":"kNrd2","./squared_difference":"9w0IR","./squeeze":"cax9N","./stack":"bvpof","./step":"dvB2o","./strided_slice":"XZiX6","./sub":"2lFei","./sum":"jlBkb","./tan":"4b9dJ","./tanh":"2zyri","./tensor":"7c5MK","./tensor1d":"6BeOV","./tensor2d":"j7yj8","./tensor3d":"3ETxr","./tensor4d":"15kDt","./tensor5d":"hh1Z7","./tensor6d":"IJCsh","./tensor_scatter_update":"71ZFi","./tile":"3a2L4","./topk":"jG0aG","./truncated_normal":"8FsVR","./unique":"3NcUJ","./unsorted_segment_sum":"dICgF","./unstack":"2NrdB","./upper_bound":"aVzg8","./variable":"j3GC4","./where":"a7ZmF","./where_async":"50k91","./zeros":"fqUNT","./zeros_like":"1peA5","./boolean_mask":"9mTHW","./transpose":"dg4Sa","./norm":"auKpd","./moving_average":"hMyFI","./scatter_nd":"9xCLq","./search_sorted":"csM1s","./sparse_to_dense":"4Xh7i","./gather_nd":"zaSfo","./dropout":"iU4Ut","./signal_ops_util":"bnGKH","./in_top_k":"c5mnV","./operation":"2me4m","./fused_ops":"6pHdS","./signal/hamming_window":"bVvte","./signal/hann_window":"hNFU5","./signal/frame":"ecqbq","./signal/stft":"pizDp","./image/crop_and_resize":"lY1MB","./image/flip_left_right":"fA264","./image/grayscale_to_rgb":"fFavm","./image/rgb_to_grayscale":"ayeQE","./image/rotate_with_offset":"y0vWr","./image/non_max_suppression":"6Pae6","./image/non_max_suppression_async":"bvRV1","./image/non_max_suppression_with_score":"cE23C","./image/non_max_suppression_with_score_async":"913WB","./image/non_max_suppression_padded":"evBQ2","./image/non_max_suppression_padded_async":"gLwj2","./image/resize_bilinear":"3OhUh","./image/resize_nearest_neighbor":"dXcs8","./image/threshold":"eJmnz","./image/transform":"57rHr","./linalg/band_part":"3zZzZ","./linalg/gram_schmidt":"1rbpJ","./linalg/qr":"2nZs5","./losses/absolute_difference":"lAkje","./losses/compute_weighted_loss":"7G55R","./losses/cosine_distance":"6Ddpr","./losses/hinge_loss":"lOI18","./losses/huber_loss":"hgmCW","./losses/log_loss":"aXYiZ","./losses/mean_squared_error":"2uGH3","./losses/sigmoid_cross_entropy":"iXkk2","./losses/softmax_cross_entropy":"eMlv3","./sparse/sparse_fill_empty_rows":"2apoJ","./sparse/sparse_reshape":"1MGLo","./sparse/sparse_segment_mean":"heg8n","./sparse/sparse_segment_sum":"4SIv3","./string/string_n_grams":"crgDK","./string/string_split":"kf9qK","./string/string_to_hash_bucket_fast":"hCzP4","./string/static_regex_replace":"758tQ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9L54v":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"abs",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({abs_:function(e){let t=(0,l.convertToTensor)(e,"x","abs");return"complex64"===t.dtype?a.ENGINE.runKernel(o.ComplexAbs,{x:t}):a.ENGINE.runKernel(o.Abs,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3F3Au":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acos",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({acos_:function(e){let t=(0,l.convertToTensor)(e,"x","acos");return a.ENGINE.runKernel(o.Acos,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],e95zu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acosh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({acosh_:function(e){let t=(0,l.convertToTensor)(e,"x","acosh");return a.ENGINE.runKernel(o.Acosh,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5lntY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addN",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({addN_:function(e){i.assert(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),i.assert(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);let t=e.map((e,t)=>(0,l.convertToTensor)(e,`tensors${t}`,"addN")),r=t[0];return t.forEach(e=>{if(e.dtype!==r.dtype)throw Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(e=>{if(!i.arraysEqual(e.shape,r.shape))throw Error("All tensors passed to tf.addN() must have the same shape")}),a.ENGINE.runKernel(o.AddN,t)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aCEYc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"all",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({all_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","all","bool");return a.ENGINE.runKernel(o.All,{x:n},{axis:t,keepDims:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],b6liB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"any",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({any_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","any","bool");return a.ENGINE.runKernel(o.Any,{x:n},{axis:t,keepDims:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8W1JY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMax",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({argMax_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","argMax");return a.ENGINE.runKernel(o.ArgMax,{x:r},{axis:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1RlxL":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMin",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({argMin_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","argMin");return a.ENGINE.runKernel(o.ArgMin,{x:r},{axis:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4OGEM":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asin",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({asin_:function(e){let t=(0,l.convertToTensor)(e,"x","asin");return a.ENGINE.runKernel(o.Asin,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dvHGj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asinh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({asinh_:function(e){let t=(0,l.convertToTensor)(e,"x","asinh");return a.ENGINE.runKernel(o.Asinh,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2RiRW":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({atan_:function(e){let t=(0,l.convertToTensor)(e,"x","atan");return a.ENGINE.runKernel(o.Atan,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8Y0P5":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan2",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({atan2_:function(e,t){let r=(0,i.convertToTensor)(e,"a","atan2"),n=(0,i.convertToTensor)(t,"b","atan2");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Atan2,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5WGMQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atanh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({atanh_:function(e){let t=(0,l.convertToTensor)(e,"x","atanh");return a.ENGINE.runKernel(o.Atanh,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jw2jw:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool",()=>f);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./cast"),p=e("./conv_util"),c=e("./operation"),d=e("./reshape");let f=(0,c.op)({avgPool_:function(e,t,r,n,s){let c=(0,l.convertToTensor)(e,"x","avgPool","float32");i.assert(p.eitherStridesOrDilationsAreOne(r,1),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${r} and dilations '1'`);let f=c,m=!1;3===c.rank&&(m=!0,f=(0,d.reshape)(c,[1,c.shape[0],c.shape[1],c.shape[2]])),i.assert(4===f.rank,()=>`Error in avgPool: x must be rank 4 but got rank ${f.rank}.`),p.checkPadOnDimRoundingMode("avgPool",n,s);let h={x:f},g=a.ENGINE.runKernel(o.AvgPool,h,{filterSize:t,strides:r,pad:n,dimRoundingMode:s});return(g=(0,u.cast)(g,c.dtype),m)?(0,d.reshape)(g,[g.shape[1],g.shape[2],g.shape[3]]):g}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./cast":"juFUN","./conv_util":"1HzRR","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1HzRR":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"computeDilation2DInfo",()=>o),s.export(r,"computePool2DInfo",()=>l),s.export(r,"computePool3DInfo",()=>i),s.export(r,"computeConv2DInfo",()=>u),s.export(r,"computeConv3DInfo",()=>p),s.export(r,"computeDefaultPad",()=>c),s.export(r,"tupleValuesAreOne",()=>g),s.export(r,"eitherStridesOrDilationsAreOne",()=>x),s.export(r,"stridesOrDilationsArePositive",()=>v),s.export(r,"convertConv2DDataFormat",()=>y),s.export(r,"checkPadOnDimRoundingMode",()=>b);var a=e("../util");function o(e,t,r,n,s="NHWC",a){let l=[...t,e[3]];return u(e,l,r,a,n,null,null,y(s))}function l(e,t,r,n,s,a,o="channelsLast"){let i,[p,c]=d(t);if("channelsLast"===o)i=[p,c,e[3],e[3]];else if("channelsFirst"===o)i=[p,c,e[1],e[1]];else throw Error(`Unknown dataFormat ${o}`);return u(e,i,r,n,s,a,!1,o)}function i(e,t,r,n,s,a,o="NDHWC"){let l,u,[c,d,m]=f(t);if("NDHWC"===o)u="channelsLast",l=[c,d,m,e[4],e[4]];else if("NCDHW"===o)u="channelsFirst",l=[c,d,m,e[1],e[1]];else throw Error(`Unknown dataFormat ${o}`);return p(e,l,r,n,s,!1,u,a)}function u(e,t,r,n,s,a,o=!1,l="channelsLast"){let i,[p,f,g,x]=[-1,-1,-1,-1];if("channelsLast"===l)[p,f,g,x]=e;else if("channelsFirst"===l)[p,x,f,g]=e;else throw Error(`Unknown dataFormat ${l}`);let[v,y,,b]=t,[_,k]=d(r),[j,I]=d(n),w=m(v,j),T=m(y,I),{padInfo:N,outHeight:S,outWidth:C}=function(e,t,r,n,s,a,o,l,i){let u,p,d;if("number"==typeof e){let s=0===e?"VALID":"NUMBER";u={top:e,bottom:e,left:e,right:e,type:s};let o=function(e,t,r,n,s){null==n&&(n=c(e,t,r));let a=e[0],o=e[1];return[h((a-t+2*n)/r+1,s),h((o-t+2*n)/r+1,s)]}([t,r],a,n,e,l);p=o[0],d=o[1]}else if("same"===e){let e=Math.max(0,((p=Math.ceil(t/n))-1)*n+a-t),l=Math.max(0,((d=Math.ceil(r/s))-1)*s+o-r),i=Math.floor(e/2),c=Math.floor(l/2);u={top:i,bottom:e-i,left:c,right:l-c,type:"SAME"}}else if("valid"===e)u={top:0,bottom:0,left:0,right:0,type:"VALID"},p=Math.ceil((t-a+1)/n),d=Math.ceil((r-o+1)/s);else if("object"==typeof e){let c="channelsLast"===i?e[1][0]:e[2][0],f="channelsLast"===i?e[1][1]:e[2][1],m="channelsLast"===i?e[2][0]:e[3][0],g="channelsLast"===i?e[2][1]:e[3][1];u={top:c,bottom:f,left:m,right:g,type:0===c&&0===f&&0===m&&0===g?"VALID":"EXPLICIT"},p=h((t-a+c+f)/n+1,l),d=h((r-o+m+g)/s+1,l)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:p,outWidth:d}}(s,f,g,_,k,w,T,a,l),E=o?b*x:b;return"channelsFirst"===l?i=[p,E,S,C]:"channelsLast"===l&&(i=[p,S,C,E]),{batchSize:p,dataFormat:l,inHeight:f,inWidth:g,inChannels:x,outHeight:S,outWidth:C,outChannels:E,padInfo:N,strideHeight:_,strideWidth:k,filterHeight:v,filterWidth:y,effectiveFilterHeight:w,effectiveFilterWidth:T,dilationHeight:j,dilationWidth:I,inShape:e,outShape:i,filterShape:t}}function p(e,t,r,n,s,a=!1,o="channelsLast",l){let i,[u,d,g,x,v]=[-1,-1,-1,-1,-1];if("channelsLast"===o)[u,d,g,x,v]=e;else if("channelsFirst"===o)[u,v,d,g,x]=e;else throw Error(`Unknown dataFormat ${o}`);let[y,b,_,,k]=t,[j,I,w]=f(r),[T,N,S]=f(n),C=m(y,T),E=m(b,N),F=m(_,S),{padInfo:A,outDepth:R,outHeight:P,outWidth:D}=function(e,t,r,n,s,a,o,l,i,u,p){let d,f,m,g;if("valid"===e&&(e=0),"number"==typeof e){let x=0===e?"VALID":"NUMBER";d={top:e,bottom:e,left:e,right:e,front:e,back:e,type:x};let v=function(e,t,r,n,s,a){null==s&&(s=c(e,t[0],n[0]));let o=[0,0,0,1];for(let r=0;r<3;r++)e[r]+2*s>=t[r]&&(o[r]=h((e[r]-t[r]+2*s)/n[r]+1,a));return o}([t,r,n,1],[l,i,u],0,[s,a,o],e,p);f=v[0],m=v[1],g=v[2]}else if("same"===e){let e=((f=Math.ceil(t/s))-1)*s+l-t,p=((m=Math.ceil(r/a))-1)*a+i-r,c=((g=Math.ceil(n/o))-1)*o+u-n,h=Math.floor(e/2),x=Math.floor(p/2),v=Math.floor(c/2);d={top:x,bottom:p-x,left:v,right:c-v,front:h,back:e-h,type:"SAME"}}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:d,outDepth:f,outHeight:m,outWidth:g}}(s,d,g,x,j,I,w,C,E,F,l),$=a?k*v:k;return"channelsFirst"===o?i=[u,$,R,P,D]:"channelsLast"===o&&(i=[u,R,P,D,$]),{batchSize:u,dataFormat:o,inDepth:d,inHeight:g,inWidth:x,inChannels:v,outDepth:R,outHeight:P,outWidth:D,outChannels:$,padInfo:A,strideDepth:j,strideHeight:I,strideWidth:w,filterDepth:y,filterHeight:b,filterWidth:_,effectiveFilterDepth:C,effectiveFilterHeight:E,effectiveFilterWidth:F,dilationDepth:T,dilationHeight:N,dilationWidth:S,inShape:e,outShape:i,filterShape:t}}function c(e,t,r,n=1){let s=m(t,n);return Math.floor((e[0]*(r-1)-r+s)/2)}function d(e){return"number"==typeof e?[e,e,e]:2===e.length?[e[0],e[1],1]:e}function f(e){return"number"==typeof e?[e,e,e]:e}function m(e,t){return t<=1?e:e+(e-1)*(t-1)}function h(e,t){if(!t)return Math.trunc(e);switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw Error(`Unknown roundingMode ${t}`)}}function g(e){let[t,r,n]=d(e);return 1===t&&1===r&&1===n}function x(e,t){return g(e)||g(t)}function v(e){return d(e).every(e=>e>0)}function y(e){if("NHWC"===e)return"channelsLast";if("NCHW"===e)return"channelsFirst";throw Error(`Unknown dataFormat ${e}`)}function b(e,t,r){if(null!=r)if("string"==typeof t)throw Error(`Error in ${e}: pad must be an integer when using dimRoundingMode ${r} but got pad ${t}.`);else if("number"==typeof t)a.assert(a.isInt(t),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${r} but got pad ${t}.`);else if("object"==typeof t)t.forEach(t=>{t.forEach(t=>{a.assert(a.isInt(t),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${r} but got pad ${t}.`)})});else throw Error(`Error in ${e}: Unknown padding parameter: ${t}`)}},{"../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2znRS":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reshape",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({reshape_:function(e,t){let r=(0,l.convertToTensor)(e,"x","reshape","string_or_numeric");return a.ENGINE.runKernel(o.Reshape,{x:r},{shape:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3n4qA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool3d",()=>f);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./cast"),p=e("./conv_util"),c=e("./operation"),d=e("./reshape");let f=(0,c.op)({avgPool3d_:function(e,t,r,n,s,c="NDHWC"){let f=(0,l.convertToTensor)(e,"x","avgPool3d","float32"),m=f,h=!1;4===f.rank&&(h=!0,m=(0,d.reshape)(f,[1,f.shape[0],f.shape[1],f.shape[2],f.shape[3]])),i.assert(5===m.rank,()=>`Error in avgPool3d: x must be rank 5 but got rank ${m.rank}.`),i.assert("NDHWC"===c,()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${c}`),i.assert("number"==typeof r&&r>0||Array.isArray(r)&&r[0]>0&&r[1]>0&&r[2]>0,()=>`Error in avgPool3d: Stride must be > 0, but got '${r}'`),(0,p.checkPadOnDimRoundingMode)("avgPool3d",n,s);let g={x:m},x=a.ENGINE.runKernel(o.AvgPool3D,g,{filterSize:t,strides:r,pad:n,dimRoundingMode:s,dataFormat:c});return(x=(0,u.cast)(x,m.dtype),h)?(0,d.reshape)(x,[x.shape[1],x.shape[2],x.shape[3],x.shape[4]]):x}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./cast":"juFUN","./conv_util":"1HzRR","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7RBRT":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"basicLSTMCell",()=>m);var a=e("../tensor_util_env"),o=e("./add"),l=e("./concat"),i=e("./mat_mul"),u=e("./mul"),p=e("./operation"),c=e("./sigmoid"),d=e("./slice"),f=e("./tanh");let m=(0,p.op)({basicLSTMCell_:function(e,t,r,n,s,p){let m=(0,a.convertToTensor)(e,"forgetBias","basicLSTMCell"),h=(0,a.convertToTensor)(t,"lstmKernel","basicLSTMCell"),g=(0,a.convertToTensor)(r,"lstmBias","basicLSTMCell"),x=(0,a.convertToTensor)(n,"data","basicLSTMCell"),v=(0,a.convertToTensor)(s,"c","basicLSTMCell"),y=(0,a.convertToTensor)(p,"h","basicLSTMCell"),b=(0,l.concat)([x,y],1),_=(0,i.matMul)(b,h),k=(0,o.add)(_,g),j=k.shape[0],I=k.shape[1]/4,w=[j,I],T=(0,d.slice)(k,[0,0],w),N=(0,d.slice)(k,[0,I],w),S=(0,d.slice)(k,[0,2*I],w),C=(0,d.slice)(k,[0,3*I],w),E=(0,o.add)((0,u.mul)((0,c.sigmoid)(T),(0,f.tanh)(N)),(0,u.mul)(v,(0,c.sigmoid)((0,o.add)(m,S)))),F=(0,u.mul)((0,f.tanh)(E),(0,c.sigmoid)(C));return[E,F]}})},{"../tensor_util_env":"5isXB","./add":"dX80O","./concat":"56PTj","./mat_mul":"hHb0J","./mul":"3233B","./operation":"2me4m","./sigmoid":"kgtAa","./slice":"eDdeL","./tanh":"2zyri","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"56PTj":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./clone");let p=(0,e("./operation").op)({concat_:function(e,t=0){(0,i.assert)(e.length>=1,()=>"Pass at least one tensor to concat");let r=(0,l.convertToTensorArray)(e,"tensors","concat","string_or_numeric");return("complex64"===r[0].dtype&&r.forEach(e=>{if("complex64"!==e.dtype)throw Error(`Cannot concatenate complex64 tensors with a tensor + with dtype ${e.dtype}. `)}),1===r.length)?(0,u.clone)(r[0]):a.ENGINE.runKernel(o.Concat,r,{axis:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./clone":"lH8Rn","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hHb0J:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"matMul",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({matMul_:function(e,t,r=!1,n=!1){let s=(0,i.convertToTensor)(e,"a","matMul"),u=(0,i.convertToTensor)(t,"b","matMul");[s,u]=(0,l.makeTypesMatch)(s,u);let p={a:s,b:u};return a.ENGINE.runKernel(o.BatchMatMul,p,{transposeA:r,transposeB:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kgtAa:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sigmoid",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({sigmoid_:function(e){let t=(0,l.convertToTensor)(e,"x","sigmoid","float32");return a.ENGINE.runKernel(o.Sigmoid,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eDdeL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({slice_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","slice","string_or_numeric");if(0===n.rank)throw Error("Slicing scalar is not possible");return a.ENGINE.runKernel(o.Slice,{x:n},{begin:t,size:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2zyri":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tanh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({tanh_:function(e){let t=(0,l.convertToTensor)(e,"x","tanh","float32");return a.ENGINE.runKernel(o.Tanh,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"48Xl7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchToSpaceND",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({batchToSpaceND_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","batchToSpaceND"),s=t.reduce((e,t)=>e*t);return i.assert(n.rank>=1+t.length,()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`),i.assert(r.length===t.length,()=>`crops.length is ${r.length} but should be equal to blockShape.length ${t.length}`),i.assert(n.shape[0]%s==0,()=>`input tensor batch is ${n.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${s}`),a.ENGINE.runKernel(o.BatchToSpaceND,{x:n},{blockShape:t,crops:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7fvnN":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./batchnorm_util"),p=e("./operation"),c=e("./reshape");let d=(0,p.op)({batchNorm_:function(e,t,r,n,s,p){let d,f;null==p&&(p=.001);let m=(0,l.convertToTensor)(e,"x","batchNorm"),h=(0,l.convertToTensor)(t,"mean","batchNorm"),g=(0,l.convertToTensor)(r,"variance","batchNorm");null!=s&&(d=(0,l.convertToTensor)(s,"scale","batchNorm")),null!=n&&(f=(0,l.convertToTensor)(n,"offset","batchNorm")),i.assert(h.rank===g.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),i.assert(null==f||h.rank===f.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),i.assert(null==d||h.rank===d.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let x={x:(0,u.xAs4D)(m),scale:d,offset:f,mean:h,variance:g},v={varianceEpsilon:p},y=a.ENGINE.runKernel(o.FusedBatchNorm,x,v);return(0,c.reshape)(y,m.shape)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./batchnorm_util":"8Yqh9","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8Yqh9":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"xAs4D",()=>o);var a=e("./reshape");function o(e){let t;return 0===e.rank||1===e.rank?(0,a.reshape)(e,[1,1,1,e.size]):2===e.rank?(0,a.reshape)(e,[1,1,e.shape[0],e.shape[1]]):3===e.rank?(0,a.reshape)(e,[1,e.shape[0],e.shape[1],e.shape[2]]):e}},{"./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jQqu2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm2d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./batchnorm");let i=(0,e("./operation").op)({batchNorm2d_:function(e,t,r,n,s,i){let u,p,c=(0,a.convertToTensor)(e,"x","batchNorm"),d=(0,a.convertToTensor)(t,"mean","batchNorm"),f=(0,a.convertToTensor)(r,"variance","batchNorm");return null!=s&&(u=(0,a.convertToTensor)(s,"scale","batchNorm")),null!=n&&(p=(0,a.convertToTensor)(n,"offset","batchNorm")),o.assert(2===c.rank,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${c.rank}.`),o.assert(2===d.rank||1===d.rank,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${d.rank}.`),o.assert(2===f.rank||1===f.rank,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${f.rank}.`),null!=u&&o.assert(2===u.rank||1===u.rank,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`),null!=p&&o.assert(2===p.rank||1===p.rank,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${p.rank}.`),(0,l.batchNorm)(c,d,f,p,u,i)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./batchnorm":"7fvnN","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jVTK1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm3d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./batchnorm");let i=(0,e("./operation").op)({batchNorm3d_:function(e,t,r,n,s,i){let u,p,c=(0,a.convertToTensor)(e,"x","batchNorm"),d=(0,a.convertToTensor)(t,"mean","batchNorm"),f=(0,a.convertToTensor)(r,"variance","batchNorm");return null!=s&&(u=(0,a.convertToTensor)(s,"scale","batchNorm")),null!=n&&(p=(0,a.convertToTensor)(n,"offset","batchNorm")),o.assert(3===c.rank,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${c.rank}.`),o.assert(3===d.rank||1===d.rank,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${d.rank}.`),o.assert(3===f.rank||1===f.rank,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${f.rank}.`),null!=u&&o.assert(3===u.rank||1===u.rank,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`),null!=p&&o.assert(3===p.rank||1===p.rank,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${p.rank}.`),(0,l.batchNorm)(c,d,f,p,u,i)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./batchnorm":"7fvnN","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eQRnY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm4d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./batchnorm");let i=(0,e("./operation").op)({batchNorm4d_:function(e,t,r,n,s,i){let u,p,c=(0,a.convertToTensor)(e,"x","batchNorm"),d=(0,a.convertToTensor)(t,"mean","batchNorm"),f=(0,a.convertToTensor)(r,"variance","batchNorm");return null!=s&&(u=(0,a.convertToTensor)(s,"scale","batchNorm")),null!=n&&(p=(0,a.convertToTensor)(n,"offset","batchNorm")),o.assert(4===c.rank,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${c.rank}.`),o.assert(4===d.rank||1===d.rank,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${d.rank}.`),o.assert(4===f.rank||1===f.rank,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${f.rank}.`),null!=u&&o.assert(4===u.rank||1===u.rank,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`),null!=p&&o.assert(4===p.rank||1===p.rank,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${p.rank}.`),(0,l.batchNorm)(c,d,f,p,u,i)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./batchnorm":"7fvnN","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"87h6O":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bincount",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({bincount_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","bincount"),s=(0,l.convertToTensor)(t,"weights","bincount");return i.assert("int32"===n.dtype,()=>`Error in bincount: input dtype must be int32, but got ${n.dtype}`),i.assert(r>=0,()=>`size must be non-negative, but got ${r}.`),i.assert(s.size===n.size||0===s.size,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${n.shape}, weights shape: ${s.shape}.`),a.ENGINE.runKernel(o.Bincount,{x:n,weights:s},{size:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"99SCY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bitwiseAnd",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util_base");let u=(0,e("./operation").op)({bitwiseAnd_:function(e,t){let r=(0,l.convertToTensor)(e,"x","bitwiseAnd"),n=(0,l.convertToTensor)(t,"y","bitwiseAnd");if(!(0,i.arraysEqual)(r.shape,n.shape))throw Error(`BitwiseAnd: Tensors must have the same shape. x: ${r.shape}, y: ${n.shape}`);if("int32"!==r.dtype||"int32"!==n.dtype)throw Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${r.dtype} and type of y: ${n.dtype}`);return a.ENGINE.runKernel(o.BitwiseAnd,{a:r,b:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util_base":"bNQH0","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],e160q:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"broadcastArgs",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({broadcastArgs_:function(e,t){let r=(0,l.convertToTensor)(e,"s0","broadcastArgs","int32"),n=(0,l.convertToTensor)(t,"s1","broadcastArgs","int32");if(1!==r.rank)throw Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${r.rank}`);if(1!==n.rank)throw Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${n.rank}`);return a.ENGINE.runKernel(o.BroadcastArgs,{s0:r,s1:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4YYa0":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"broadcastTo",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util_base"),u=e("./clone"),p=e("./operation"),c=e("./reshape");let d=(0,p.op)({broadcastTo_:function(e,t){let r=(0,l.convertToTensor)(e,"broadcastTo","x"),n=r.shape;if((0,i.assertNonNegativeIntegerDimensions)(t),t.lengthr.rank){let e=r.shape.slice();for(;e.length=0;e--)if(s[e]===t[e])p[e]=1;else if(1!==r.shape[e])throw Error(`broadcastTo(): [${n}] cannot be broadcast to [${t}].`);if(0===p.map((e,t)=>e>1?t:-1).filter(e=>e>=0).length)return(0,u.clone)(r);let d={x:r};return a.ENGINE.runKernel(o.Tile,d,{reps:p})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util_base":"bNQH0","./clone":"lH8Rn","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hFqEA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ceil",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({ceil_:function(e){let t=(0,l.convertToTensor)(e,"x","ceil","float32");return a.ENGINE.runKernel(o.Ceil,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"31hx8":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"clipByValue",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./fill");let p=(0,e("./operation").op)({clipByValue_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","clipByValue");return(i.assert(t<=r,()=>`Error in clip: min (${t}) must be less than or equal to max (${r}).`),t===r)?(0,u.fill)(n.shape,t,n.dtype):a.ENGINE.runKernel(o.ClipByValue,{x:n},{clipValueMin:t,clipValueMax:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./fill":"d4iwa","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],d4iwa:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fill",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../util"),i=e("../util_base");function u(e,t,r){(0,i.assertNonNegativeIntegerDimensions)(e),r=r||(0,l.inferDtype)(t);let n={shape:e,value:t,dtype:r};return a.ENGINE.runKernel(o.Fill,{},n)}},{"../engine":"c6qwc","../kernel_names":"349aa","../util":"icflD","../util_base":"bNQH0","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kkDXR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat1d",()=>o);var a=e("./concat");let o=(0,e("./operation").op)({concat1d_:function(e){return(0,a.concat)(e,0)}})},{"./concat":"56PTj","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],llNx8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat2d",()=>o);var a=e("./concat");let o=(0,e("./operation").op)({concat2d_:function(e,t){return(0,a.concat)(e,t)}})},{"./concat":"56PTj","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],a0OBC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat3d",()=>o);var a=e("./concat");let o=(0,e("./operation").op)({concat3d_:function(e,t){return(0,a.concat)(e,t)}})},{"./concat":"56PTj","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],h700a:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat4d",()=>o);var a=e("./concat");let o=(0,e("./operation").op)({concat4d_:function(e,t){return(0,a.concat)(e,t)}})},{"./concat":"56PTj","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7NGKU":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv1d",()=>c);var a=e("../tensor_util_env"),o=e("../util"),l=e("./conv2d"),i=e("./conv_util"),u=e("./operation"),p=e("./reshape");let c=(0,u.op)({conv1d_:function(e,t,r,n,s="NWC",u=1,c){let d=(0,a.convertToTensor)(e,"x","conv1d"),f=(0,a.convertToTensor)(t,"filter","conv1d"),m=d,h=!1;2===d.rank&&(h=!0,m=(0,p.reshape)(d,[1,d.shape[0],d.shape[1]])),o.assert(3===m.rank,()=>`Error in conv1d: input must be rank 3, but got rank ${m.rank}.`),o.assert(3===f.rank,()=>`Error in conv1d: filter must be rank 3, but got rank ${f.rank}.`),i.checkPadOnDimRoundingMode("conv1d",n,c),o.assert(m.shape[2]===f.shape[1],()=>`Error in conv1d: depth of input (${m.shape[2]}) must match input depth for filter ${f.shape[1]}.`),o.assert(i.eitherStridesOrDilationsAreOne(r,u),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${r} and dilation '${u}'`),o.assert(i.stridesOrDilationsArePositive(u),()=>"Error in conv1D: Dilated rates should be larger than 0."),o.assert(i.stridesOrDilationsArePositive(r),()=>"Error in conv1D: Stride should be larger than 0."),o.assert("NWC"===s,()=>`Error in conv1d: got dataFormat of ${s} but only NWC is currently supported.`);let g=(0,p.reshape)(f,[1,f.shape[0],f.shape[1],f.shape[2]]),x=(0,p.reshape)(m,[m.shape[0],1,m.shape[1],m.shape[2]]),v=(0,l.conv2d)(x,g,[1,r],n,"NHWC",[1,u],c);return h?(0,p.reshape)(v,[v.shape[2],v.shape[3]]):(0,p.reshape)(v,[v.shape[0],v.shape[2],v.shape[3]])}})},{"../tensor_util_env":"5isXB","../util":"icflD","./conv2d":"iHP9e","./conv_util":"1HzRR","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iHP9e:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2d",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./conv_util"),p=e("./operation"),c=e("./reshape");let d=(0,p.op)({conv2d_:function(e,t,r,n,s="NHWC",p=[1,1],d){let f=(0,l.convertToTensor)(e,"x","conv2d","float32"),m=(0,l.convertToTensor)(t,"filter","conv2d","float32"),h=f,g=!1;3===f.rank&&(g=!0,h=(0,c.reshape)(f,[1,f.shape[0],f.shape[1],f.shape[2]])),i.assert(4===h.rank,()=>`Error in conv2d: input must be rank 4, but got rank ${h.rank}.`),i.assert(4===m.rank,()=>`Error in conv2d: filter must be rank 4, but got rank ${m.rank}.`),u.checkPadOnDimRoundingMode("conv2d",n,d);let x="NHWC"===s?h.shape[3]:h.shape[1];i.assert(x===m.shape[2],()=>`Error in conv2d: depth of input (${x}) must match input depth for filter ${m.shape[2]}.`),i.assert(u.eitherStridesOrDilationsAreOne(r,p),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${r} and dilations '${p}'`),i.assert(u.stridesOrDilationsArePositive(p),()=>"Error in conv2D: Dilated rates should be larger than 0."),i.assert(u.stridesOrDilationsArePositive(r),()=>"Error in conv2D: Strides should be larger than 0.");let v={x:h,filter:m},y=a.ENGINE.runKernel(o.Conv2D,v,{strides:r,pad:n,dataFormat:s,dilations:p,dimRoundingMode:d});return g?(0,c.reshape)(y,[y.shape[1],y.shape[2],y.shape[3]]):y}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./conv_util":"1HzRR","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],c5wsu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2dTranspose",()=>l);var a=e("../tensor_util_env"),o=e("./conv2d_backprop_input");let l=(0,e("./operation").op)({conv2dTranspose_:function(e,t,r,n,s,l){let i=(0,a.convertToTensor)(e,"x","conv2dTranspose"),u=(0,a.convertToTensor)(t,"filter","conv2dTranspose");return(0,o.conv2DBackpropInput)(r,i,u,n,s,"NHWC",l)}})},{"../tensor_util_env":"5isXB","./conv2d_backprop_input":"lEDXO","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lEDXO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2DBackpropInput",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../util"),i=e("./conv_util"),u=e("./operation"),p=e("./reshape");let c=(0,u.op)({conv2DBackpropInput_:function(e,t,r,n,s,u="NHWC",c){l.assert(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let d=e,f=t,m=!1;3===t.rank&&(m=!0,f=(0,p.reshape)(t,[1,t.shape[0],t.shape[1],t.shape[2]]),d=[1,e[0],e[1],e[2]]),l.assert(4===d.length,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${d.length}.`),l.assert(4===f.rank,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${f.rank}`),l.assert(4===r.rank,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${r.rank}`);let h="NHWC"===u?d[3]:d[1],g="NHWC"===u?f.shape[3]:f.shape[1];l.assert(h===r.shape[2],()=>`Error in conv2dDerInput: depth of input (${h}) must match input depth for filter ${r.shape[2]}.`),l.assert(g===r.shape[3],()=>`Error in conv2dDerInput: depth of output (${g}) must match output depth for filter ${r.shape[3]}.`),i.checkPadOnDimRoundingMode("conv2dDerInput",s,c);let x={dy:f,filter:r},v={strides:n,pad:s,dataFormat:u,dimRoundingMode:c,inputShape:d},y=a.ENGINE.runKernel(o.Conv2DBackpropInput,x,v);return m?(0,p.reshape)(y,[y.shape[1],y.shape[2],y.shape[3]]):y}})},{"../engine":"c6qwc","../kernel_names":"349aa","../util":"icflD","./conv_util":"1HzRR","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aflLe:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3d",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./conv_util"),p=e("./operation"),c=e("./reshape");let d=(0,p.op)({conv3d_:function(e,t,r,n,s="NDHWC",p=[1,1,1]){let d=(0,l.convertToTensor)(e,"x","conv3d"),f=(0,l.convertToTensor)(t,"filter","conv3d"),m=d,h=!1;4===d.rank&&(h=!0,m=(0,c.reshape)(d,[1,d.shape[0],d.shape[1],d.shape[2],d.shape[3]])),i.assert(5===m.rank,()=>`Error in conv3d: input must be rank 5, but got rank ${m.rank}.`),i.assert(5===f.rank,()=>`Error in conv3d: filter must be rank 5, but got rank ${f.rank}.`),i.assert(m.shape[4]===f.shape[3],()=>`Error in conv3d: depth of input (${m.shape[4]}) must match input depth for filter ${f.shape[3]}.`),i.assert((0,u.eitherStridesOrDilationsAreOne)(r,p),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${r} and dilations '${p}'`),i.assert("NDHWC"===s,()=>`Error in conv3d: got dataFormat of ${s} but only NDHWC is currently supported.`),i.assert((0,u.stridesOrDilationsArePositive)(p),()=>"Error in conv3D: Dilated rates should be larger than 0."),i.assert((0,u.stridesOrDilationsArePositive)(r),()=>"Error in conv3D: Strides should be larger than 0.");let g={x:m,filter:f},x=a.ENGINE.runKernel(o.Conv3D,g,{strides:r,pad:n,dataFormat:s,dilations:p});return h?(0,c.reshape)(x,[x.shape[1],x.shape[2],x.shape[3],x.shape[4]]):x}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./conv_util":"1HzRR","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5RHpg":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3dTranspose",()=>l);var a=e("../tensor_util_env"),o=e("./conv3d_backprop_input");let l=(0,e("./operation").op)({conv3dTranspose_:function(e,t,r,n,s){let l=(0,a.convertToTensor)(e,"x","conv3dTranspose"),i=(0,a.convertToTensor)(t,"filter","conv3dTranspose");return(0,o.conv3DBackpropInput)(r,l,i,n,s)}})},{"../tensor_util_env":"5isXB","./conv3d_backprop_input":"9Bne8","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9Bne8":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3DBackpropInput",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../util"),i=e("./operation"),u=e("./reshape");let p=(0,i.op)({conv3DBackpropInput_:function(e,t,r,n,s){l.assert(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let i=e,p=t,c=!1;4===t.rank&&(c=!0,p=(0,u.reshape)(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),i=[1,e[0],e[1],e[2],e[3]]);let d=i[4],f=p.shape[4];l.assert(5===i.length,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${i.length}.`),l.assert(5===p.rank,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${p.rank}`),l.assert(5===r.rank,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${r.rank}`),l.assert(d===r.shape[3],()=>`Error in conv3dDerInput: depth of input (${d}) must match input depth for filter ${r.shape[3]}.`),l.assert(f===r.shape[4],()=>`Error in conv3dDerInput: depth of output (${f}) must match output depth for filter ${r.shape[4]}.`);let m={dy:p,filter:r},h={pad:s,strides:n,inputShape:i},g=a.ENGINE.runKernel(o.Conv3DBackpropInputV2,m,h);return c?(0,u.reshape)(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}})},{"../engine":"c6qwc","../kernel_names":"349aa","../util":"icflD","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bj03v:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cos",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({cos_:function(e){let t=(0,l.convertToTensor)(e,"x","cos","float32");return a.ENGINE.runKernel(o.Cos,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"24JjO":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cosh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({cosh_:function(e){let t=(0,l.convertToTensor)(e,"x","cosh","float32");return a.ENGINE.runKernel(o.Cosh,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5RZdI":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumprod",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({cumprod_:function(e,t=0,r=!1,n=!1){let s=(0,l.convertToTensor)(e,"x","cumprod");return a.ENGINE.runKernel(o.Cumprod,{x:s},{axis:t,exclusive:r,reverse:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4ULzW":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumsum",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({cumsum_:function(e,t=0,r=!1,n=!1){let s=(0,l.convertToTensor)(e,"x","cumsum");return a.ENGINE.runKernel(o.Cumsum,{x:s},{axis:t,exclusive:r,reverse:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cOTcl:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"denseBincount",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({denseBincount_:function(e,t,r,n=!1){let s=(0,l.convertToTensor)(e,"x","denseBincount"),u=(0,l.convertToTensor)(t,"weights","denseBincount");return i.assert("int32"===s.dtype,()=>`Error in denseBincount: input dtype must be int32, but got ${s.dtype}`),i.assert(s.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${s.rank}.`),i.assert(r>=0,()=>`size must be non-negative, but got ${r}.`),i.assert(u.size===s.size||0===u.size,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${s.shape}, weights shape: ${u.shape}.`),a.ENGINE.runKernel(o.DenseBincount,{x:s,weights:u},{size:r,binaryOutput:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8r7gw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthToSpace",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({depthToSpace_:function(e,t,r="NHWC"){let n=(0,l.convertToTensor)(e,"x","depthToSpace","float32"),s="NHWC"===r?n.shape[1]:n.shape[2],u="NHWC"===r?n.shape[2]:n.shape[3],p="NHWC"===r?n.shape[3]:n.shape[1];return i.assert(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),i.assert(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying + ${s} and ${t} for depthToSpace with input shape + ${n.shape}`),i.assert(u*t>=0,()=>`Negative dimension size caused by overflow when multiplying + ${u} and ${t} for depthToSpace with input shape + ${n.shape}`),i.assert(p%(t*t)==0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${p} for depthToSpace with input shape ${n.shape}`),a.ENGINE.runKernel(o.DepthToSpace,{x:n},{blockSize:t,dataFormat:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ffu4I:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2d",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./conv_util"),p=e("./operation"),c=e("./reshape");let d=(0,p.op)({depthwiseConv2d_:function(e,t,r,n,s="NHWC",p=[1,1],d){let f=(0,l.convertToTensor)(e,"x","depthwiseConv2d","float32"),m=(0,l.convertToTensor)(t,"filter","depthwiseConv2d","float32"),h=f,g=!1;3===f.rank&&(g=!0,h=(0,c.reshape)(f,[1,f.shape[0],f.shape[1],f.shape[2]])),i.assert(4===h.rank,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),i.assert(4===m.rank,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`);let x="NHWC"===s?h.shape[3]:h.shape[1];i.assert(x===m.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${x}) must match the inChannels dimension in filter ${m.shape[2]}.`),u.checkPadOnDimRoundingMode("depthwiseConv2d",n,d);let v={x:h,filter:m},y=a.ENGINE.runKernel(o.DepthwiseConv2dNative,v,{strides:r,pad:n,dataFormat:s,dilations:p,dimRoundingMode:d});return g?(0,c.reshape)(y,[y.shape[1],y.shape[2],y.shape[3]]):y}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./conv_util":"1HzRR","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bS9J2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"diag",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({diag_:function(e){let t=(0,l.convertToTensor)(e,"x","diag");return a.ENGINE.runKernel(o.Diag,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lPY76:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dilation2d",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./operation"),p=e("./reshape");let c=(0,u.op)({dilation2d_:function(e,t,r,n,s=[1,1],u="NHWC"){let c=(0,l.convertToTensor)(e,"x","dilation2d"),d=(0,l.convertToTensor)(t,"filter","dilation2d");i.assert(3===c.rank||4===c.rank,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${c.rank}.`),i.assert(3===d.rank,()=>`Error in dilation2d: filter must be rank 3, but got rank ${d.rank}.`),i.assert("NHWC"===u,()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${u}`);let f=c,m=!1;3===c.rank&&(f=(0,p.reshape)(c,[1,c.shape[0],c.shape[1],c.shape[2]]),m=!0),i.assert(f.shape[3]===d.shape[2],()=>`Error in dilation2d: input and filter must have the same depth: ${f.shape[3]} vs ${d.shape[2]}`);let h={x:f,filter:d},g=a.ENGINE.runKernel(o.Dilation2D,h,{strides:r,pad:n,dilations:s});return m?(0,p.reshape)(g,[g.shape[1],g.shape[2],g.shape[3]]):g}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8msU1":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"divNoNan",()=>d);var a=e("../tensor_util"),o=e("../tensor_util_env"),l=e("./div"),i=e("./equal"),u=e("./operation"),p=e("./where"),c=e("./zeros_like");let d=(0,u.op)({divNoNan_:function(e,t){let r=(0,o.convertToTensor)(e,"a","div"),n=(0,o.convertToTensor)(t,"b","div");[r,n]=(0,a.makeTypesMatch)(r,n);let s=(0,l.div)(r,n),u=(0,c.zerosLike)(s),d=(0,i.equal)(n,u);return(0,p.where)(d,u,s)}})},{"../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./div":"lbTan","./equal":"4fBRt","./operation":"2me4m","./where":"a7ZmF","./zeros_like":"1peA5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4fBRt":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"equal",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util");let p=(0,e("./operation").op)({equal_:function(e,t){let r=(0,i.convertToTensor)(e,"a","equal","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","equal","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.Equal,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9OeEk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){let r=e.length,n=[];for(let s=0;s1&&1===o&&n.unshift(a)}return n}function o(e,t){let r=[];for(let n=0;n1)&&r.unshift(a)}return r}function l(e,t){let r=Math.max(e.length,t.length),n=Array(r);for(let s=0;sa),s.export(r,"getReductionAxes",()=>o),s.export(r,"assertAndGetBroadcastShape",()=>l)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],a7ZmF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"where",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./broadcast_to"),u=e("./broadcast_util");let p=(0,e("./operation").op)({where_:function(e,t,r){let n=(0,l.convertToTensor)(t,"a","where"),s=(0,l.convertToTensor)(r,"b","where"),p=(0,l.convertToTensor)(e,"condition","where","bool"),c=(0,u.assertAndGetBroadcastShape)((0,u.assertAndGetBroadcastShape)(p.shape,n.shape),s.shape),d=(0,i.broadcastTo)(p,c),f=(0,i.broadcastTo)(n,c),m=(0,i.broadcastTo)(s,c);return a.ENGINE.runKernel(o.Select,{condition:d,t:f,e:m})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./broadcast_to":"4YYa0","./broadcast_util":"9OeEk","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1peA5":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"zerosLike",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({zerosLike_:function(e){let t=(0,l.convertToTensor)(e,"x","zerosLike");return a.ENGINE.runKernel(o.ZerosLike,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1Be6D":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dot",()=>p);var a=e("../tensor_util_env"),o=e("../util"),l=e("./mat_mul"),i=e("./operation"),u=e("./reshape");let p=(0,i.op)({dot_:function(e,t){let r=(0,a.convertToTensor)(e,"t1","dot"),n=(0,a.convertToTensor)(t,"t2","dot");o.assert((1===r.rank||2===r.rank)&&(1===n.rank||2===n.rank),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${r.rank} and ${n.rank}.`);let s=1===r.rank?r.size:r.shape[1],i=1===n.rank?n.size:n.shape[0];if(o.assert(s===i,()=>`Error in dot: inner dimensions of inputs must match, but got ${s} and ${i}.`),1===r.rank&&1===n.rank){let e=(0,u.reshape)(r,[1,-1]),t=(0,u.reshape)(n,[-1,1]),s=(0,l.matMul)(e,t);return(0,u.reshape)(s,[])}if(1===r.rank&&2===n.rank){let e=(0,u.reshape)(r,[1,-1]),t=(0,u.reshape)(n,[n.shape[0],n.shape[1]]),s=(0,l.matMul)(e,t);return(0,u.reshape)(s,[s.size])}if(2===r.rank&&1===n.rank){let e=(0,u.reshape)(n,[-1,1]),t=(0,l.matMul)(r,e);return(0,u.reshape)(t,[t.size])}{let e=(0,u.reshape)(n,[n.shape[0],n.shape[1]]);return(0,l.matMul)(r,e)}}})},{"../tensor_util_env":"5isXB","../util":"icflD","./mat_mul":"hHb0J","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bFs63:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"einsum_",()=>i),s.export(r,"einsum",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");function i(e,...t){let r=t.map((e,t)=>(0,l.convertToTensor)(e,`tensors${t}`,"einsum"));return a.ENGINE.runKernel(o.Einsum,r,{equation:e})}let u=(0,e("./operation").op)({einsum_:i})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],elRT9:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"elu",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({elu_:function(e){let t=(0,l.convertToTensor)(e,"x","elu","float32");return a.ENGINE.runKernel(o.Elu,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6l9tH":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ensureShape",()=>l);var a=e("../tensor_util_env"),o=e("../util_base");let l=(0,e("./operation").op)({ensureShape_:function(e,t){let r=(0,a.convertToTensor)(e,"x","ensureShape","string_or_numeric");if(!(0,o.arraysEqualWithNull)(r.shape,t))throw Error(`EnsureShape: Shape of tensor ${r.shape} is not compatible with expected shape ${t}`);return e}})},{"../tensor_util_env":"5isXB","../util_base":"bNQH0","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gmOa2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"erf",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./cast");let p=(0,e("./operation").op)({erf_:function(e){let t=(0,l.convertToTensor)(e,"x","erf");i.assert("int32"===t.dtype||"float32"===t.dtype,()=>"Input dtype must be `int32` or `float32`."),"int32"===t.dtype&&(t=(0,u.cast)(t,"float32"));let r={x:t};return a.ENGINE.runKernel(o.Erf,r)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./cast":"juFUN","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aYQZA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"euclideanNorm",()=>o);var a=e("./norm");let o=(0,e("./operation").op)({euclideanNorm_:function(e,t=null,r=!1){return(0,a.norm)(e,"euclidean",t,r)}})},{"./norm":"auKpd","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],auKpd:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"norm",()=>v);var a=e("../tensor_util_env"),o=e("../util"),l=e("./abs"),i=e("./axis_util"),u=e("./max"),p=e("./min"),c=e("./operation"),d=e("./pow"),f=e("./reshape"),m=e("./scalar"),h=e("./sqrt"),g=e("./square"),x=e("./sum");let v=(0,c.op)({norm_:function(e,t="euclidean",r=null,n=!1){let s=function e(t,r,n=null){if(0===t.rank)return(0,l.abs)(t);if(1!==t.rank&&null===n)return e((0,f.reshape)(t,[-1]),r,n);if(1===t.rank||"number"==typeof n||Array.isArray(n)&&1===n.length){if(1===r)return(0,x.sum)((0,l.abs)(t),n);if(r===1/0)return(0,u.max)((0,l.abs)(t),n);if(r===-1/0)return(0,p.min)((0,l.abs)(t),n);if("euclidean"===r||2===r)return(0,h.sqrt)((0,x.sum)((0,d.pow)((0,l.abs)(t),(0,m.scalar)(2,"int32")),n));throw Error(`Error in norm: invalid ord value: ${r}`)}if(Array.isArray(n)&&2===n.length){if(1===r)return(0,u.max)((0,x.sum)((0,l.abs)(t),n[0]),n[1]-1);if(r===1/0)return(0,u.max)((0,x.sum)((0,l.abs)(t),n[1]),n[0]);if(r===-1/0)return(0,p.min)((0,x.sum)((0,l.abs)(t),n[1]),n[0]);if("fro"===r||"euclidean"===r)return(0,h.sqrt)((0,x.sum)((0,g.square)(t),n));throw Error(`Error in norm: invalid ord value: ${r}`)}throw Error(`Error in norm: invalid axis: ${n}`)}(e=(0,a.convertToTensor)(e,"x","norm"),t,r),c=s.shape;if(n){let t=(0,o.parseAxisParam)(r,e.shape);c=i.expandShapeToKeepDim(s.shape,t)}return(0,f.reshape)(s,c)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./abs":"9L54v","./axis_util":"4dwwj","./max":"erFBB","./min":"1qUuZ","./operation":"2me4m","./pow":"aku8e","./reshape":"2znRS","./scalar":"aCdNN","./sqrt":"946JS","./square":"kNrd2","./sum":"jlBkb","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4dwwj":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"axesAreInnerMostDims",()=>o),s.export(r,"combineLocations",()=>l),s.export(r,"computeOutAndReduceShapes",()=>i),s.export(r,"expandShapeToKeepDim",()=>u),s.export(r,"assertAxesAreInnerMostDims",()=>p),s.export(r,"getAxesPermutation",()=>c),s.export(r,"getUndoAxesPermutation",()=>d),s.export(r,"getInnerMostAxes",()=>f);var a=e("../util");function o(e,t){for(let r=0;re[t])]}function u(e,t){return l(e,t.map(e=>1),t)}function p(e,t,r){a.assert(o(t,r),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${r} input.`)}function c(e,t){if(o(e,t))return null;let r=[];for(let n=0;nr.push(e)),r}function d(e){return e.map((e,t)=>[t,e]).sort((e,t)=>e[1]-t[1]).map(e=>e[0])}function f(e,t){let r=[];for(let n=t-e;ni);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({max_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","max");return a.ENGINE.runKernel(o.Max,{x:n},{reductionIndices:t,keepDims:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1qUuZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"min",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({min_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","min");return a.ENGINE.runKernel(o.Min,{x:n},{axis:t,keepDims:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aku8e:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pow",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({pow_:function(e,t){let r=(0,i.convertToTensor)(e,"base","pow"),n=(0,i.convertToTensor)(t,"exp","pow");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Pow,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aCdNN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"scalar",()=>l);var a=e("../util"),o=e("./tensor_ops_util");function l(e,t){if(((0,a.isTypedArray)(e)&&"string"!==t||Array.isArray(e))&&"complex64"!==t)throw Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if("string"===t&&(0,a.isTypedArray)(e)&&!(e instanceof Uint8Array))throw Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return(0,o.makeTensor)(e,[],[],t)}},{"../util":"icflD","./tensor_ops_util":"7gShZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"946JS":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sqrt",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({sqrt_:function(e){let t=(0,l.convertToTensor)(e,"x","sqrt","float32");return a.ENGINE.runKernel(o.Sqrt,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kNrd2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"square",()=>l);var a=e("../engine"),o=e("../tensor_util_env");let l=(0,e("./operation").op)({square_:function(e){let t=(0,o.convertToTensor)(e,"x","square");return a.ENGINE.runKernel("Square",{x:t},{})}})},{"../engine":"c6qwc","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jlBkb:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sum",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./cast");let u=(0,e("./operation").op)({sum_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","sum");"bool"===n.dtype&&(n=(0,i.cast)(n,"int32"));let s={x:n};return a.ENGINE.runKernel(o.Sum,s,{axis:t,keepDims:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./cast":"juFUN","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aYtA8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"exp",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({exp_:function(e){let t=(0,l.convertToTensor)(e,"x","exp");return a.ENGINE.runKernel(o.Exp,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6YWDL":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expandDims",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({expandDims_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","expandDims","string_or_numeric");return i.assert(t<=r.rank,()=>"Axis must be <= rank of the tensor"),a.ENGINE.runKernel(o.ExpandDims,{input:r},{dim:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ak9I4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expm1",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({expm1_:function(e){let t=(0,l.convertToTensor)(e,"x","expm1");return a.ENGINE.runKernel(o.Expm1,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],j8T5c:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"eye",()=>p);var a=e("./buffer"),o=e("./expand_dims"),l=e("./operation"),i=e("./reshape"),u=e("./tile");let p=(0,l.op)({eye_:function(e,t,r,n="float32"){null==t&&(t=e);let s=(0,a.buffer)([e,t],n),l=e<=t?e:t;for(let e=0;eu);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({tile_:function(e,t){let r=(0,l.convertToTensor)(e,"x","tile","string_or_numeric");return i.assert(r.rank===t.length,()=>`Error in transpose: rank of input ${r.rank} must match length of reps ${t}.`),a.ENGINE.runKernel(o.Tile,{x:r},{reps:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],Urqox:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floor",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({floor_:function(e){let t=(0,l.convertToTensor)(e,"x","floor","float32");return a.ENGINE.runKernel(o.Floor,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9M6NX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gather",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({gather_:function(e,t,r=0,n=0){let s=(0,l.convertToTensor)(e,"x","gather"),i=(0,l.convertToTensor)(t,"indices","gather","int32");return a.ENGINE.runKernel(o.GatherV2,{x:s,indices:i},{axis:r,batchDims:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3KUcR":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"greater",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util");let p=(0,e("./operation").op)({greater_:function(e,t){let r=(0,i.convertToTensor)(e,"a","greater","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","greater","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.Greater,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ai7qe:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"greaterEqual",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util");let p=(0,e("./operation").op)({greaterEqual_:function(e,t){let r=(0,i.convertToTensor)(e,"a","greaterEqual","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","greaterEqual","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.GreaterEqual,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iepBk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"imag",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({imag_:function(e){let t=(0,l.convertToTensor)(e,"input","imag");return a.ENGINE.runKernel(o.Imag,{input:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bOC6f:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isFinite",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({isFinite_:function(e){let t=(0,l.convertToTensor)(e,"x","isFinite");return a.ENGINE.runKernel(o.IsFinite,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],d61Qv:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isInf",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({isInf_:function(e){let t=(0,l.convertToTensor)(e,"x","isInf");return a.ENGINE.runKernel(o.IsInf,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jOr5d:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isNaN",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({isNaN_:function(e){let t=(0,l.convertToTensor)(e,"x","isNaN");return a.ENGINE.runKernel(o.IsNan,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bECmF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"leakyRelu",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({leakyRelu_:function(e,t=.2){let r=(0,l.convertToTensor)(e,"x","leakyRelu");return a.ENGINE.runKernel(o.LeakyRelu,{x:r},{alpha:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3qq9g":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"less",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util");let p=(0,e("./operation").op)({less_:function(e,t){let r=(0,i.convertToTensor)(e,"a","less","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","less","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.Less,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hEbcw:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lessEqual",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util");let p=(0,e("./operation").op)({lessEqual_:function(e,t){let r=(0,i.convertToTensor)(e,"a","lessEqual","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","lessEqual","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.LessEqual,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8RguN":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"linspace",()=>l);var a=e("../engine"),o=e("../kernel_names");function l(e,t,r){if(r<=0)throw Error("The number of values should be positive.");return a.ENGINE.runKernel(o.LinSpace,{},{start:e,stop:t,num:r})}},{"../engine":"c6qwc","../kernel_names":"349aa","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jRGtA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"localResponseNormalization",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./operation"),p=e("./reshape");let c=(0,u.op)({localResponseNormalization_:function(e,t=5,r=1,n=1,s=.5){let u=(0,l.convertToTensor)(e,"x","localResponseNormalization");i.assert(4===u.rank||3===u.rank,()=>`Error in localResponseNormalization: x must be rank 3 or 4 but got + rank ${u.rank}.`),i.assert(i.isInt(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let c=u,d=!1;3===u.rank&&(d=!0,c=(0,p.reshape)(u,[1,u.shape[0],u.shape[1],u.shape[2]]));let f={x:c},m=a.ENGINE.runKernel(o.LRN,f,{depthRadius:t,bias:r,alpha:n,beta:s});return d?(0,p.reshape)(m,[m.shape[1],m.shape[2],m.shape[3]]):m}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bjj59:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"log",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({log_:function(e){let t=(0,l.convertToTensor)(e,"x","log","float32");return a.ENGINE.runKernel(o.Log,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],acqft:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"log1p",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({log1p_:function(e){let t=(0,l.convertToTensor)(e,"x","log1p");return a.ENGINE.runKernel(o.Log1p,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3aDHP":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logSigmoid",()=>d);var a=e("../gradients"),o=e("../tensor_util_env"),l=e("./mul"),i=e("./neg"),u=e("./operation"),p=e("./sigmoid"),c=e("./softplus");let d=(0,u.op)({logSigmoid_:function(e){let t=(0,o.convertToTensor)(e,"x","logSigmoid");return(0,a.customGrad)(e=>({value:(0,i.neg)((0,c.softplus)((0,i.neg)(e))),gradFunc:t=>(0,l.mul)(t,(0,p.sigmoid)((0,i.neg)(e)))}))(t)}})},{"../gradients":"7QhD7","../tensor_util_env":"5isXB","./mul":"3233B","./neg":"8HIhG","./operation":"2me4m","./sigmoid":"kgtAa","./softplus":"G5sKZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7QhD7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"customGrad",()=>m),s.export(r,"variableGrads",()=>f),s.export(r,"valueAndGrad",()=>c),s.export(r,"valueAndGrads",()=>d),s.export(r,"grad",()=>u),s.export(r,"grads",()=>p);var a=e("./engine"),o=e("./tensor"),l=e("./tensor_util_env"),i=e("./util");function u(e){return i.assert(i.isFunction(e),()=>"The f passed in grad(f) must be a function"),(t,r)=>{let n=(0,l.convertToTensor)(t,"x","tf.grad","string_or_numeric"),s=null!=r?(0,l.convertToTensor)(r,"dy","tf.grad"):null;return a.ENGINE.tidy(()=>{let{value:t,grads:r}=a.ENGINE.gradients(()=>e(n),[n],s);return null!=s&&i.assertShapesMatch(t.shape,s.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),h(r),r[0]})}}function p(e){return i.assert(i.isFunction(e),()=>"The f passed in grads(f) must be a function"),(t,r)=>{i.assert(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let n=(0,l.convertToTensorArray)(t,"args","tf.grads","string_or_numeric"),s=null!=r?(0,l.convertToTensor)(r,"dy","tf.grads"):null;return a.ENGINE.tidy(()=>{let{value:t,grads:r}=a.ENGINE.gradients(()=>e(...n),n,s);return null!=s&&i.assertShapesMatch(t.shape,s.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),h(r),r})}}function c(e){return i.assert(i.isFunction(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,r)=>{i.assert(t instanceof o.Tensor,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),i.assert(null==r||r instanceof o.Tensor,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:n,value:s}=a.ENGINE.gradients(()=>e(t),[t],r);return h(n),{grad:n[0],value:s}}}function d(e){return i.assert(i.isFunction(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,r)=>{i.assert(Array.isArray(t)&&t.every(e=>e instanceof o.Tensor),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),i.assert(null==r||r instanceof o.Tensor,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let n=a.ENGINE.gradients(()=>e(...t),t,r);return null!=r&&i.assertShapesMatch(n.value.shape,r.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),h(n.grads),n}}function f(e,t){i.assert(i.isFunction(e),()=>"The f passed in variableGrads(f) must be a function"),i.assert(null==t||Array.isArray(t)&&t.every(e=>e instanceof o.Variable),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let r=null!=t;if(!r)for(let e in t=[],a.ENGINE.registeredVariables)t.push(a.ENGINE.registeredVariables[e]);let n=r?t.filter(e=>!e.trainable):null,s=t.length;t=t.filter(e=>e.trainable),i.assert(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${s} variables is trainable.`);let{value:l,grads:u}=a.ENGINE.gradients(e,t,null,!0);i.assert(u.some(e=>null!=e),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),i.assert(0===l.rank,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${l.rank} tensor`);let p={};return t.forEach((e,t)=>{null!=u[t]&&(p[e.name]=u[t])}),null!=n&&n.forEach(e=>p[e.name]=null),{value:l,grads:p}}function m(e){return a.ENGINE.customGrad(e)}function h(e){if(e.filter(e=>null==e).length>0)throw Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that + the f you passed encloses all operations that lead from x to y.`)}},{"./engine":"c6qwc","./tensor":"cfIkd","./tensor_util_env":"5isXB","./util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8HIhG":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"neg",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({neg_:function(e){let t=(0,l.convertToTensor)(e,"x","neg");return a.ENGINE.runKernel(o.Neg,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],G5sKZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softplus",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({softplus_:function(e){let t=(0,l.convertToTensor)(e,"x","softplus");return a.ENGINE.runKernel(o.Softplus,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7nk63":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logSoftmax",()=>h);var a=e("../gradients"),o=e("../tensor_util_env"),l=e("./cast"),i=e("./exp"),u=e("./log"),p=e("./max"),c=e("./mul"),d=e("./operation"),f=e("./sub"),m=e("./sum");let h=(0,d.op)({logSoftmax_:function(e,t=-1){let r=(0,o.convertToTensor)(e,"logits","logSoftmax");if(-1===t&&(t=r.rank-1),t!==r.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${r.rank} and axis was ${t}`);return(0,a.customGrad)((e,r)=>{let n=(0,p.max)(e,t,!0),s=(0,f.sub)(e,n),a=(0,f.sub)((0,l.cast)(s,"float32"),(0,u.log)((0,m.sum)((0,i.exp)(s),t,!0)));return r([a]),{value:a,gradFunc:(e,r)=>{let[n]=r,s=(0,i.exp)(n);return(0,f.sub)(e,(0,c.mul)((0,m.sum)(e,t,!0),s))}}})(r)}})},{"../gradients":"7QhD7","../tensor_util_env":"5isXB","./cast":"juFUN","./exp":"aYtA8","./log":"bjj59","./max":"erFBB","./mul":"3233B","./operation":"2me4m","./sub":"2lFei","./sum":"jlBkb","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2lFei":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sub",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({sub_:function(e,t){let r=(0,i.convertToTensor)(e,"a","sub"),n=(0,i.convertToTensor)(t,"b","sub");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Sub,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gPZz6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logSumExp",()=>g);var a=e("../tensor_util_env"),o=e("../util"),l=e("./add"),i=e("./axis_util"),u=e("./exp"),p=e("./log"),c=e("./max"),d=e("./operation"),f=e("./reshape"),m=e("./sub"),h=e("./sum");let g=(0,d.op)({logSumExp_:function(e,t=null,r=!1){let n=(0,a.convertToTensor)(e,"x","logSumExp"),s=(0,o.parseAxisParam)(t,n.shape),d=(0,c.max)(n,s,!0),g=(0,m.sub)(n,d),x=(0,u.exp)(g),v=(0,h.sum)(x,s),y=(0,p.log)(v),b=(0,l.add)((0,f.reshape)(d,y.shape),y);if(r){let e=(0,i.expandShapeToKeepDim)(b.shape,s);return(0,f.reshape)(b,e)}return b}})},{"../tensor_util_env":"5isXB","../util":"icflD","./add":"dX80O","./axis_util":"4dwwj","./exp":"aYtA8","./log":"bjj59","./max":"erFBB","./operation":"2me4m","./reshape":"2znRS","./sub":"2lFei","./sum":"jlBkb","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8lNbb":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalAnd",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./broadcast_util");let u=(0,e("./operation").op)({logicalAnd_:function(e,t){let r=(0,l.convertToTensor)(e,"a","logicalAnd","bool"),n=(0,l.convertToTensor)(t,"b","logicalAnd","bool");return(0,i.assertAndGetBroadcastShape)(r.shape,n.shape),a.ENGINE.runKernel(o.LogicalAnd,{a:r,b:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cYHsS:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalNot",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({logicalNot_:function(e){let t=(0,l.convertToTensor)(e,"x","logicalNot","bool");return a.ENGINE.runKernel(o.LogicalNot,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jhe6h:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalOr",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./broadcast_util");let u=(0,e("./operation").op)({logicalOr_:function(e,t){let r=(0,l.convertToTensor)(e,"a","logicalOr","bool"),n=(0,l.convertToTensor)(t,"b","logicalOr","bool");return(0,i.assertAndGetBroadcastShape)(r.shape,n.shape),a.ENGINE.runKernel(o.LogicalOr,{a:r,b:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],crgLh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalXor",()=>p);var a=e("../tensor_util_env"),o=e("./broadcast_util"),l=e("./logical_and"),i=e("./logical_not"),u=e("./logical_or");let p=(0,e("./operation").op)({logicalXor_:function(e,t){let r=(0,a.convertToTensor)(e,"a","logicalXor","bool"),n=(0,a.convertToTensor)(t,"b","logicalXor","bool");return(0,o.assertAndGetBroadcastShape)(r.shape,n.shape),(0,l.logicalAnd)((0,u.logicalOr)(e,t),(0,i.logicalNot)((0,l.logicalAnd)(e,t)))}})},{"../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./logical_and":"8lNbb","./logical_not":"cYHsS","./logical_or":"jhe6h","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],f4R9w:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lowerBound",()=>o);var a=e("./search_sorted");function o(e,t){return(0,a.searchSorted)(e,t,"left")}},{"./search_sorted":"csM1s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],csM1s:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"searchSorted",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util_base"),u=e("./operation"),p=e("./reshape");let c=(0,u.op)({searchSorted_:function(e,t,r="left"){let n=(0,l.convertToTensor)(e,"sortedSequence","searchSorted"),s=(0,l.convertToTensor)(t,"values","searchSorted"),u=n.shape[n.shape.length-1],c=s.shape[s.shape.length-1],d=(0,p.reshape)(n,[-1,u]),f=(0,p.reshape)(s,[-1,c]);if(d.rank<2)throw Error("Sorted input argument must be at least 2-dimensional");if(d.shape[0]!==f.shape[0])throw Error("Leading dimension of 'sortedSequence' and 'values' must match.");if((0,i.sizeFromShape)(f.shape)>=0x80000000)throw Error("values tensor size must less than 2147483648");if(d.shape[1]>=0x80000000)throw Error(`trailing dim_size must less than 2147483648 for int32 output type, was ${d.shape[1]}`);return a.ENGINE.runKernel(o.SearchSorted,{sortedSequence:d,values:f},{side:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util_base":"bNQH0","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2rPA7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./conv_util"),p=e("./operation"),c=e("./reshape");let d=(0,p.op)({maxPool_:function(e,t,r,n,s){let p=(0,l.convertToTensor)(e,"x","maxPool"),d=p,f=!1;3===p.rank&&(f=!0,d=(0,c.reshape)(p,[1,p.shape[0],p.shape[1],p.shape[2]])),i.assert(4===d.rank,()=>`Error in maxPool: input must be rank 4 but got rank ${d.rank}.`),i.assert(u.eitherStridesOrDilationsAreOne(r,1),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${r} and dilations '1'`),u.checkPadOnDimRoundingMode("maxPool",n,s);let m={x:d},h=a.ENGINE.runKernel(o.MaxPool,m,{filterSize:t,strides:r,pad:n,dimRoundingMode:s});return f?(0,c.reshape)(h,[h.shape[1],h.shape[2],h.shape[3]]):h}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./conv_util":"1HzRR","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3kM0r":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool3d",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./conv_util"),p=e("./operation"),c=e("./reshape");let d=(0,p.op)({maxPool3d_:function(e,t=[1,1,1],r,n,s,p="NDHWC"){let d=(0,l.convertToTensor)(e,"x","maxPool3d"),f=d,m=!1;4===d.rank&&(m=!0,f=(0,c.reshape)(d,[1,d.shape[0],d.shape[1],d.shape[2],d.shape[3]])),i.assert(5===f.rank,()=>`Error in maxPool3d: x must be rank 5 but got rank ${f.rank}.`),i.assert("NDHWC"===p,()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${p}`),(0,u.checkPadOnDimRoundingMode)("maxPool3d",n,s);let h={x:f},g=a.ENGINE.runKernel(o.MaxPool3D,h,{filterSize:t,strides:r,pad:n,dimRoundingMode:s,dataFormat:p});return m?(0,c.reshape)(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./conv_util":"1HzRR","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1yBgJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolWithArgmax",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({maxPoolWithArgmax_:function(e,t,r,n,s=!1){let i=(0,l.convertToTensor)(e,"x","maxPoolWithArgmax"),u=a.ENGINE.runKernel(o.MaxPoolWithArgmax,{x:i},{filterSize:t,strides:r,pad:n,includeBatchInIndex:s});return{result:u[0],indexes:u[1]}}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4zHPo":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maximum",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util"),p=e("./cast");let c=(0,e("./operation").op)({maximum_:function(e,t){let r=(0,i.convertToTensor)(e,"a","maximum"),n=(0,i.convertToTensor)(t,"b","maximum");[r,n]=(0,l.makeTypesMatch)(r,n),"bool"===r.dtype&&(r=(0,p.cast)(r,"int32"),n=(0,p.cast)(n,"int32")),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.Maximum,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./cast":"juFUN","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9PJXN":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mean",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({mean_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","mean");return a.ENGINE.runKernel(o.Mean,{x:n},{axis:t,keepDims:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6E9wv":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"meshgrid",()=>c);var a=e("./mat_mul"),o=e("./ones"),l=e("./reshape"),i=e("../tensor"),u=e("../tensor_util_env"),p=e("../util_base");function c(e,t,{indexing:r="xy"}={}){if("xy"!==r&&"ij"!==r)throw TypeError(`${r} is not a valid third argument to meshgrid`);if(void 0===e)return[];let n=(0,u.convertToTensor)(e,"x","meshgrid",e instanceof i.Tensor?e.dtype:"float32");if(void 0===t)return[n];let s=(0,u.convertToTensor)(t,"y","meshgrid",t instanceof i.Tensor?t.dtype:"float32"),d=(0,p.sizeFromShape)(n.shape),f=(0,p.sizeFromShape)(s.shape);return"xy"===r?(n=(0,l.reshape)(n,[1,-1]),s=(0,l.reshape)(s,[-1,1]),[(0,a.matMul)((0,o.ones)([f,1],n.dtype),n),(0,a.matMul)(s,(0,o.ones)([1,d],s.dtype))]):(n=(0,l.reshape)(n,[-1,1]),s=(0,l.reshape)(s,[1,-1]),[(0,a.matMul)(n,(0,o.ones)([1,f],n.dtype)),(0,a.matMul)((0,o.ones)([d,1],s.dtype),s)])}},{"./mat_mul":"hHb0J","./ones":"eYvGK","./reshape":"2znRS","../tensor":"cfIkd","../tensor_util_env":"5isXB","../util_base":"bNQH0","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eYvGK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ones",()=>function e(t,r="float32"){if((0,l.assertNonNegativeIntegerDimensions)(t),"complex64"===r){let r=e(t,"float32"),n=(0,u.zeros)(t,"float32");return(0,i.complex)(r,n)}let n=(0,o.makeOnesTypedArray)((0,o.sizeFromShape)(t),r);return a.ENGINE.makeTensor(n,t,r)});var a=e("../engine"),o=e("../util"),l=e("../util_base"),i=e("./complex"),u=e("./zeros")},{"../engine":"c6qwc","../util":"icflD","../util_base":"bNQH0","./complex":"5ASH6","./zeros":"fqUNT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fqUNT:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"zeros",()=>function e(t,r="float32"){if((0,o.assertNonNegativeIntegerDimensions)(t),"complex64"===r){let r=e(t,"float32"),n=e(t,"float32");return(0,l.complex)(r,n)}let n=(0,o.makeZerosTypedArray)((0,o.sizeFromShape)(t),r);return a.ENGINE.makeTensor(n,t,r)});var a=e("../engine"),o=e("../util"),l=e("./complex")},{"../engine":"c6qwc","../util":"icflD","./complex":"5ASH6","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"74TYW":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"minimum",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util"),p=e("./cast");let c=(0,e("./operation").op)({minimum_:function(e,t){let r=(0,i.convertToTensor)(e,"a","minimum"),n=(0,i.convertToTensor)(t,"b","minimum");[r,n]=(0,l.makeTypesMatch)(r,n),"bool"===r.dtype&&(r=(0,p.cast)(r,"int32"),n=(0,p.cast)(n,"int32")),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.Minimum,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./cast":"juFUN","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6rahc":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mirrorPad",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({mirrorPad_:function(e,t,r){i.assert("reflect"===r||"symmetric"===r,()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${r}.`);let n=(0,l.convertToTensor)(e,"x","mirrorPad");if(0===n.rank)throw Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");i.assert(t.length===n.rank,()=>`Padding doesn't match input. Must be ${n.rank}. Got ${t.length}.`);let s=+("reflect"===r);for(let e=0;e"Invalid number of paddings. Must be length of 2 each."),i.assert(t[e][0]>=0&&t[e][0]<=n.shape[e]-s&&t[e][1]>=0&&t[e][1]<=n.shape[e]-s,()=>`Padding in dimension ${e} cannot be greater than or equal to ${n.shape[e]-s} or less than 0 for input of shape ${n.shape}`);return a.ENGINE.runKernel(o.MirrorPad,{x:n},{paddings:t,mode:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7txgC":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mod",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({mod_:function(e,t){let r=(0,i.convertToTensor)(e,"a","mod"),n=(0,i.convertToTensor)(t,"b","mod");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Mod,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gJMJe:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"moments",()=>m);var a=e("../tensor_util_env"),o=e("../util"),l=e("./axis_util"),i=e("./cast"),u=e("./mean"),p=e("./operation"),c=e("./reshape"),d=e("./square"),f=e("./sub");let m=(0,p.op)({moments_:function(e,t=null,r=!1){e=(0,a.convertToTensor)(e,"x","moments");let n=(0,o.parseAxisParam)(t,e.shape),s=(0,u.mean)(e,n,r),p=s.shape;r||(p=(0,l.expandShapeToKeepDim)(s.shape,n));let m=(0,d.square)((0,f.sub)((0,i.cast)(e,"float32"),(0,c.reshape)(s,p)));return{mean:s,variance:(0,u.mean)(m,n,r)}}})},{"../tensor_util_env":"5isXB","../util":"icflD","./axis_util":"4dwwj","./cast":"juFUN","./mean":"9PJXN","./operation":"2me4m","./reshape":"2znRS","./square":"kNrd2","./sub":"2lFei","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9EDr2":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"multiRNNCell",()=>o);var a=e("../tensor_util_env");let o=(0,e("./operation").op)({multiRNNCell_:function(e,t,r,n){let s=(0,a.convertToTensor)(t,"data","multiRNNCell"),o=(0,a.convertToTensorArray)(r,"c","multiRNNCell"),l=(0,a.convertToTensorArray)(n,"h","multiRNNCell"),i=s,u=[];for(let t=0;tp);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./operation"),u=e("./reshape");let p=(0,i.op)({multinomial_:function(e,t,r,n=!1){let s=(0,l.convertToTensor)(e,"logits","multinomial"),i=s.size,p=s.rank;if(i<2)throw Error(`Error in multinomial: you need at least 2 outcomes, but got ${i}.`);if(p>2)throw Error(`Rank of probabilities must be 1 or 2, but is ${p}`);r=r||Math.random();let c=1===p?(0,u.reshape)(s,[1,-1]):s,d={numSamples:t,seed:r,normalized:n},f=a.ENGINE.runKernel(o.Multinomial,{logits:c},d);return 1===p?(0,u.reshape)(f,[f.size]):f}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],h3Wiz:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"notEqual",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util");let p=(0,e("./operation").op)({notEqual_:function(e,t){let r=(0,i.convertToTensor)(e,"a","notEqual","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","notEqual","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.NotEqual,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iJ8nQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"oneHot",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({oneHot_:function(e,t,r=1,n=0,s="int32"){if(t<2)throw Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let i=(0,l.convertToTensor)(e,"indices","oneHot","int32");return a.ENGINE.runKernel(o.OneHot,{indices:i},{dtype:s,depth:t,onValue:r,offValue:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5sNCT":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"onesLike",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({onesLike_:function(e){let t=(0,l.convertToTensor)(e,"x","onesLike");return a.ENGINE.runKernel(o.OnesLike,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hI835:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"outerProduct",()=>p);var a=e("../tensor_util_env"),o=e("../util"),l=e("./mat_mul"),i=e("./operation"),u=e("./reshape");let p=(0,i.op)({outerProduct_:function(e,t){let r=(0,a.convertToTensor)(e,"v1","outerProduct"),n=(0,a.convertToTensor)(t,"v2","outerProduct");o.assert(1===r.rank&&1===n.rank,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${r.rank} and ${n.rank}.`);let s=(0,u.reshape)(r,[-1,1]),i=(0,u.reshape)(n,[1,-1]);return(0,l.matMul)(s,i)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./mat_mul":"hHb0J","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5dL6W":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pad",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({pad_:function(e,t,r=0){let n=(0,l.convertToTensor)(e,"x","pad");if(0===n.rank)throw Error("pad(scalar) is not defined. Pass non-scalar to pad");return a.ENGINE.runKernel(o.PadV2,{x:n},{paddings:t,constantValue:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hehEW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pad1d",()=>i);var a=e("../util"),o=e("./operation"),l=e("./pad");let i=(0,o.op)({pad1d_:function(e,t,r=0){return(0,a.assert)(2===t.length,()=>"Invalid number of paddings. Must be length of 2."),(0,l.pad)(e,[t],r)}})},{"../util":"icflD","./operation":"2me4m","./pad":"5dL6W","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6X05W":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pad2d",()=>i);var a=e("../util"),o=e("./operation"),l=e("./pad");let i=(0,o.op)({pad2d_:function(e,t,r=0){return(0,a.assert)(2===t.length&&2===t[0].length&&2===t[1].length,()=>"Invalid number of paddings. Must be length of 2 each."),(0,l.pad)(e,t,r)}})},{"../util":"icflD","./operation":"2me4m","./pad":"5dL6W","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eFaKt:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pad3d",()=>i);var a=e("../util"),o=e("./operation"),l=e("./pad");let i=(0,o.op)({pad3d_:function(e,t,r=0){return(0,a.assert)(3===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length,()=>"Invalid number of paddings. Must be length of 2 each."),(0,l.pad)(e,t,r)}})},{"../util":"icflD","./operation":"2me4m","./pad":"5dL6W","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5JIjy":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pad4d",()=>i);var a=e("../util"),o=e("./operation"),l=e("./pad");let i=(0,o.op)({pad4d_:function(e,t,r=0){return(0,a.assert)(4===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length&&2===t[3].length,()=>"Invalid number of paddings. Must be length of 2 each."),(0,l.pad)(e,t,r)}})},{"../util":"icflD","./operation":"2me4m","./pad":"5dL6W","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fa7rV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pool",()=>m);var a=e("../tensor_util_env"),o=e("../util"),l=e("./avg_pool"),i=e("./batch_to_space_nd"),u=e("./conv_util"),p=e("./max_pool"),c=e("./operation"),d=e("./reshape"),f=e("./space_to_batch_nd");let m=(0,c.op)({pool_:function(e,t,r,n,s,c,m){let h;null==s&&(s=[1,1]),null==c&&(c=1),0===n&&(n="valid");let g=(0,a.convertToTensor)(e,"x","maxPool"),x=g,v=!1;3===g.rank&&(v=!0,x=(0,d.reshape)(g,[1,g.shape[0],g.shape[1],g.shape[2]])),o.assert(u.eitherStridesOrDilationsAreOne(c,s),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${c} and dilations '${s}'`);let y=u.computePool2DInfo(x.shape,t,c,s,n),b=[y.dilationHeight,y.dilationWidth];h="same"===n?function(e,t){let r=e.map((e,r)=>e+(e-1)*(t[r]-1)).map(e=>e-1),n=r.map(e=>Math.floor(e/2)),s=r.map((e,t)=>e-n[t]);return r.map((e,t)=>[n[t],s[t]])}([y.filterHeight,y.filterWidth],b):[[0,0],[0,0]];let _=1===b[0]&&1===b[1],[k,j]=function(e,t,r){let n=r.map(e=>e[0]),s=r.map(e=>e[1]),a=e.concat(n,s),o=t.map((e,t)=>(e-a[t]%e)%e),l=s.map((e,t)=>e+o[t]);return[t.map((e,t)=>[n[t],l[t]]),t.map((e,t)=>[0,o[t]])]}([y.inHeight,y.inWidth],b,h),I=_?n:"valid",w=_?x:(0,f.spaceToBatchND)(x,b,k),T=("avg"===r?()=>(0,l.avgPool)(w,t,c,I,m):()=>(0,p.maxPool)(w,t,c,I,m))(),N=_?T:(0,i.batchToSpaceND)(T,b,j);return v?(0,d.reshape)(N,[N.shape[1],N.shape[2],N.shape[3]]):N}})},{"../tensor_util_env":"5isXB","../util":"icflD","./avg_pool":"jw2jw","./batch_to_space_nd":"48Xl7","./conv_util":"1HzRR","./max_pool":"2rPA7","./operation":"2me4m","./reshape":"2znRS","./space_to_batch_nd":"kCZXN","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kCZXN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"spaceToBatchND",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({spaceToBatchND_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","spaceToBatchND");return i.assert(n.rank>=1+t.length,()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`),i.assert(r.length===t.length,()=>`paddings.shape[0] ${r.length} must be equal to [blockShape] ${t.length}`),i.assert(n.shape.reduce((e,n,s)=>s>0&&s<=t.length?e&&(n+r[s-1][0]+r[s-1][1])%t[s-1]==0:e,!0),()=>`input spatial dimensions ${n.shape.slice(1)} with paddings ${r.toString()} must be divisible by blockShapes ${t.toString()}`),a.ENGINE.runKernel(o.SpaceToBatchND,{x:n},{blockShape:t,paddings:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"97Biq":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prelu",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({prelu_:function(e,t){let r=(0,l.convertToTensor)(e,"x","prelu"),n=(0,l.convertToTensor)(t,"alpha","prelu");return a.ENGINE.runKernel(o.Prelu,{x:r,alpha:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iMnCC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prod",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./cast");let u=(0,e("./operation").op)({prod_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","prod");"bool"===n.dtype&&(n=(0,i.cast)(n,"int32"));let s={x:n};return a.ENGINE.runKernel(o.Prod,s,{axis:t,keepDims:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./cast":"juFUN","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6u9WD":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedGather",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({raggedGather_:function(e,t,r,n){let s=e.map((e,t)=>(0,l.convertToTensor)(e,`tensors${t}`,"raggedGather","int32")),i=(0,l.convertToTensor)(t,"paramsDenseValues","raggedGather"),u=(0,l.convertToTensor)(r,"indices","raggedGather","int32"),p=a.ENGINE.runKernel(o.RaggedGather,{paramsNestedSplits:s,paramsDenseValues:i,indices:u},{outputRaggedRank:n});return{outputNestedSplits:p.slice(0,p.length-1),outputDenseValues:p[p.length-1]}}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4Ep5b":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedRange",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({raggedRange_:function(e,t,r){let n=(0,l.convertToTensor)(e,"starts","raggedRange"),s=(0,l.convertToTensor)(t,"limits","raggedRange",n.dtype),i=(0,l.convertToTensor)(r,"deltas","raggedRange",n.dtype),u=a.ENGINE.runKernel(o.RaggedRange,{starts:n,limits:s,deltas:i});return{rtNestedSplits:u[0],rtDenseValues:u[1]}}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aUd7A:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedTensorToTensor",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({raggedTensorToTensor_:function(e,t,r,n,s){let i=(0,l.convertToTensor)(e,"shape","raggedTensorToTensor","int32"),u=(0,l.convertToTensor)(t,"values","raggedTensorToTensor"),p=(0,l.convertToTensor)(r,"defaultValue","raggedTensorToTensor",u.dtype),c=n.map((e,t)=>(0,l.convertToTensor)(e,`tensors${t}`,"raggedTensorToTensor","int32"));return a.ENGINE.runKernel(o.RaggedTensorToTensor,{shape:i,values:u,defaultValue:p,rowPartitionTensors:c},{rowPartitionTypes:s})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"45bji":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rand",()=>i);var a=e("../engine"),o=e("../util"),l=e("../util_base");let i=(0,e("./operation").op)({rand_:function(e,t,r){(0,l.assertNonNegativeIntegerDimensions)(e);let n=(0,o.sizeFromShape)(e),s=null;if(null==r||"float32"===r)s=new Float32Array(n);else if("int32"===r)s=new Int32Array(n);else if("bool"===r)s=new Uint8Array(n);else throw Error(`Unknown data type ${r}`);for(let e=0;eu);var a=e("../util_base"),o=e("./buffer"),l=e("./operation"),i=e("./rand_util");let u=(0,l.op)({randomGamma_:function(e,t,r=1,n="float32",s){if((0,a.assertNonNegativeIntegerDimensions)(e),null==r&&(r=1),null==n&&(n="float32"),"float32"!==n&&"int32"!==n)throw Error(`Unsupported data type ${n}`);let l=new(0,i.RandGamma)(t,r,n,s),u=(0,o.buffer)(e,n);for(let e=0;el),s.export(r,"RandGamma",()=>i),s.export(r,"UniformRandom",()=>u),s.export(r,"jarqueBeraNormalityTest",()=>p),s.export(r,"expectArrayInMeanStdRange",()=>c);var a=e("seedrandom"),o=e("../test_util");class l{constructor(e,t,r,n,s){this.mean=e,this.stdDev=t,this.dtype=r,this.nextVal=NaN,this.truncated=n,this.truncated&&(this.upper=this.mean+2*this.stdDev,this.lower=this.mean-2*this.stdDev);let o=s||Math.random();this.random=a.alea(o.toString())}nextValue(){let e,t;if(!isNaN(this.nextVal)){let e=this.nextVal;return this.nextVal=NaN,e}let r=!1;for(;!r;){let n,s,a;do a=(n=2*this.random()-1)*n+(s=2*this.random()-1)*s;while(a>=1||0===a)let o=Math.sqrt(-2*Math.log(a)/a);e=this.mean+this.stdDev*n*o,t=this.mean+this.stdDev*s*o,(!this.truncated||this.isValidTruncated(e))&&(r=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return null==this.dtype||"float32"===this.dtype?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}}class i{constructor(e,t,r,n){this.alpha=e,this.beta=1/t,this.dtype=r;let s=n||Math.random();this.randu=a.alea(s.toString()),this.randn=new l(0,1,r,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,r,n,s,a;for(;;){do n=this.randn.nextValue(),a=1+this.c*n;while(a<=0)if(a*=a*a,t=1-.331*(e=n*n)*e,r=.5*e+this.d*(1-a+Math.log(a)),(s=this.randu())null==this.dtype||"float32"===this.dtype,this.min=e,this.range=t-e,this.dtype=r,null==n&&(n=Math.random()),"number"==typeof n&&(n=n.toString()),!this.canReturnFloat()&&this.range<=1)throw Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=a.alea(n)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}}function p(e){let t=e.length,r=t/6*(Math.pow(function(e){let t=d(e),r=e.length,n=0,s=0;for(let a=0;a5.991)throw Error(`Invalid p-value for JB: ${r}`)}function c(e,t,r,n){null==n&&(n=(0,o.testEpsilon)());let s=d(e);(0,o.expectNumbersClose)(s,t,n),(0,o.expectNumbersClose)(function(e,t){let r=0;for(let n=0;n>>0,n-=t,n*=t,t=n>>>0,n-=t,t+=0x100000000*n}return(t>>>0)*23283064365386963e-26});r.next=function(){var e=2091639*r.s0+23283064365386963e-26*r.c;return r.s0=r.s1,r.s1=r.s2,r.s2=e-(r.c=0|e)},r.c=1,r.s0=n(" "),r.s1=n(" "),r.s2=n(" "),r.s0-=n(e),r.s0<0&&(r.s0+=1),r.s1-=n(e),r.s1<0&&(r.s1+=1),r.s2-=n(e),r.s2<0&&(r.s2+=1)}function s(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function a(e,t){var r=new n(e),a=t&&t.state,o=r.next;return o.int32=function(){return 0x100000000*r.next()|0},o.double=function(){return o()+(2097152*o()|0)*11102230246251565e-32},o.quick=o,a&&("object"==typeof a&&s(a,r),o.state=function(){return s(r,{})}),o}t&&t.exports?t.exports=a:r&&r.amd?r(function(){return a}):this.alea=a}(0,t,"function"==typeof define&&define)},{}],b58zD:[function(e,t,r,n){!function(e,t,r){function n(e){var t=this,r="";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:r+=e;for(var n=0;n>>0)/0x100000000};return o.double=function(){do var e=r.next()>>>11,t=(r.next()>>>0)/0x100000000,n=(e+t)/2097152;while(0===n)return n},o.int32=r.next,o.quick=o,a&&("object"==typeof a&&s(a,r),o.state=function(){return s(r,{})}),o}t&&t.exports?t.exports=a:r&&r.amd?r(function(){return a}):this.xor128=a}(0,t,"function"==typeof define&&define)},{}],aps4c:[function(e,t,r,n){!function(e,t,r){function n(e){var t=this,r="";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^(e^e<<1))|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:r+=e;for(var n=0;n>>4),t.next()}function s(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function a(e,t){var r=new n(e),a=t&&t.state,o=function(){return(r.next()>>>0)/0x100000000};return o.double=function(){do var e=r.next()>>>11,t=(r.next()>>>0)/0x100000000,n=(e+t)/2097152;while(0===n)return n},o.int32=r.next,o.quick=o,a&&("object"==typeof a&&s(a,r),o.state=function(){return s(r,{})}),o}t&&t.exports?t.exports=a:r&&r.amd?r(function(){return a}):this.xorwow=a}(0,t,"function"==typeof define&&define)},{}],lu36F:[function(e,t,r,n){!function(e,t,r){function n(e){var t=this;t.next=function(){var e,r,n=t.x,s=t.i;return e=n[s],e^=e>>>7,r=e^e<<24^((e=n[s+1&7])^e>>>10)^((e=n[s+3&7])^e>>>3)^((e=n[s+4&7])^e<<7),e=n[s+7&7],e^=e<<13,r^=e^e<<9,n[s]=r,t.i=s+1&7,r};var r,n=e,s=[];if(n===(0|n))s[0]=n;else for(r=0,n=""+n;r0;--r)t.next()}function s(e,t){return t.x=e.x.slice(),t.i=e.i,t}function a(e,t){null==e&&(e=+new Date);var r=new n(e),a=t&&t.state,o=function(){return(r.next()>>>0)/0x100000000};return o.double=function(){do var e=r.next()>>>11,t=(r.next()>>>0)/0x100000000,n=(e+t)/2097152;while(0===n)return n},o.int32=r.next,o.quick=o,a&&(a.x&&s(a,r),o.state=function(){return s(r,{})}),o}t&&t.exports?t.exports=a:r&&r.amd?r(function(){return a}):this.xorshift7=a}(0,t,"function"==typeof define&&define)},{}],gLpeE:[function(e,t,r,n){!function(e,t,r){function n(e){var t=this;t.next=function(){var e,r,n=t.w,s=t.X,a=t.i;return t.w=n=n+0x61c88647|0,r=s[a+34&127],e=s[a=a+1&127],r^=r<<13,e^=e<<17,r^=r>>>15,e^=e>>>12,r=s[a]=r^e,t.i=a,r+(n^n>>>16)|0},!function(e,t){var r,n,s,a,o,l=[],i=128;for(t===(0|t)?(n=t,t=null):(t+="\0",n=0,i=Math.max(i,t.length)),s=0,a=-32;a>>15,n^=n<<4,n^=n>>>13,a>=0&&(o=o+0x61c88647|0,s=0==(r=l[127&a]^=n+o)?s+1:0);for(s>=128&&(l[127&(t&&t.length||0)]=-1),s=127,a=512;a>0;--a)n=l[s+34&127],r=l[s=s+1&127],n^=n<<13,r^=r<<17,n^=n>>>15,r^=r>>>12,l[s]=n^r;e.w=o,e.X=l,e.i=s}(t,e)}function s(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function a(e,t){null==e&&(e=+new Date);var r=new n(e),a=t&&t.state,o=function(){return(r.next()>>>0)/0x100000000};return o.double=function(){do var e=r.next()>>>11,t=(r.next()>>>0)/0x100000000,n=(e+t)/2097152;while(0===n)return n},o.int32=r.next,o.quick=o,a&&(a.X&&s(a,r),o.state=function(){return s(r,{})}),o}t&&t.exports?t.exports=a:r&&r.amd?r(function(){return a}):this.xor4096=a}(0,t,"function"==typeof define&&define)},{}],gdZk8:[function(e,t,r,n){!function(e,t,r){function n(e){var t=this,r="";t.next=function(){var e=t.b,r=t.c,n=t.d,s=t.a;return e=e<<25^e>>>7^r,r=r-n|0,n=n<<24^n>>>8^s,s=s-e|0,t.b=e=e<<20^e>>>12^r,t.c=r=r-n|0,t.d=n<<16^r>>>16^s,t.a=s-e|0},t.a=0,t.b=0,t.c=-0x61c88647,t.d=0x517cc1b7,e===Math.floor(e)?(t.a=e/0x100000000|0,t.b=0|e):r+=e;for(var n=0;n>>0)/0x100000000};return o.double=function(){do var e=r.next()>>>11,t=(r.next()>>>0)/0x100000000,n=(e+t)/2097152;while(0===n)return n},o.int32=r.next,o.quick=o,a&&("object"==typeof a&&s(a,r),o.state=function(){return s(r,{})}),o}t&&t.exports?t.exports=a:r&&r.amd?r(function(){return a}):this.tychei=a}(0,t,"function"==typeof define&&define)},{}],fCJ8Z:[function(e,t,r,n){!function(r,n,s){var a,o="random",l=s.pow(256,6),i=s.pow(2,52),u=2*i;function p(e,t,p){var h=[],g=f(function e(t,r){var n,s=[],a=typeof t;if(r&&"object"==a)for(n in t)try{s.push(e(t[n],r-1))}catch(e){}return s.length?s:"string"==a?t:t+"\0"}((t=!0==t?{entropy:!0}:t||{}).entropy?[e,m(n)]:null==e?function(){try{var e;return a&&(e=a.randomBytes)?e=e(256):(e=new Uint8Array(256),(r.crypto||r.msCrypto).getRandomValues(e)),m(e)}catch(e){var t=r.navigator,s=t&&t.plugins;return[+new Date,r,s,r.screen,m(n)]}}():e,3),h),x=new c(h),v=function(){for(var e=x.g(6),t=l,r=0;e=u;)e/=2,t/=2,r>>>=1;return(e+r)/t};return v.int32=function(){return 0|x.g(4)},v.quick=function(){return x.g(4)/0x100000000},v.double=v,f(m(x.S),n),(t.pass||p||function(e,t,r,n){return(n&&(n.S&&d(n,x),e.state=function(){return d(x,{})}),r)?(s[o]=e,t):e})(v,g,"global"in t?t.global:this==s,t.state)}function c(e){var t,r=e.length,n=this,s=0,a=n.i=n.j=0,o=n.S=[];for(r||(e=[r++]);s<256;)o[s]=s++;for(s=0;s<256;s++)o[s]=o[a=255&a+e[s%r]+(t=o[s])],o[a]=t;(n.g=function(e){for(var t,r=0,s=n.i,a=n.j,o=n.S;e--;)t=o[s=255&s+1],r=256*r+o[255&(o[s]=o[a=255&a+t])+(o[a]=t)];return n.i=s,n.j=a,r})(256)}function d(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function f(e,t){for(var r,n=e+"",s=0;si),s.export(r,"expectArraysClose",()=>u),s.export(r,"testEpsilon",()=>p),s.export(r,"expectPromiseToFail",()=>d),s.export(r,"expectArraysEqual",()=>f),s.export(r,"expectNumbersClose",()=>m),s.export(r,"expectValuesInRange",()=>g),s.export(r,"expectArrayBuffersEqual",()=>x),s.export(r,"encodeStrings",()=>function e(t){for(let r=0;rv),s.export(r,"play",()=>y);var a=e("./engine"),o=e("./tensor_util_env"),l=e("./util");let i=.1;function u(e,t,r){return null==r&&(r=p()),c(e,t,(e,t)=>h(e,t,r))}function p(){return 32===a.ENGINE.backend.floatPrecision()?.001:i}function c(e,t,r){let n=!0;if(((0,l.isTypedArray)(e)||(0,l.isTypedArray)(t))&&(n=!1),(0,l.isTypedArray)(e)&&(0,l.isTypedArray)(t)&&(n=!0),n){let r=e.constructor.name,n=t.constructor.name;if(r!==n)throw Error(`Arrays are of different type. Actual: ${r}. Expected: ${n}`)}if(Array.isArray(e)&&Array.isArray(t)){let r=(0,o.inferShape)(e),n=(0,o.inferShape)(t);if(!(0,l.arraysEqual)(r,n))throw Error(`Arrays have different shapes. Actual: [${r}]. Expected: [${n}]`)}let s=(0,l.isTypedArray)(e)?e:(0,l.flatten)(e),a=(0,l.isTypedArray)(t)?t:(0,l.flatten)(t);if(s.length!==a.length)throw Error(`Arrays have different lengths actual: ${s.length} vs expected: ${a.length}. +Actual: ${s}. +Expected: ${a}.`);for(let e=0;et.fail(),()=>t()),"undefined"!=typeof expect&&expect().nothing()}function f(e,t){let r="string"==typeof t||"number"==typeof t||"boolean"==typeof t?[t]:t;return(0,l.isString)(e)||(0,l.isString)(e[0])||(0,l.isString)(t)||(0,l.isString)(t[0])?c(e,r,(e,t)=>e==t):c(e,t,(e,t)=>h(e,t,0))}function m(e,t,r){if(null==r&&(r=p()),!h(e,t,r))throw Error(`Numbers differ: actual === ${e}, expected === ${t}`);"undefined"!=typeof expect&&expect().nothing()}function h(e,t,r){return!(isFinite(e)||isFinite(t))||!(isNaN(e)||isNaN(t)||Math.abs(e-t)>r)}function g(e,t,r){for(let n=0;nr)throw Error(`Value out of range:${e[n]} low: ${t}, high: ${r}`)}function x(e,t){let r=new Float32Array(e),n=new Float32Array(t);if(r.length!==n.length)throw Error(`Expected ArrayBuffer to be of length ${n.length}, but it was ${r.length}`);for(let e=0;e{t.addEventListener("loadeddata",r=>e(t)),t.load()})}async function y(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}},{"./engine":"c6qwc","./tensor_util_env":"5isXB","./util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bxT1q:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"randomNormal",()=>u);var a=e("../util_base"),o=e("./buffer"),l=e("./operation"),i=e("./rand_util");let u=(0,l.op)({randomNormal_:function(e,t=0,r=1,n,s){if((0,a.assertNonNegativeIntegerDimensions)(e),null!=n&&"bool"===n)throw Error(`Unsupported data type ${n}`);let l=new(0,i.MPRandGauss)(t,r,n,!1,s),u=(0,o.buffer)(e,n);for(let e=0;el);var a=e("./operation"),o=e("./random_normal");let l=(0,a.op)({randomStandardNormal_:function(e,t,r){if(null!=t&&"bool"===t)throw Error(`Unsupported data type ${t}`);return(0,o.randomNormal)(e,0,1,t,r)}})},{"./operation":"2me4m","./random_normal":"bxT1q","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gjT1I:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"randomUniform",()=>u);var a=e("../util_base"),o=e("./buffer"),l=e("./operation"),i=e("./rand_util");let u=(0,l.op)({randomUniform_:function(e,t=0,r=1,n="float32",s){(0,a.assertNonNegativeIntegerDimensions)(e);let l=(0,o.buffer)(e,n),u=new(0,i.UniformRandom)(t,r,null,s);for(let e=0;el);var a=e("./operation"),o=e("./random_uniform");let l=(0,a.op)({randomUniformInt_:function(e,t,r,n){return(0,o.randomUniform)(e,t,r,"int32",n)}})},{"./operation":"2me4m","./random_uniform":"gjT1I","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],df8SO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"range",()=>l);var a=e("../engine"),o=e("../kernel_names");function l(e,t,r=1,n="float32"){if(0===r)throw Error("Cannot have a step of zero");return a.ENGINE.runKernel(o.Range,{},{start:e,stop:t,step:r,dtype:n})}},{"../engine":"c6qwc","../kernel_names":"349aa","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7sSnd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"real",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({real_:function(e){let t=(0,l.convertToTensor)(e,"input","real");return a.ENGINE.runKernel(o.Real,{input:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7nJ8T":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reciprocal",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({reciprocal_:function(e){let t=(0,l.convertToTensor)(e,"x","reciprocal");return a.ENGINE.runKernel(o.Reciprocal,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iPhge:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({relu_:function(e){let t=(0,l.convertToTensor)(e,"x","relu");return a.ENGINE.runKernel(o.Relu,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9bTwM":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu6",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({relu6_:function(e){let t=(0,l.convertToTensor)(e,"x","relu6");return a.ENGINE.runKernel(o.Relu6,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7nB8F":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({reverse_:function(e,t){let r=(0,l.convertToTensor)(e,"x","reverse");return a.ENGINE.runKernel(o.Reverse,{x:r},{dims:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dpiTC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse1d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./reverse");let u=(0,l.op)({reverse1d_:function(e){let t=(0,a.convertToTensor)(e,"x","reverse");return o.assert(1===t.rank,()=>`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),(0,i.reverse)(t,0)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","./reverse":"7nB8F","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lVjOl:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse2d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./reverse");let u=(0,l.op)({reverse2d_:function(e,t){let r=(0,a.convertToTensor)(e,"x","reverse");return o.assert(2===r.rank,()=>`Error in reverse2D: x must be rank 2 but got rank ${r.rank}.`),(0,i.reverse)(r,t)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","./reverse":"7nB8F","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9WHF4":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse3d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./reverse");let u=(0,l.op)({reverse3d_:function(e,t){let r=(0,a.convertToTensor)(e,"x","reverse");return o.assert(3===r.rank,()=>`Error in reverse3D: x must be rank 3 but got rank ${r.rank}.`),(0,i.reverse)(r,t)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","./reverse":"7nB8F","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ejR4t:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse4d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./reverse");let u=(0,l.op)({reverse4d_:function(e,t){let r=(0,a.convertToTensor)(e,"x","reverse");return o.assert(4===r.rank,()=>`Error in reverse4D: x must be rank 4 but got rank ${r.rank}.`),(0,i.reverse)(r,t)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","./reverse":"7nB8F","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],akrBk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"round",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({round_:function(e){let t=(0,l.convertToTensor)(e,"x","round");return a.ENGINE.runKernel(o.Round,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kIOsn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rsqrt",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({rsqrt_:function(e){let t=(0,l.convertToTensor)(e,"x","rsqrt","float32");return a.ENGINE.runKernel(o.Rsqrt,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8dfci":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"selu",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({selu_:function(e){let t=(0,l.convertToTensor)(e,"x","selu");return a.ENGINE.runKernel(o.Selu,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"98wnK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"separableConv2d",()=>c);var a=e("../tensor_util_env"),o=e("../util"),l=e("./conv2d"),i=e("./depthwise_conv2d"),u=e("./operation"),p=e("./reshape");let c=(0,u.op)({separableConv2d_:function(e,t,r,n,s,u=[1,1],c="NHWC"){let d=(0,a.convertToTensor)(e,"x","separableConv2d"),f=(0,a.convertToTensor)(t,"depthwiseFilter","separableConv2d"),m=(0,a.convertToTensor)(r,"pointwiseFilter","separableConv2d"),h=d,g=!1;if(3===d.rank&&(g=!0,h=(0,p.reshape)(d,[1,d.shape[0],d.shape[1],d.shape[2]])),"NCHW"===c)throw Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");o.assert(4===h.rank,()=>`Error in separableConv2d: input must be rank 4, but got rank ${h.rank}.`),o.assert(4===f.rank,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${f.rank}.`),o.assert(4===m.rank,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${f.rank}.`),o.assert(1===m.shape[0],()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${m.shape[0]}.`),o.assert(1===m.shape[1],()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${m.shape[1]}.`);let x=f.shape[2],v=f.shape[3];o.assert(m.shape[2]===x*v,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${x*v}, but got ${m.shape[2]}.`);let y=(0,i.depthwiseConv2d)(h,f,n,s,c,u),b=(0,l.conv2d)(y,m,1,"valid",c);return g?(0,p.reshape)(b,[b.shape[1],b.shape[2],b.shape[3]]):b}})},{"../tensor_util_env":"5isXB","../util":"icflD","./conv2d":"iHP9e","./depthwise_conv2d":"ffu4I","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lXzGk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"setdiff1dAsync",()=>i);var a=e("../tensor"),o=e("../tensor_util_env"),l=e("../util");let i=async function(e,t){let r=(0,o.convertToTensor)(e,"x","setdiff1d"),n=(0,o.convertToTensor)(t,"y","setdiff1d");l.assert(r.dtype===n.dtype,()=>`x and y should have the same dtype, but got x (${r.dtype}) and y (${n.dtype}).`),l.assert(1===r.rank,()=>`x should be 1D tensor, but got x (${r.shape}).`),l.assert(1===n.rank,()=>`y should be 1D tensor, but got y (${n.shape}).`);let s=await r.data(),i=new Set(await n.data()),u=0;for(let e=0;ei);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({sign_:function(e){let t=(0,l.convertToTensor)(e,"x","sign");return a.ENGINE.runKernel(o.Sign,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kIvC3:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sin",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({sin_:function(e){let t=(0,l.convertToTensor)(e,"x","sin","float32");return a.ENGINE.runKernel(o.Sin,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7qO0g":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sinh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({sinh_:function(e){let t=(0,l.convertToTensor)(e,"x","sinh");return a.ENGINE.runKernel(o.Sinh,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fzEWF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice1d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./slice");let u=(0,l.op)({slice1d_:function(e,t,r){let n=(0,a.convertToTensor)(e,"x","slice1d");return o.assert(1===n.rank,()=>`slice1d expects a rank-1 tensor, but got a rank-${n.rank} tensor`),(0,i.slice)(n,[t],[r])}})},{"../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","./slice":"eDdeL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1igm0":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice2d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./slice");let u=(0,l.op)({slice2d_:function(e,t,r){let n=(0,a.convertToTensor)(e,"x","slice2d");return o.assert(2===n.rank,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),(0,i.slice)(n,t,r)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","./slice":"eDdeL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],l7XO8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice3d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./slice");let u=(0,l.op)({slice3d_:function(e,t,r){let n=(0,a.convertToTensor)(e,"x","slice3d");return o.assert(3===n.rank,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),(0,i.slice)(n,t,r)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","./slice":"eDdeL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9lnOO":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice4d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./slice");let u=(0,l.op)({slice4d_:function(e,t,r){let n=(0,a.convertToTensor)(e,"x","slice4d");return o.assert(4===n.rank,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),(0,i.slice)(n,t,r)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","./slice":"eDdeL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5nqhK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softmax",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({softmax_:function(e,t=-1){let r=(0,l.convertToTensor)(e,"logits","softmax","float32");if(-1===t&&(t=r.rank-1),t!==r.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${r.rank} and dim was ${t}`);let n={dim:t};return a.ENGINE.runKernel(o.Softmax,{logits:r},n)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2AXDW":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fft",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../util");let i=(0,e("../operation").op)({fft_:function(e){return(0,l.assert)("complex64"===e.dtype,()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`),a.ENGINE.runKernel(o.FFT,{input:e})}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../util":"icflD","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8tqLN":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ifft",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../util");let i=(0,e("../operation").op)({ifft_:function(e){return(0,l.assert)("complex64"===e.dtype,()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`),a.ENGINE.runKernel(o.IFFT,{input:e})}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../util":"icflD","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"108TA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"irfft",()=>g);var a=e("../complex"),o=e("../concat"),l=e("../imag"),i=e("../mul"),u=e("../operation"),p=e("../real"),c=e("../reshape"),d=e("../reverse"),f=e("../scalar"),m=e("../slice"),h=e("./ifft");let g=(0,u.op)({irfft_:function(e){let t,r=e.shape[e.shape.length-1],n=e.size/r;if(r<=2){let s=(0,c.reshape)(e,[n,r]);t=(0,h.ifft)(s)}else{let s=[n,2*(r-1)],u=(0,c.reshape)((0,p.real)(e),[n,r]),g=(0,c.reshape)((0,l.imag)(e),[n,r]),x=(0,d.reverse)((0,m.slice)(u,[0,1],[n,r-2]),1),v=(0,i.mul)((0,d.reverse)((0,m.slice)(g,[0,1],[n,r-2]),1),(0,f.scalar)(-1)),y=(0,o.concat)([u,x],1),b=(0,o.concat)([g,v],1),_=(0,c.reshape)((0,a.complex)(y,b),[s[0],s[1]]);t=(0,h.ifft)(_)}if(t=(0,p.real)(t),3===e.rank&&0!==e.shape[0]){let r=t,n=e.shape[0];t=(0,c.reshape)(t,[n,t.shape[0]/n,t.shape[1]]),r.dispose()}return t}})},{"../complex":"5ASH6","../concat":"56PTj","../imag":"iepBk","../mul":"3233B","../operation":"2me4m","../real":"7sSnd","../reshape":"2znRS","../reverse":"7nB8F","../scalar":"aCdNN","../slice":"eDdeL","./ifft":"8tqLN","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6UY7r":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rfft",()=>x);var a=e("../../util"),o=e("../complex"),l=e("../concat"),i=e("../imag"),u=e("../operation"),p=e("../real"),c=e("../reshape"),d=e("../slice"),f=e("../split"),m=e("../zeros"),h=e("../zeros_like"),g=e("./fft");let x=(0,u.op)({rfft_:function(e,t){let r;(0,a.assert)("float32"===e.dtype,()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let n=e.shape[e.shape.length-1],s=e.size/n;if(null!=t&&t0),a=e.shape.map(e=>e);a[e.shape.length-1]=t,r=(0,d.slice)(e,s,a),n=t}else if(null!=t&&t>n){let s=e.shape.map(e=>e);s[e.shape.length-1]=t-n,r=(0,l.concat)([e,(0,m.zeros)(s)],e.shape.length-1),n=t}else r=e;let u=(0,h.zerosLike)(r),x=(0,c.reshape)((0,o.complex)(r,u),[s,n]),v=(0,g.fft)(x),y=Math.floor(n/2)+1,b=(0,p.real)(v),_=(0,i.imag)(v),k=(0,f.split)(b,[y,n-y],b.shape.length-1),j=(0,f.split)(_,[y,n-y],_.shape.length-1),I=r.shape.slice();return I[r.shape.length-1]=y,(0,c.reshape)((0,o.complex)(k[0],j[0]),I)}})},{"../../util":"icflD","../complex":"5ASH6","../concat":"56PTj","../imag":"iepBk","../operation":"2me4m","../real":"7sSnd","../reshape":"2znRS","../slice":"eDdeL","../split":"FQ7hs","../zeros":"fqUNT","../zeros_like":"1peA5","./fft":"2AXDW","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],FQ7hs:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"split",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({split_:function(e,t,r=0){let n=(0,l.convertToTensor)(e,"x","split");return a.ENGINE.runKernel(o.SplitV,{x:n},{numOrSizeSplits:t,axis:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9w0IR":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"squaredDifference",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util");let p=(0,e("./operation").op)({squaredDifference_:function(e,t){let r=(0,i.convertToTensor)(e,"a","squaredDifference"),n=(0,i.convertToTensor)(t,"b","squaredDifference");[r,n]=(0,l.makeTypesMatch)(r,n),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.SquaredDifference,s,{})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cax9N:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"squeeze",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./reshape");let u=(0,l.op)({squeeze_:function(e,t){let r=(0,a.convertToTensor)(e,"x","squeeze","string_or_numeric");return(0,i.reshape)(r,(0,o.squeezeShape)(r.shape,t).newShape)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bvpof:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stack",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({stack_:function(e,t=0){let r=(0,l.convertToTensorArray)(e,"tensors","stack","string_or_numeric");return i.assert(r.length>=1,()=>"Pass at least one tensor to tf.stack"),r.length>0&&i.assert(t<=r[0].rank,()=>"Axis must be <= rank of the tensor"),a.ENGINE.runKernel(o.Pack,r,{axis:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dvB2o:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"step",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({step_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","step");return a.ENGINE.runKernel(o.Step,{x:r},{alpha:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],XZiX6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stridedSlice",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({stridedSlice_:function(e,t,r,n,s=0,i=0,u=0,p=0,c=0){let d=(0,l.convertToTensor)(e,"x","stridedSlice","string_or_numeric");return a.ENGINE.runKernel(o.StridedSlice,{x:d},{begin:t,end:r,strides:n,beginMask:s,endMask:i,ellipsisMask:u,newAxisMask:p,shrinkAxisMask:c})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4b9dJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tan",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({tan_:function(e){let t=(0,l.convertToTensor)(e,"x","tan","float32");return a.ENGINE.runKernel(o.Tan,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6BeOV":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor1d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t){(0,o.assertNonNull)(e);let r=(0,a.inferShape)(e,t);if(1!==r.length)throw Error("tensor1d() requires values to be a flat/TypedArray");return(0,l.makeTensor)(e,null,r,t)}},{"../tensor_util_env":"5isXB","../util":"icflD","./tensor_ops_util":"7gShZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],j7yj8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor2d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t,r){if((0,o.assertNonNull)(e),null!=t&&2!==t.length)throw Error("tensor2d() requires shape to have two numbers");let n=(0,a.inferShape)(e,r);if(2!==n.length&&1!==n.length)throw Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(1===n.length&&null==t)throw Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return(0,l.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"5isXB","../util":"icflD","./tensor_ops_util":"7gShZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3ETxr":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor3d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t,r){if((0,o.assertNonNull)(e),null!=t&&3!==t.length)throw Error("tensor3d() requires shape to have three numbers");let n=(0,a.inferShape)(e,r);if(3!==n.length&&1!==n.length)throw Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(1===n.length&&null==t)throw Error("tensor3d() requires shape to be provided when `values` are a flat array");return(0,l.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"5isXB","../util":"icflD","./tensor_ops_util":"7gShZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"15kDt":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor4d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t,r){if((0,o.assertNonNull)(e),null!=t&&4!==t.length)throw Error("tensor4d() requires shape to have four numbers");let n=(0,a.inferShape)(e,r);if(4!==n.length&&1!==n.length)throw Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(1===n.length&&null==t)throw Error("tensor4d() requires shape to be provided when `values` are a flat array");return(0,l.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"5isXB","../util":"icflD","./tensor_ops_util":"7gShZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hh1Z7:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor5d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t,r){if((0,o.assertNonNull)(e),null!=t&&5!==t.length)throw Error("tensor5d() requires shape to have five numbers");let n=(0,a.inferShape)(e,r);if(5!==n.length&&1!==n.length)throw Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(1===n.length&&null==t)throw Error("tensor5d() requires shape to be provided when `values` are a flat array");return(0,l.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"5isXB","../util":"icflD","./tensor_ops_util":"7gShZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],IJCsh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor6d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t,r){if((0,o.assertNonNull)(e),null!=t&&6!==t.length)throw Error("tensor6d() requires shape to have six numbers");let n=(0,a.inferShape)(e,r);if(6!==n.length&&1!==n.length)throw Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(1===n.length&&null==t)throw Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||n,(0,l.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"5isXB","../util":"icflD","./tensor_ops_util":"7gShZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"71ZFi":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensorScatterUpdate",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./operation"),u=e("./scatter_nd_util");let p=(0,i.op)({tensorScatterUpdate_:function(e,t,r){let n=(0,l.convertToTensor)(e,"tensor","tensorScatterupdate"),s=(0,l.convertToTensor)(t,"indices","tensorScatterupdate","int32"),i=(0,l.convertToTensor)(r,"updates","tensorScatterupdate");if(u.validateInput(i,s,n.shape),n.dtype!==i.dtype)throw Error(`tensor and updates must have the same dtype, instead they are ${n.dtype} and ${i.dtype}.`);return a.ENGINE.runKernel(o.TensorScatterUpdate,{tensor:n,indices:s,updates:i},{})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","./scatter_nd_util":"cr9mr","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cr9mr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"validateUpdateShape",()=>o),s.export(r,"validateInput",()=>l),s.export(r,"calculateShapes",()=>i);var a=e("../util");function o(e,t,r){let n=t.rank>1?t.shape[t.rank-1]:1,s=t.rank>1?t.rank-1:1,a=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${r.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${n}, and batchDim: ${s}.`;if(r.rank1?t.shape[n-1]:1,o=r.length,l=1;for(let e=s;ei);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({topk_:function(e,t=1,r=!0){let n=(0,l.convertToTensor)(e,"x","topk");if(0===n.rank)throw Error("topk() expects the input to be of rank 1 or higher");let s=n.shape[n.shape.length-1];if(t<0)throw Error(`'k' passed to topk() must be >= 0 but got ${t}`);if(t>s)throw Error(`'k' passed to topk() must be <= the last dimension (${s}) but got ${t}`);let[i,u]=a.ENGINE.runKernel(o.TopK,{x:n},{k:t,sorted:r});return{values:i,indices:u}}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8FsVR":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"truncatedNormal",()=>u);var a=e("../util_base"),o=e("./buffer"),l=e("./operation"),i=e("./rand_util");let u=(0,l.op)({truncatedNormal_:function(e,t=0,r=1,n,s){if((0,a.assertNonNegativeIntegerDimensions)(e),null!=n&&"bool"===n)throw Error("Unsupported data type $ { dtype }");let l=new(0,i.MPRandGauss)(t,r,n,!0,s),u=(0,o.buffer)(e,n);for(let e=0;eu);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({unique_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","unique","string_or_numeric");(0,i.assert)(r.rank>0,()=>"The input tensor must be at least 1D");let[n,s]=a.ENGINE.runKernel(o.Unique,{x:r},{axis:t});return{values:n,indices:s}}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dICgF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unsortedSegmentSum",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({unsortedSegmentSum_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","unsortedSegmentSum"),s=(0,l.convertToTensor)(t,"segmentIds","unsortedSegmentSum","int32");return(0,i.assert)((0,i.isInt)(r),()=>"numSegments must be of dtype int"),a.ENGINE.runKernel(o.UnsortedSegmentSum,{x:n,segmentIds:s},{numSegments:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2NrdB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unstack",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({unstack_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","unstack","string_or_numeric");return i.assert(t>=-r.shape.length&&t`Axis = ${t} is not in [-${r.shape.length}, ${r.shape.length})`),a.ENGINE.runKernel(o.Unpack,{value:r},{axis:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aVzg8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"upperBound",()=>o);var a=e("./search_sorted");function o(e,t){return(0,a.searchSorted)(e,t,"right")}},{"./search_sorted":"csM1s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],j3GC4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"variable",()=>o);var a=e("../engine");function o(e,t=!0,r,n){return a.ENGINE.makeVariable(e,t,r,n)}},{"../engine":"c6qwc","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"50k91":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"whereAsync",()=>l);var a=e("../backends/where_impl"),o=e("../tensor_util_env");let l=async function(e){let t=(0,o.convertToTensor)(e,"condition","whereAsync","bool"),r=await t.data(),n=(0,a.whereImpl)(t.shape,r);return e!==t&&t.dispose(),n}},{"../backends/where_impl":"5EDW6","../tensor_util_env":"5isXB","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5EDW6":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"whereImpl",()=>o);var a=e("../ops/buffer");function o(e,t){let r=[];for(let e=0;ec);var a=e("../tensor_util_env"),o=e("../util"),l=e("./gather"),i=e("./reshape"),u=e("./squeeze"),p=e("./where_async");let c=async function(e,t,r){let n=(0,a.convertToTensor)(e,"tensor","boolMask"),s=(0,a.convertToTensor)(t,"mask","boolMask","bool"),c=null==r?0:r,d=s.rank,f=n.shape;o.assert(d>0,()=>"mask cannot be scalar"),o.assertShapesMatch(f.slice(c,c+d),s.shape,"mask's shape must match the first K dimensions of tensor's shape,");let m=1;for(let e=c;eh);var a=e("../engine"),o=e("../globals"),l=e("../kernel_names"),i=e("../tensor_util_env"),u=e("../util"),p=e("./complex"),c=e("./imag"),d=e("./neg"),f=e("./operation"),m=e("./real");let h=(0,f.op)({transpose_:function(e,t,r){let n=(0,i.convertToTensor)(e,"x","transpose");if(null==t&&(t=n.shape.map((e,t)=>t).reverse()),u.assert(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(e=>{u.assert(e>=0&&e`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let s={perm:t};return"complex64"===n.dtype?(0,o.tidy)(()=>{let e=(0,m.real)(n),t=(0,c.imag)(n);return e=a.ENGINE.runKernel(l.Transpose,{x:e},s),t=a.ENGINE.runKernel(l.Transpose,{x:t},s),r&&(t=(0,d.neg)(t)),(0,p.complex)(e,t)}):a.ENGINE.runKernel(l.Transpose,{x:n},s)}})},{"../engine":"c6qwc","../globals":"kUewM","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./complex":"5ASH6","./imag":"iepBk","./neg":"8HIhG","./operation":"2me4m","./real":"7sSnd","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hMyFI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"movingAverage",()=>h);var a=e("../tensor_util"),o=e("../tensor_util_env"),l=e("../util"),i=e("./add"),u=e("./div"),p=e("./mul"),c=e("./operation"),d=e("./pow"),f=e("./scalar"),m=e("./sub");let h=(0,c.op)({movingAverage_:function(e,t,r,n,s=!0){let c=(0,o.convertToTensor)(e,"v","movingAverage"),h=(0,o.convertToTensor)(t,"x","movingAverage"),g=(0,o.convertToTensor)(r,"decay","movingAverage");(0,a.assertTypesMatch)(c,h),l.assert(l.arraysEqual(c.shape,h.shape),()=>"Shape mismatch in v and x");let x=(0,f.scalar)(1),v=(0,m.sub)(x,g),y=(0,p.mul)((0,m.sub)(h,c),v);if(s){l.assert(null!=n,()=>"When using zeroDebias: true, step is required.");let e=(0,o.convertToTensor)(n,"step","movingAverage");y=(0,u.div)(y,(0,m.sub)(x,(0,d.pow)(g,e)))}return(0,i.add)(c,y)}})},{"../tensor_util":"7PL4y","../tensor_util_env":"5isXB","../util":"icflD","./add":"dX80O","./div":"lbTan","./mul":"3233B","./operation":"2me4m","./pow":"aku8e","./scalar":"aCdNN","./sub":"2lFei","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9xCLq":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"scatterND",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util_base"),u=e("./operation"),p=e("./scatter_nd_util");let c=(0,u.op)({scatterND_:function(e,t,r){(0,i.assertNonNegativeIntegerDimensions)(r);let n=(0,l.convertToTensor)(e,"indices","scatterND","int32"),s=(0,l.convertToTensor)(t,"updates","scatterND");return p.validateInput(s,n,r),a.ENGINE.runKernel(o.ScatterNd,{indices:n,updates:s},{shape:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util_base":"bNQH0","./operation":"2me4m","./scatter_nd_util":"cr9mr","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4Xh7i":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseToDense",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../ops/sparse_to_dense_util"),i=e("../tensor_util_env"),u=e("../util_base");let p=(0,e("./operation").op)({sparseToDense_:function(e,t,r,n=0){(0,u.assertNonNegativeIntegerDimensions)(r);let s=(0,i.convertToTensor)(e,"sparseIndices","sparseToDense","int32"),p=(0,i.convertToTensor)(t,"sparseValues","sparseToDense","string_or_numeric"),c=(0,i.convertToTensor)(n,"defaultValue","sparseToDense",p.dtype);return l.validateInput(s,p,r,c),a.ENGINE.runKernel(o.SparseToDense,{sparseIndices:s,sparseValues:p,defaultValue:c},{outputShape:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../ops/sparse_to_dense_util":"5WssO","../tensor_util_env":"5isXB","../util_base":"bNQH0","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5WssO":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t,r,n){if("int32"!==e.dtype)throw Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);let s=e.rank>0?e.shape[0]:1,a=e.rank>1?e.shape[1]:1;if(r.length!==a)throw Error(`outputShape has incorrect number of elements:, ${r.length}, should be: ${a}.`);let o=t.size;if(0!==t.rank&&(1!==t.rank||o!==s))throw Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${s}]`);if(t.dtype!==n.dtype)throw Error("sparseValues.dtype must match defaultValues.dtype")}s.defineInteropFlag(r),s.export(r,"validateInput",()=>a)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],zaSfo:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherND",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({gatherND_:function(e,t){let r=(0,l.convertToTensor)(t,"indices","gatherND","int32"),n=(0,l.convertToTensor)(e,"x","gatherND","string_or_numeric");return a.ENGINE.runKernel(o.GatherNd,{params:n,indices:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iU4Ut:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dropout",()=>h);var a=e("../tensor"),o=e("../tensor_util_env"),l=e("../util"),i=e("./add"),u=e("./div"),p=e("./dropout_util"),c=e("./floor"),d=e("./mul"),f=e("./operation"),m=e("./random_uniform");let h=(0,f.op)({dropout_:function(e,t,r,n){let s=(0,o.convertToTensor)(e,"x","dropout");if(l.assert("float32"===s.dtype,()=>`x has to be a floating point tensor since it's going to be scaled, but got a ${s.dtype} tensor instead.`),l.assert(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),0===t)return e instanceof a.Tensor?s.clone():s;let f=(0,p.getNoiseShape)(s,r),h=1-t,g=(0,u.div)((0,c.floor)((0,i.add)((0,m.randomUniform)(f,0,1,"float32",n),h)),h);return(0,d.mul)(s,g)}})},{"../tensor":"cfIkd","../tensor_util_env":"5isXB","../util":"icflD","./add":"dX80O","./div":"lbTan","./dropout_util":"cWfNQ","./floor":"Urqox","./mul":"3233B","./operation":"2me4m","./random_uniform":"gjT1I","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cWfNQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getNoiseShape",()=>o);var a=e("../util");function o(e,t){if(null==t)return e.shape.slice();if(a.arraysEqual(e.shape,t))return t;if(e.shape.length===t.length){let r=[];for(let n=0;no),s.export(r,"cosineWindow",()=>l);var a=e("./tensor1d");function o(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function l(e,t,r){let n=1-e%2,s=new Float32Array(e);for(let a=0;ai);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor");let i=async function(e,t,r=1){let n=(0,a.convertToTensor)(e,"predictions","inTopK"),s=(0,a.convertToTensor)(t,"targets","inTopK");(0,o.assert)(n.rank>1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${n.rank}`),(0,o.assert)(n.rank-1===s.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${n.rank} and targets rank ${s.rank}`),(0,o.assertShapesMatch)(n.shape.slice(0,n.shape.length-1),s.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let i=n.shape[n.shape.length-1];(0,o.assert)(r>0&&r<=i,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${i}), but got ${r}`);let u=await n.data(),p=await s.data(),[c,d]=[u.length/i,i],f=(0,o.getTypedArrayFromDType)("bool",c);for(let e=0;et.value-e.value),f[e]=0;for(let t=0;ta.conv2d),s.export(r,"depthwiseConv2d",()=>o.depthwiseConv2d),s.export(r,"matMul",()=>l.matMul);var a=e("./fused/conv2d"),o=e("./fused/depthwise_conv2d"),l=e("./fused/mat_mul")},{"./fused/conv2d":"aZgQO","./fused/depthwise_conv2d":"7ghPT","./fused/mat_mul":"5aXS9","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aZgQO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2d",()=>b);var a=e("../../engine"),o=e("../../gradients"),l=e("../../kernel_names"),i=e("../../tensor_util"),u=e("../../tensor_util_env"),p=e("../../util"),c=e("../add"),d=e("../broadcast_util"),f=e("../conv2d"),m=e("../conv2d_backprop_filter"),h=e("../conv2d_backprop_input"),g=e("../conv_util"),x=e("../fused_util"),v=e("../operation"),y=e("../reshape");let b=(0,v.op)({fusedConv2d_:function({x:e,filter:t,strides:r,pad:n,dataFormat:s="NHWC",dilations:v=[1,1],dimRoundingMode:b,bias:_,activation:k="linear",preluActivationWeights:j,leakyreluAlpha:I}){let w,T;if(k=k||"linear",!1===(0,x.shouldFuse)(a.ENGINE.state.gradientDepth,k)){p.assert("NHWC"===s,()=>`Error in fused conv2d: got dataFormat of ${s} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let a=(0,f.conv2d)(e,t,r,n,s,v,b);return null!=_&&(a=(0,c.add)(a,_)),(0,x.applyActivation)(a,k,j,I)}let N=(0,u.convertToTensor)(e,"x","conv2d","float32"),S=(0,u.convertToTensor)(t,"filter","conv2d","float32"),C=N,E=!1;3===N.rank&&(E=!0,C=(0,y.reshape)(N,[1,N.shape[0],N.shape[1],N.shape[2]])),p.assert(4===C.rank,()=>`Error in fused conv2d: input must be rank 4, but got rank ${C.rank}.`),p.assert(4===S.rank,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${S.rank}.`),g.checkPadOnDimRoundingMode("fused conv2d",n,b);let F="NHWC"===s?C.shape[3]:C.shape[1];p.assert(S.shape[2]===F,()=>`Error in conv2d: depth of input (${F}) must match input depth for filter ${S.shape[2]}.`),p.assert(g.eitherStridesOrDilationsAreOne(r,v),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${r} and dilations '${v}'`);let A=g.computeConv2DInfo(C.shape,S.shape,r,v,n,b);if(null!=_&&(w=(0,u.convertToTensor)(_,"bias","fused conv2d"),[w]=(0,i.makeTypesMatch)(w,N),"NHWC"===s?d.assertAndGetBroadcastShape(A.outShape,w.shape):(p.assert(w.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${w.shape.length}.`),p.assert(0===w.shape.length||w.shape[0]===A.outChannels||1===w.shape[0],()=>`Error in fused conv2d: bias shape (${w.shape}) is not compatible with the number of output channels (${A.outChannels})`))),null!=j){let e=j.shape;if(p.assert(e.length<=1||3===e.length,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${e.length}.`),1===e.length)p.assert(1===e[0]||e[0]===A.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${e}) is not compatible with the number of output channels (${A.outChannels}).`);else if(3===e.length)try{d.assertAndGetBroadcastShape(e,A.outShape)}catch(t){throw Error(`Error in fused conv2d: PReLU activation weights (${e}) is not compatible with the output shape of the conv2d (${A.outShape}).`)}T=(0,u.convertToTensor)(j,"prelu weights","fused conv2d")}let R=(e,t)=>{p.assert("NHWC"===s,()=>`Error in gradient of fused conv2D: got dataFormat of ${s} but only NHWC is currently supported.`);let[a,o,l,i]=t,u=(0,x.getFusedDyActivation)(e,l,k);p.assert(g.tupleValuesAreOne(v),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${v}'`);let c=[(0,h.conv2DBackpropInput)(o.shape,u,a,r,n),(0,m.conv2DBackpropFilter)(o,u,a.shape,r,n)];if(null!=i){let e=(0,x.getFusedBiasGradient)(i,u);c.push(e)}return c},P={x:C,filter:S,bias:w,preluActivationWeights:T},D={strides:r,pad:n,dataFormat:s,dilations:v,dimRoundingMode:b,activation:k,leakyreluAlpha:I};return null==_?(0,o.customGrad)((e,t,r)=>{let n=a.ENGINE.runKernel(l.FusedConv2D,P,D);return r([t,e,n]),E&&(n=(0,y.reshape)(n,[n.shape[1],n.shape[2],n.shape[3]])),{value:n,gradFunc:R}})(C,S):(0,o.customGrad)((e,t,r,n)=>{let s=a.ENGINE.runKernel(l.FusedConv2D,P,D);return n([t,e,s,r]),E&&(s=(0,y.reshape)(s,[s.shape[1],s.shape[2],s.shape[3]])),{value:s,gradFunc:R}})(C,S,w)}})},{"../../engine":"c6qwc","../../gradients":"7QhD7","../../kernel_names":"349aa","../../tensor_util":"7PL4y","../../tensor_util_env":"5isXB","../../util":"icflD","../add":"dX80O","../broadcast_util":"9OeEk","../conv2d":"iHP9e","../conv2d_backprop_filter":"dCcIN","../conv2d_backprop_input":"lEDXO","../conv_util":"1HzRR","../fused_util":"lc1OW","../operation":"2me4m","../reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dCcIN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2DBackpropFilter",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../util"),i=e("./conv_util"),u=e("./operation"),p=e("./reshape");let c=(0,u.op)({conv2DBackpropFilter_:function(e,t,r,n,s,u="NHWC",c){let d=e;3===e.rank&&(d=(0,p.reshape)(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let f=t;3===f.rank&&(f=(0,p.reshape)(t,[1,t.shape[0],t.shape[1],t.shape[2]])),l.assert(4===d.rank,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${d.shape}.`),l.assert(4===f.rank,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${f.shape}.`),l.assert(4===r.length,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${r}.`);let m="NHWC"===u?d.shape[3]:d.shape[1],h="NHWC"===u?f.shape[3]:f.shape[1];l.assert(m===r[2],()=>`Error in conv2dDerFilter: depth of input ${m}) must match input depth in filter (${r[2]}.`),l.assert(h===r[3],()=>`Error in conv2dDerFilter: depth of dy (${h}) must match output depth for filter (${r[3]}).`),i.checkPadOnDimRoundingMode("conv2dDerFilter",s,c);let g={x:d,dy:f};return a.ENGINE.runKernel(o.Conv2DBackpropFilter,g,{strides:n,pad:s,dataFormat:u,dimRoundingMode:c,filterShape:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../util":"icflD","./conv_util":"1HzRR","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lc1OW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getFusedDyActivation",()=>g),s.export(r,"getFusedBiasGradient",()=>x),s.export(r,"applyActivation",()=>v),s.export(r,"shouldFuse",()=>y);var a=e("./broadcast_util"),o=e("./elu"),l=e("./leaky_relu"),i=e("./mul"),u=e("./prelu"),p=e("./relu"),c=e("./relu6"),d=e("./reshape"),f=e("./sigmoid"),m=e("./step"),h=e("./sum");function g(e,t,r){if(null==r||"linear"===r)return e;if("relu"===r)return(0,i.mul)(e,(0,m.step)(t));throw Error(`Cannot compute gradient for fused activation ${r}.`)}function x(e,t){let r=t,n=a.getReductionAxes(e.shape,t.shape);return n.length>0&&(r=(0,h.sum)(r,n)),(0,d.reshape)(r,e.shape)}function v(e,t,r,n){if("linear"===t)return e;if("relu"===t)return(0,p.relu)(e);if("elu"===t)return(0,o.elu)(e);if("relu6"===t)return(0,c.relu6)(e);if("prelu"===t)return(0,u.prelu)(e,r);else if("leakyrelu"===t)return(0,l.leakyRelu)(e,n);else if("sigmoid"===t)return(0,f.sigmoid)(e);throw Error(`Unknown fused activation ${t}.`)}let y=(e,t)=>!(e>0)||"linear"===t},{"./broadcast_util":"9OeEk","./elu":"elRT9","./leaky_relu":"bECmF","./mul":"3233B","./prelu":"97Biq","./relu":"iPhge","./relu6":"9bTwM","./reshape":"2znRS","./sigmoid":"kgtAa","./step":"dvB2o","./sum":"jlBkb","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7ghPT":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2d",()=>b);var a=e("../../engine"),o=e("../../gradients"),l=e("../../kernel_names"),i=e("../../tensor_util"),u=e("../../tensor_util_env"),p=e("../../util"),c=e("../add"),d=e("../broadcast_util"),f=e("../conv_util"),m=e("../depthwise_conv2d"),h=e("../depthwise_conv2d_native_backprop_filter"),g=e("../depthwise_conv2d_native_backprop_input"),x=e("../fused_util"),v=e("../operation"),y=e("../reshape");let b=(0,v.op)({fusedDepthwiseConv2d_:function({x:e,filter:t,strides:r,pad:n,dataFormat:s="NHWC",dilations:v=[1,1],dimRoundingMode:b,bias:_,activation:k="linear",preluActivationWeights:j,leakyreluAlpha:I}){let w,T;if(!1===(0,x.shouldFuse)(a.ENGINE.state.gradientDepth,k)){let a=(0,m.depthwiseConv2d)(e,t,r,n,s,v,b);return null!=_&&(a=(0,c.add)(a,_)),(0,x.applyActivation)(a,k,j,I)}let N=(0,u.convertToTensor)(e,"x","depthwiseConv2d","float32"),S=(0,u.convertToTensor)(t,"filter","depthwiseConv2d","float32"),C=N,E=!1;3===N.rank&&(E=!0,C=(0,y.reshape)(N,[1,N.shape[0],N.shape[1],N.shape[2]])),p.assert(4===C.rank,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${C.rank}.`),p.assert(4===S.rank,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${S.rank}.`),p.assert(C.shape[3]===S.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${C.shape[3]}) must match the inChannels dimension in filter ${S.shape[2]}.`),null==v&&(v=[1,1]),p.assert(f.eitherStridesOrDilationsAreOne(r,v),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${v}'`),f.checkPadOnDimRoundingMode("fused depthwiseConv2d",n,b);let F=f.computeConv2DInfo(C.shape,S.shape,r,v,n,b,!0);null!=_&&(w=(0,u.convertToTensor)(_,"bias","fused conv2d"),[w]=(0,i.makeTypesMatch)(w,N),d.assertAndGetBroadcastShape(F.outShape,w.shape)),null!=j&&(T=(0,u.convertToTensor)(j,"prelu weights","fused depthwiseConv2d"));let A=(e,t)=>{p.assert(f.tupleValuesAreOne(v),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${v}'`);let[s,a,o,l]=t,i=(0,x.getFusedDyActivation)(e,o,k),u=(0,g.depthwiseConv2dNativeBackpropInput)(a.shape,i,s,r,n,v,b),c=(0,h.depthwiseConv2dNativeBackpropFilter)(a,i,s.shape,r,n,v,b);return null!=l?[u,c,(0,x.getFusedBiasGradient)(w,i)]:[u,c]},R={x:C,filter:S,bias:w,preluActivationWeights:T},P={strides:r,pad:n,dataFormat:s,dilations:v,dimRoundingMode:b,activation:k,leakyreluAlpha:I};return null==_?(0,o.customGrad)((e,t,r)=>{let n=a.ENGINE.runKernel(l.FusedDepthwiseConv2D,R,P);return r([t,e,n]),E&&(n=(0,y.reshape)(n,[n.shape[1],n.shape[2],n.shape[3]])),{value:n,gradFunc:A}})(C,S):(0,o.customGrad)((e,t,r,n)=>{let s=a.ENGINE.runKernel(l.FusedDepthwiseConv2D,R,P);return n([t,e,s,r]),E&&(s=(0,y.reshape)(s,[s.shape[1],s.shape[2],s.shape[3]])),{value:s,gradFunc:A}})(C,S,w)}})},{"../../engine":"c6qwc","../../gradients":"7QhD7","../../kernel_names":"349aa","../../tensor_util":"7PL4y","../../tensor_util_env":"5isXB","../../util":"icflD","../add":"dX80O","../broadcast_util":"9OeEk","../conv_util":"1HzRR","../depthwise_conv2d":"ffu4I","../depthwise_conv2d_native_backprop_filter":"aJ79d","../depthwise_conv2d_native_backprop_input":"eQbiY","../fused_util":"lc1OW","../operation":"2me4m","../reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aJ79d:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNativeBackpropFilter",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("./operation"),i=e("./reshape");let u=(0,l.op)({depthwiseConv2dNativeBackpropFilter_:function(e,t,r,n,s,l=[1,1],u){let p=e;3===e.rank&&(p=(0,i.reshape)(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let c=t;3===c.rank&&(c=(0,i.reshape)(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let d={x:p,dy:c};return a.ENGINE.runKernel(o.DepthwiseConv2dNativeBackpropFilter,d,{strides:n,pad:s,dimRoundingMode:u,dilations:l,filterShape:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eQbiY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNativeBackpropInput",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("./operation"),i=e("./reshape");let u=(0,l.op)({depthwiseConv2dNativeBackpropInput_:function(e,t,r,n,s,l=[1,1],u){let p=t,c=!1;3===t.rank&&(c=!0,p=(0,i.reshape)(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let d={dy:p,filter:r},f=a.ENGINE.runKernel(o.DepthwiseConv2dNativeBackpropInput,d,{strides:n,pad:s,dimRoundingMode:u,dilations:l,inputShape:e});return c?(0,i.reshape)(f,[f.shape[1],f.shape[2],f.shape[3]]):f}})},{"../engine":"c6qwc","../kernel_names":"349aa","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5aXS9":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"matMul",()=>x);var a=e("../../engine"),o=e("../../gradients"),l=e("../../kernel_names"),i=e("../../tensor_util"),u=e("../../tensor_util_env"),p=e("../../util"),c=e("../add"),d=e("../broadcast_util"),f=e("../fused_util"),m=e("../mat_mul"),h=e("../operation"),g=e("../reshape");let x=(0,h.op)({fusedMatMul_:function({a:e,b:t,transposeA:r=!1,transposeB:n=!1,bias:s,activation:h="linear",preluActivationWeights:x,leakyreluAlpha:v=.2}){let y,b;if(!1===(0,f.shouldFuse)(a.ENGINE.state.gradientDepth,h)){let a=(0,m.matMul)(e,t,r,n);return null!=s&&(a=(0,c.add)(a,s)),(0,f.applyActivation)(a,h,x,v)}let _=(0,u.convertToTensor)(e,"a","fused matMul"),k=(0,u.convertToTensor)(t,"b","fused matMul");[_,k]=(0,i.makeTypesMatch)(_,k);let j=r?_.shape[_.rank-2]:_.shape[_.rank-1],I=n?k.shape[k.rank-1]:k.shape[k.rank-2],w=r?_.shape[_.rank-1]:_.shape[_.rank-2],T=n?k.shape[k.rank-2]:k.shape[k.rank-1],N=_.shape.slice(0,-2),S=k.shape.slice(0,-2),C=p.sizeFromShape(N),E=p.sizeFromShape(S);p.assert(j===I,()=>`Error in fused matMul: inner shapes (${j}) and (${I}) of Tensors with shapes ${_.shape} and ${k.shape} and transposeA=${r} and transposeB=${n} must match.`);let F=d.assertAndGetBroadcastShape(_.shape.slice(0,-2),k.shape.slice(0,-2)).concat([w,T]),A=r?(0,g.reshape)(_,[C,j,w]):(0,g.reshape)(_,[C,w,j]),R=n?(0,g.reshape)(k,[E,T,I]):(0,g.reshape)(k,[E,I,T]);null!=s&&(y=(0,u.convertToTensor)(s,"bias","fused matMul"),[y]=(0,i.makeTypesMatch)(y,_),d.assertAndGetBroadcastShape(F,y.shape)),null!=x&&(b=(0,u.convertToTensor)(x,"prelu weights","fused matMul"));let P=(e,t)=>{let a,o,[l,i,u,p]=t,c=(0,f.getFusedDyActivation)((0,g.reshape)(e,u.shape),u,h);return(r||n?!r&&n?(a=(0,m.matMul)(c,i,!1,!1),o=(0,m.matMul)(c,l,!0,!1)):r&&!n?(a=(0,m.matMul)(i,c,!1,!0),o=(0,m.matMul)(l,c,!1,!1)):(a=(0,m.matMul)(i,c,!0,!0),o=(0,m.matMul)(c,l,!0,!0)):(a=(0,m.matMul)(c,i,!1,!0),o=(0,m.matMul)(l,c,!0,!1)),null!=s)?[a,o,(0,f.getFusedBiasGradient)(p,c)]:[a,o]},D={a:A,b:R,bias:y,preluActivationWeights:b},$={transposeA:r,transposeB:n,activation:h,leakyreluAlpha:v};return null==s?(0,o.customGrad)((e,t,r)=>{let n=a.ENGINE.runKernel(l._FusedMatMul,D,$);return r([e,t,n]),{value:(0,g.reshape)(n,F),gradFunc:P}})(A,R):(0,o.customGrad)((e,t,r,n)=>{let s=a.ENGINE.runKernel(l._FusedMatMul,D,$);return n([e,t,s,r]),{value:(0,g.reshape)(s,F),gradFunc:P}})(A,R,y)}})},{"../../engine":"c6qwc","../../gradients":"7QhD7","../../kernel_names":"349aa","../../tensor_util":"7PL4y","../../tensor_util_env":"5isXB","../../util":"icflD","../add":"dX80O","../broadcast_util":"9OeEk","../fused_util":"lc1OW","../mat_mul":"hHb0J","../operation":"2me4m","../reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bVvte:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"hammingWindow",()=>l);var a=e("../operation"),o=e("../signal_ops_util");let l=(0,a.op)({hammingWindow_:function(e){return(0,o.cosineWindow)(e,.54,.46)}})},{"../operation":"2me4m","../signal_ops_util":"bnGKH","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hNFU5:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"hannWindow",()=>l);var a=e("../operation"),o=e("../signal_ops_util");let l=(0,a.op)({hannWindow_:function(e){return(0,o.cosineWindow)(e,.5,.5)}})},{"../operation":"2me4m","../signal_ops_util":"bnGKH","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ecqbq:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"frame",()=>c);var a=e("../concat"),o=e("../fill"),l=e("../operation"),i=e("../reshape"),u=e("../slice"),p=e("../tensor2d");let c=(0,l.op)({frame_:function(e,t,r,n=!1,s=0){let l=0,c=[];for(;l+t<=e.size;)c.push((0,u.slice)(e,l,t)),l+=r;if(n)for(;lc);var a=e("../mul"),o=e("../operation"),l=e("../signal_ops_util"),i=e("../spectral/rfft"),u=e("./frame"),p=e("./hann_window");let c=(0,o.op)({stft_:function(e,t,r,n,s=p.hannWindow){null==n&&(n=(0,l.enclosingPowerOfTwo)(t));let o=(0,u.frame)(e,t,r),c=(0,a.mul)(o,s(t));return(0,i.rfft)(c,n)}})},{"../mul":"3233B","../operation":"2me4m","../signal_ops_util":"bnGKH","../spectral/rfft":"6UY7r","./frame":"ecqbq","./hann_window":"hNFU5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lY1MB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cropAndResize",()=>u);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util");let u=(0,e("../operation").op)({cropAndResize_:function(e,t,r,n,s="bilinear",u=0){let p=(0,l.convertToTensor)(e,"image","cropAndResize"),c=(0,l.convertToTensor)(t,"boxes","cropAndResize","float32"),d=(0,l.convertToTensor)(r,"boxInd","cropAndResize","int32"),f=c.shape[0];return i.assert(4===p.rank,()=>`Error in cropAndResize: image must be rank 4,but got rank ${p.rank}.`),i.assert(2===c.rank&&4===c.shape[1],()=>`Error in cropAndResize: boxes must be have size [${f},4] but had shape ${c.shape}.`),i.assert(1===d.rank&&d.shape[0]===f,()=>`Error in cropAndResize: boxInd must be have size [${f}] but had shape ${c.shape}.`),i.assert(2===n.length,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`),i.assert(n[0]>=1&&n[1]>=1,()=>`cropSize must be atleast [1,1], but was ${n}`),i.assert("bilinear"===s||"nearest"===s,()=>`method must be bilinear or nearest, but was ${s}`),a.ENGINE.runKernel(o.CropAndResize,{image:p,boxes:c,boxInd:d},{method:s,extrapolationValue:u,cropSize:n})}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../../util":"icflD","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fA264:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"flipLeftRight",()=>u);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util");let u=(0,e("../operation").op)({flipLeftRight_:function(e){let t=(0,l.convertToTensor)(e,"image","flipLeftRight","float32");return i.assert(4===t.rank,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`),a.ENGINE.runKernel(o.FlipLeftRight,{image:t},{})}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../../util":"icflD","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fFavm:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"grayscaleToRGB",()=>u);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../operation"),i=e("../tile");let u=(0,l.op)({grayscaleToRGB_:function(e){let t=(0,a.convertToTensor)(e,"image","grayscaleToRGB"),r=t.rank-1,n=t.shape[r];o.assert(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),o.assert(1===n,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${n}.`);let s=Array(t.rank);return s.fill(1,0,r),s[r]=3,(0,i.tile)(t,s)}})},{"../../tensor_util_env":"5isXB","../../util":"icflD","../operation":"2me4m","../tile":"3a2L4","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ayeQE:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rgbToGrayscale",()=>d);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../cast"),i=e("../einsum"),u=e("../expand_dims"),p=e("../operation"),c=e("../tensor1d");let d=(0,p.op)({rgbToGrayscale_:function(e){let t,r=(0,a.convertToTensor)(e,"image","RGBToGrayscale"),n=r.rank-1,s=r.shape[n];o.assert(r.rank>=2,()=>`Error in RGBToGrayscale: images must be at least rank 2, but got rank ${r.rank}.`),o.assert(3===s,()=>`Error in RGBToGrayscale: last dimension of an RGB image should be size 3, but got size ${s}.`);let p=r.dtype,d=(0,l.cast)(r,"float32"),f=(0,c.tensor1d)([.2989,.587,.114]);switch(r.rank){case 2:t=(0,i.einsum)("ij,j->i",d,f);break;case 3:t=(0,i.einsum)("ijk,k->ij",d,f);break;case 4:t=(0,i.einsum)("ijkl,l->ijk",d,f);break;case 5:t=(0,i.einsum)("ijklm,m->ijkl",d,f);break;case 6:t=(0,i.einsum)("ijklmn,n->ijklm",d,f);break;default:throw Error("Not a valid tensor rank.")}return t=(0,u.expandDims)(t,-1),(0,l.cast)(t,p)}})},{"../../tensor_util_env":"5isXB","../../util":"icflD","../cast":"juFUN","../einsum":"bFs63","../expand_dims":"6YWDL","../operation":"2me4m","../tensor1d":"6BeOV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],y0vWr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rotateWithOffset",()=>u);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util");let u=(0,e("../operation").op)({rotateWithOffset_:function(e,t,r=0,n=.5){let s=(0,l.convertToTensor)(e,"image","rotateWithOffset","float32");return i.assert(4===s.rank,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${s.rank}.`),a.ENGINE.runKernel(o.RotateWithOffset,{image:s},{radians:t,fillValue:r,center:n})}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../../util":"icflD","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6Pae6":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppression",()=>u);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../nonmax_util");let u=(0,e("../operation").op)({nonMaxSuppression_:function(e,t,r,n=.5,s=Number.NEGATIVE_INFINITY){let u=(0,l.convertToTensor)(e,"boxes","nonMaxSuppression","float32"),p=(0,l.convertToTensor)(t,"scores","nonMaxSuppression","float32"),c=(0,i.nonMaxSuppSanityCheck)(u,p,r,n,s);r=c.maxOutputSize;let d={maxOutputSize:r,iouThreshold:n=c.iouThreshold,scoreThreshold:s=c.scoreThreshold};return a.ENGINE.runKernel(o.NonMaxSuppressionV3,{boxes:u,scores:p},d)}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../nonmax_util":"iTAb9","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iTAb9:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppSanityCheck",()=>o);var a=e("../util");function o(e,t,r,n,s,o){null==n&&(n=.5),null==s&&(s=Number.NEGATIVE_INFINITY),null==o&&(o=0);let l=e.shape[0];return r=Math.min(r,l),a.assert(0<=n&&n<=1,()=>`iouThreshold must be in [0, 1], but was '${n}'`),a.assert(2===e.rank,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),a.assert(4===e.shape[1],()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),a.assert(1===t.rank,()=>"scores must be a 1D tensor"),a.assert(t.shape[0]===l,()=>`scores has incompatible shape with boxes. Expected ${l}, but was ${t.shape[0]}`),a.assert(0<=o&&o<=1,()=>`softNmsSigma must be in [0, 1], but was '${o}'`),{maxOutputSize:r,iouThreshold:n,scoreThreshold:s,softNmsSigma:o}}},{"../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bvRV1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionAsync",()=>u);var a=e("../../backends/non_max_suppression_impl"),o=e("../../tensor_util_env"),l=e("../nonmax_util"),i=e("../tensor1d");let u=async function(e,t,r,n=.5,s=Number.NEGATIVE_INFINITY){let u=(0,o.convertToTensor)(e,"boxes","nonMaxSuppressionAsync"),p=(0,o.convertToTensor)(t,"scores","nonMaxSuppressionAsync"),c=(0,l.nonMaxSuppSanityCheck)(u,p,r,n,s);r=c.maxOutputSize,n=c.iouThreshold,s=c.scoreThreshold;let d=await Promise.all([u.data(),p.data()]),f=d[0],m=d[1],{selectedIndices:h}=(0,a.nonMaxSuppressionV3Impl)(f,m,r,n,s);return u!==e&&u.dispose(),p!==t&&p.dispose(),(0,i.tensor1d)(h,"int32")}},{"../../backends/non_max_suppression_impl":"5qKy1","../../tensor_util_env":"5isXB","../nonmax_util":"iTAb9","../tensor1d":"6BeOV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5qKy1":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV3Impl",()=>o),s.export(r,"nonMaxSuppressionV4Impl",()=>l),s.export(r,"nonMaxSuppressionV5Impl",()=>i);var a=e("./non_max_suppression_util");function o(e,t,r,n,s){return u(e,t,r,n,s,0)}function l(e,t,r,n,s,a){return u(e,t,r,n,s,0,!1,a,!0)}function i(e,t,r,n,s,a){return u(e,t,r,n,s,a,!0)}function u(e,t,r,n,s,o,l=!1,i=!1,c=!1){let d=[];for(let e=0;es&&d.push({score:t[e],boxIndex:e,suppressBeginIndex:0});d.sort(p);let f=o>0?-.5/o:0,m=[],h=[];for(;m.length0;){let t=d.pop(),{score:r,boxIndex:o,suppressBeginIndex:l}=t;if(r=l;--r){let a=function(e,t,r){let n=e.subarray(4*t,4*t+4),s=e.subarray(4*r,4*r+4),a=Math.min(n[0],n[2]),o=Math.min(n[1],n[3]),l=Math.max(n[0],n[2]),i=Math.max(n[1],n[3]),u=Math.min(s[0],s[2]),p=Math.min(s[1],s[3]),c=Math.max(s[0],s[2]),d=Math.max(s[1],s[3]),f=(l-a)*(i-o),m=(c-u)*(d-p);if(f<=0||m<=0)return 0;let h=Math.max(Math.min(l,c)-Math.max(a,u),0)*Math.max(Math.min(i,d)-Math.max(o,p),0);return h/(f+m-h)}(e,o,m[r]);if(a>=n){i=!0;break}if(t.score=t.score*function(e,t,r){let n=Math.exp(t*r*r);return r<=e?n:0}(n,f,a),t.score<=s)break}t.suppressBeginIndex=m.length,!i&&(t.score===r?(m.push(o),h.push(t.score)):t.score>s&&(0,a.binaryInsert)(d,t,p))}let g=m.length,x=r-g;i&&x>0&&(m.push(...Array(x).fill(0)),h.push(...Array(x).fill(0)));let v={selectedIndices:m};return l&&(v.selectedScores=h),c&&(v.validOutputs=g),v}function p(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}},{"./non_max_suppression_util":"7pBgp","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7pBgp":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t,r){let n=o(e,t,r);e.splice(n<0?-(n+1):n,0,t)}function o(e,t,r){return function(e,t,r){let n=0,s=e.length,a=0,o=!1;for(;n>>1)]);l>0?n=a+1:(s=a,o=!l)}return o?n:-n-1}(e,t,r||l)}function l(e,t){return e>t?1:ea),s.export(r,"binarySearch",()=>o)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cE23C:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionWithScore",()=>u);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../nonmax_util");let u=(0,e("../operation").op)({nonMaxSuppressionWithScore_:function(e,t,r,n=.5,s=Number.NEGATIVE_INFINITY,u=0){let p=(0,l.convertToTensor)(e,"boxes","nonMaxSuppression"),c=(0,l.convertToTensor)(t,"scores","nonMaxSuppression"),d=(0,i.nonMaxSuppSanityCheck)(p,c,r,n,s,u);r=d.maxOutputSize,n=d.iouThreshold,s=d.scoreThreshold;let f={maxOutputSize:r,iouThreshold:n,scoreThreshold:s,softNmsSigma:u=d.softNmsSigma},m=a.ENGINE.runKernel(o.NonMaxSuppressionV5,{boxes:p,scores:c},f);return{selectedIndices:m[0],selectedScores:m[1]}}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../nonmax_util":"iTAb9","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"913WB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionWithScoreAsync",()=>u);var a=e("../../backends/non_max_suppression_impl"),o=e("../../tensor_util_env"),l=e("../nonmax_util"),i=e("../tensor1d");let u=async function(e,t,r,n=.5,s=Number.NEGATIVE_INFINITY,u=0){let p=(0,o.convertToTensor)(e,"boxes","nonMaxSuppressionAsync"),c=(0,o.convertToTensor)(t,"scores","nonMaxSuppressionAsync"),d=(0,l.nonMaxSuppSanityCheck)(p,c,r,n,s,u);r=d.maxOutputSize,n=d.iouThreshold,s=d.scoreThreshold,u=d.softNmsSigma;let f=await Promise.all([p.data(),c.data()]),m=f[0],h=f[1],{selectedIndices:g,selectedScores:x}=(0,a.nonMaxSuppressionV5Impl)(m,h,r,n,s,u);return p!==e&&p.dispose(),c!==t&&c.dispose(),{selectedIndices:(0,i.tensor1d)(g,"int32"),selectedScores:(0,i.tensor1d)(x)}}},{"../../backends/non_max_suppression_impl":"5qKy1","../../tensor_util_env":"5isXB","../nonmax_util":"iTAb9","../tensor1d":"6BeOV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],evBQ2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionPadded",()=>u);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../nonmax_util");let u=(0,e("../operation").op)({nonMaxSuppressionPadded_:function(e,t,r,n=.5,s=Number.NEGATIVE_INFINITY,u=!1){let p=(0,l.convertToTensor)(e,"boxes","nonMaxSuppression"),c=(0,l.convertToTensor)(t,"scores","nonMaxSuppression"),d=(0,i.nonMaxSuppSanityCheck)(p,c,r,n,s,null),f=d.maxOutputSize,m=d.iouThreshold,h=d.scoreThreshold,g=a.ENGINE.runKernel(o.NonMaxSuppressionV4,{boxes:p,scores:c},{maxOutputSize:f,iouThreshold:m,scoreThreshold:h,padToMaxOutputSize:u});return{selectedIndices:g[0],validOutputs:g[1]}}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../nonmax_util":"iTAb9","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gLwj2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionPaddedAsync",()=>p);var a=e("../../backends/non_max_suppression_impl"),o=e("../../tensor_util_env"),l=e("../nonmax_util"),i=e("../scalar"),u=e("../tensor1d");let p=async function(e,t,r,n=.5,s=Number.NEGATIVE_INFINITY,p=!1){let c=(0,o.convertToTensor)(e,"boxes","nonMaxSuppressionAsync"),d=(0,o.convertToTensor)(t,"scores","nonMaxSuppressionAsync"),f=(0,l.nonMaxSuppSanityCheck)(c,d,r,n,s,null),m=f.maxOutputSize,h=f.iouThreshold,g=f.scoreThreshold,[x,v]=await Promise.all([c.data(),d.data()]),{selectedIndices:y,validOutputs:b}=(0,a.nonMaxSuppressionV4Impl)(x,v,m,h,g,p);return c!==e&&c.dispose(),d!==t&&d.dispose(),{selectedIndices:(0,u.tensor1d)(y,"int32"),validOutputs:(0,i.scalar)(b,"int32")}}},{"../../backends/non_max_suppression_impl":"5qKy1","../../tensor_util_env":"5isXB","../nonmax_util":"iTAb9","../scalar":"aCdNN","../tensor1d":"6BeOV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3OhUh":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeBilinear",()=>c);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util"),u=e("../operation"),p=e("../reshape");let c=(0,u.op)({resizeBilinear_:function(e,t,r=!1,n=!1){let s=(0,l.convertToTensor)(e,"images","resizeBilinear");i.assert(3===s.rank||4===s.rank,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${s.rank}.`),i.assert(2===t.length,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),i.assert(!1===n||!1===r,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let u=s,c=!1;3===s.rank&&(c=!0,u=(0,p.reshape)(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let[]=t,d={images:u},f=a.ENGINE.runKernel(o.ResizeBilinear,d,{alignCorners:r,halfPixelCenters:n,size:t});return c?(0,p.reshape)(f,[f.shape[1],f.shape[2],f.shape[3]]):f}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../../util":"icflD","../operation":"2me4m","../reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dXcs8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeNearestNeighbor",()=>c);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util"),u=e("../operation"),p=e("../reshape");let c=(0,u.op)({resizeNearestNeighbor_:function(e,t,r=!1,n=!1){let s=(0,l.convertToTensor)(e,"images","resizeNearestNeighbor");i.assert(3===s.rank||4===s.rank,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${s.rank}.`),i.assert(2===t.length,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),i.assert("float32"===s.dtype||"int32"===s.dtype,()=>"`images` must have `int32` or `float32` as dtype"),i.assert(!1===n||!1===r,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let u=s,c=!1;3===s.rank&&(c=!0,u=(0,p.reshape)(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let[]=t,d={images:u},f=a.ENGINE.runKernel(o.ResizeNearestNeighbor,d,{alignCorners:r,halfPixelCenters:n,size:t});return c?(0,p.reshape)(f,[f.shape[1],f.shape[2],f.shape[3]]):f}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../../util":"icflD","../operation":"2me4m","../reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eJmnz:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"threshold",()=>w);var a=e("../tensor1d"),o=e("../operation"),l=e("../cast"),i=e("../split"),u=e("../bincount"),p=e("../less_equal"),c=e("../greater"),d=e("../sum"),f=e("../add"),m=e("../mul"),h=e("../div"),g=e("../sub"),x=e("../round"),v=e("../where"),y=e("../fill"),b=e("../slice"),_=e("../range"),k=e("../tensor"),j=e("../../util"),I=e("../../tensor_util_env");let w=(0,o.op)({threshold_:function(e,t="binary",r=!1,n=.5){let s,o,w,T,N=(0,I.convertToTensor)(e,"image","threshold"),S=N.shape[0]*N.shape[1],C=(0,m.mul)((0,a.tensor1d)([n]),255);if(j.assert(3===N.rank,()=>`Error in threshold: image must be rank 3,but got rank ${N.rank}.`),j.assert(3===N.shape[2]||1===N.shape[2],()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${N.shape[2]}.`),j.assert("int32"===N.dtype||"float32"===N.dtype,()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${N.dtype}.`),j.assert("otsu"===t||"binary"===t,()=>`Method must be binary or otsu, but was ${t}`),3===N.shape[2]){[s,o,w]=(0,i.split)(N,[1,1,1],-1);let e=(0,m.mul)(s,.2989),t=(0,m.mul)(o,.587),r=(0,m.mul)(w,.114);T=(0,f.add)((0,f.add)(e,t),r)}else T=e;"otsu"===t&&(C=function(e,t){let r,n,s,o,l,i,u=(0,a.tensor1d)([-1]),p=(0,a.tensor1d)([0]),x=(0,a.tensor1d)([0]);for(let k=0;ku);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util");let u=(0,e("../operation").op)({transform_:function(e,t,r="nearest",n="constant",s=0,u){let p=(0,l.convertToTensor)(e,"image","transform","float32"),c=(0,l.convertToTensor)(t,"transforms","transform","float32");return i.assert(4===p.rank,()=>`Error in transform: image must be rank 4,but got rank ${p.rank}.`),i.assert(2===c.rank&&(c.shape[0]===p.shape[0]||1===c.shape[0])&&8===c.shape[1],()=>"Error in transform: Input transform should be batch x 8 or 1 x 8"),i.assert(null==u||2===u.length,()=>`Error in transform: outputShape must be [height, width] or null, but got ${u}.`),a.ENGINE.runKernel(o.Transform,{image:p,transforms:c},{interpolation:r,fillMode:n,fillValue:s,outputShape:u})}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../../util":"icflD","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3zZzZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bandPart",()=>_);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../greater_equal"),i=e("../less"),u=e("../less_equal"),p=e("../logical_and"),c=e("../minimum"),d=e("../neg"),f=e("../operation"),m=e("../range"),h=e("../reshape"),g=e("../stack"),x=e("../sub"),v=e("../unstack"),y=e("../where"),b=e("../zeros");let _=(0,f.op)({bandPart_:function(e,t,r){let n,s,f=(0,a.convertToTensor)(e,"a","bandPart");(0,o.assert)(f.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${f.rank}.`);let _=f.shape,[k,j]=f.shape.slice(-2);"number"==typeof t?((0,o.assert)(t%1==0,()=>`bandPart(): numLower must be an integer, got ${t}.`),(0,o.assert)(t<=k,()=>`bandPart(): numLower (${t}) must not be greater than the number of rows (${k}).`),n=(0,a.convertToTensor)(t<0?k:t,"numLower","bandPart")):((0,o.assert)("int32"===t.dtype,()=>"bandPart(): numLower's dtype must be an int32."),n=(0,y.where)((0,i.less)(t,0),k,(0,c.minimum)(t,k))),"number"==typeof r?((0,o.assert)(r%1==0,()=>`bandPart(): numUpper must be an integer, got ${r}.`),(0,o.assert)(r<=j,()=>`bandPart(): numUpper (${r}) must not be greater than the number of columns (${j}).`),s=(0,a.convertToTensor)(r<0?j:r,"numUpper","bandPart")):((0,o.assert)("int32"===r.dtype,()=>"bandPart(): numUpper's dtype must be an int32."),s=(0,y.where)((0,i.less)(r,0),j,(0,c.minimum)(r,j)));let I=(0,h.reshape)((0,m.range)(0,k,1,"int32"),[-1,1]),w=(0,m.range)(0,j,1,"int32"),T=(0,x.sub)(I,w),N=(0,p.logicalAnd)((0,u.lessEqual)(T,n),(0,l.greaterEqual)(T,(0,d.neg)(s))),S=(0,b.zeros)([k,j],f.dtype);return(0,h.reshape)((0,g.stack)((0,v.unstack)((0,h.reshape)(f,[-1,k,j])).map(e=>(0,y.where)(N,e,S))),_)}})},{"../../tensor_util_env":"5isXB","../../util":"icflD","../greater_equal":"ai7qe","../less":"3qq9g","../less_equal":"hEbcw","../logical_and":"8lNbb","../minimum":"74TYW","../neg":"8HIhG","../operation":"2me4m","../range":"df8SO","../reshape":"2znRS","../stack":"bvpof","../sub":"2lFei","../unstack":"2NrdB","../where":"a7ZmF","../zeros":"fqUNT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1rbpJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gramSchmidt",()=>g);var a=e("../../engine"),o=e("../../util"),l=e("../div"),i=e("../mul"),u=e("../norm"),p=e("../operation"),c=e("../split"),d=e("../squeeze"),f=e("../stack"),m=e("../sub"),h=e("../sum");let g=(0,p.op)({gramSchmidt_:function(e){let t;if(Array.isArray(e)){t=!1,(0,o.assert)(null!=e&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let r=e[0].shape[0];for(let t=1;t`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[t].shape[0]} vs. ${r})`)}else t=!0,e=(0,c.split)(e,e.shape[0],0).map(e=>(0,d.squeeze)(e,[0]));(0,o.assert)(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);let r=[],n=e;for(let t=0;t{let e=n[t];if(t>0)for(let n=0;nN);var a=e("../../engine"),o=e("../../globals"),l=e("../../util"),i=e("../clone"),u=e("../concat"),p=e("../div"),c=e("../eye"),d=e("../greater"),f=e("../mat_mul"),m=e("../mul"),h=e("../neg"),g=e("../norm"),x=e("../operation"),v=e("../reshape"),y=e("../slice"),b=e("../stack"),_=e("../sub"),k=e("../tensor2d"),j=e("../transpose"),I=e("../unstack"),w=e("../where");function T(e,t=!1){return a.ENGINE.tidy(()=>{(0,l.assert)(2===e.shape.length,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);let r=e.shape[0],n=e.shape[1],s=(0,c.eye)(r),x=(0,i.clone)(e),v=(0,k.tensor2d)([[1]],[1,1]),b=(0,i.clone)(v),I=r>=n?n:r;for(let e=0;e{let t=(0,y.slice)(x,[e,e],[r-e,1]),a=(0,g.norm)(t),o=(0,y.slice)(x,[e,e],[1,1]),l=(0,w.where)((0,d.greater)(o,0),(0,k.tensor2d)([[-1]]),(0,k.tensor2d)([[1]])),c=(0,_.sub)(o,(0,m.mul)(l,a)),I=(0,p.div)(t,c);b=1===I.shape[0]?(0,i.clone)(v):(0,u.concat)([v,(0,y.slice)(I,[1,0],[I.shape[0]-1,I.shape[1]])],0);let T=(0,h.neg)((0,p.div)((0,f.matMul)(l,c),a)),N=(0,y.slice)(x,[e,0],[r-e,n]),S=(0,m.mul)(T,b),C=(0,j.transpose)(b);if(0===e)x=(0,_.sub)(N,(0,f.matMul)(S,(0,f.matMul)(C,N)));else{let t=(0,_.sub)(N,(0,f.matMul)(S,(0,f.matMul)(C,N)));x=(0,u.concat)([(0,y.slice)(x,[0,0],[e,n]),t],0)}let E=(0,j.transpose)(S),F=(0,y.slice)(s,[0,e],[r,s.shape[1]-e]);if(0===e)s=(0,_.sub)(F,(0,f.matMul)((0,f.matMul)(F,b),E));else{let t=(0,_.sub)(F,(0,f.matMul)((0,f.matMul)(F,b),E));s=(0,u.concat)([(0,y.slice)(s,[0,0],[r,e]),t],1)}return[b,x,s]}),(0,o.dispose)([t,l,c])}return!t&&r>n&&(s=(0,y.slice)(s,[0,0],[r,n]),x=(0,y.slice)(x,[0,0],[n,n])),[s,x]})}let N=(0,x.op)({qr_:function(e,t=!1){if((0,l.assert)(e.rank>=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),2===e.rank)return T(e,t);{let r=e.shape.slice(0,e.shape.length-2).reduce((e,t)=>e*t),n=(0,I.unstack)((0,v.reshape)(e,[r,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),s=[],a=[];return n.forEach(e=>{let[r,n]=T(e,t);s.push(r),a.push(n)}),[(0,v.reshape)((0,b.stack)(s,0),e.shape),(0,v.reshape)((0,b.stack)(a,0),e.shape)]}}})},{"../../engine":"c6qwc","../../globals":"kUewM","../../util":"icflD","../clone":"lH8Rn","../concat":"56PTj","../div":"lbTan","../eye":"j8T5c","../greater":"3KUcR","../mat_mul":"hHb0J","../mul":"3233B","../neg":"8HIhG","../norm":"auKpd","../operation":"2me4m","../reshape":"2znRS","../slice":"eDdeL","../stack":"bvpof","../sub":"2lFei","../tensor2d":"j7yj8","../transpose":"dg4Sa","../unstack":"2NrdB","../where":"a7ZmF","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lAkje:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"absoluteDifference",()=>d);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../abs"),i=e("../loss_ops_utils"),u=e("../operation"),p=e("../sub"),c=e("./compute_weighted_loss");let d=(0,u.op)({absoluteDifference_:function(e,t,r,n=i.Reduction.SUM_BY_NONZERO_WEIGHTS){let s=(0,a.convertToTensor)(e,"labels","absoluteDifference"),u=(0,a.convertToTensor)(t,"predictions","absoluteDifference"),d=null;null!=r&&(d=(0,a.convertToTensor)(r,"weights","absoluteDifference")),(0,o.assertShapesMatch)(s.shape,u.shape,"Error in absoluteDifference: ");let f=(0,l.abs)((0,p.sub)(s,u));return(0,c.computeWeightedLoss)(f,d,n)}})},{"../../tensor_util_env":"5isXB","../../util":"icflD","../abs":"9L54v","../loss_ops_utils":"63OlA","../operation":"2me4m","../sub":"2lFei","./compute_weighted_loss":"7G55R","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"63OlA":[function(e,t,r,n){var s,a,o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"Reduction",()=>a),(s=a||(a={}))[s.NONE=0]="NONE",s[s.MEAN=1]="MEAN",s[s.SUM=2]="SUM",s[s.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7G55R":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"computeWeightedLoss",()=>g);var a=e("../../tensor_util_env"),o=e("../cast"),l=e("../div"),i=e("../loss_ops_utils"),u=e("../mean"),p=e("../mul"),c=e("../not_equal"),d=e("../ones"),f=e("../operation"),m=e("../scalar"),h=e("../sum");let g=(0,f.op)({computeWeightedLoss_:function(e,t,r=i.Reduction.SUM_BY_NONZERO_WEIGHTS){let n=(0,a.convertToTensor)(e,"losses","computeWeightedLoss"),s=null;null!=t&&(s=(0,a.convertToTensor)(t,"weights","computeWeightedLoss"));let f=null==s?n:(0,p.mul)(n,s);if(r===i.Reduction.NONE)return f;if(r===i.Reduction.SUM)return(0,h.sum)(f);if(r===i.Reduction.MEAN)if(null==s)return(0,u.mean)(f);else{let e=n.size/s.size,t=(0,l.div)((0,h.sum)(f),(0,h.sum)(s));return e>1?(0,l.div)(t,(0,m.scalar)(e)):t}if(r===i.Reduction.SUM_BY_NONZERO_WEIGHTS)if(null==s)return(0,l.div)((0,h.sum)(f),(0,m.scalar)(n.size));else{let e=(0,p.mul)(s,(0,d.ones)(n.shape)),t=(0,o.cast)((0,h.sum)((0,c.notEqual)(e,(0,m.scalar)(0))),"float32");return(0,l.div)((0,h.sum)(f),t)}throw Error(`Unknown reduction: ${r}`)}})},{"../../tensor_util_env":"5isXB","../cast":"juFUN","../div":"lbTan","../loss_ops_utils":"63OlA","../mean":"9PJXN","../mul":"3233B","../not_equal":"h3Wiz","../ones":"eYvGK","../operation":"2me4m","../scalar":"aCdNN","../sum":"jlBkb","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6Ddpr":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cosineDistance",()=>m);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../loss_ops_utils"),i=e("../mul"),u=e("../operation"),p=e("../scalar"),c=e("../sub"),d=e("../sum"),f=e("./compute_weighted_loss");let m=(0,u.op)({cosineDistance_:function(e,t,r,n,s=l.Reduction.SUM_BY_NONZERO_WEIGHTS){let u=(0,a.convertToTensor)(e,"labels","cosineDistance"),m=(0,a.convertToTensor)(t,"predictions","cosineDistance"),h=null;null!=n&&(h=(0,a.convertToTensor)(n,"weights","cosineDistance")),(0,o.assertShapesMatch)(u.shape,m.shape,"Error in cosineDistance: ");let g=(0,p.scalar)(1),x=(0,c.sub)(g,(0,d.sum)((0,i.mul)(u,m),r,!0));return(0,f.computeWeightedLoss)(x,h,s)}})},{"../../tensor_util_env":"5isXB","../../util":"icflD","../loss_ops_utils":"63OlA","../mul":"3233B","../operation":"2me4m","../scalar":"aCdNN","../sub":"2lFei","../sum":"jlBkb","./compute_weighted_loss":"7G55R","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lOI18:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"hingeLoss",()=>m);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../loss_ops_utils"),i=e("../mul"),u=e("../operation"),p=e("../relu"),c=e("../scalar"),d=e("../sub"),f=e("./compute_weighted_loss");let m=(0,u.op)({hingeLoss_:function(e,t,r,n=l.Reduction.SUM_BY_NONZERO_WEIGHTS){let s=(0,a.convertToTensor)(e,"labels","hingeLoss"),u=(0,a.convertToTensor)(t,"predictions","hingeLoss"),m=null;null!=r&&(m=(0,a.convertToTensor)(r,"weights","hingeLoss")),(0,o.assertShapesMatch)(s.shape,u.shape,"Error in hingeLoss: ");let h=(0,c.scalar)(1);s=(0,d.sub)((0,i.mul)((0,c.scalar)(2),s),h);let g=(0,p.relu)((0,d.sub)(h,(0,i.mul)(s,u)));return(0,f.computeWeightedLoss)(g,m,n)}})},{"../../tensor_util_env":"5isXB","../../util":"icflD","../loss_ops_utils":"63OlA","../mul":"3233B","../operation":"2me4m","../relu":"iPhge","../scalar":"aCdNN","../sub":"2lFei","./compute_weighted_loss":"7G55R","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hgmCW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"huberLoss",()=>x);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../abs"),i=e("../add"),u=e("../loss_ops_utils"),p=e("../minimum"),c=e("../mul"),d=e("../operation"),f=e("../scalar"),m=e("../square"),h=e("../sub"),g=e("./compute_weighted_loss");let x=(0,d.op)({huberLoss_:function(e,t,r,n=1,s=u.Reduction.SUM_BY_NONZERO_WEIGHTS){let d=(0,a.convertToTensor)(e,"labels","huberLoss"),x=(0,a.convertToTensor)(t,"predictions","huberLoss"),v=null;null!=r&&(v=(0,a.convertToTensor)(r,"weights","huberLoss")),(0,o.assertShapesMatch)(d.shape,x.shape,"Error in huberLoss: ");let y=(0,f.scalar)(n),b=(0,l.abs)((0,h.sub)(x,d)),_=(0,p.minimum)(b,y),k=(0,h.sub)(b,_),j=(0,i.add)((0,c.mul)((0,f.scalar)(.5),(0,m.square)(_)),(0,c.mul)(y,k));return(0,g.computeWeightedLoss)(j,v,s)}})},{"../../tensor_util_env":"5isXB","../../util":"icflD","../abs":"9L54v","../add":"dX80O","../loss_ops_utils":"63OlA","../minimum":"74TYW","../mul":"3233B","../operation":"2me4m","../scalar":"aCdNN","../square":"kNrd2","../sub":"2lFei","./compute_weighted_loss":"7G55R","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aXYiZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logLoss",()=>g);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../add"),i=e("../log"),u=e("../loss_ops_utils"),p=e("../mul"),c=e("../neg"),d=e("../operation"),f=e("../scalar"),m=e("../sub"),h=e("./compute_weighted_loss");let g=(0,d.op)({logLoss_:function(e,t,r,n=1e-7,s=u.Reduction.SUM_BY_NONZERO_WEIGHTS){let d=(0,a.convertToTensor)(e,"labels","logLoss"),g=(0,a.convertToTensor)(t,"predictions","logLoss"),x=null;null!=r&&(x=(0,a.convertToTensor)(r,"weights","logLoss")),(0,o.assertShapesMatch)(d.shape,g.shape,"Error in logLoss: ");let v=(0,f.scalar)(1),y=(0,f.scalar)(n),b=(0,c.neg)((0,p.mul)(d,(0,i.log)((0,l.add)(g,y)))),_=(0,p.mul)((0,m.sub)(v,d),(0,i.log)((0,l.add)((0,m.sub)(v,g),y))),k=(0,m.sub)(b,_);return(0,h.computeWeightedLoss)(k,x,s)}})},{"../../tensor_util_env":"5isXB","../../util":"icflD","../add":"dX80O","../log":"bjj59","../loss_ops_utils":"63OlA","../mul":"3233B","../neg":"8HIhG","../operation":"2me4m","../scalar":"aCdNN","../sub":"2lFei","./compute_weighted_loss":"7G55R","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2uGH3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"meanSquaredError",()=>c);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../loss_ops_utils"),i=e("../operation"),u=e("../squared_difference"),p=e("./compute_weighted_loss");let c=(0,i.op)({meanSquaredError_:function(e,t,r,n=l.Reduction.SUM_BY_NONZERO_WEIGHTS){let s=(0,a.convertToTensor)(e,"labels","meanSquaredError"),i=(0,a.convertToTensor)(t,"predictions","meanSquaredError"),c=null;null!=r&&(c=(0,a.convertToTensor)(r,"weights","meanSquaredError")),(0,o.assertShapesMatch)(s.shape,i.shape,"Error in meanSquaredError: ");let d=(0,u.squaredDifference)(s,i);return(0,p.computeWeightedLoss)(d,c,n)}})},{"../../tensor_util_env":"5isXB","../../util":"icflD","../loss_ops_utils":"63OlA","../operation":"2me4m","../squared_difference":"9w0IR","./compute_weighted_loss":"7G55R","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iXkk2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sigmoidCrossEntropy",()=>y);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../abs"),i=e("../add"),u=e("../exp"),p=e("../log1p"),c=e("../loss_ops_utils"),d=e("../mul"),f=e("../neg"),m=e("../operation"),h=e("../relu"),g=e("../scalar"),x=e("../sub"),v=e("./compute_weighted_loss");let y=(0,m.op)({sigmoidCrossEntropy_:function(e,t,r,n=0,s=c.Reduction.SUM_BY_NONZERO_WEIGHTS){let m=(0,a.convertToTensor)(e,"multiClassLabels","sigmoidCrossEntropy"),y=(0,a.convertToTensor)(t,"logits","sigmoidCrossEntropy"),b=null;if(null!=r&&(b=(0,a.convertToTensor)(r,"weights","sigmoidCrossEntropy")),(0,o.assertShapesMatch)(m.shape,y.shape,"Error in sigmoidCrossEntropy: "),n>0){let e=(0,g.scalar)(n),t=(0,g.scalar)(1),r=(0,g.scalar)(.5);m=(0,i.add)((0,d.mul)(m,(0,x.sub)(t,e)),(0,d.mul)(r,e))}let _=function(e,t){let r=(0,a.convertToTensor)(e,"labels","sigmoidCrossEntropyWithLogits"),n=(0,a.convertToTensor)(t,"logits","sigmoidCrossEntropyWithLogits");(0,o.assertShapesMatch)(r.shape,n.shape,"Error in sigmoidCrossEntropyWithLogits: ");let s=(0,h.relu)(n),c=(0,d.mul)(n,r),m=(0,p.log1p)((0,u.exp)((0,f.neg)((0,l.abs)(n))));return(0,i.add)((0,x.sub)(s,c),m)}(m,y);return(0,v.computeWeightedLoss)(_,b,s)}})},{"../../tensor_util_env":"5isXB","../../util":"icflD","../abs":"9L54v","../add":"dX80O","../exp":"aYtA8","../log1p":"acqft","../loss_ops_utils":"63OlA","../mul":"3233B","../neg":"8HIhG","../operation":"2me4m","../relu":"iPhge","../scalar":"aCdNN","../sub":"2lFei","./compute_weighted_loss":"7G55R","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eMlv3:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softmaxCrossEntropy",()=>j);var a=e("../../gradients"),o=e("../../tensor_util_env"),l=e("../../util"),i=e("../add"),u=e("../axis_util"),p=e("../cast"),c=e("../div"),d=e("../exp"),f=e("../log_sum_exp"),m=e("../loss_ops_utils"),h=e("../mul"),g=e("../neg"),x=e("../operation"),v=e("../reshape"),y=e("../scalar"),b=e("../sub"),_=e("../sum"),k=e("./compute_weighted_loss");let j=(0,x.op)({softmaxCrossEntropy_:function(e,t,r,n=0,s=m.Reduction.SUM_BY_NONZERO_WEIGHTS){let x=(0,o.convertToTensor)(e,"onehotLabels","softmaxCrossEntropy"),j=(0,o.convertToTensor)(t,"logits","softmaxCrossEntropy"),I=null;if(null!=r&&(I=(0,o.convertToTensor)(r,"weights","softmaxCrossEntropy")),(0,l.assertShapesMatch)(x.shape,j.shape,"Error in softmaxCrossEntropy: "),n>0){let e=(0,y.scalar)(n),t=(0,y.scalar)(1),r=(0,y.scalar)(x.shape[1]);x=(0,i.add)((0,h.mul)(x,(0,b.sub)(t,e)),(0,c.div)(e,r))}let w=function(e,t,r=-1){if(-1===r&&(r=t.rank-1),r!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${r}`);return(0,a.customGrad)((e,t,n)=>{let s=(0,f.logSumExp)(t,[r],!0),a=(0,b.sub)((0,p.cast)(t,"float32"),s);n([e,a]);let o=(0,g.neg)((0,h.mul)(a,e));return{value:(0,_.sum)(o,[r]),gradFunc:(e,t)=>{let[n,s]=t,a=(0,u.expandShapeToKeepDim)(e.shape,[r]);return[(0,h.mul)((0,v.reshape)(e,a),(0,b.sub)((0,p.cast)(n,"float32"),(0,d.exp)(s))),(0,h.mul)((0,v.reshape)(e,a),(0,b.sub)((0,d.exp)(s),(0,p.cast)(n,"float32")))]}}})(e,t)}(x,j);return(0,k.computeWeightedLoss)(w,I,s)}})},{"../../gradients":"7QhD7","../../tensor_util_env":"5isXB","../../util":"icflD","../add":"dX80O","../axis_util":"4dwwj","../cast":"juFUN","../div":"lbTan","../exp":"aYtA8","../log_sum_exp":"gPZz6","../loss_ops_utils":"63OlA","../mul":"3233B","../neg":"8HIhG","../operation":"2me4m","../reshape":"2znRS","../scalar":"aCdNN","../sub":"2lFei","../sum":"jlBkb","./compute_weighted_loss":"7G55R","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2apoJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseFillEmptyRows",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({sparseFillEmptyRows_:function(e,t,r,n){let s=(0,l.convertToTensor)(e,"indices","sparseFillEmptyRows","int32"),i=(0,l.convertToTensor)(t,"values","sparseFillEmptyRows"),u=(0,l.convertToTensor)(r,"denseShape","sparseFillEmptyRows","int32"),p=(0,l.convertToTensor)(n,"defaultValue","sparseFillEmptyRows",i.dtype);if(2!==s.rank)throw Error(`Indices should be Tensor2D but received shape + ${s.shape}`);if(1!==i.rank)throw Error(`Values should be Tensor1D but received shape ${i.shape}`);if(1!==u.rank)throw Error(`Dense shape should be Tensor1D but received shape ${u.shape}`);if(0!==p.rank)throw Error(`Default value should be a scalar but received shape ${p.shape}`);let c=a.ENGINE.runKernel(o.SparseFillEmptyRows,{indices:s,values:i,denseShape:u,defaultValue:p});return{outputIndices:c[0],outputValues:c[1],emptyRowIndicator:c[2],reverseIndexMap:c[3]}}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1MGLo":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseReshape",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({sparseReshape_:function(e,t,r){let n=(0,l.convertToTensor)(e,"inputIndices","sparseReshape","int32"),s=(0,l.convertToTensor)(t,"inputShape","sparseReshape","int32"),i=(0,l.convertToTensor)(r,"newShape","sparseReshape","int32");if(2!==n.rank)throw Error(`Input indices should be Tensor2D but received shape + ${n.shape}`);if(1!==s.rank)throw Error(`Input shape should be Tensor1D but received shape ${s.shape}`);if(1!==i.rank)throw Error(`New shape should be Tensor1D but received shape ${i.shape}`);let u=a.ENGINE.runKernel(o.SparseReshape,{inputIndices:n,inputShape:s,newShape:i});return{outputIndices:u[0],outputShape:u[1]}}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],heg8n:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentMean",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({sparseSegmentMean_:function(e,t,r){let n=(0,l.convertToTensor)(e,"data","sparseSegmentMean"),s=(0,l.convertToTensor)(t,"indices","sparseSegmentMean","int32"),i=(0,l.convertToTensor)(r,"segmentIds","sparseSegmentMean","int32");if(n.rank<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.rank)throw Error(`Indices should be Tensor1D but received shape + ${s.shape}`);if(1!==i.rank)throw Error(`Segment ids should be Tensor1D but received shape + ${i.shape}`);return a.ENGINE.runKernel(o.SparseSegmentMean,{data:n,indices:s,segmentIds:i})}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4SIv3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentSum",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({sparseSegmentSum_:function(e,t,r){let n=(0,l.convertToTensor)(e,"data","sparseSegmentSum"),s=(0,l.convertToTensor)(t,"indices","sparseSegmentSum","int32"),i=(0,l.convertToTensor)(r,"segmentIds","sparseSegmentSum","int32");if(n.rank<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.rank)throw Error(`Indices should be Tensor1D but received shape + ${s.shape}`);if(1!==i.rank)throw Error(`Segment ids should be Tensor1D but received shape + ${i.shape}`);return a.ENGINE.runKernel(o.SparseSegmentSum,{data:n,indices:s,segmentIds:i})}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],crgDK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringNGrams",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({stringNGrams_:function(e,t,r,n,s,i,u,p){let c=(0,l.convertToTensor)(e,"data","stringNGrams","string");if("string"!==c.dtype)throw Error("Data must be of datatype string");if(1!==c.shape.length)throw Error(`Data must be a vector, saw: ${c.shape}`);let d=(0,l.convertToTensor)(t,"dataSplits","stringNGrams");if("int32"!==d.dtype)throw Error("Data splits must be of datatype int32");let f=a.ENGINE.runKernel(o.StringNGrams,{data:c,dataSplits:d},{separator:r,nGramWidths:n,leftPad:s,rightPad:i,padWidth:u,preserveShortSequences:p});return{nGrams:f[0],nGramsSplits:f[1]}}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kf9qK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringSplit",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({stringSplit_:function(e,t,r=!0){let n=(0,l.convertToTensor)(e,"input","stringSplit","string"),s=(0,l.convertToTensor)(t,"delimiter","stringSplit","string");if(1!==n.rank)throw Error(`Input should be Tensor1D but received shape ${n.shape}`);if(0!==s.rank)throw Error(`Delimiter should be a scalar but received shape ${s.shape}`);let i=a.ENGINE.runKernel(o.StringSplit,{input:n,delimiter:s},{skipEmpty:r});return{indices:i[0],values:i[1],shape:i[2]}}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hCzP4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringToHashBucketFast",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({stringToHashBucketFast_:function(e,t){let r=(0,l.convertToTensor)(e,"input","stringToHashBucketFast","string");if(t<=0)throw Error("Number of buckets must be at least 1");return a.ENGINE.runKernel(o.StringToHashBucketFast,{input:r},{numBuckets:t})}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"758tQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"staticRegexReplace",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({staticRegexReplace_:function(e,t,r,n=!0){let s=(0,l.convertToTensor)(e,"input","staticRegexReplace","string");return a.ENGINE.runKernel(o.StaticRegexReplace,{x:s},{pattern:t,rewrite:r,replaceGlobal:n})}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kmErF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Optimizer",()=>u);var a=e("../globals"),o=e("../gradients"),l=e("../ops/ops"),i=e("../serialization");class u extends i.Serializable{minimize(e,t=!1,r){let{value:n,grads:s}=this.computeGradients(e,r);if(null!=r){let e=r.map(e=>({name:e.name,tensor:s[e.name]}));this.applyGradients(e)}else this.applyGradients(s);return((0,a.dispose)(s),t)?n:(n.dispose(),null)}get iterations(){return null==this.iterations_&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return(0,o.variableGrads)(e,t)}dispose(){null!=this.iterations_&&(0,a.dispose)(this.iterations_)}async saveIterations(){return null==this.iterations_&&(this.iterations_=0),{name:"iter",tensor:(0,l.scalar)(this.iterations_,"int32")}}async getWeights(){throw Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}}Object.defineProperty(u,Symbol.hasInstance,{value:e=>null!=e.minimize&&null!=e.computeGradients&&null!=e.applyGradients})},{"../globals":"kUewM","../gradients":"7QhD7","../ops/ops":"165HQ","../serialization":"3f8fL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3f8fL":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Serializable",()=>i),s.export(r,"SerializationMap",()=>u),s.export(r,"registerClass",()=>p),s.export(r,"getRegisteredName",()=>c);var a=e("./util");let o=new Map,l=new Map;class i{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}}class u{constructor(){this.classNameMap={}}static getMap(){return null==u.instance&&(u.instance=new u),u.instance}static register(e){u.getMap().classNameMap[e.className]=[e,e.fromConfig]}}function p(e,t,r){(0,a.assert)(null!=e.className,()=>"Class being registered does not have the static className property defined."),(0,a.assert)("string"==typeof e.className,()=>"className is required to be a string, but got type "+typeof e.className),(0,a.assert)(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),void 0===t&&(t="Custom"),void 0===r&&(r=e.className);let n=t+">"+r;return u.register(e),o.set(n,e),l.set(e,n),e}function c(e){return l.has(e)?l.get(e):e.className}},{"./util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4w9Rg":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AdagradOptimizer",()=>m);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/div"),u=e("../ops/fill"),p=e("../ops/mul"),c=e("../ops/sqrt"),d=e("../ops/square"),f=e("./optimizer");class m extends f.Optimizer{static get className(){return"Adagrad"}constructor(e,t=.1){super(),this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(e=>e.name):Object.keys(e)).forEach((t,r)=>{let n=a.ENGINE.registeredVariables[t];null==this.accumulatedGrads[r]&&(this.accumulatedGrads[r]={originalName:`${t}/accumulator`,variable:(0,o.tidy)(()=>(0,u.fill)(n.shape,this.initialAccumulatorValue).variable(!1))});let s=Array.isArray(e)?e[r].tensor:e[t];if(null==s)return;let f=this.accumulatedGrads[r].variable;(0,o.tidy)(()=>{let e=(0,l.add)(f,(0,d.square)(s));f.assign(e);let t=(0,l.add)((0,p.mul)((0,i.div)(s,(0,c.sqrt)((0,l.add)(e,a.ENGINE.backend.epsilon()))),-this.learningRate),n);n.assign(t)})}),this.incrementIterations()}dispose(){null!=this.accumulatedGrads&&(0,o.dispose)(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e),this.accumulatedGrads=e.map(e=>({originalName:e.name,variable:e.tensor.variable(!1)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}}},{"../engine":"c6qwc","../globals":"kUewM","../ops/add":"dX80O","../ops/div":"lbTan","../ops/fill":"d4iwa","../ops/mul":"3233B","../ops/sqrt":"946JS","../ops/square":"kNrd2","./optimizer":"kmErF","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],f7FpJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AdamOptimizer",()=>x);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/div"),u=e("../ops/mul"),p=e("../ops/pow"),c=e("../ops/scalar"),d=e("../ops/sqrt"),f=e("../ops/square"),m=e("../ops/sub"),h=e("../ops/zeros_like"),g=e("./optimizer");class x extends g.Optimizer{static get className(){return"Adam"}constructor(e,t,r,n=null){super(),this.learningRate=e,this.beta1=t,this.beta2=r,this.epsilon=n,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],(0,o.tidy)(()=>{this.accBeta1=(0,c.scalar)(t).variable(),this.accBeta2=(0,c.scalar)(r).variable()}),null==n&&(this.epsilon=a.ENGINE.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(e=>e.name):Object.keys(e);(0,o.tidy)(()=>{let r=(0,m.sub)(1,this.accBeta1),n=(0,m.sub)(1,this.accBeta2);t.forEach((t,s)=>{let p=a.ENGINE.registeredVariables[t];null==this.accumulatedFirstMoment[s]&&(this.accumulatedFirstMoment[s]={originalName:`${t}/m`,variable:(0,o.tidy)(()=>(0,h.zerosLike)(p).variable(!1))}),null==this.accumulatedSecondMoment[s]&&(this.accumulatedSecondMoment[s]={originalName:`${t}/v`,variable:(0,o.tidy)(()=>(0,h.zerosLike)(p).variable(!1))});let c=Array.isArray(e)?e[s].tensor:e[t];if(null==c)return;let m=this.accumulatedFirstMoment[s].variable,g=this.accumulatedSecondMoment[s].variable,x=(0,l.add)((0,u.mul)(m,this.beta1),(0,u.mul)(c,1-this.beta1)),v=(0,l.add)((0,u.mul)(g,this.beta2),(0,u.mul)((0,f.square)(c),1-this.beta2)),y=(0,i.div)(x,r),b=(0,i.div)(v,n);m.assign(x),g.assign(v);let _=(0,l.add)((0,u.mul)((0,i.div)(y,(0,l.add)((0,d.sqrt)(b),this.epsilon)),-this.learningRate),p);p.assign(_)}),this.accBeta1.assign((0,u.mul)(this.accBeta1,this.beta1)),this.accBeta2.assign((0,u.mul)(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),null!=this.accumulatedFirstMoment&&(0,o.dispose)(this.accumulatedFirstMoment.map(e=>e.variable)),null!=this.accumulatedSecondMoment&&(0,o.dispose)(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e),(0,o.tidy)(()=>{this.accBeta1.assign((0,p.pow)(this.beta1,this.iterations_+1)),this.accBeta2.assign((0,p.pow)(this.beta2,this.iterations_+1))});let t=e.length/2;this.accumulatedFirstMoment=e.slice(0,t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)})),this.accumulatedSecondMoment=e.slice(t,2*t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}}},{"../engine":"c6qwc","../globals":"kUewM","../ops/add":"dX80O","../ops/div":"lbTan","../ops/mul":"3233B","../ops/pow":"aku8e","../ops/scalar":"aCdNN","../ops/sqrt":"946JS","../ops/square":"kNrd2","../ops/sub":"2lFei","../ops/zeros_like":"1peA5","./optimizer":"kmErF","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aoq0y:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AdamaxOptimizer",()=>g);var a=e("../engine"),o=e("../globals"),l=e("../ops/abs"),i=e("../ops/add"),u=e("../ops/div"),p=e("../ops/maximum"),c=e("../ops/mul"),d=e("../ops/scalar"),f=e("../ops/sub"),m=e("../ops/zeros_like"),h=e("./optimizer");class g extends h.Optimizer{static get className(){return"Adamax"}constructor(e,t,r,n=null,s=0){super(),this.learningRate=e,this.beta1=t,this.beta2=r,this.epsilon=n,this.decay=s,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],(0,o.tidy)(()=>{this.iteration=(0,d.scalar)(0).variable(),this.accBeta1=(0,d.scalar)(t).variable()}),null==n&&(this.epsilon=a.ENGINE.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(e=>e.name):Object.keys(e);(0,o.tidy)(()=>{let r=(0,f.sub)(1,this.accBeta1),n=(0,u.div)(-this.learningRate,(0,i.add)((0,c.mul)(this.iteration,this.decay),1));t.forEach((t,s)=>{let o=a.ENGINE.registeredVariables[t];null==this.accumulatedFirstMoment[s]&&(this.accumulatedFirstMoment[s]={originalName:`${t}/m`,variable:(0,m.zerosLike)(o).variable(!1)}),null==this.accumulatedWeightedInfNorm[s]&&(this.accumulatedWeightedInfNorm[s]={originalName:`${t}/v`,variable:(0,m.zerosLike)(o).variable(!1)});let d=Array.isArray(e)?e[s].tensor:e[t];if(null==d)return;let f=this.accumulatedFirstMoment[s].variable,h=this.accumulatedWeightedInfNorm[s].variable,g=(0,i.add)((0,c.mul)(f,this.beta1),(0,c.mul)(d,1-this.beta1)),x=(0,c.mul)(h,this.beta2),v=(0,l.abs)(d),y=(0,p.maximum)(x,v);f.assign(g),h.assign(y);let b=(0,i.add)((0,c.mul)((0,u.div)(n,r),(0,u.div)(g,(0,i.add)(y,this.epsilon))),o);o.assign(b)}),this.iteration.assign((0,i.add)(this.iteration,1)),this.accBeta1.assign((0,c.mul)(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),null!=this.accumulatedFirstMoment&&(0,o.dispose)(this.accumulatedFirstMoment.map(e=>e.variable)),null!=this.accumulatedWeightedInfNorm&&(0,o.dispose)(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}}},{"../engine":"c6qwc","../globals":"kUewM","../ops/abs":"9L54v","../ops/add":"dX80O","../ops/div":"lbTan","../ops/maximum":"4zHPo","../ops/mul":"3233B","../ops/scalar":"aCdNN","../ops/sub":"2lFei","../ops/zeros_like":"1peA5","./optimizer":"kmErF","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"68FSY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MomentumOptimizer",()=>d);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/mul"),u=e("../ops/scalar"),p=e("../ops/zeros_like"),c=e("./sgd_optimizer");class d extends c.SGDOptimizer{static get className(){return"Momentum"}constructor(e,t,r=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=r,this.accumulations=[],this.m=(0,u.scalar)(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(e=>e.name):Object.keys(e)).forEach((t,r)=>{let n=a.ENGINE.registeredVariables[t];null==this.accumulations[r]&&(this.accumulations[r]={originalName:`${t}/momentum`,variable:(0,o.tidy)(()=>(0,p.zerosLike)(n).variable(!1))});let s=this.accumulations[r].variable,u=Array.isArray(e)?e[r].tensor:e[t];null!=u&&(0,o.tidy)(()=>{let e,t=(0,l.add)((0,i.mul)(this.m,s),u);e=this.useNesterov?(0,l.add)((0,i.mul)(this.c,(0,l.add)(u,(0,i.mul)(t,this.m))),n):(0,l.add)((0,i.mul)(this.c,t),n),s.assign(t),n.assign(e)})}),this.incrementIterations()}dispose(){this.m.dispose(),null!=this.accumulations&&(0,o.dispose)(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e),this.accumulations=e.map(e=>({originalName:e.name,variable:e.tensor.variable(!1)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}}},{"../engine":"c6qwc","../globals":"kUewM","../ops/add":"dX80O","../ops/mul":"3233B","../ops/scalar":"aCdNN","../ops/zeros_like":"1peA5","./sgd_optimizer":"h6aU6","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],h6aU6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SGDOptimizer",()=>c);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/mul"),u=e("../ops/scalar"),p=e("./optimizer");class c extends p.Optimizer{static get className(){return"SGD"}constructor(e){super(),this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(e=>e.name):Object.keys(e)).forEach((t,r)=>{let n=Array.isArray(e)?e[r].tensor:e[t];if(null==n)return;let s=a.ENGINE.registeredVariables[t];(0,o.tidy)(()=>{let e=(0,l.add)((0,i.mul)(this.c,n),s);s.assign(e)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,null!=this.c&&this.c.dispose(),this.c=(0,o.keep)((0,u.scalar)(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(0!==(e=await this.extractIterations(e)).length)throw Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}}},{"../engine":"c6qwc","../globals":"kUewM","../ops/add":"dX80O","../ops/mul":"3233B","../ops/scalar":"aCdNN","./optimizer":"kmErF","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jahoj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"RMSPropOptimizer",()=>h);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/div"),u=e("../ops/mul"),p=e("../ops/sqrt"),c=e("../ops/square"),d=e("../ops/sub"),f=e("../ops/zeros_like"),m=e("./optimizer");class h extends m.Optimizer{static get className(){return"RMSProp"}constructor(e,t=.9,r=0,n=null,s=!1){if(super(),this.learningRate=e,this.decay=t,this.momentum=r,this.epsilon=n,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=s,null==n&&(this.epsilon=a.ENGINE.backend.epsilon()),null==e)throw Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(e=>e.name):Object.keys(e)).forEach((t,r)=>{let n=a.ENGINE.registeredVariables[t];null==this.accumulatedMeanSquares[r]&&(this.accumulatedMeanSquares[r]={originalName:`${t}/rms`,variable:(0,o.tidy)(()=>(0,f.zerosLike)(n).variable(!1))}),null==this.accumulatedMoments[r]&&(this.accumulatedMoments[r]={originalName:`${t}/momentum`,variable:(0,o.tidy)(()=>(0,f.zerosLike)(n).variable(!1))}),null==this.accumulatedMeanGrads[r]&&this.centered&&(this.accumulatedMeanGrads[r]={originalName:`${t}/mg`,variable:(0,o.tidy)(()=>(0,f.zerosLike)(n).variable(!1))});let s=Array.isArray(e)?e[r].tensor:e[t];if(null==s)return;let m=this.accumulatedMeanSquares[r].variable,h=this.accumulatedMoments[r].variable;(0,o.tidy)(()=>{let e=(0,l.add)((0,u.mul)(m,this.decay),(0,u.mul)((0,c.square)(s),1-this.decay));if(this.centered){let t=this.accumulatedMeanGrads[r].variable,a=(0,l.add)((0,u.mul)(t,this.decay),(0,u.mul)(s,1-this.decay)),o=(0,i.div)((0,u.mul)(s,this.learningRate),(0,p.sqrt)((0,d.sub)(e,(0,l.add)((0,c.square)(a),this.epsilon)))),f=(0,l.add)((0,u.mul)(h,this.momentum),o);m.assign(e),t.assign(a),h.assign(f);let g=(0,d.sub)(n,f);n.assign(g)}else{let e=(0,l.add)((0,u.mul)(m,this.decay),(0,u.mul)((0,c.square)(s),1-this.decay)),t=(0,l.add)((0,u.mul)(h,this.momentum),(0,i.div)((0,u.mul)(s,this.learningRate),(0,p.sqrt)((0,l.add)(e,this.epsilon))));m.assign(e),h.assign(t);let r=(0,d.sub)(n,t);n.assign(r)}})}),this.incrementIterations()}dispose(){null!=this.accumulatedMeanSquares&&(0,o.dispose)(this.accumulatedMeanSquares.map(e=>e.variable)),null!=this.accumulatedMeanGrads&&this.centered&&(0,o.dispose)(this.accumulatedMeanGrads.map(e=>e.variable)),null!=this.accumulatedMoments&&(0,o.dispose)(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2;this.accumulatedMeanSquares=e.slice(0,t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)})),this.accumulatedMoments=e.slice(t,2*t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)})),this.centered&&(this.accumulatedMeanGrads=e.slice(2*t,3*t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}}},{"../engine":"c6qwc","../globals":"kUewM","../ops/add":"dX80O","../ops/div":"lbTan","../ops/mul":"3233B","../ops/sqrt":"946JS","../ops/square":"kNrd2","../ops/sub":"2lFei","../ops/zeros_like":"1peA5","./optimizer":"kmErF","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2mOyX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AdadeltaOptimizer",()=>x.AdadeltaOptimizer),s.export(r,"AdagradOptimizer",()=>v.AdagradOptimizer),s.export(r,"AdamOptimizer",()=>y.AdamOptimizer),s.export(r,"AdamaxOptimizer",()=>b.AdamaxOptimizer),s.export(r,"MomentumOptimizer",()=>_.MomentumOptimizer),s.export(r,"Optimizer",()=>k.Optimizer),s.export(r,"OptimizerConstructors",()=>j.OptimizerConstructors),s.export(r,"RMSPropOptimizer",()=>I.RMSPropOptimizer),s.export(r,"SGDOptimizer",()=>w.SGDOptimizer),s.export(r,"Tensor",()=>T.Tensor),s.export(r,"TensorBuffer",()=>T.TensorBuffer),s.export(r,"Variable",()=>T.Variable),s.export(r,"Rank",()=>N.Rank),s.export(r,"sumOutType",()=>N.sumOutType),s.export(r,"upcastType",()=>N.upcastType),s.export(r,"Reduction",()=>C.Reduction),s.export(r,"customGrad",()=>R.customGrad),s.export(r,"grad",()=>R.grad),s.export(r,"grads",()=>R.grads),s.export(r,"valueAndGrad",()=>R.valueAndGrad),s.export(r,"valueAndGrads",()=>R.valueAndGrads),s.export(r,"variableGrads",()=>R.variableGrads),s.export(r,"Environment",()=>P.Environment),s.export(r,"env",()=>P.env),s.export(r,"ENV",()=>P.ENV),s.export(r,"nextFrame",()=>D.nextFrame),s.export(r,"KernelBackend",()=>W.KernelBackend),s.export(r,"DataStorage",()=>W.DataStorage),s.export(r,"version_core",()=>g.version),s.export(r,"browser",()=>i),s.export(r,"io",()=>a),s.export(r,"math",()=>o),s.export(r,"serialization",()=>d),s.export(r,"test_util",()=>m),s.export(r,"util",()=>h),s.export(r,"backend_util",()=>$),s.export(r,"broadcast_util",()=>l),s.export(r,"tensor_util",()=>f),s.export(r,"slice_util",()=>c),s.export(r,"gather_util",()=>u),s.export(r,"scatter_util",()=>p),s.export(r,"device_util",()=>O),s.export(r,"kernel_impls",()=>M);var a=e("./io/io"),o=e("./math"),l=e("./ops/broadcast_util"),i=e("./ops/browser"),u=e("./ops/gather_nd_util"),p=e("./ops/scatter_nd_util"),c=e("./ops/slice_util"),d=e("./serialization"),f=e("./tensor_util"),m=e("./test_util"),h=e("./util"),g=e("./version"),x=e("./optimizers/adadelta_optimizer"),v=e("./optimizers/adagrad_optimizer"),y=e("./optimizers/adam_optimizer"),b=e("./optimizers/adamax_optimizer"),_=e("./optimizers/momentum_optimizer"),k=e("./optimizers/optimizer"),j=e("./optimizers/optimizer_constructors"),I=e("./optimizers/rmsprop_optimizer"),w=e("./optimizers/sgd_optimizer"),T=e("./tensor"),N=e("./types"),S=e("./ops/ops");s.exportAll(S,r);var C=e("./ops/loss_ops_utils"),E=e("./train");s.exportAll(E,r);var F=e("./globals");s.exportAll(F,r);var A=e("./kernel_registry");s.exportAll(A,r);var R=e("./gradients"),P=e("./environment"),D=e("./browser_util"),$=e("./backends/backend_util"),O=e("./device_util"),M=e("./backends/kernel_impls"),W=e("./backends/backend"),B=e("./kernel_names");s.exportAll(B,r)},{"./io/io":"dCFcY","./math":"iMdsC","./ops/broadcast_util":"9OeEk","./ops/browser":"3mbL0","./ops/gather_nd_util":"jBaQj","./ops/scatter_nd_util":"cr9mr","./ops/slice_util":"cOVNx","./serialization":"3f8fL","./tensor_util":"7PL4y","./test_util":"fdsdV","./util":"icflD","./version":"2zsOw","./optimizers/adadelta_optimizer":"j1AeL","./optimizers/adagrad_optimizer":"4w9Rg","./optimizers/adam_optimizer":"f7FpJ","./optimizers/adamax_optimizer":"aoq0y","./optimizers/momentum_optimizer":"68FSY","./optimizers/optimizer":"kmErF","./optimizers/optimizer_constructors":"bxfJJ","./optimizers/rmsprop_optimizer":"jahoj","./optimizers/sgd_optimizer":"h6aU6","./tensor":"cfIkd","./types":"huvyT","./ops/ops":"165HQ","./ops/loss_ops_utils":"63OlA","./train":"6oEzQ","./globals":"kUewM","./kernel_registry":"11iA6","./gradients":"7QhD7","./environment":"h8BWL","./browser_util":"k0MXA","./backends/backend_util":"f2wbu","./device_util":"dDH0G","./backends/kernel_impls":"3sRDI","./backends/backend":"4gYBc","./kernel_names":"349aa","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dCFcY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"copyModel",()=>d.copyModel),s.export(r,"listModels",()=>d.listModels),s.export(r,"moveModel",()=>d.moveModel),s.export(r,"removeModel",()=>d.removeModel),s.export(r,"browserFiles",()=>a.browserFiles),s.export(r,"browserHTTPRequest",()=>o.browserHTTPRequest),s.export(r,"CompositeArrayBuffer",()=>c.CompositeArrayBuffer),s.export(r,"concatenateArrayBuffers",()=>l.concatenateArrayBuffers),s.export(r,"decodeWeights",()=>l.decodeWeights),s.export(r,"decodeWeightsStream",()=>l.decodeWeightsStream),s.export(r,"encodeWeights",()=>l.encodeWeights),s.export(r,"fromMemory",()=>i.fromMemory),s.export(r,"fromMemorySync",()=>i.fromMemorySync),s.export(r,"getLoadHandlers",()=>u.getLoadHandlers),s.export(r,"getModelArtifactsForJSON",()=>l.getModelArtifactsForJSON),s.export(r,"getModelArtifactsForJSONSync",()=>l.getModelArtifactsForJSONSync),s.export(r,"getModelArtifactsInfoForJSON",()=>l.getModelArtifactsInfoForJSON),s.export(r,"getSaveHandlers",()=>u.getSaveHandlers),s.export(r,"getWeightSpecs",()=>l.getWeightSpecs),s.export(r,"http",()=>o.http),s.export(r,"isHTTPScheme",()=>o.isHTTPScheme),s.export(r,"loadWeights",()=>p.loadWeights),s.export(r,"registerLoadRouter",()=>u.registerLoadRouter),s.export(r,"registerSaveRouter",()=>u.registerSaveRouter),s.export(r,"weightsLoaderFactory",()=>p.weightsLoaderFactory),s.export(r,"withSaveHandler",()=>i.withSaveHandler),s.export(r,"withSaveHandlerSync",()=>i.withSaveHandlerSync),e("./indexed_db"),e("./local_storage");var a=e("./browser_files"),o=e("./http"),l=e("./io_utils"),i=e("./passthrough"),u=e("./router_registry"),p=e("./weights_loader"),c=e("./composite_array_buffer"),d=e("./model_management")},{"./indexed_db":"aOV6O","./local_storage":"fYfpb","./browser_files":"5KlMV","./http":"lkQ6k","./io_utils":"I1MAO","./passthrough":"b2jWf","./router_registry":"luXuJ","./weights_loader":"l2sGW","./composite_array_buffer":"d6FlQ","./model_management":"1lmNR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5KlMV":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"BrowserDownloads",()=>p),s.export(r,"browserDownloadsRouter",()=>d),s.export(r,"browserDownloads",()=>f),s.export(r,"browserFiles",()=>m),e("../flags");var a=e("../environment"),o=e("./io_utils"),l=e("./router_registry"),i=e("./composite_array_buffer");function u(e){return new Promise(e=>setTimeout(e)).then(e)}class p{constructor(e){if(!(0,a.env)().getBool("IS_BROWSER"))throw Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(p.URL_SCHEME)&&(e=e.slice(p.URL_SCHEME.length)),(null==e||0===e.length)&&(e="model"),this.modelJsonFileName=e+".json",this.weightDataFileName=e+".weights.bin"}async save(e){if("undefined"==typeof document)throw Error("Browser downloads are not supported in this environment since `document` is not present");let t=i.CompositeArrayBuffer.join(e.weightData),r=window.URL.createObjectURL(new Blob([t],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let t=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],n=(0,o.getModelJSONForModelArtifacts)(e,t),s=window.URL.createObjectURL(new Blob([JSON.stringify(n)],{type:"application/json"})),a=null==this.modelJsonAnchor?document.createElement("a"):this.modelJsonAnchor;if(a.download=this.modelJsonFileName,a.href=s,await u(()=>a.dispatchEvent(new MouseEvent("click"))),null!=e.weightData){let e=null==this.weightDataAnchor?document.createElement("a"):this.weightDataAnchor;e.download=this.weightDataFileName,e.href=r,await u(()=>e.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:(0,o.getModelArtifactsInfoForJSON)(e)}}}}p.URL_SCHEME="downloads://";class c{constructor(e){if(null==e||e.length<1)throw Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.jsonFile=e[0],this.weightsFiles=e.slice(1)}async load(){return new Promise((e,t)=>{let r=new FileReader;r.onload=r=>{let n=JSON.parse(r.target.result),s=n.modelTopology;return null==s?void t(Error(`modelTopology field is missing from file ${this.jsonFile.name}`)):null==n.weightsManifest?void t(Error(`weightManifest field is missing from file ${this.jsonFile.name}`)):0===this.weightsFiles.length?void e({modelTopology:s}):void e((0,o.getModelArtifactsForJSON)(n,e=>this.loadWeights(e)))},r.onerror=e=>t(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),r.readAsText(this.jsonFile)})}loadWeights(e){let t=[],r=[];for(let n of e)t.push(...n.weights),r.push(...n.paths);let n=this.checkManifestAndWeightFiles(e);return Promise.all(r.map(e=>this.loadWeightsFile(e,n[e]))).then(e=>[t,e])}loadWeightsFile(e,t){return new Promise((r,n)=>{let s=new FileReader;s.onload=e=>{r(e.target.result)},s.onerror=t=>n(`Failed to weights data from file of path '${e}'.`),s.readAsArrayBuffer(t)})}checkManifestAndWeightFiles(e){let t=[],r=this.weightsFiles.map(e=>(0,o.basename)(e.name)),n={};for(let s of e)s.paths.forEach(e=>{let s=(0,o.basename)(e);if(-1!==t.indexOf(s))throw Error(`Duplicate file basename found in weights manifest: '${s}'`);if(t.push(s),-1===r.indexOf(s))throw Error(`Weight file with basename '${s}' is not provided.`);n[e]=this.weightsFiles[r.indexOf(s)]});if(t.length!==this.weightsFiles.length)throw Error(`Mismatch in the number of files in weights manifest (${t.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return n}}let d=e=>(0,a.env)().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(p.URL_SCHEME)?f(e.slice(p.URL_SCHEME.length)):null;function f(e="model"){return new p(e)}function m(e){return new c(e)}l.IORouterRegistry.registerSaveRouter(d)},{"../flags":"8o4LZ","../environment":"h8BWL","./io_utils":"I1MAO","./router_registry":"luXuJ","./composite_array_buffer":"d6FlQ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lkQ6k:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"HTTPRequest",()=>c),s.export(r,"parseUrl",()=>d),s.export(r,"isHTTPScheme",()=>f),s.export(r,"httpRouter",()=>m),s.export(r,"http",()=>h),s.export(r,"browserHTTPRequest",()=>g);var a=e("../environment"),o=e("../util"),l=e("./io_utils"),i=e("./composite_array_buffer"),u=e("./router_registry"),p=e("./weights_loader");class c{constructor(e,t){if(this.DEFAULT_METHOD="POST",null==t&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.weightUrlConverter=t.weightUrlConverter,null!=t.fetchFunc?((0,o.assert)("function"==typeof t.fetchFunc,()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=(0,a.env)().platform.fetch,(0,o.assert)(null!=e&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&(0,o.assert)(2===e.length,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,null!=t.requestInit&&null!=t.requestInit.body)throw Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{},this.loadOptions=t}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let r=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],n=(0,l.getModelJSONForModelArtifacts)(e,r);if(t.body.append("model.json",new Blob([JSON.stringify(n)],{type:"application/json"}),"model.json"),null!=e.weightData){let r=i.CompositeArrayBuffer.join(e.weightData);t.body.append("model.weights.bin",new Blob([r],{type:"application/octet-stream"}),"model.weights.bin")}let s=await this.fetch(this.path,t);if(s.ok)return{modelArtifactsInfo:(0,l.getModelArtifactsInfoForJSON)(e),responses:[s]};throw Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`)}async loadModelJSON(){let e,t=await this.fetch(this.path,this.requestInit);if(!t.ok)throw Error(`Request to ${this.path} failed with status code ${t.status}. Please verify this URL points to the model JSON of the model to load.`);try{e=await t.json()}catch(t){let e=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?e+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":e+=" Please make sure the server is serving valid JSON for this request.",Error(e)}let r=e.modelTopology,n=e.weightsManifest;if(null==r&&null==n)throw Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return e}async load(){if(this.loadOptions.streamWeights)return this.loadStream();let e=await this.loadModelJSON();return(0,l.getModelArtifactsForJSON)(e,e=>this.loadWeights(e))}async loadStream(){let e=await this.loadModelJSON(),t=await this.getWeightUrls(e.weightsManifest),r=(0,l.getWeightSpecs)(e.weightsManifest);return Object.assign(Object.assign({},e),{weightSpecs:r,getWeightStream:()=>(0,p.streamWeights)(t,this.loadOptions)})}async getWeightUrls(e){let[t,r]=d(Array.isArray(this.path)?this.path[1]:this.path),n=this.weightPathPrefix||t,s=[],a=[];for(let t of e)for(let e of t.paths)null!=this.weightUrlConverter?a.push(this.weightUrlConverter(e)):s.push(n+e+r);return this.weightUrlConverter&&s.push(...await Promise.all(a)),s}async loadWeights(e){let t=await this.getWeightUrls(e);return[(0,l.getWeightSpecs)(e),await (0,p.loadWeightsAsArrayBuffer)(t,this.loadOptions)]}}function d(e){let t=e.lastIndexOf("/"),r=e.lastIndexOf("?");return[e.substring(0,t)+"/",r>t?e.substring(r):""]}function f(e){return null!=e.match(c.URL_SCHEME_REGEX)}c.URL_SCHEME_REGEX=/^https?:\/\//;let m=(e,t)=>{if("undefined"==typeof fetch&&(null==t||null==t.fetchFunc));else{let r=!0;if(Array.isArray(e)?e.every(e=>f(e)):f(e))return h(e,t)}return null};function h(e,t){return new c(e,t)}function g(e,t){return h(e,t)}u.IORouterRegistry.registerSaveRouter(m),u.IORouterRegistry.registerLoadRouter(m)},{"../environment":"h8BWL","../util":"icflD","./io_utils":"I1MAO","./composite_array_buffer":"d6FlQ","./router_registry":"luXuJ","./weights_loader":"l2sGW","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],l2sGW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"loadWeightsAsArrayBuffer",()=>c),s.export(r,"streamWeights",()=>d),s.export(r,"loadWeights",()=>f),s.export(r,"weightsLoaderFactory",()=>m);var a=e("../environment"),o=e("../util"),l=e("./composite_array_buffer"),i=e("./io_utils"),u=e("./progress"),p=e("./types");async function c(e,t){null==t&&(t={});let r=null==t.fetchFunc?(0,a.env)().platform.fetch:t.fetchFunc,n=e.map(e=>r(e,t.requestInit,{isBinary:!0})),s=(null==t.onProgress?await Promise.all(n):await (0,u.monitorPromisesProgress)(n,t.onProgress,0,.5)).map(e=>e.arrayBuffer());return null==t.onProgress?await Promise.all(s):await (0,u.monitorPromisesProgress)(s,t.onProgress,.5,1)}function d(e,t){var r;let n,s=null==t.fetchFunc?(0,a.env)().platform.fetch:t.fetchFunc,o=0;return null==(r=t.onProgress)||r.call(t,0),new ReadableStream({pull:async r=>{for(var a;oc(e,{requestInit:n}))(e,t,r)}function m(e){return async(t,r="",n)=>{let s=t.map(()=>!1),a={},u=null!=n?n.map(()=>!1):[],c=[];if(t.forEach((e,t)=>{let r=0;e.weights.forEach(e=>{let l="quantization"in e?e.quantization.dtype:e.dtype,i=p.DTYPE_VALUE_SIZE_MAP[l]*o.sizeFromShape(e.shape),d=()=>{s[t]=!0,null==a[t]&&(a[t]=[]),a[t].push({manifestEntry:e,groupOffset:r,sizeBytes:i})};null!=n?n.forEach((t,r)=>{t===e.name&&(d(),u[r]=!0)}):d(),c.push(e.name),r+=i})}),!u.every(e=>e)){let e=n.filter((e,t)=>!u[t]);throw Error(`Could not find weights in manifest with names: ${e.join(", ")}. +Manifest JSON has weights with names: ${c.join(", ")}.`)}let d=s.reduce((e,t,r)=>(t&&e.push(r),e),[]),f=[];d.forEach(e=>{t[e].paths.forEach(e=>{let t=r+(r.endsWith("/")?"":"/")+e;f.push(t)})});let m=await e(f),h={},g=0;return d.forEach(e=>{let r=t[e].paths.length,n=new(0,l.CompositeArrayBuffer)(m.slice(g,g+r));a[e].forEach(e=>{let t=n.slice(e.groupOffset,e.groupOffset+e.sizeBytes),r=(0,i.decodeWeights)(t,[e.manifestEntry]);for(let e in r)h[e]=r[e]}),g+=r}),h}}},{"../environment":"h8BWL","../util":"icflD","./composite_array_buffer":"d6FlQ","./io_utils":"I1MAO","./progress":"7AXJi","./types":"8bskX","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7AXJi":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"monitorPromisesProgress",()=>o);var a=e("../util");function o(e,t,r,n){var s,o,l;s=e,(0,a.assert)(null!=s&&Array.isArray(s)&&s.length>0,()=>"promises must be a none empty array"),o=r=null==r?0:r,l=n=null==n?1:n,(0,a.assert)(o>=0&&o<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${o}`),(0,a.assert)(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${l}`),(0,a.assert)(l>=o,()=>`startFraction must be no more than endFraction, but got startFraction ${o} and endFraction ${l}`);let i=0;return Promise.all(e.map(s=>(s.then(s=>(t(r+ ++i/e.length*(n-r)),s)),s)))}},{"../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],b2jWf:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fromMemory",()=>i),s.export(r,"fromMemorySync",()=>u),s.export(r,"withSaveHandler",()=>p),s.export(r,"withSaveHandlerSync",()=>c);class a{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}}class o{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}}class l{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}}function i(e,t,r,n){let s=arguments;return new l(u(...s))}function u(e,t,r,n){return 1!=arguments.length?(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new a({modelTopology:e,weightSpecs:t,weightData:r,trainingConfig:n})):null!=e.modelTopology||null!=e.weightSpecs?new a(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new a({modelTopology:e}))}function p(e){return new o(e)}function c(e){return new o(e)}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iMdsC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"confusionMatrix",()=>a.confusionMatrix);var a=e("./ops/confusion_matrix")},{"./ops/confusion_matrix":"5Fmtv","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5Fmtv":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"confusionMatrix_",()=>d),s.export(r,"confusionMatrix",()=>f);var a=e("../tensor_util_env"),o=e("../util"),l=e("./cast"),i=e("./mat_mul"),u=e("./one_hot"),p=e("./operation"),c=e("./transpose");function d(e,t,r){let n=(0,a.convertToTensor)(e,"labels","confusionMatrix"),s=(0,a.convertToTensor)(t,"predictions","confusionMatrix");o.assert(null==r||r>0&&Number.isInteger(r),()=>`If provided, numClasses must be a positive integer, but got ${r}`),o.assert(1===n.rank,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),o.assert(1===s.rank,()=>`Expected the rank of predictions to be 1, but got ${s.rank}`),o.assert(n.shape[0]===s.shape[0],()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${s.shape[0]}. Labels and predictions should have the same number of elements.`),o.assert(r>0&&Number.isInteger(r),()=>`numClasses is required to be a positive integer, but got ${r}`);let p=(0,u.oneHot)((0,l.cast)(n,"int32"),r),d=(0,u.oneHot)((0,l.cast)(s,"int32"),r),f=(0,c.transpose)(p),m=(0,i.matMul)(f,d);return(0,l.cast)(m,"int32")}let f=(0,p.op)({confusionMatrix_:d})},{"../tensor_util_env":"5isXB","../util":"icflD","./cast":"juFUN","./mat_mul":"hHb0J","./one_hot":"iJ8nQ","./operation":"2me4m","./transpose":"dg4Sa","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3mbL0":[function(e,t,r,n){let s;var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"fromPixelsAsync",()=>x),a.export(r,"toPixels",()=>y),a.export(r,"draw",()=>b),a.export(r,"fromPixels",()=>_);var o=e("../engine"),l=e("../environment"),i=e("../kernel_names"),u=e("../kernel_registry"),p=e("../tensor"),c=e("../tensor_util_env"),d=e("./cast"),f=e("./operation"),m=e("./tensor3d");let h=!1;function g(e,t=3){let r,n;if(t>4)throw Error("Cannot construct Tensor with more than 4 channels from pixels.");if(null==e)throw Error("pixels passed to tf.browser.fromPixels() can not be null");let a=!1,l=!1,p=!1,c=!1,d=!1,f=!1;if(e.data instanceof Uint8Array)a=!0;else if("undefined"!=typeof ImageData&&e instanceof ImageData)l=!0;else if("undefined"!=typeof HTMLVideoElement&&e instanceof HTMLVideoElement)p=!0;else if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement)c=!0;else if(null!=e.getContext)d=!0;else if("undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap)f=!0;else throw Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);if(null!=(0,u.getKernel)(i.FromPixels,o.ENGINE.backendName))return o.ENGINE.runKernel(i.FromPixels,{pixels:e},{numChannels:t});let[h,x]=p?[e.videoWidth,e.videoHeight]:[e.width,e.height];if(d)r=e.getContext("2d").getImageData(0,0,h,x).data;else if(l||a)r=e.data;else if(c||p||f){if(null==s)if("undefined"==typeof document)if("undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof OffscreenCanvasRenderingContext2D)s=new OffscreenCanvas(1,1).getContext("2d");else throw Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else s=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});s.canvas.width=h,s.canvas.height=x,s.drawImage(e,0,0,h,x),r=s.getImageData(0,0,h,x).data}if(4===t)n=new Int32Array(r);else{let e=h*x;n=new Int32Array(e*t);for(let s=0;s4||2===t)throw Error(`toPixels only supports depth of size 1, 3 or 4 but got ${t}`);if("float32"!==e.dtype&&"int32"!==e.dtype)throw Error(`Unsupported type for toPixels: ${e.dtype}. Please use float32 or int32 tensors.`)}async function y(e,t){let r=(0,c.convertToTensor)(e,"img","toPixels");if(!(e instanceof p.Tensor)){let e=r;r=(0,d.cast)(e,"int32"),e.dispose()}v(r);let[n,s]=r.shape.slice(0,2),a=2===r.rank?1:r.shape[2],l=await r.data(),f="float32"===r.dtype?255:1,m=new Uint8ClampedArray(s*n*4);for(let e=0;e1)throw Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${s}.`)}else if("int32"===r.dtype&&(s<0||s>255))throw Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${s}.`);1===a?(t[0]=s*f,t[1]=s*f,t[2]=s*f):t[n]=s*f}let n=4*e;m[n+0]=Math.round(t[0]),m[n+1]=Math.round(t[1]),m[n+2]=Math.round(t[2]),m[n+3]=Math.round(t[3])}if(null!=t){h||null!=(0,u.getKernel)(i.Draw,o.ENGINE.backendName)&&(console.warn("tf.browser.toPixels is not efficient to draw tensor on canvas. Please try tf.browser.draw instead."),h=!0),t.width=s,t.height=n;let e=t.getContext("2d"),r=new ImageData(m,s,n);e.putImageData(r,0,0)}return r!==e&&r.dispose(),m}function b(e,t,r){let n=(0,c.convertToTensor)(e,"img","draw");if(!(e instanceof p.Tensor)){let e=n;n=(0,d.cast)(e,"int32"),e.dispose()}v(n);var s=null==r?void 0:r.imageOptions;let a=(null==s?void 0:s.alpha)||1;if(a>1||a<0)throw Error(`Alpha value ${a} is suppoed to be in range [0 - 1].`);let l={image:n};o.ENGINE.runKernel(i.Draw,l,{canvas:t,options:r})}let _=(0,f.op)({fromPixels_:g})},{"../engine":"c6qwc","../environment":"h8BWL","../kernel_names":"349aa","../kernel_registry":"11iA6","../tensor":"cfIkd","../tensor_util_env":"5isXB","./cast":"juFUN","./operation":"2me4m","./tensor3d":"3ETxr","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jBaQj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prepareAndValidate",()=>o);var a=e("../util");function o(e,t){let r=e.shape.length,n=t.shape.length;if(r<1)throw Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${r}.`);if(n<1)throw Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${n}.`);if("int32"!==t.dtype)throw Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[n-1]>r)throw Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[n-1]} vs. ${r}`);if(0===(0,a.sizeFromShape)(e.shape))throw Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);let s=t.shape,o=s[s.length-1],l=1;for(let e=0;ee/p),1].slice(0,o);return[u,l,p,c]}},{"../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cOVNx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"assertParamsValid",()=>o),s.export(r,"maskToAxes",()=>l),s.export(r,"computeOutShape",()=>i),s.export(r,"stridesWithElidedDims",()=>u),s.export(r,"getNormalizedAxes",()=>d),s.export(r,"startIndicesWithElidedDims",()=>f),s.export(r,"stopIndicesWithElidedDims",()=>m),s.export(r,"stridesForAxis",()=>h),s.export(r,"startForAxis",()=>g),s.export(r,"stopForAxis",()=>x),s.export(r,"isSliceContinous",()=>v),s.export(r,"computeFlatOffset",()=>y),s.export(r,"parseSliceParams",()=>b),s.export(r,"sliceInfo",()=>_);var a=e("../util");function o(e,t,r){let n=e.shape.length;a.assert(n===t.length,()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`),a.assert(n===r.length,()=>`Error in slice${n}D: Length of size ${r} must match the rank of the array (${n}).`);for(let s=0;s`Error in slice${n}D: begin[${s}] + size[${s}] (${t[s]+r[s]}) would overflow input.shape[${s}] (${e.shape[s]})`)}function l(e){let t=[],r=0;for(;e>0;)1&e&&t.push(r),e/=2,r++;return t}function i(e,t,r){let n=[];for(let s=0;s0){let i=t[0],p=r+1;c=f(o,i,p,n,e),d=m(l,i,p,s,e),v=u(a,i,p,e)}else for(let t=0;t-1)a[s]=0;else{var l,i,u;let o=(l=t,i=r,(u=s)<=l?u:u-(i-1)),p=n[o];e&1<-1)o[s]=Number.MAX_SAFE_INTEGER;else{var i,u,p;let a=(i=t,u=r,(p=s)<=i?p:p-(u-1)),l=n[a];e&1<0?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER);let u=n[s];return l<0&&(l+=u),l=a.clamp(0,l,u-1)}function x(e,t,r,n,s,o){let l=t[s],i=r[s]||1;(e&1<0?Number.MAX_SAFE_INTEGER:Number.MIN_SAFE_INTEGER);let u=n[s];return l<0&&(l+=u),l=i>0?a.clamp(0,l,u):a.clamp(-1,l,u-1)}function v(e,t,r){let n=r.length;for(let e=0;e1){n=e;break}for(let s=n+1;s0||r[s]!==e[s])return!1;return!0}function y(e,t){let r=e.length>0?e[e.length-1]:1;for(let n=0;n{a.assert(-1!==e,()=>"slice() does not support negative begin indexing.")}),s=(s=null==r?Array(o).fill(-1):"number"==typeof r?[r,...Array(o-1).fill(-1)]:r.lengtht>=0?t:(a.assert(-1===t,()=>`Negative size values should be exactly -1 but got ${t} for the slice() size at index ${r}.`),e.shape[r]-n[r])),[n,s]}function _(e,t,r,n,s,a,o,l,i){let u;if(null==n?(u=Array(t.length)).fill(1):u=n,null!=o&&(o&o-1)!=0)throw Error("Multiple ellipses in slice is not allowed.");let p=!1,c={dims:u.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:r.slice(),strides:u.slice(),beginMask:s,endMask:a,ellipsisMask:o,newAxisMask:l,shrinkAxisMask:i};for(let e=0;e0?0:-1,d.strides[t]>0?s:s-1];if(n&&d.strides[t]<=0)throw Error("only stride 1 allowed on non-range indexing.");v=v&&1===d.strides[t];let l=!!(d.beginMask&1<=s)throw Error(`slice index ${d.begin[t]} of dimension ${t} out of bounds.`)}else d.begin[t]=k(d.begin[t],0,d.strides[t],s,a,o),d.end[t]=k(d.end[t],1,d.strides[t],s,a,o);let e=1===d.strides[t]&&0===d.begin[t]&&d.end[t]===s;g=g&&e,x=x&&(0===t&&1===d.strides[t]||e)}else g=g&&1===d.strides[t]&&l,x=x&&(0===t&&1===d.strides[t]||l);let i=!1;if(d.beginValid&&d.endValid?(r=d.end[t]-d.begin[t],i=!0):n?(r=1,i=!0):l&&s>=0&&(r=d.strides[t]<0?-s:s,i=!0),i){let e;e=0===r||r<0!=d.strides[t]<0?0:Math.trunc(r/d.strides[t])+ +(r%d.strides[t]!=0),y.push(e)}else y.push(-1)}for(let e=0;e=0?b.push(y[t]):-2===t&&b.push(1)}return{finalShapeSparse:b.filter((e,t)=>-2!==d.finalShapeGatherIndices[t]),finalShape:b,isIdentity:g,sliceDim0:x,isSimpleSlice:v,begin:d.begin,end:d.end,strides:d.strides}}function k(e,t,r,n,s,a){if(s[t])return r>0?a[t]:a[t+1&1];{let t=e<0?n+e:e;return ta[1]?a[1]:t}}},{"../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2zsOw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"version",()=>a);let a="4.22.0"},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bxfJJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"OptimizerConstructors",()=>d);var a=e("./adadelta_optimizer"),o=e("./adagrad_optimizer"),l=e("./adam_optimizer"),i=e("./adamax_optimizer"),u=e("./momentum_optimizer"),p=e("./rmsprop_optimizer"),c=e("./sgd_optimizer");class d{static sgd(e){return new(0,c.SGDOptimizer)(e)}static momentum(e,t,r=!1){return new(0,u.MomentumOptimizer)(e,t,r)}static rmsprop(e,t=.9,r=0,n=null,s=!1){return new(0,p.RMSPropOptimizer)(e,t,r,n,s)}static adam(e=.001,t=.9,r=.999,n=null){return new(0,l.AdamOptimizer)(e,t,r,n)}static adadelta(e=.001,t=.95,r=null){return new(0,a.AdadeltaOptimizer)(e,t,r)}static adamax(e=.002,t=.9,r=.999,n=null,s=0){return new(0,i.AdamaxOptimizer)(e,t,r,n,s)}static adagrad(e,t=.1){return new(0,o.AdagradOptimizer)(e,t)}}},{"./adadelta_optimizer":"j1AeL","./adagrad_optimizer":"4w9Rg","./adam_optimizer":"f7FpJ","./adamax_optimizer":"aoq0y","./momentum_optimizer":"68FSY","./rmsprop_optimizer":"jahoj","./sgd_optimizer":"h6aU6","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6oEzQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"train",()=>a);let a=e("./optimizers/optimizer_constructors").OptimizerConstructors},{"./optimizers/optimizer_constructors":"bxfJJ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],k0MXA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nextFrame",()=>o);let a="undefined"!=typeof requestAnimationFrame?requestAnimationFrame:"undefined"!=typeof setImmediate?setImmediate:e=>e();function o(){return new Promise(e=>a(()=>e()))}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],f2wbu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"upcastType",()=>h.upcastType),s.export(r,"slice_util",()=>m),s.export(r,"segment_util",()=>C),s.export(r,"fromUint8ToStringArray",()=>E),s.export(r,"fromStringArrayToUint8",()=>F);var a=e("../util"),o=e("../ops/axis_util");s.exportAll(o,r);var l=e("../ops/broadcast_util");s.exportAll(l,r);var i=e("../ops/concat_util");s.exportAll(i,r);var u=e("../ops/conv_util");s.exportAll(u,r);var p=e("../ops/fused_util");s.exportAll(p,r);var c=e("../ops/fused_types");s.exportAll(c,r);var d=e("../ops/ragged_to_dense_util");s.exportAll(d,r);var f=e("../ops/reduce_util");s.exportAll(f,r);var m=e("../ops/slice_util"),h=e("../types"),g=e("../ops/rotate_util");s.exportAll(g,r);var x=e("../ops/array_ops_util");s.exportAll(x,r);var v=e("../ops/gather_nd_util");s.exportAll(v,r);var y=e("../ops/scatter_nd_util");s.exportAll(y,r);var b=e("../ops/selu_util");s.exportAll(b,r),s.exportAll(p,r);var _=e("../ops/erf_util");s.exportAll(_,r);var k=e("../log");s.exportAll(k,r);var j=e("../backends/complex_util");s.exportAll(j,r);var I=e("../backends/einsum_util");s.exportAll(I,r);var w=e("../ops/split_util");s.exportAll(w,r);var T=e("../ops/sparse/sparse_fill_empty_rows_util");s.exportAll(T,r);var N=e("../ops/sparse/sparse_reshape_util");s.exportAll(N,r);var S=e("../ops/sparse/sparse_segment_reduction_util");s.exportAll(S,r);var C=e("../ops/segment_util");function E(e){try{return e.map(e=>(0,a.decodeString)(e))}catch(e){throw Error(`Failed to decode encoded string bytes into utf-8, error: ${e}`)}}function F(e){return e.map(e=>(0,a.encodeString)(e))}},{"../util":"icflD","../ops/axis_util":"4dwwj","../ops/broadcast_util":"9OeEk","../ops/concat_util":"5nMQ1","../ops/conv_util":"1HzRR","../ops/fused_util":"lc1OW","../ops/fused_types":"16ukp","../ops/ragged_to_dense_util":"1BzL7","../ops/reduce_util":"8zSdd","../ops/slice_util":"cOVNx","../types":"huvyT","../ops/rotate_util":"lwhI9","../ops/array_ops_util":"fSc5y","../ops/gather_nd_util":"jBaQj","../ops/scatter_nd_util":"cr9mr","../ops/selu_util":"7vU7d","../ops/erf_util":"ad9vI","../log":"dvDGk","../backends/complex_util":"704kV","../backends/einsum_util":"1n2Lz","../ops/split_util":"gOFZ2","../ops/sparse/sparse_fill_empty_rows_util":"2aOE7","../ops/sparse/sparse_reshape_util":"hwT1V","../ops/sparse/sparse_segment_reduction_util":"iwNmo","../ops/segment_util":"aCsHG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5nMQ1":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"assertParamsConsistent",()=>o),s.export(r,"computeOutShape",()=>l);var a=e("../util");function o(e,t){let r=e[0].length;e.forEach((e,t)=>{a.assert(e.length===r,()=>`Error in concat${r}D: rank of tensors[${t}] must be the same as the rank of the rest (${r})`)}),a.assert(t>=0&&t`Error in concat${r}D: axis must be between 0 and ${r-1}.`);let n=e[0];e.forEach((e,s)=>{for(let o=0;o`Error in concat${r}D: Shape of tensors[${s}] (${e}) does not match the shape of the rest (${n}) along the non-concatenated axis ${s}.`)})}function l(e,t){let r=e[0].slice();for(let n=1;n=0)if(l>=0){if(l!==a)throw Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${s+e}] = ${a} but shape[${s+e}] = ${l}`)}else n[o]=a}return n}function i(e){let t={FIRST_DIM_SIZE:a.FIRST_DIM_SIZE,VALUE_ROWIDS:a.VALUE_ROWIDS,ROW_LENGTHS:a.ROW_LENGTHS,ROW_SPLITS:a.ROW_SPLITS,ROW_LIMITS:a.ROW_LIMITS,ROW_STARTS:a.ROW_STARTS},r=[];for(let n of e)if(n in t)r.push(t[n]);else break;return r}function u(e){return 0===e.length?0:e[0]===a.FIRST_DIM_SIZE?e.length-1:e.length}function p(e,t){if(null==e||null==t)return;let r=e.length,n=t.length;if(r>=n)throw Error(`defaultValue.shape=${e} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${r} must be less than ragged tensor input flatValues.rank = ${n})`);for(let s=0;s=0&&n>=0&&1!==r&&r!==n)throw Error(`defaultValue.shape=${e}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${s-e.length}] = ${r} but ragged tensor input.flatValues.shape[${s-e.length}] = ${n}`)}}o.defineInteropFlag(r),o.export(r,"RowPartitionType",()=>a),o.export(r,"combineRaggedTensorToTensorShapes",()=>l),o.export(r,"getRowPartitionTypesHelper",()=>i),o.export(r,"getRaggedRank",()=>u),o.export(r,"validateDefaultValueShape",()=>p),(s=a||(a={}))[s.FIRST_DIM_SIZE=0]="FIRST_DIM_SIZE",s[s.VALUE_ROWIDS=1]="VALUE_ROWIDS",s[s.ROW_LENGTHS=2]="ROW_LENGTHS",s[s.ROW_SPLITS=3]="ROW_SPLITS",s[s.ROW_LIMITS=4]="ROW_LIMITS",s[s.ROW_STARTS=5]="ROW_STARTS"},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8zSdd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"PARALLELIZE_THRESHOLD",()=>o),s.export(r,"computeOptimalWindowSize",()=>l);var a=e("../util");let o=30;function l(e){return e<=o?e:(0,a.nearestDivisor)(e,Math.floor(Math.sqrt(e)))}},{"../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lwhI9:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t,r){return[r*("number"==typeof e?e:e[0]),t*("number"==typeof e?e:e[1])]}s.defineInteropFlag(r),s.export(r,"getImageCenter",()=>a)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fSc5y:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t,r,n=!0){let s=[];if(n)(s=s.concat(t.slice(0))).push(e[0]/r),s=s.concat(e.slice(1));else{s=s.concat(e[0]);let r=t.length;for(let n=0;n=2*t+1||n%2==1?s.push(n):r.push(n);n.push(...r),n.push(0),n.push(...s)}return n}function l(e,t,r,n=!0){let s=[];n?s.push(e[0]/r):s.push(e[0]*r);for(let r=1;ra),s.export(r,"getPermuted",()=>o),s.export(r,"getReshapedPermuted",()=>l),s.export(r,"getSliceBeginCoords",()=>i),s.export(r,"getSliceSize",()=>u)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7vU7d":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SELU_SCALEALPHA",()=>a),s.export(r,"SELU_SCALE",()=>o);let a=1.7580993408473768,o=1.0507009873554805},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ad9vI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ERF_P",()=>a),s.export(r,"ERF_A1",()=>o),s.export(r,"ERF_A2",()=>l),s.export(r,"ERF_A3",()=>i),s.export(r,"ERF_A4",()=>u),s.export(r,"ERF_A5",()=>p);let a=.3275911,o=.254829592,l=-.284496736,i=1.421413741,u=-1.453152027,p=1.061405429},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"704kV":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){if(e.length!==t.length)throw Error(`Cannot merge real and imag arrays of different lengths. real:${e.length}, imag: ${t.length}.`);let r=new Float32Array(2*e.length);for(let n=0;na),s.export(r,"splitRealAndImagArrays",()=>o),s.export(r,"complexWithEvenIndex",()=>l),s.export(r,"complexWithOddIndex",()=>i),s.export(r,"getComplexWithIndex",()=>u),s.export(r,"assignToTypedArray",()=>p),s.export(r,"exponents",()=>c),s.export(r,"exponent",()=>d)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1n2Lz":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"decodeEinsumEquation",()=>l),s.export(r,"getEinsumPermutation",()=>i),s.export(r,"checkEinsumDimSizes",()=>u),s.export(r,"getEinsumComputePath",()=>p),s.export(r,"isIdentityPermutation",()=>c);var a=e("../util_base");let o=/->/g;function l(e,t){let r=((e=e.replace(/\s/g,"")).length-e.replace(o,"").length)/2;if(r<1)throw Error("Equations without an arrow are not supported.");if(r>1)throw Error('Equation must contain exactly one arrow ("->").');let[n,s]=e.split("->");(0,a.assert)(-1===n.indexOf("..."),()=>'The ellipsis notation ("...") is not supported yet.');let l=n.split(","),i=l.length;if(t!==i)throw Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw Error("Support for more than 2 input tensors is not implemented yet.");let u=[];for(let e=0;e-1!==e.indexOf(t)))throw Error(`Output subscripts contain the label ${t} not present in the input subscripts.`);-1===u.indexOf(t)&&u.push(t)}for(let e=0;e-1!==e),expandDims:n}}function u(e,t,r){let n=Array(e);for(let e=0;e`Expected dimension ${n[t[e][r]]} at axis ${r} of input shaped ${JSON.stringify(s)}, but got dimension ${s[r]}`)}}function p(e,t){let r=[],n=0;0===e.length&&e.push(-1),n=e.length+1;for(let e=0;ee===t)}},{"../util_base":"bNQH0","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gOFZ2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prepareSplitSize",()=>o);var a=e("../util");function o(e,t,r=0){let n=[];if("number"==typeof t)(0,a.assert)(e.shape[r]%t==0,()=>"Number of splits must evenly divide the axis."),n=Array(t).fill(e.shape[r]/t);else{let s=t.reduce((e,t)=>(-1===t&&(e+=1),e),0);(0,a.assert)(s<=1,()=>"There should be only one negative value in split array.");let o=t.indexOf(-1);if(-1!==o){let n=t.reduce((e,t)=>t>0?e+t:e);t[o]=e.shape[r]-n}(0,a.assert)(e.shape[r]===t.reduce((e,t)=>e+t),()=>"The sum of sizes must match the size of the axis dimension."),n=t}return n}},{"../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2aOE7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){return`Received SparseTensor with denseShape[0] = 0 but + indices.shape[0] = ${e}`}function o(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function l(e,t,r){return`indices(${e}, 0) is invalid: ${t} >= ${r}`}s.defineInteropFlag(r),s.export(r,"getSparseFillEmptyRowsIndicesDenseShapeMismatch",()=>a),s.export(r,"getSparseFillEmptyRowsNegativeIndexErrorMessage",()=>o),s.export(r,"getSparseFillEmptyRowsOutOfRangeIndexErrorMessage",()=>l)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hwT1V:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getSparseReshapeMultipleNegativeOneOutputDimErrorMessage",()=>o),s.export(r,"getSparseReshapeNegativeOutputDimErrorMessage",()=>l),s.export(r,"getSparseReshapeEmptyTensorZeroOutputDimErrorMessage",()=>i),s.export(r,"getSparseReshapeInputOutputMultipleErrorMessage",()=>u),s.export(r,"getSparseReshapeInputOutputMismatchErrorMessage",()=>p);var a=e("../../util");function o(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function l(e,t){return`size ${e} must be non-negative, not ${t}`}function i(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function u(e,t){let r=(0,a.sizeFromShape)(e),n=(0,a.sizeFromShape)(t);return`Input to reshape is a SparseTensor with ${r} + dense values, but the requested shape requires a multiple of ${n}. inputShape=${e} outputShape= ${t}`}function p(e,t){let r=(0,a.sizeFromShape)(e),n=(0,a.sizeFromShape)(t);return`Input to reshape is a tensor with ${r} dense values, but the requested shape has ${n}. inputShape=${e} outputShape=${t}`}},{"../../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iwNmo:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(){return"segment ids must be >= 0"}function o(){return"segment ids are not increasing"}function l(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function i(e,t,r){return`Bad: indices[${e}] == ${t} out of range [0, ${r})`}s.defineInteropFlag(r),s.export(r,"getSparseSegmentReductionNegativeSegmentIdsErrorMessage",()=>a),s.export(r,"getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage",()=>o),s.export(r,"getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage",()=>l),s.export(r,"getSparseSegmentReductionIndicesOutOfRangeErrorMessage",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aCsHG:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"segOpComputeOptimalWindowSize",()=>l),s.export(r,"computeOutShape",()=>i),s.export(r,"collectGatherOpShapeInfo",()=>u);var a=e("../util"),o=e("./reduce_util");function l(e,t){let r,n=!1;for(e<=o.PARALLELIZE_THRESHOLD?(r=e,n=!0):r=(0,a.nearestDivisor)(e,Math.floor(Math.sqrt(e)));!n;)r>t||r===e?n=!0:r=(0,a.nearestDivisor)(e,r+1);return r}function i(e,t,r){let n=[],s=e.length;for(let a=0;as))throw Error(`Expect batchDims in the range of [-${s}, ${s}], but got ${n}`);if(n<0&&(n+=s),n>a)throw Error(`batchDims (${n}) must be less than rank(x) ( + ${a}).`);if(ra.nonMaxSuppressionV3Impl),s.export(r,"nonMaxSuppressionV4Impl",()=>a.nonMaxSuppressionV4Impl),s.export(r,"nonMaxSuppressionV5Impl",()=>a.nonMaxSuppressionV5Impl),s.export(r,"whereImpl",()=>o.whereImpl);var a=e("./non_max_suppression_impl"),o=e("./where_impl")},{"./non_max_suppression_impl":"5qKy1","./where_impl":"5EDW6","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],c8bRp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r);var a=e("./base");s.exportAll(a,r),e("./register_all_kernels")},{"./base":"3S2rH","./register_all_kernels":"hyRXv","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3S2rH":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"version_webgl",()=>l.version),s.export(r,"webgl",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./backend_webgl"),l=e("./version"),i=e("./webgl");s.exportAll(i,r),a.device_util.isBrowser()&&(0,a.registerBackend)("webgl",()=>new(0,o.MathBackendWebGL),2);let u={forceHalfFloat:i.forceHalfFloat}},{"@tensorflow/tfjs-core":"biUij","./backend_webgl":"b3oid","./version":"lkdID","./webgl":"8EsbE","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],b3oid:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EPSILON_FLOAT32",()=>w),s.export(r,"EPSILON_FLOAT16",()=>T),s.export(r,"getBinaryCache",()=>S),s.export(r,"MathBackendWebGL",()=>E),e("./flags_webgl");var a=e("@tensorflow/tfjs-core"),o=e("./canvas_util"),l=e("./decode_matrix_gpu"),i=e("./decode_matrix_packed_gpu"),u=e("./encode_float_gpu"),p=e("./encode_float_packed_gpu"),c=e("./encode_matrix_gpu"),d=e("./encode_matrix_packed_gpu"),f=e("./gpgpu_context"),m=e("./gpgpu_math"),h=e("./kernel_utils/shared"),g=e("./pack_gpu"),x=e("./reshape_packed_gpu"),v=e("./tex_util"),y=e("./texture_manager"),b=e("./unaryop_gpu"),_=e("./unaryop_packed_gpu"),k=e("./unpack_gpu"),j=e("./webgl_util");let I=a.kernel_impls.whereImpl,w=1e-7,T=1e-4,N={};function S(e){return e in N||(N[e]={}),N[e]}let C=(0,a.env)().getNumber("CPU_HANDOFF_SIZE_THRESHOLD");class E extends a.KernelBackend{nextDataId(){return E.nextDataId++}constructor(e){let t;if(super(),this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.pendingDeletes=0,this.disposed=!1,!(0,a.env)().getBool("HAS_WEBGL"))throw Error("WebGL is not supported on this device");if(null!=e){if(e instanceof f.GPGPUContext)t=e;else{let r=(0,o.getWebGLContext)((0,a.env)().getNumber("WEBGL_VERSION"),e);t=new(0,f.GPGPUContext)(r)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let e=(0,o.getWebGLContext)((0,a.env)().getNumber("WEBGL_VERSION"));t=new(0,f.GPGPUContext)(e),this.binaryCache=S((0,a.env)().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=t,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new(0,y.TextureManager)(this.gpgpu),this.numMBBeforeWarning=null==(0,a.env)().global.screen?1024:(0,a.env)().global.screen.height*(0,a.env)().global.screen.width*window.devicePixelRatio*600/1024/1024,this.texData=new(0,a.DataStorage)(this,(0,a.engine)())}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(e,t,r,n,s,a){let o=this.makeTensorInfo(t,r),l=this.texData.get(o.dataId);l.isPacked=!1,l.texture={texture:e,texShape:[n,s]},l.texShape=[n,s];let i=j.getShapeAs3D(t),u=new(0,c.EncodeMatrixProgram)(i,!1,a),p=this.runWebGLProgram(u,[o],r,[[n,s]]);return p.shape=t,l.texture=null,this.disposeIntermediateTensorInfo(o),p.dataId}write(e,t,r){if(((0,a.env)().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||(0,a.env)().getBool("DEBUG"))&&this.checkNumericalProblems(e),"complex64"===r&&null!=e)throw Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let n={id:this.nextDataId()};return this.texData.set(n,{shape:t,dtype:r,values:e,usage:v.TextureUsage.UPLOAD,refCount:1}),n}refCount(e){return this.texData.has(e)?this.texData.get(e).refCount:0}incRef(e){let t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.refCount--}}move(e,t,r,n,s){if((0,a.env)().getBool("DEBUG")&&this.checkNumericalProblems(t),"complex64"===n)throw Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:r,dtype:n,values:t,usage:v.TextureUsage.UPLOAD,refCount:s})}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}readSync(e){let t,r,{values:n,dtype:s,complexTensorInfos:o,slice:l,shape:i,isPacked:u}=this.texData.get(e);if(null!=l){let t;t=u?new(0,_.UnaryOpPackedProgram)(i,b.CLONE):new(0,b.UnaryOpProgram)(i,b.CLONE);let r=this.runWebGLProgram(t,[{dataId:e,shape:i,dtype:s}],s),n=this.readSync(r.dataId);return this.disposeIntermediateTensorInfo(r),n}if(null!=n)return this.convertAndCacheOnCPU(e);if("string"===s)return n;let p=null!=this.activeTimers;if(p&&(t=a.util.now()),"complex64"===s){let e=this.readSync(o.real.dataId),t=this.readSync(o.imag.dataId);r=a.backend_util.mergeRealAndImagArrays(e,t)}else r=this.getValuesFromTexture(e);return p&&(this.downloadWaitMs+=a.util.now()-t),this.convertAndCacheOnCPU(e,r)}async read(e){let t,r;if(this.pendingRead.has(e)){let t=this.pendingRead.get(e);return new Promise(e=>t.push(e))}let{values:n,shape:s,slice:o,dtype:l,complexTensorInfos:i,isPacked:u}=this.texData.get(e);if(null!=o){let t;t=u?new(0,_.UnaryOpPackedProgram)(s,b.CLONE):new(0,b.UnaryOpProgram)(s,b.CLONE);let r=this.runWebGLProgram(t,[{dataId:e,shape:s,dtype:l}],l),n=this.read(r.dataId);return this.disposeIntermediateTensorInfo(r),n}if(null!=n)return this.convertAndCacheOnCPU(e);if((0,a.env)().getBool("DEBUG")&&!(0,a.env)().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&2===(0,a.env)().getNumber("WEBGL_VERSION"))throw Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let p=null;if("complex64"!==l&&(0,a.env)().get("WEBGL_BUFFER_SUPPORTED")){t=this.decode(e);let r=this.texData.get(t.dataId);p=this.gpgpu.createBufferFromTexture(r.texture.texture,...v.getDenseTexShape(s))}if(this.pendingRead.set(e,[]),"complex64"!==l&&await this.gpgpu.createAndWaitForFence(),"complex64"===l){let e=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),t=e[0],n=e[1];r=a.backend_util.mergeRealAndImagArrays(t,n)}else if(null==p)r=this.getValuesFromTexture(e);else{let e=a.util.sizeFromShape(s);r=this.gpgpu.downloadFloat32MatrixFromBuffer(p,e)}if(null!=t&&this.disposeIntermediateTensorInfo(t),null!=p){let e=this.gpgpu.gl;j.callAndCheck(e,()=>e.deleteBuffer(p))}let c=this.convertAndCacheOnCPU(e,r),d=this.pendingRead.get(e);return this.pendingRead.delete(e),d.forEach(e=>e(c)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&(0,a.engine)().removeDataId(e,this),this.pendingDeletes--),c}readToGPU(e,t={}){let{values:r,shape:n,slice:s,dtype:o,isPacked:l,texture:i}=this.texData.get(e);if("complex64"===o)throw Error("Does not support reading texture for complex64 dtype.");if(null!=s){let r;r=l?new(0,_.UnaryOpPackedProgram)(n,b.CLONE):new(0,b.UnaryOpProgram)(n,b.CLONE);let s=this.runWebGLProgram(r,[{dataId:e,shape:n,dtype:o}],o),a=this.readToGPU(s,t);return this.disposeIntermediateTensorInfo(s),a}if(null==i)if(null!=r)throw Error("Data is not on GPU but on CPU.");else throw Error("There is no data on GPU or CPU.");let u=this.decode(e,t.customTexShape);return Object.assign({tensorRef:(0,a.engine)().makeTensorFromTensorInfo(u)},this.texData.get(u.dataId).texture)}bufferSync(e){let t=this.readSync(e.dataId);if("string"===e.dtype)try{let r=t.map(e=>a.util.decodeString(e));return(0,a.buffer)(e.shape,e.dtype,r)}catch(e){throw Error("Failed to decode encoded string bytes into utf-8")}return(0,a.buffer)(e.shape,e.dtype,t)}checkNumericalProblems(e){if(null!=e)for(let t=0;t0}time(e){let t=this.activeTimers,r=[],n=!1;null==this.programTimersStack?(this.programTimersStack=r,n=!0):this.activeTimers.push(r),this.activeTimers=r,e();let s=a.util.flatten(this.activeTimers.map(e=>e.query)).filter(e=>null!=e),o=a.util.flatten(this.activeTimers.map(e=>e.name)).filter(e=>null!=e);this.activeTimers=t,n&&(this.programTimersStack=null);let l={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if((0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let e=await Promise.all(s);l.kernelMs=a.util.sum(e),l.getExtraProfileInfo=()=>e.map((e,t)=>({name:o[t],ms:e})).map(e=>`${e.name}: ${e.ms}`).join(", ")}else l.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,l})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:a.util.now(),endMs:null}}endTimer(e){return(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.endQuery():e.endMs=a.util.now(),e}async getQueryTime(e){return(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.waitForQueryAndGetTime(e):e.endMs-e.startMs}disposeData(e,t=!1){if(this.pendingDisposal.has(e))return!1;if(!this.texData.has(e))return!0;if(t?this.texData.get(e).refCount=0:this.texData.get(e).refCount--,!t&&this.texData.get(e).refCount>0)return!1;if(this.pendingRead.has(e))return this.pendingDisposal.add(e),this.pendingDeletes++,!1;this.releaseGPUData(e);let{complexTensorInfos:r}=this.texData.get(e);return null!=r&&(this.disposeData(r.real.dataId,t),this.disposeData(r.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){let{texture:t,dtype:r,texShape:n,usage:s,isPacked:a,slice:o}=this.texData.get(e),l=o&&o.origDataId||e,i=this.dataRefCount.get(l);i>1?this.dataRefCount.set(l,i-1):(this.dataRefCount.delete(l),null!=t&&(this.numBytesInGPU-=this.computeBytes(n,r),this.textureManager.releaseTexture(t,n,s,a)));let u=this.texData.get(e);u.texture=null,u.texShape=null,u.isPacked=!1,u.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture.texture}getDataInfo(e){return this.texData.get(e)}shouldExecuteOnCPU(e,t=C){return(0,a.env)().getBool("WEBGL_CPU_FORWARD")&&e.every(e=>null==this.texData.get(e.dataId).texture&&a.util.sizeFromShape(e.shape)0&&a.util.isString(r[0])){let s=r.map(e=>a.util.encodeString(e));n=this.write(s,e,t)}else n=this.write(r,e,t);return this.texData.get(n).usage=null,{dataId:n,shape:e,dtype:t}}makeOutput(e,t,r){return(0,a.engine)().makeTensorFromTensorInfo(this.makeTensorInfo(e,t,r),this)}unpackTensor(e){let t=new(0,k.UnpackProgram)(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new(0,g.PackProgram)(e.shape);return this.runWebGLProgram(t,[e],e.dtype,null,!0)}packedReshape(e,t){let r=[j.getBatchDim(e.shape),...j.getRowsCols(e.shape)],n={dtype:e.dtype,shape:r,dataId:e.dataId},s=[j.getBatchDim(t),...j.getRowsCols(t)],a=new(0,x.ReshapePackedProgram)(s,r),o=this.runWebGLProgram(a,[n],e.dtype,[r],!0);return{dataId:o.dataId,shape:t,dtype:o.dtype}}decode(e,t){let r,{isPacked:n,shape:s,dtype:o}=this.texData.get(e);if(null!=t){let e=a.util.sizeFromShape(s),r=t[0]*t[1]*4;a.util.assert(e<=r,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}let u=j.getShapeAs3D(s);r=n?new(0,i.DecodeMatrixPackedProgram)(u):new(0,l.DecodeMatrixProgram)(u);let p=[null!=t?t:v.getDenseTexShape(u)],c=this.runWebGLProgram(r,[{shape:u,dtype:o,dataId:e}],o,p,!0,t);return{dtype:o,shape:s,dataId:c.dataId}}runWebGLProgram(e,t,r,n,s=!1,o){let l,i=this.makeTensorInfo(e.outputShape,r),u=this.texData.get(i.dataId);if(e.packedOutput&&(u.isPacked=!0),e.outPackingScheme===v.PackingScheme.DENSE&&(u.texShape=(null!=o?o:v.getDenseTexShape(e.outputShape)).map(e=>2*e)),null!=e.outTexUsage&&(u.usage=e.outTexUsage),0===a.util.sizeFromShape(i.shape))return u.values=a.util.getTypedArrayFromDType(i.dtype,0),i;let p=[],c=t.map(t=>{if("complex64"===t.dtype)throw Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let r=this.texData.get(t.dataId);if(null==r.texture){if(!e.packedInputs&&a.util.sizeFromShape(t.shape)<=(0,a.env)().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:t.shape,texData:null,isUniform:!0,uniformValues:r.values};e.packedInputs&&(r.isPacked=!0,r.shape=t.shape)}if(this.uploadToGPU(t.dataId),!!r.isPacked!=!!e.packedInputs)t=r.isPacked?this.unpackTensor(t):this.packTensor(t),p.push(t),r=this.texData.get(t.dataId);else if(r.isPacked&&!j.isReshapeFree(r.shape,t.shape)){let e=t,n=t.shape;t.shape=r.shape,t=this.packedReshape(t,n),p.push(t),r=this.texData.get(t.dataId),e.shape=n}return{shape:t.shape,texData:r,isUniform:!1}});this.uploadToGPU(i.dataId);let d={shape:i.shape,texData:u,isUniform:!1},f=m.makeShaderKey(e,c,d),h=this.getAndSaveBinary(f,()=>m.compileProgram(this.gpgpu,e,c,d)),g=null!=this.activeTimers;g&&(l=this.startTimer()),(0,a.env)().get("ENGINE_COMPILE_ONLY")||m.runProgram(this.gpgpu,h,c,d,n),p.forEach(e=>this.disposeIntermediateTensorInfo(e)),g&&(l=this.endTimer(l),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(l)}));let x=(0,a.env)().getNumber("WEBGL_FLUSH_THRESHOLD");if(x>0){let e=a.util.now();e-this.lastGlFlushTime>x&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=e)}if(!(0,a.env)().getBool("WEBGL_LAZILY_UNPACK")&&u.isPacked&&!1===s){let e=this.unpackTensor(i);return this.disposeIntermediateTensorInfo(i),e}return i}compileAndRun(e,t,r,n,s=!1){return r=r||t[0].dtype,this.runWebGLProgram(e,t,r,n,s)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||((0,a.env)().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),null!=this.canvas&&"undefined"!=typeof HTMLCanvasElement&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return null==this.floatPrecisionValue&&(this.floatPrecisionValue=(0,a.tidy)(()=>{if(!(0,a.env)().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=(0,a.env)().getBool("DEBUG");(0,a.env)().set("DEBUG",!1);let t=this.abs((0,a.scalar)(1e-8)).dataSync()[0];if((0,a.env)().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return 32===this.floatPrecision()?w:T}uploadToGPU(e){let t,r=this.texData.get(e),{shape:n,dtype:s,values:o,texture:l,usage:i,isPacked:u}=r;if(null!=l)return;let p=null!=this.activeTimers;p&&(t=a.util.now());let f=r.texShape;if(null==f&&(r.texShape=f=j.getTextureShapeFromLogicalShape(n,u)),null!=o){let e,l=j.getShapeAs3D(n),i=f[1],m=f[0],h=o instanceof Uint8Array||o instanceof Uint8ClampedArray;(u||!h)&&([i,m]=v.getPackedMatrixTextureShapeWidthHeight(f[0],f[1])),e=u?new(0,d.EncodeMatrixPackedProgram)(l,h):new(0,c.EncodeMatrixProgram)(l,h);let g=h?[m,i]:f,x=this.makeTensorInfo(g,s),y=this.texData.get(x.dataId);h?y.usage=v.TextureUsage.PIXELS:y.usage=v.TextureUsage.UPLOAD,y.texShape=g,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(x.dataId),i,m,o);let b=[[m,i]],_=this.runWebGLProgram(e,[x],s,b,!0),k=this.texData.get(_.dataId);r.texShape=k.texShape,r.isPacked=k.isPacked,r.usage=k.usage,(0,a.env)().get("ENGINE_COMPILE_ONLY")?this.disposeData(_.dataId):(r.texture=k.texture,r.values=null,this.texData.delete(_.dataId)),this.disposeIntermediateTensorInfo(x),p&&(this.uploadWaitMs+=a.util.now()-t)}else r.texture=this.acquireTexture(f,i,s,u)}convertAndCacheOnCPU(e,t){let r=this.texData.get(e),{dtype:n}=r;return null!=t&&(r.values=function(e,t){if("float32"===t||"complex64"===t)return e;if("int32"===t||"bool"===t){let r="int32"===t?new Int32Array(e.length):new Uint8Array(e.length);for(let t=0;t1048576*this.numMBBeforeWarning){let e=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${e} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,n)}computeBytes(e,t){return e[0]*e[1]*a.util.bytesPerElement(t)}checkCompileCompletion(){for(let[,e]of Object.entries(this.binaryCache))this.checkCompletion_(e)}async checkCompileCompletionAsync(){let e=[];if(this.gpgpu.parallelCompilationExtension){for(let[,t]of Object.entries(this.binaryCache))e.push(this.checkCompletionAsync_(t));return Promise.all(e)}for(let[,t]of Object.entries(this.binaryCache)){let r=new Promise(e=>{try{this.checkCompletion_(t),e(!0)}catch(e){throw e}});e.push(r)}return Promise.all(e)}async checkCompletionAsync_(e){return this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(e):(await (0,a.nextFrame)(),this.checkCompletionAsync_(e))}checkCompletion_(e){if(!1===this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.gl.LINK_STATUS)){if(console.log(this.gpgpu.gl.getProgramInfoLog(e.webGLProgram)),!1===this.gpgpu.gl.getShaderParameter(e.fragmentShader,this.gpgpu.gl.COMPILE_STATUS))throw j.logShaderSourceAndInfoLog(e.source,this.gpgpu.gl.getShaderInfoLog(e.fragmentShader)),Error("Failed to compile fragment shader.");throw Error("Failed to link vertex and fragment shaders.")}return!0}getUniformLocations(){for(let e of Object.values(this.binaryCache)){this.gpgpu.buildVao(e.webGLProgram);let{variablesLocations:t,customUniformLocations:r,infLoc:n,nanLoc:s,outShapeLocation:a,outShapeStridesLocation:o,outTexShapeLocation:l}=(0,m.getUniformLocations)(this.gpgpu,e.program,e.webGLProgram);e.variablesLocations=t,e.customUniformLocations=r,e.infLoc=n,e.nanLoc=s,e.outShapeLocation=a,e.outShapeStridesLocation=o,e.outTexShapeLocation=l}}createTensorFromGPUData(e,t,r){e.channels=e.channels||"RGBA";let{texture:n,height:s,width:o,channels:l}=e,i=(0,a.engine)().backend;if(!i.gpgpu.gl.isTexture(n))throw Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");let u=i.writeTexture(n,t,r,s,o,l);return(0,a.engine)().makeTensorFromDataId(u,t,r,i)}}E.nextDataId=0},{"./flags_webgl":"eO9aq","@tensorflow/tfjs-core":"biUij","./canvas_util":"6lv4k","./decode_matrix_gpu":"e4ZEH","./decode_matrix_packed_gpu":"7VRvZ","./encode_float_gpu":"jcxxr","./encode_float_packed_gpu":"9TFBs","./encode_matrix_gpu":"7GwLQ","./encode_matrix_packed_gpu":"4Obdq","./gpgpu_context":"eTBiK","./gpgpu_math":"1F9Jp","./kernel_utils/shared":"lQim5","./pack_gpu":"eoAxQ","./reshape_packed_gpu":"72Xgh","./tex_util":"jmYC7","./texture_manager":"jLwum","./unaryop_gpu":"LccPS","./unaryop_packed_gpu":"2qT48","./unpack_gpu":"jD6NV","./webgl_util":"8Bhtc","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eO9aq:[function(e,t,r,n){var s=e("@tensorflow/tfjs-core"),a=e("./webgl_util");let o=(0,s.env)();o.registerFlag("HAS_WEBGL",()=>o.getNumber("WEBGL_VERSION")>0),o.registerFlag("WEBGL_VERSION",()=>(0,a.isWebGLVersionEnabled)(2)?2:+!!(0,a.isWebGLVersionEnabled)(1)),o.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1),o.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>2===o.get("WEBGL_VERSION")),o.registerFlag("WEBGL_CPU_FORWARD",()=>!0),o.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1),o.registerFlag("WEBGL_PACK",()=>o.getBool("HAS_WEBGL")),o.registerFlag("WEBGL_PACK_NORMALIZATION",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_CLIP",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_REDUCE",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_LAZILY_UNPACK",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_CONV_IM2COL",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_CONV2DTRANSPOSE",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>(0,a.getWebGLMaxTextureSize)(o.getNumber("WEBGL_VERSION"))),o.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>(0,a.getMaxTexturesInShader)(o.getNumber("WEBGL_VERSION"))),o.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=o.getNumber("WEBGL_VERSION");return 0===e?0:(0,a.getWebGLDisjointQueryTimerVersion)(e)}),o.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>o.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!s.device_util.isMobile()),o.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>(0,a.isCapableOfRenderingToFloatTexture)(o.getNumber("WEBGL_VERSION"))),o.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>!o.getBool("WEBGL_FORCE_F16_TEXTURES")&&o.getBool("WEBGL_RENDER_FLOAT32_CAPABLE")),o.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>(0,a.isDownloadFloatTextureEnabled)(o.getNumber("WEBGL_VERSION"))),o.registerFlag("WEBGL_FENCE_API_ENABLED",()=>(0,a.isWebGLFenceEnabled)(o.getNumber("WEBGL_VERSION"))),o.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>4*!!o.getBool("WEBGL_RENDER_FLOAT32_ENABLED")),o.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if("number"!=typeof e)throw Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be a number but got ${e}.`);if(e<0&&-1!==e)throw Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)}),o.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>s.device_util.isMobile()?1:-1,e=>{if("number"!=typeof e)throw Error(`WEBGL_FLUSH_THRESHOLD must be a number but got ${e}.`);if(e<0&&-1!==e)throw Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${e}.`)}),o.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128),o.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1),o.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5),o.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128),o.registerFlag("WEBGL_EXP_CONV",()=>!1),o.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>o.getBool("IS_TEST")),o.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0),o.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1),o.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1),o.registerFlag("ENGINE_COMPILE_ONLY",()=>!1)},{"@tensorflow/tfjs-core":"biUij","./webgl_util":"8Bhtc"}],"8Bhtc":[function(e,t,r,n){let s,a;var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"callAndCheck",()=>p),o.export(r,"canBeRepresented",()=>c),o.export(r,"getWebGLErrorMessage",()=>d),o.export(r,"getExtensionOrThrow",()=>f),o.export(r,"createVertexShader",()=>m),o.export(r,"createFragmentShader",()=>h),o.export(r,"logShaderSourceAndInfoLog",()=>x),o.export(r,"createProgram",()=>v),o.export(r,"linkProgram",()=>y),o.export(r,"validateProgram",()=>b),o.export(r,"createStaticVertexBuffer",()=>_),o.export(r,"createStaticIndexBuffer",()=>k),o.export(r,"getNumChannels",()=>j),o.export(r,"createTexture",()=>I),o.export(r,"validateTextureSize",()=>w),o.export(r,"createFramebuffer",()=>T),o.export(r,"bindVertexBufferToProgramAttribute",()=>N),o.export(r,"bindTextureUnit",()=>S),o.export(r,"unbindTextureUnit",()=>C),o.export(r,"getProgramUniformLocationOrThrow",()=>E),o.export(r,"getProgramUniformLocation",()=>F),o.export(r,"bindTextureToProgramUniformSampler",()=>A),o.export(r,"bindCanvasToFramebuffer",()=>R),o.export(r,"bindColorTextureToFramebuffer",()=>P),o.export(r,"unbindColorTextureFromFramebuffer",()=>D),o.export(r,"validateFramebuffer",()=>$),o.export(r,"getFramebufferErrorMessage",()=>O),o.export(r,"getBatchDim",()=>B),o.export(r,"getRowsCols",()=>L),o.export(r,"getShapeAs3D",()=>V),o.export(r,"getTextureShapeFromLogicalShape",()=>U),o.export(r,"isReshapeFree",()=>G),o.export(r,"getWebGLMaxTextureSize",()=>z),o.export(r,"resetMaxTextureSize",()=>Q),o.export(r,"resetMaxTexturesInShader",()=>q),o.export(r,"getMaxTexturesInShader",()=>H),o.export(r,"getWebGLDisjointQueryTimerVersion",()=>K),o.export(r,"hasExtension",()=>X),o.export(r,"isWebGLVersionEnabled",()=>Y),o.export(r,"isCapableOfRenderingToFloatTexture",()=>J),o.export(r,"isDownloadFloatTextureEnabled",()=>Z),o.export(r,"isWebGLFenceEnabled",()=>et),o.export(r,"assertNotComplex",()=>er);var l=e("@tensorflow/tfjs-core"),i=e("./canvas_util"),u=e("./tex_util");function p(e,t){let r=t();return(0,l.env)().getBool("DEBUG")&&function(e){let t=e.getError();if(t!==e.NO_ERROR)throw Error("WebGL Error: "+d(e,t))}(e),r}function c(e){return!!((0,l.env)().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||0===e||596e-10Math.abs(e))}function d(e,t){switch(t){case e.NO_ERROR:return"NO_ERROR";case e.INVALID_ENUM:return"INVALID_ENUM";case e.INVALID_VALUE:return"INVALID_VALUE";case e.INVALID_OPERATION:return"INVALID_OPERATION";case e.INVALID_FRAMEBUFFER_OPERATION:return"INVALID_FRAMEBUFFER_OPERATION";case e.OUT_OF_MEMORY:return"OUT_OF_MEMORY";case e.CONTEXT_LOST_WEBGL:return"CONTEXT_LOST_WEBGL";default:return`Unknown error code ${t}`}}function f(e,t){return M(e,()=>e.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function m(e,t){let r=M(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(p(e,()=>e.shaderSource(r,t)),p(e,()=>e.compileShader(r)),!1===e.getShaderParameter(r,e.COMPILE_STATUS))throw console.log(e.getShaderInfoLog(r)),Error("Failed to compile vertex shader.");return r}function h(e,t){let r=M(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(p(e,()=>e.shaderSource(r,t)),p(e,()=>e.compileShader(r)),(0,l.env)().get("ENGINE_COMPILE_ONLY"))return r;if(!1===e.getShaderParameter(r,e.COMPILE_STATUS))throw x(t,e.getShaderInfoLog(r)),Error("Failed to compile fragment shader.");return r}let g=/ERROR: [0-9]+:([0-9]+):/g;function x(e,t){let r=g.exec(t);if(null==r){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}let n=+r[1],s=e.split("\n"),a=s.length.toString().length+2,o=s.map((e,t)=>l.util.rightPad((t+1).toString(),a)+e),i=0;for(let e=0;ee.createProgram(),"Unable to create WebGLProgram.")}function y(e,t){if(p(e,()=>e.linkProgram(t)),!(0,l.env)().get("ENGINE_COMPILE_ONLY")&&!1===e.getProgramParameter(t,e.LINK_STATUS))throw console.log(e.getProgramInfoLog(t)),Error("Failed to link vertex and fragment shaders.")}function b(e,t){if(p(e,()=>e.validateProgram(t)),!1===e.getProgramParameter(t,e.VALIDATE_STATUS))throw console.log(e.getProgramInfoLog(t)),Error("Shader program validation failed.")}function _(e,t){let r=M(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return p(e,()=>e.bindBuffer(e.ARRAY_BUFFER,r)),p(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),r}function k(e,t){let r=M(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return p(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,r)),p(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),r}function j(){return 2===(0,l.env)().getNumber("WEBGL_VERSION")?1:4}function I(e){return M(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function w(e,t){let r=(0,l.env)().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0)throw Error(`Requested texture size [${e}x${t}] is invalid.`);if(e>r||t>r)throw Error(`Requested texture size [${e}x${t}] greater than WebGL maximum on this browser / GPU [${r}x${r}].`)}function T(e){return M(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function N(e,t,r,n,s,a,o){let l=e.getAttribLocation(t,r);return -1!==l&&(p(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),p(e,()=>e.vertexAttribPointer(l,s,e.FLOAT,!1,a,o)),p(e,()=>e.enableVertexAttribArray(l)),!0)}function S(e,t,r){W(e,r),p(e,()=>e.activeTexture(e.TEXTURE0+r)),p(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function C(e,t){W(e,t),p(e,()=>e.activeTexture(e.TEXTURE0+t)),p(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function E(e,t,r){return M(e,()=>e.getUniformLocation(t,r),'uniform "'+r+'" not present in program.')}function F(e,t,r){return e.getUniformLocation(t,r)}function A(e,t,r,n){p(e,()=>S(e,t,n)),p(e,()=>e.uniform1i(r,n))}function R(e){p(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),p(e,()=>e.viewport(0,0,e.canvas.width,e.canvas.height)),p(e,()=>e.scissor(0,0,e.canvas.width,e.canvas.height))}function P(e,t,r){p(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,r)),p(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function D(e,t){p(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),p(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function $(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw Error("Error binding framebuffer: "+O(e,t))}function O(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case e.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${t}`}}function M(e,t,r){let n=p(e,()=>t());if(null==n)throw Error(r);return n}function W(e,t){let r=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,n=t+e.TEXTURE0;if(nr){let e=`[gl.TEXTURE0, gl.TEXTURE${r}]`;throw Error(`textureUnit must be in ${e}.`)}}function B(e,t=2){return l.util.sizeFromShape(e.slice(0,e.length-t))}function L(e){if(0===e.length)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function V(e){let t=[1,1,1];return 0!==e.length&&(1!==e.length||1!==e[0])&&(t=[B(e),...L(e)]),t}function U(e,t=!1){let r=(0,l.env)().getNumber("WEBGL_MAX_TEXTURE_SIZE"),n=(0,l.env)().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");n===1/0&&(0,l.env)().getBool("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE")&&(n=r/2),t&&(r*=2,n*=2,1===(e=e.map((t,r)=>r>=e.length-2?l.util.nearestLargerEven(e[r]):e[r])).length&&(e=[2,e[0]])),2!==e.length&&(e=l.util.squeezeShape(e).newShape);let s=l.util.sizeFromShape(e),a=null;e.length<=1&&s<=r?a=[1,s]:2===e.length&&e[0]<=r&&e[1]<=r?a=e:3===e.length&&e[0]*e[1]<=r&&e[2]<=r?a=[e[0]*e[1],e[2]]:3===e.length&&e[0]<=r&&e[1]*e[2]<=r?a=[e[0],e[1]*e[2]]:4===e.length&&e[0]*e[1]*e[2]<=r&&e[3]<=r?a=[e[0]*e[1]*e[2],e[3]]:4===e.length&&e[0]<=r&&e[1]*e[2]*e[3]<=r&&(a=[e[0],e[1]*e[2]*e[3]]);let o=null!=a&&Math.max(...a)>n&&Math.min(...a)<=(t?2:1)&&Math.min(...a)>0;if(null==a||o)if(t){let t=B(e),r=2,n=2;e.length&&([r,n]=L(e)),s=r/2*t*(n/2),a=l.util.sizeToSquarishShape(s).map(e=>2*e)}else a=l.util.sizeToSquarishShape(s);return a}function G(e,t){if(e=e.slice(-2),t=t.slice(-2),l.util.arraysEqual(e,t)||!e.length||!t.length||0===e[0]||0===e[1]||0===t[0]||0===t[1])return!0;if(e.length!==t.length){let r=e[e.length-1],n=t[t.length-1];if(r===n||r%2==0&&n%2==0&&(1===e[0]||1===t[0]))return!0}return e[1]===t[1]&&e[0]%2==0&&t[0]%2==0}function z(e){if(null==s){let t=(0,i.getWebGLContext)(e);s=t.getParameter(t.MAX_TEXTURE_SIZE)}return s}function Q(){s=null}function q(){a=null}function H(e){if(null==a){let t=(0,i.getWebGLContext)(e);a=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,a)}function K(e){let t;if(0===e)return 0;let r=(0,i.getWebGLContext)(e);return X(r,"EXT_disjoint_timer_query_webgl2")&&2===e?2:+!!X(r,"EXT_disjoint_timer_query")}function X(e,t){return null!=e.getExtension(t)}function Y(e){try{let t=(0,i.getWebGLContext)(e);if(null!=t)return!0}catch(e){console.log("Error when getting WebGL context: ",e)}return!1}function J(e){if(0===e)return!1;let t=(0,i.getWebGLContext)(e);if(1===e){if(!X(t,"OES_texture_float"))return!1}else if(!X(t,"EXT_color_buffer_float"))return!1;return ee(t)}function Z(e){if(0===e)return!1;let t=(0,i.getWebGLContext)(e);if(1===e){if(!X(t,"OES_texture_float")||!X(t,"WEBGL_color_buffer_float"))return!1}else{if(X(t,"EXT_color_buffer_float"))return ee(t);let e="EXT_color_buffer_half_float";if(X(t,e)){let s=t.getExtension(e);var r=t,n=s;let a=(0,u.getTextureConfig)(r,n),o=r.createTexture();r.bindTexture(r.TEXTURE_2D,o),r.texImage2D(r.TEXTURE_2D,0,a.internalFormatHalfFloat,1,1,0,a.textureFormatFloat,a.textureTypeHalfFloat,null);let l=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,l),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,o,0);let i=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(o),r.deleteFramebuffer(l),i}return!1}return ee(t)}function ee(e){let t=(0,u.getTextureConfig)(e),r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r),e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,1,1,0,t.textureFormatFloat,t.textureTypeFloat,null);let n=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,n),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0);let s=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(r),e.deleteFramebuffer(n),s}function et(e){return 2===e&&null!=(0,i.getWebGLContext)(e).fenceSync}function er(e,t){Array.isArray(e)||(e=[e]),e.forEach(e=>{null!=e&&l.util.assert("complex64"!==e.dtype,()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}},{"@tensorflow/tfjs-core":"biUij","./canvas_util":"6lv4k","./tex_util":"jmYC7","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6lv4k":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"clearWebGLContext",()=>i),s.export(r,"setWebGLContext",()=>u),s.export(r,"getWebGLContext",()=>function e(t,r){if(!(t in o)||null!=r){let e=function(e,t){if(1!==e&&2!==e)throw Error("Cannot get WebGL rendering context, WebGL is disabled.");let r=null==t?function(e){if(!(0,a.env)().getBool("IS_SAFARI")&&"undefined"!=typeof OffscreenCanvas&&2===e)return new OffscreenCanvas(300,150);if("undefined"!=typeof document)return document.createElement("canvas");throw Error("Cannot create a canvas in this context")}(e):t;return(r.addEventListener("webglcontextlost",t=>{t.preventDefault(),delete o[e]},!1),(0,a.env)().getBool("SOFTWARE_WEBGL_ENABLED")&&(l.failIfMajorPerformanceCaveat=!1),1===e)?r.getContext("webgl",l)||r.getContext("experimental-webgl",l):r.getContext("webgl2",l)}(t,r);if(null===e)return console.log("Could not get context for WebGL version",t),null;o[t]=e}let n=o[t];return null==n||n.isContextLost()?(delete o[t],e(t)):(n.disable(n.DEPTH_TEST),n.disable(n.STENCIL_TEST),n.disable(n.BLEND),n.disable(n.DITHER),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SAMPLE_COVERAGE),n.enable(n.SCISSOR_TEST),n.enable(n.CULL_FACE),n.cullFace(n.BACK),o[t])});var a=e("@tensorflow/tfjs-core");let o={},l={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function i(e){delete o[e]}function u(e,t){o[e]=t}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jmYC7:[function(e,t,r,n){var s,a,o,l,i,u,p=e("@parcel/transformer-js/src/esmodule-helpers.js");p.defineInteropFlag(r),p.export(r,"PackingScheme",()=>l),p.export(r,"TextureUsage",()=>i),p.export(r,"PhysicalTextureType",()=>u),p.export(r,"getUnpackedMatrixTextureShapeWidthHeight",()=>d),p.export(r,"getUnpackedArraySizeFromMatrixSize",()=>f),p.export(r,"getColorMatrixTextureShapeWidthHeight",()=>m),p.export(r,"getDenseTexShape",()=>h),p.export(r,"getMatrixSizeFromUnpackedArraySize",()=>g),p.export(r,"decodeMatrixFromUnpackedColorRGBAArray",()=>x),p.export(r,"getPackedMatrixTextureShapeWidthHeight",()=>v),p.export(r,"getPackedRGBAArraySizeFromMatrixShape",()=>y),p.export(r,"getTextureConfig",()=>b);var c=e("@tensorflow/tfjs-core");function d(e,t){return[t,e]}function f(e,t){return e*t}function m(e,t){return[4*t,e]}function h(e){let t=Math.ceil(c.util.sizeFromShape(e)/4);return c.util.sizeToSquarishShape(t)}function g(e,t){if(e%t!=0)throw Error(`unpackedSize (${e}) must be a multiple of ${t}`);return e/t}function x(e,t,r){let n=e.length*r/4;if(t.length= ${n}`);let s=0;for(let n=0;nu);var a=e("./glsl_version"),o=e("./gpgpu_math"),l=e("./shader_compiler_util"),i=e("./tex_util");class u{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=i.PackingScheme.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=(0,a.getGlslDifferences)();this.outputShape=e,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length),this.userCode=` + ivec3 outCoordsFromFlatIndex(int index) { + ${this.enableShapeUniforms?l.getOutputLogicalCoordinatesFromFlatIndexByUniform(["r","c","d"],e):l.getLogicalCoordinatesFromFlatIndex(["r","c","d"],e)} + return ivec3(r, c, d); + } + + void main() { + ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1])); + int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y); + + vec4 result = vec4(0.); + + for (int i=0; i<4; i++) { + int flatIndex = index + i; + ivec3 rc = outCoordsFromFlatIndex(flatIndex); + result[i] = getA(rc.x, rc.y, rc.z); + } + + ${t.output} = result; + } + `}}},{"./glsl_version":"9EOgg","./gpgpu_math":"1F9Jp","./shader_compiler_util":"cJiqQ","./tex_util":"jmYC7","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9EOgg":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getGlslDifferences",()=>o);var a=e("@tensorflow/tfjs-core");function o(){let e,t,r,n,s,o,l,i,u,p;return 2===(0,a.env)().getNumber("WEBGL_VERSION")?(e="#version 300 es",t="in",r="out",n="in",s="texture",o="outputColor",l="out vec4 outputColor;",i=(0,a.env)().getBool("WEBGL2_ISNAN_CUSTOM")?` + bool isnan_custom(float val) { + uint floatToUint = floatBitsToUint(val); + return (floatToUint & 0x7fffffffu) > 0x7f800000u; + } + + bvec4 isnan_custom(vec4 val) { + return bvec4(isnan_custom(val.x), + isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w)); + } + + #define isnan(value) isnan_custom(value) + `:"",u="",p=` + #define round(value) newRound(value) + int newRound(float value) { + return int(floor(value + 0.5)); + } + + ivec4 newRound(vec4 value) { + return ivec4(floor(value + vec4(0.5))); + } + `):(e="",t="attribute",r="varying",n="varying",s="texture2D",o="gl_FragColor",l="",i=` + #define isnan(value) isnan_custom(value) + bool isnan_custom(float val) { + return (val > 0. || val < 1. || val == 0.) ? false : true; + } + bvec4 isnan_custom(vec4 val) { + return bvec4(isnan(val.x), isnan(val.y), isnan(val.z), isnan(val.w)); + } + `,u=` + uniform float INFINITY; + + bool isinf(float val) { + return abs(val) == INFINITY; + } + bvec4 isinf(vec4 val) { + return equal(abs(val), vec4(INFINITY)); + } + `,p=` + int round(float value) { + return int(floor(value + 0.5)); + } + + ivec4 round(vec4 value) { + return ivec4(floor(value + vec4(0.5))); + } + `),{version:e,attribute:t,varyingVs:r,varyingFs:n,texture2D:s,output:o,defineOutput:l,defineSpecialNaN:i,defineSpecialInf:u,defineRound:p}}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1F9Jp":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"compileProgram",()=>i),s.export(r,"getUniformLocations",()=>u),s.export(r,"runProgram",()=>c),s.export(r,"makeShaderKey",()=>d),s.export(r,"useShapeUniforms",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("./shader_compiler"),l=e("./webgl_util");function i(e,t,r,n){let s=r.map((e,r)=>{let n={logicalShape:e.shape,texShape:e.isUniform?null:e.texData.texShape,isUniform:e.isUniform,isPacked:!e.isUniform&&e.texData.isPacked,flatOffset:null};return null!=e.texData&&null!=e.texData.slice&&e.texData.slice.flatOffset>0&&(n.flatOffset=e.texData.slice.flatOffset),{name:t.variableNames[r],shapeInfo:n}}),i=s.map(e=>e.shapeInfo),p={logicalShape:n.shape,texShape:n.texData.texShape,isUniform:!1,isPacked:n.texData.isPacked,flatOffset:null},c=o.makeShader(s,p,t),d=(0,l.createFragmentShader)(e.gl,c),f=e.createProgram(d);return(0,a.env)().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:d,source:c,webGLProgram:f,inShapeInfos:i,outShapeInfo:p,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(e.buildVao(f),Object.assign({program:t,fragmentShader:d,source:c,webGLProgram:f,inShapeInfos:i,outShapeInfo:p},u(e,t,f)))}function u(e,t,r){let n,s,o,l=[],i=[],u=null,p=null;for(let n of(p=e.getUniformLocation(r,"NAN",!1),1===(0,a.env)().getNumber("WEBGL_VERSION")&&(u=e.getUniformLocation(r,"INFINITY",!1)),t.variableNames)){let s={name:n,uniform:e.getUniformLocation(r,n,!1),offset:e.getUniformLocation(r,`offset${n}`,!1)};t.enableShapeUniforms&&(s.shape=e.getUniformLocation(r,`${n}Shape`,!1),s.texShape=e.getUniformLocation(r,`${n}TexShape`,!1)),l.push(s)}if(t.enableShapeUniforms&&(n=e.getUniformLocation(r,"outShape",!1),o=e.getUniformLocation(r,"outShapeStrides",!1),s=e.getUniformLocation(r,"outTexShape",!1)),t.customUniforms)for(let n of t.customUniforms)i.push(e.getUniformLocation(r,n.name,!1));return{variablesLocations:l,customUniformLocations:i,infLoc:u,nanLoc:p,outShapeLocation:n,outShapeStridesLocation:o,outTexShapeLocation:s}}function p(e,t){if(e.length!==t.length)throw Error(`Binary was compiled with ${e.length} inputs, but was executed with ${t.length} inputs`);e.forEach((e,r)=>{let n=e.logicalShape,s=t[r],o=s.shape;if(!a.util.arraysEqual(n,o))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${n} and ${o} must match`);if(e.isUniform&&s.isUniform)return;let l=e.texShape,i=s.isUniform?null:s.texData.texShape;if(!a.util.arraysEqual(l,i))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${l} and ${i} must match`)})}function c(e,t,r,n,s){t.program.enableShapeUniforms||(p(t.inShapeInfos,r),p([t.outShapeInfo],[n]));let l=n.texData.texture,i=n.texData.texShape;n.texData.isPacked?e.setOutputPackedMatrixTexture(l.texture,i[0],i[1]):e.setOutputMatrixTexture(l.texture,i[0],i[1]),e.setProgram(t.webGLProgram),e.bindVertexArray(t.webGLProgram.vao),1===(0,a.env)().getNumber("WEBGL_VERSION")&&null!==t.infLoc&&e.gl.uniform1f(t.infLoc,1/0),null!==t.nanLoc&&e.gl.uniform1f(t.nanLoc,NaN);for(let n=0;na.util.sizeFromShape(s.shape))e.gl.uniform1f(l,s.uniformValues[0]);else{let t=s.uniformValues;t instanceof Float32Array||(t=new Float32Array(t)),e.gl.uniform1fv(l,t)}continue}null!=s.texData.slice&&null!=i&&e.gl.uniform1i(i,s.texData.slice.flatOffset),e.setInputMatrixTexture(s.texData.texture.texture,l,n)}}let u=t.outShapeLocation;if(u)switch(n.shape.length){case 1:e.gl.uniform1iv(u,new Int32Array(n.shape));break;case 2:e.gl.uniform2iv(u,new Int32Array(n.shape));break;case 3:e.gl.uniform3iv(u,new Int32Array(n.shape));break;case 4:e.gl.uniform4iv(u,new Int32Array(n.shape))}if(t.outShapeStridesLocation){let r=a.util.computeStrides(n.shape);switch(n.shape.length){case 2:e.gl.uniform1iv(t.outShapeStridesLocation,new Int32Array(r));break;case 3:e.gl.uniform2iv(t.outShapeStridesLocation,new Int32Array(r));break;case 4:e.gl.uniform3iv(t.outShapeStridesLocation,new Int32Array(r))}}if(t.outTexShapeLocation&&e.gl.uniform2i(t.outTexShapeLocation,n.texData.texShape[0],n.texData.texShape[1]),t.program.customUniforms&&s)for(let r=0;r{let s=null!=t.texData&&null!=t.texData.slice&&t.texData.slice.flatOffset>0;if(e.enableShapeUniforms&&!t.isUniform){let l=t.texData.texShape,{useSqueezeShape:i,uniformShape:u,keptDims:p}=o.getUniformInfoFromShape(e.packedInputs,t.shape,l),c="",d="",f="";if(1===u.length&&e.packedInputs){let e=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)];c=`${e[0]>1}_${e[1]>1}`}else if(2!==u.length||e.packedInputs){if(u.length>2&&!e.packedInputs){let e=a.util.computeStrides(u);f=`${e[0]===l[1]}_${e[e.length-1]===l[1]}`}}else d=`${u[0]>1}_${u[1]>1}`;let m=t.shape.length,h=2===u.length&&a.util.arraysEqual(t.shape,l),g=1===a.util.sizeFromShape(t.shape),x=a.backend_util.getBroadcastDims(t.shape,r.shape),v=!e.packedInputs&&m===r.shape.length&&a.util.arraysEqual(l,r.texData.texShape),y=e.packedInputs||u.length>2?"":`${l[0]>1}_${l[1]>1}`;n+=`${m}_${v}_${i?p:""}_${u.length}_${g}_${x}_${h}_${c}_${d}_${f}_${y}_${s}`}else{let e=t.isUniform?"uniform":t.texData.texShape;n+=`${t.shape}_${e}_${s}`}});let s=e.userCode,l=e.constructor.name;return l+("_"+n+"_"+s+`${(0,a.env)().getNumber("WEBGL_VERSION")}`)}function f(e){return(0,a.env)().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&e<=4}},{"@tensorflow/tfjs-core":"biUij","./shader_compiler":"euDKG","./webgl_util":"8Bhtc","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],euDKG:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"makeShader",()=>u),s.export(r,"getCoordsDataType",()=>x),s.export(r,"getUniformInfoFromShape",()=>v),s.export(r,"squeezeInputInfo",()=>y);var a=e("@tensorflow/tfjs-core"),o=e("./glsl_version"),l=e("./shader_compiler_util");let{getBroadcastDims:i}=a.backend_util;function u(e,t,r){var n,s,u,_;let k,j,I=[];if(e.forEach(e=>{let t=a.util.sizeFromShape(e.shapeInfo.logicalShape);if(e.shapeInfo.isUniform?I.push(`uniform float ${e.name}${t>1?`[${t}]`:""};`):(I.push(`uniform sampler2D ${e.name};`),I.push(`uniform int offset${e.name};`)),r.enableShapeUniforms){let{uniformShape:t}=v(r.packedInputs,e.shapeInfo.logicalShape,e.shapeInfo.texShape);switch(t.length){case 1:I.push(`uniform int ${e.name}Shape;`);break;case 2:I.push(`uniform ivec2 ${e.name}Shape;`);break;case 3:I.push(`uniform ivec3 ${e.name}Shape;`);break;case 4:I.push(`uniform ivec4 ${e.name}Shape;`)}I.push(`uniform ivec2 ${e.name}TexShape;`)}}),r.enableShapeUniforms){switch(t.logicalShape.length){case 1:I.push("uniform int outShape;");break;case 2:I.push("uniform ivec2 outShape;"),I.push("uniform int outShapeStrides;");break;case 3:I.push("uniform ivec3 outShape;"),I.push("uniform ivec2 outShapeStrides;");break;case 4:I.push("uniform ivec4 outShape;"),I.push("uniform ivec3 outShapeStrides;")}I.push("uniform ivec2 outTexShape;")}r.customUniforms&&r.customUniforms.forEach(e=>{I.push(`uniform ${e.type} ${e.name}${e.arrayIndex?`[${e.arrayIndex}]`:""};`)});let w=I.join("\n"),T=e.map(e=>(function(e,t,r=!1,n){let s="";r?s+=function e(t,r){switch(t.shapeInfo.logicalShape.length){case 0:var n=t;let s=n.name,l="get"+s.charAt(0).toUpperCase()+s.slice(1),i=(0,o.getGlslDifferences)();return` + vec4 ${l}() { + return ${i.texture2D}(${s}, halfCR); + } + `;case 1:return function(e,t){let r=e.name,n="get"+r.charAt(0).toUpperCase()+r.slice(1),s=e.shapeInfo.texShape,a=(0,o.getGlslDifferences)();if(t)return` + vec4 ${n}(int index) { + ivec2 packedTexShape = ivec2(ceil(float(${r}TexShape[0]) / 2.0), ceil(float(${r}TexShape[1]) / 2.0)); + vec2 uv = packedUVfrom1D( + packedTexShape[0], packedTexShape[1], index); + return ${a.texture2D}(${r}, uv); + } + `;let l=[Math.ceil(s[0]/2),Math.ceil(s[1]/2)];return` + vec4 ${n}(int index) { + vec2 uv = packedUVfrom1D( + ${l[0]}, ${l[1]}, index); + return ${a.texture2D}(${r}, uv); + } + `}(t,r);case 2:return function(e,t){let r=e.shapeInfo.logicalShape,n=e.name,s="get"+n.charAt(0).toUpperCase()+n.slice(1),l=e.shapeInfo.texShape,i=l[0],u=l[1],p=(0,o.getGlslDifferences)();if(null!=l&&a.util.arraysEqual(r,l))return t?` + vec4 ${s}(int row, int col) { + vec2 uv = (vec2(col, row) + halfCR) / vec2(${n}TexShape[1], ${n}TexShape[0]); + + return ${p.texture2D}(${n}, uv); + } + `:` + vec4 ${s}(int row, int col) { + vec2 uv = (vec2(col, row) + halfCR) / vec2(${u}.0, ${i}.0); + + return ${p.texture2D}(${n}, uv); + } + `;if(t)return` + vec4 ${s}(int row, int col) { + ivec2 packedTexShape = ivec2(ceil(float(${n}TexShape[0]) / 2.0), ceil(float(${n}TexShape[1]) / 2.0)); + int valuesPerRow = int(ceil(float(${n}Shape[1]) / 2.0)); + vec2 uv = packedUVfrom2D(valuesPerRow, packedTexShape[0], packedTexShape[1], row, col); + return ${p.texture2D}(${n}, uv); + } + `;let c=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)],d=Math.ceil(r[1]/2);return` + vec4 ${s}(int row, int col) { + vec2 uv = packedUVfrom2D(${d}, ${c[0]}, ${c[1]}, row, col); + return ${p.texture2D}(${n}, uv); + } + `}(t,r);case 3:return function(t,r){let n=t.shapeInfo.logicalShape,s=t.name,a="get"+s.charAt(0).toUpperCase()+s.slice(1),l=t.shapeInfo.texShape,i=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)];if(1===n[0]){let s=y(t,n.slice(1));return` + ${e(s,r)} + vec4 ${a}(int b, int row, int col) { + return ${a}(${b(["b","row","col"],[1,2])}); + } + `}let u=(0,o.getGlslDifferences)();if(r)return` + vec4 ${a}(int b, int row, int col) { + ivec2 packedTexShape = ivec2(ceil(float(${s}TexShape[0]) / 2.0), ceil(float(${s}TexShape[1]) / 2.0)); + int valuesPerRow = int(ceil(float(${s}Shape[2]) / 2.0)); + int texelsInBatch = valuesPerRow * int(ceil(float(${s}Shape[1]) / 2.0)); + vec2 uv = packedUVfrom3D( + packedTexShape[0], packedTexShape[1], texelsInBatch, valuesPerRow, b, row, col); + return ${u.texture2D}(${s}, uv); + } + `;let p=i[0],c=i[1],d=Math.ceil(n[2]/2),f=d*Math.ceil(n[1]/2);return` + vec4 ${a}(int b, int row, int col) { + vec2 uv = packedUVfrom3D( + ${p}, ${c}, ${f}, ${d}, b, row, col); + return ${u.texture2D}(${s}, uv); + } + `}(t,r);default:return function(e,t){let r=e.name,n="get"+r.charAt(0).toUpperCase()+r.slice(1),s=(0,o.getGlslDifferences)();if(t)return` + vec4 ${n}(int b2, int b, int row, int col) { + int valuesPerRow = int(ceil(float(${r}Shape[3]) / 2.0)); + int texelsInBatch = valuesPerRow * int(ceil(float(${r}Shape[2]) / 2.0)); + int index = b * texelsInBatch + (row / 2) * valuesPerRow + (col / 2); + texelsInBatch *= ${r}Shape[1]; + index = b2 * texelsInBatch + index; + ivec2 packedTexShape = ivec2(ceil(float(${r}TexShape[0]) / 2.0), ceil(float(${r}TexShape[1]) / 2.0)); + int texR = index / packedTexShape[1]; + int texC = index - texR * packedTexShape[1]; + vec2 uv = (vec2(texC, texR) + halfCR) / vec2(packedTexShape[1], packedTexShape[0]); return ${s.texture2D}(${r}, uv); + } + `;let a=e.shapeInfo.logicalShape,l=a.length,i=e.shapeInfo.texShape,u=[Math.ceil(i[0]/2),Math.ceil(i[1]/2)],p=u[0],c=u[1],d=Math.ceil(a[l-1]/2),f=d*Math.ceil(a[l-2]/2),m="int b, int row, int col",h=`b * ${f} + (row / 2) * ${d} + (col / 2)`;for(let e=2;e=1?"coords = 0;":u.map(e=>`coords.${d[e+c]} = 0;`).join("\n");let f="";f=l<2&&o>0?"coords":e.shapeInfo.logicalShape.map((e,t)=>`coords.${d[t+c]}`).join(", ");let m="return outputValue;",h=1===a.util.sizeFromShape(e.shapeInfo.logicalShape),g=1===a.util.sizeFromShape(t.logicalShape);if(1!==o||h||g){if(h&&!g)m=1===l?` + return vec4(outputValue.x, outputValue.x, 0., 0.); + `:` + return vec4(outputValue.x); + `;else if(u.length){let e=o-2,t=o-1;u.indexOf(e)>-1&&u.indexOf(t)>-1?m="return vec4(outputValue.x);":u.indexOf(e)>-1?m="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":u.indexOf(t)>-1&&(m="return vec4(outputValue.xx, outputValue.zz);")}}else m=` + return vec4(outputValue.xy, outputValue.xy); + `;return` + vec4 ${"get"+s+"AtOutCoords"}() { + ${p} coords = getOutputCoords(); + ${r} + vec4 outputValue = get${s}(${f}); + ${m} + } + `}(e,t):s+=function(e,t){let r,n=e.name,s=n.charAt(0).toUpperCase()+n.slice(1),o="get"+s+"AtOutCoords",l=t.texShape,u=e.shapeInfo.texShape,p=e.shapeInfo.logicalShape.length,c=t.logicalShape.length;if(!e.shapeInfo.isUniform&&p===c&&null==e.shapeInfo.flatOffset&&a.util.arraysEqual(u,l))return` + float ${o}() { + return sampleTexture(${n}, resultUV); + } + `;let d=x(c),f=i(e.shapeInfo.logicalShape,t.logicalShape),m=c-p,h=["x","y","z","w","u","v"];r=0===p?"":c<2&&f.length>=1?"coords = 0;":f.map(e=>`coords.${h[e+m]} = 0;`).join("\n");let g="";return g=c<2&&p>0?"coords":e.shapeInfo.logicalShape.map((e,t)=>`coords.${h[t+m]}`).join(", "),` + float ${o}() { + ${d} coords = getOutputCoords(); + ${r} + return get${s}(${g}); + } + `}(e,t)),s})(e,t,r.packedInputs,r.enableShapeUniforms)).join("\n"),N=t.texShape,S=(0,o.getGlslDifferences)(),C=(n=S,` + float sampleTexture(sampler2D textureSampler, vec2 uv) { + return ${n.texture2D}(textureSampler, uv).r; + } + `),E=(s=S,`${s.version} + precision highp float; + precision highp int; + precision highp sampler2D; + ${s.varyingFs} vec2 resultUV; + ${s.defineOutput} + const vec2 halfCR = vec2(0.5, 0.5); + + struct ivec5 + { + int x; + int y; + int z; + int w; + int u; + }; + + struct ivec6 + { + int x; + int y; + int z; + int w; + int u; + int v; + }; + + uniform float NAN; + ${s.defineSpecialNaN} + ${s.defineSpecialInf} + ${s.defineRound} + + int imod(int x, int y) { + return x - y * (x / y); + } + + int idiv(int a, int b, float sign) { + int res = a / b; + int mod = imod(a, b); + if (sign < 0. && mod != 0) { + res -= 1; + } + return res; + } + + //Based on the work of Dave Hoskins + //https://www.shadertoy.com/view/4djSRW + #define HASHSCALE1 443.8975 + float random(float seed){ + vec2 p = resultUV * seed; + vec3 p3 = fract(vec3(p.xyx) * HASHSCALE1); + p3 += dot(p3, p3.yzx + 19.19); + return fract((p3.x + p3.y) * p3.z); + } + + ${p} + ${c} + ${d} + `);return t.isPacked?(k=function(e,t,r){switch(e.length){case 0:return m();case 1:var n=0,s=t,o=r;let l=[Math.ceil(s[0]/2),Math.ceil(s[1]/2)];return 1===l[0]?o?` + int getOutputCoords() { + return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0)); + } + `:` + int getOutputCoords() { + return 2 * int(resultUV.x * ${l[1]}.0); + } + `:1===l[1]?o?` + int getOutputCoords() { + return 2 * int(resultUV.y * ceil(float(outTexShape[0]) / 2.0)); + } + `:` + int getOutputCoords() { + return 2 * int(resultUV.y * ${l[0]}.0); + } + `:o?` + int getOutputCoords() { + ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(packedTexShape[0], packedTexShape[1])); + return 2 * (resTexRC.x * packedTexShape[1] + resTexRC.y); + } + `:` + int getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${l[0]}, ${l[1]})); + return 2 * (resTexRC.x * ${l[1]} + resTexRC.y); + } + `;case 2:var i=e,u=t,p=r;let c=[Math.ceil(u[0]/2),Math.ceil(u[1]/2)];if(a.util.arraysEqual(i,u))return p?` + ivec2 getOutputCoords() { + ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); + return 2 * ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1])); + } + `:` + ivec2 getOutputCoords() { + return 2 * ivec2(resultUV.yx * vec2(${c[0]}, ${c[1]})); + } + `;let d=Math.ceil(i[1]/2);return p?` + ivec2 getOutputCoords() { + ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); + int texelsInLogicalRow = int(ceil(float(outShape[1]) / 2.0)); + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(packedTexShape[0], packedTexShape[1])); + + int index = resTexRC.x * packedTexShape[1] + resTexRC.y; + int r = 2 * (index / texelsInLogicalRow); + int c = imod(index, texelsInLogicalRow) * 2; + + return ivec2(r, c); + } + `:` + ivec2 getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${c[0]}, ${c[1]})); + + int index = resTexRC.x * ${c[1]} + resTexRC.y; + int r = 2 * (index / ${d}); + int c = imod(index, ${d}) * 2; + + return ivec2(r, c); + } + `;case 3:var f=e,h=t,g=r;if(g)return` + ivec3 getOutputCoords() { + ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); + int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0)); + int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[1]) / 2.0)); + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(packedTexShape[0], packedTexShape[1])); + int index = resTexRC.x * packedTexShape[1] + resTexRC.y; + + int b = index / texelsInBatch; + index -= b * texelsInBatch; + + int r = 2 * (index / texelsInLogicalRow); + int c = imod(index, texelsInLogicalRow) * 2; + + return ivec3(b, r, c); + } + `;let x=[Math.ceil(h[0]/2),Math.ceil(h[1]/2)],v=Math.ceil(f[2]/2),y=v*Math.ceil(f[1]/2);return` + ivec3 getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${x[0]}, ${x[1]})); + int index = resTexRC.x * ${x[1]} + resTexRC.y; + + int b = index / ${y}; + index -= b * ${y}; + + int r = 2 * (index / ${v}); + int c = imod(index, ${v}) * 2; + + return ivec3(b, r, c); + } + `;default:return function(e,t,r){if(r)return` + ivec4 getOutputCoords() { + ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(packedTexShape[0], packedTexShape[1])); + int index = resTexRC.x * packedTexShape[1] + resTexRC.y; + + int texelsInLogicalRow = int(ceil(float(outShape[3]) / 2.0)); + int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[2]) / 2.0)); + int texelsInBatchN = texelsInBatch * outShape[1]; + + int b2 = index / texelsInBatchN; + index -= b2 * texelsInBatchN; + + int b = index / texelsInBatch; + index -= b * texelsInBatch; + + int r = 2 * (index / texelsInLogicalRow); + int c = imod(index, texelsInLogicalRow) * 2; + + return ivec4(b2, b, r, c); + } + `;let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],s=Math.ceil(e[e.length-1]/2),a=s*Math.ceil(e[e.length-2]/2),o=a,l="",i="b, r, c";for(let t=2;t1&&!a.util.arraysEqual(t,r)&&n.lengthe[t]).join(", ")}},{"@tensorflow/tfjs-core":"biUij","./glsl_version":"9EOgg","./shader_compiler_util":"cJiqQ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cJiqQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getLogicalCoordinatesFromFlatIndex",()=>o),s.export(r,"getOutputLogicalCoordinatesFromFlatIndexByUniform",()=>l),s.export(r,"getLogicalCoordinatesFromFlatIndexByUniform",()=>i),s.export(r,"dotify",()=>p),s.export(r,"getFlatIndexFrom3D",()=>c),s.export(r,"getFlatIndexFrom3DOutput",()=>d),s.export(r,"ENCODE_FLOAT_SNIPPET",()=>f);var a=e("@tensorflow/tfjs-core");function o(e,t,r="index"){let n=a.util.computeStrides(t);return n.map((t,s)=>{let a=`int ${e[s]} = ${r} / ${t}`,o=s===n.length-1?`int ${e[s+1]} = ${r} - ${e[s]} * ${t}`:`index -= ${e[s]} * ${t}`;return`${a}; ${o};`}).join("")}function l(e,t,r="index"){let n=a.util.computeStrides(t);return n.map((t,s)=>{let a=`int ${e[s]} = ${r} / outShapeStrides[${s}]`,o=s===n.length-1?`int ${e[s+1]} = ${r} - ${e[s]} * outShapeStrides[${s}]`:`index -= ${e[s]} * outShapeStrides[${s}]`;return`${a}; ${o};`}).join("")}function i(e,t,r="index"){let n=function(e,t){let r=e.length,n=e.map(e=>`${t}[${e}]`),s=Array(r-1);s[r-2]=n[r-1];for(let e=r-3;e>=0;--e)s[e]=`(${s[e+1]} * ${n[e+1]})`;return s}(e.map((e,t)=>t),t);return n.map((t,s)=>{let a=`int ${e[s]} = ${r} / ${n[s]}`,o=s===n.length-1?`int ${e[s+1]} = ${r} - ${e[s]} * ${n[s]}`:`index -= ${e[s]} * ${n[s]}`;return`${a}; ${o};`}).join("")}function u(e){return 1===e.length?`${e[0]}`:`vec${e.length}(${e.join(",")})`}function p(e,t){if(e.length!==t.length)throw Error(`Vectors to be dotted must be of the same length -got ${e.length} and ${t.length}`);let r=[],n=Math.floor(e.length/4),s=e.length%4;for(let s=0;s`float(${e})`),a=a.map(e=>`float(${e})`)),r.push(`${u(s)}, ${u(a)}`)}return r.map((e,t)=>`dot(${e})`).join("+")}function c(e){let t=a.util.computeStrides(e).map(e=>e.toString());return` + int getFlatIndex(ivec3 coords) { + return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z; + } +`}function d(){return` + int getFlatIndex(ivec3 coords) { + return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z; + } +`}let f=` + const float FLOAT_MAX = 1.70141184e38; + const float FLOAT_MIN = 1.17549435e-38; + + lowp vec4 encode_float(highp float v) { + if (isnan(v)) { + return vec4(255, 255, 255, 255); + } + + highp float av = abs(v); + + if(av < FLOAT_MIN) { + return vec4(0.0, 0.0, 0.0, 0.0); + } else if(v > FLOAT_MAX) { + return vec4(0.0, 0.0, 128.0, 127.0) / 255.0; + } else if(v < -FLOAT_MAX) { + return vec4(0.0, 0.0, 128.0, 255.0) / 255.0; + } + + highp vec4 c = vec4(0,0,0,0); + + highp float e = floor(log2(av)); + highp float m = exp2(fract(log2(av))) - 1.0; + + c[2] = floor(128.0 * m); + m -= c[2] / 128.0; + c[1] = floor(32768.0 * m); + m -= c[1] / 32768.0; + c[0] = floor(8388608.0 * m); + + highp float ebias = e + 127.0; + c[3] = floor(ebias / 2.0); + ebias -= c[3] * 2.0; + c[2] += floor(ebias) * 128.0; + + c[3] += 128.0 * step(0.0, -v); + + return c / 255.0; + } +`},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7VRvZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DecodeMatrixPackedProgram",()=>u);var a=e("./glsl_version"),o=e("./gpgpu_math"),l=e("./shader_compiler_util"),i=e("./tex_util");class u{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=i.PackingScheme.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=(0,a.getGlslDifferences)();this.outputShape=e,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length),this.userCode=` + ivec3 outCoordsFromFlatIndex(int index) { + ${this.enableShapeUniforms?l.getOutputLogicalCoordinatesFromFlatIndexByUniform(["r","c","d"],e):l.getLogicalCoordinatesFromFlatIndex(["r","c","d"],e)} + return ivec3(r, c, d); + } + + void main() { + ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1])); + int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y); + + vec4 result = vec4(0.); + + for (int i=0; i<4; i++) { + int flatIndex = index + i; + ivec3 rc = outCoordsFromFlatIndex(flatIndex); + result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z)); + } + + ${t.output} = result; + } + `}}},{"./glsl_version":"9EOgg","./gpgpu_math":"1F9Jp","./shader_compiler_util":"cJiqQ","./tex_util":"jmYC7","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jcxxr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EncodeFloatProgram",()=>i);var a=e("./glsl_version"),o=e("./shader_compiler_util"),l=e("./tex_util");class i{constructor(e){this.variableNames=["A"],this.outTexUsage=l.TextureUsage.DOWNLOAD;let t=(0,a.getGlslDifferences)();this.outputShape=e,this.userCode=` + ${o.ENCODE_FLOAT_SNIPPET} + + void main() { + float x = getAAtOutCoords(); + ${t.output} = encode_float(x); + } + `}}},{"./glsl_version":"9EOgg","./shader_compiler_util":"cJiqQ","./tex_util":"jmYC7","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9TFBs":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EncodeFloatPackedProgram",()=>i);var a=e("./glsl_version"),o=e("./shader_compiler_util"),l=e("./tex_util");class i{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=l.TextureUsage.DOWNLOAD;let t=(0,a.getGlslDifferences)();this.outputShape=e,this.userCode=` + ${o.ENCODE_FLOAT_SNIPPET} + + void main() { + ivec3 coords = getOutputCoords(); + float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); + ${t.output} = encode_float(x); + } + `}}},{"./glsl_version":"9EOgg","./shader_compiler_util":"cJiqQ","./tex_util":"jmYC7","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7GwLQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EncodeMatrixProgram",()=>u);var a=e("./glsl_version"),o=e("./gpgpu_math"),l=e("./shader_compiler_util");let i={R:0,G:1,B:2,A:3};class u{constructor(e,t=!1,r="RGBA"){this.variableNames=["A"],this.customUniforms=[{name:"texShape",type:"ivec2"}];let n=(0,a.getGlslDifferences)();this.outputShape=e,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length);let s="result";t&&(s="floor(result * 255. + 0.5)");let u="";for(let e=0;ei);var a=e("./glsl_version"),o=e("./gpgpu_math"),l=e("./shader_compiler_util");class i{constructor(e,t=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.customUniforms=[{name:"texShape",type:"ivec2"}];let r=(0,a.getGlslDifferences)();this.outputShape=e,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length);let n="",s="result";t&&(s="floor(result * 255. + 0.5)");for(let t=0;t<=1;t++)for(let s=0;s<=1;s++){let a=2*t+s;n+=` + localCoords = coords; + if(localCoords[2] + ${s} < ${this.enableShapeUniforms?"outShape[2]":`${e[2]}`}) { + localCoords[2] += ${s}; + if (localCoords[1] + ${t} < ${this.enableShapeUniforms?"outShape[1]":`${e[1]}`}) { + localCoords[1] += ${t}; + + flatIndex = getFlatIndex(localCoords); + offset = imod(flatIndex, 4); + + flatIndex = idiv(flatIndex, 4, 1.); + + int r = flatIndex / texShape[1]; + int c = imod(flatIndex, texShape[1]); + vec2 uv = (vec2(c, r) + halfCR) / vec2(texShape[1], texShape[0]); + values = ${r.texture2D}(A, uv); + + if (offset == 0) { + result[${a}] = values[0]; + } else if (offset == 1) { + result[${a}] = values[1]; + } else if (offset == 2) { + result[${a}] = values[2]; + } else { + result[${a}] = values[3]; + } + } + } + `}this.userCode=` + ${this.enableShapeUniforms?l.getFlatIndexFrom3DOutput():l.getFlatIndexFrom3D(e)} + + void main() { + ivec3 coords = getOutputCoords(); + + vec4 result = vec4(0.); + int flatIndex, r, c, offset; + ivec3 localCoords; + vec2 uv; + vec4 values; + + ${n} + + ${r.output} = ${s}; + } + `}}},{"./glsl_version":"9EOgg","./gpgpu_math":"1F9Jp","./shader_compiler_util":"cJiqQ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eTBiK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"GPGPUContext",()=>p),s.export(r,"linearSearchLastTrue",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./canvas_util"),l=e("./gpgpu_util"),i=e("./tex_util"),u=e("./webgl_util");class p{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let t=(0,a.env)().getNumber("WEBGL_VERSION");if(null!=e?(this.gl=e,(0,o.setWebGLContext)(t,e)):this.gl=(0,o.getWebGLContext)(t),e=this.gl,2===(0,a.env)().getNumber("WEBGL_VERSION")){let t=e;this.createVertexArray=()=>u.callAndCheck(t,()=>t.createVertexArray()),this.bindVertexArray=e=>u.callAndCheck(t,()=>t.bindVertexArray(e)),this.deleteVertexArray=e=>u.callAndCheck(t,()=>t.deleteVertexArray(e)),this.getVertexArray=()=>u.callAndCheck(t,()=>t.getParameter(t.VERTEX_ARRAY_BINDING))}else if(null!=e){let t=e.getExtension("OES_vertex_array_object");if(null==t)throw Error("All WebGL1 implementations are expected to offer OES_vertex_array_object.");this.createVertexArray=()=>u.callAndCheck(e,()=>t.createVertexArrayOES()),this.bindVertexArray=r=>u.callAndCheck(e,()=>t.bindVertexArrayOES(r)),this.deleteVertexArray=r=>u.callAndCheck(e,()=>t.deleteVertexArrayOES(r)),this.getVertexArray=()=>u.callAndCheck(e,()=>e.getParameter(t.VERTEX_ARRAY_BINDING_OES))}let r="WEBGL_color_buffer_float",n="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),1===(0,a.env)().getNumber("WEBGL_VERSION")){let e="OES_texture_half_float";if(this.textureFloatExtension=u.getExtensionOrThrow(this.gl,"OES_texture_float"),u.hasExtension(this.gl,e))this.textureHalfFloatExtension=u.getExtensionOrThrow(this.gl,e);else if((0,a.env)().get("WEBGL_FORCE_F16_TEXTURES"))throw Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(r),u.hasExtension(this.gl,n))this.colorBufferHalfFloatExtension=u.getExtensionOrThrow(this.gl,n);else if((0,a.env)().get("WEBGL_FORCE_F16_TEXTURES"))throw Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(r="EXT_color_buffer_float",u.hasExtension(this.gl,r))this.colorBufferFloatExtension=this.gl.getExtension(r);else if(u.hasExtension(this.gl,n))this.colorBufferHalfFloatExtension=this.gl.getExtension(n);else throw Error("GL context does not support color renderable floats");this.vertexBuffer=l.createVertexBuffer(this.gl),this.indexBuffer=l.createIndexBuffer(this.gl),this.framebuffer=u.createFramebuffer(this.gl),this.textureConfig=i.getTextureConfig(this.gl,this.textureHalfFloatExtension)}get debug(){return(0,a.env)().getBool("DEBUG")}dispose(){if(this.disposed)return;null!=this.program&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),null!=this.outputTexture&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");let e=this.gl;u.callAndCheck(e,()=>e.finish()),u.callAndCheck(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),u.callAndCheck(e,()=>e.deleteFramebuffer(this.framebuffer)),u.callAndCheck(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),u.callAndCheck(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),u.callAndCheck(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),l.createFloat32MatrixTexture(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),l.createFloat16MatrixTexture(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),l.createUnsignedBytesMatrixTexture(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),l.uploadPixelDataToTexture(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,r,n){this.throwIfDisposed(),l.uploadDenseMatrixToTexture(this.gl,e,t,r,n,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),l.createFloat16PackedMatrixTexture(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),l.createPackedMatrixTexture(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(u.unbindColorTextureFromFramebuffer(this.gl,this.framebuffer),this.outputTexture=null),u.callAndCheck(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,r){return this.downloadMatrixDriver(e,()=>l.downloadByteEncodedFloatMatrixFromOutputTexture(this.gl,t,r,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,r,n,s,a){return l.downloadPackedMatrixFromBuffer(this.gl,e,t,r,n,s,a,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return l.downloadFloat32MatrixFromBuffer(this.gl,e,t)}createBufferFromTexture(e,t,r){this.bindTextureToFrameBuffer(e);let n=l.createBufferFromOutputTexture(this.gl,t,r,this.textureConfig);return this.unbindTextureToFrameBuffer(),n}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,r;if((0,a.env)().getBool("WEBGL_FENCE_API_ENABLED")){let n=e.fenceSync(e.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),r=()=>{let t=e.clientWaitSync(n,0,0);return t===e.ALREADY_SIGNALED||t===e.CONDITION_SATISFIED},t=n}else(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),r=()=>this.isQueryAvailable(t,(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):r=()=>!0;return{query:t,isFencePassed:r}}downloadMatrixFromPackedTexture(e,t,r){return this.downloadMatrixDriver(e,()=>l.downloadMatrixFromPackedOutputTexture(this.gl,t,r))}createProgram(e){this.throwIfDisposed();let t=this.gl;null==this.vertexShader&&(this.vertexShader=l.createVertexShader(t));let r=u.createProgram(t);u.callAndCheck(t,()=>t.attachShader(r,this.vertexShader)),u.callAndCheck(t,()=>t.attachShader(r,e)),u.linkProgram(t,r);let n=Object.assign(r,{vao:this.createVertexArray()});return this.debug&&u.validateProgram(t,n),n}buildVao(e){this.setProgram(e),this.bindVertexArray(e.vao);let t=this.gl;u.callAndCheck(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),l.bindVertexProgramAttributeStreams(t,e,this.vertexBuffer)}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),null!=e&&(u.callAndCheck(this.gl,()=>this.gl.deleteProgram(e)),this.deleteVertexArray(e.vao))}setProgram(e){this.throwIfDisposed(),this.program=e,null!=this.program&&this.debug&&u.validateProgram(this.gl,this.program),u.callAndCheck(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,r=!0){return(this.throwIfDisposed(),r)?u.getProgramUniformLocationOrThrow(this.gl,e,t):u.getProgramUniformLocation(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),u.callAndCheck(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,r){this.throwIfDisposed(),this.throwIfNoProgram(),u.bindTextureToProgramUniformSampler(this.gl,e,t,r)}setOutputMatrixTexture(e,t,r){this.setOutputMatrixTextureDriver(e,r,t)}setOutputPackedMatrixTexture(e,t,r){this.throwIfDisposed();let[n,s]=i.getPackedMatrixTextureShapeWidthHeight(t,r);this.setOutputMatrixTextureDriver(e,n,s)}setOutputMatrixWriteRegion(e,t,r,n){this.setOutputMatrixWriteRegionDriver(r,e,n,t)}setOutputPackedMatrixWriteRegion(e,t,r,n){throw Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){null!=this.program&&u.validateProgram(this.gl,this.program),u.validateFramebuffer(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&(console.assert(this.getVertexArray()===this.program.vao,"VAO changed between setProgram and executeProgram!"),this.debugValidate()),u.callAndCheck(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),u.callAndCheck(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return null==this.disjointQueryTimerExtension&&(this.disjointQueryTimerExtension=u.getExtensionOrThrow(this.gl,2===(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(2===(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){let e=this.gl,t=this.getQueryTimerExtensionWebGL2(),r=e.createQuery();return e.beginQuery(t.TIME_ELAPSED_EXT,r),r}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(2===(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){let e=this.gl,t=this.getQueryTimerExtensionWebGL2();e.endQuery(t.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await a.util.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(0===t)return null;if(2===t){let t=this.gl;return t.getQueryParameter(e,t.QUERY_RESULT)/1e6}{let t=this.getQueryTimerExtensionWebGL1();return t.getQueryObjectEXT(e,t.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(0===t)return!0;if(2===t){let t=this.gl,r=this.getQueryTimerExtensionWebGL2(),n=t.getQueryParameter(e,t.QUERY_RESULT_AVAILABLE);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(r.GPU_DISJOINT_EXT)),n&&!this.disjoint}{let t=this.getQueryTimerExtensionWebGL1(),r=t.getQueryObjectEXT(e,t.QUERY_RESULT_AVAILABLE_EXT);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(t.GPU_DISJOINT_EXT)),r&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=c(this.itemsToPoll.map(e=>e.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:e}=this.itemsToPoll[t];e()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){let r;this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1||("setTimeoutCustom"in(0,a.env)().platform&&(r=(0,a.env)().platform.setTimeoutCustom.bind((0,a.env)().platform)),a.util.repeatedTry(()=>(this.pollItems(),0===this.itemsToPoll.length),()=>0,null,r))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),u.bindColorTextureToFramebuffer(this.gl,e,this.framebuffer),this.debug&&u.validateFramebuffer(this.gl)}unbindTextureToFrameBuffer(){null!=this.outputTexture?(u.bindColorTextureToFramebuffer(this.gl,this.outputTexture,this.framebuffer),this.debug&&u.validateFramebuffer(this.gl)):u.unbindColorTextureFromFramebuffer(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let r=t();return this.unbindTextureToFrameBuffer(),r}setOutputMatrixTextureDriver(e,t,r){this.throwIfDisposed();let n=this.gl;u.bindColorTextureToFramebuffer(n,e,this.framebuffer),this.debug&&u.validateFramebuffer(n),this.outputTexture=e,u.callAndCheck(n,()=>n.viewport(0,0,t,r)),u.callAndCheck(n,()=>n.scissor(0,0,t,r))}setOutputMatrixWriteRegionDriver(e,t,r,n){this.throwIfDisposed(),u.callAndCheck(this.gl,()=>this.gl.scissor(e,t,r,n))}throwIfDisposed(){if(this.disposed)throw Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(null==this.program)throw Error("No GPU program is currently set.")}}function c(e){let t=0;for(;tu),s.export(r,"createVertexBuffer",()=>p),s.export(r,"createIndexBuffer",()=>c),s.export(r,"getInternalFormatForFloat32MatrixTexture",()=>f),s.export(r,"createFloat32MatrixTexture",()=>m),s.export(r,"getInternalFormatForFloat16MatrixTexture",()=>h),s.export(r,"createFloat16MatrixTexture",()=>g),s.export(r,"getInternalFormatForUnsignedBytesMatrixTexture",()=>x),s.export(r,"createUnsignedBytesMatrixTexture",()=>v),s.export(r,"getInternalFormatForPackedMatrixTexture",()=>y),s.export(r,"createPackedMatrixTexture",()=>b),s.export(r,"getInternalFormatForFloat16PackedMatrixTexture",()=>_),s.export(r,"createFloat16PackedMatrixTexture",()=>k),s.export(r,"bindVertexProgramAttributeStreams",()=>j),s.export(r,"uploadDenseMatrixToTexture",()=>I),s.export(r,"uploadPixelDataToTexture",()=>w),s.export(r,"createBufferFromOutputTexture",()=>T),s.export(r,"downloadFloat32MatrixFromBuffer",()=>N),s.export(r,"downloadByteEncodedFloatMatrixFromOutputTexture",()=>S),s.export(r,"downloadPackedMatrixFromBuffer",()=>C),s.export(r,"downloadMatrixFromPackedOutputTexture",()=>E);var a=e("@tensorflow/tfjs-core"),o=e("./glsl_version"),l=e("./tex_util"),i=e("./webgl_util");function u(e){let t=(0,o.getGlslDifferences)(),r=`${t.version} + precision highp float; + ${t.attribute} vec3 clipSpacePos; + ${t.attribute} vec2 uv; + ${t.varyingVs} vec2 resultUV; + + void main() { + gl_Position = vec4(clipSpacePos, 1); + resultUV = uv; + }`;return i.createVertexShader(e,r)}function p(e){let t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return i.createStaticVertexBuffer(e,t)}function c(e){let t=new Uint16Array([0,1,2,2,1,3]);return i.createStaticIndexBuffer(e,t)}function d(e,t,r,n,s,o){i.validateTextureSize(t,r);let l=i.createTexture(e),u=e.TEXTURE_2D;return i.callAndCheck(e,()=>e.bindTexture(u,l)),i.callAndCheck(e,()=>e.texParameteri(u,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),i.callAndCheck(e,()=>e.texParameteri(u,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),i.callAndCheck(e,()=>e.texParameteri(u,e.TEXTURE_MIN_FILTER,e.NEAREST)),i.callAndCheck(e,()=>e.texParameteri(u,e.TEXTURE_MAG_FILTER,e.NEAREST)),1===(0,a.env)().getNumber("WEBGL_VERSION")?i.callAndCheck(e,()=>e.texImage2D(u,0,n,t,r,0,s,o,null)):i.callAndCheck(e,()=>e.texStorage2D(u,1,n,t,r)),i.callAndCheck(e,()=>e.bindTexture(e.TEXTURE_2D,null)),{texture:l,texShape:[r,t]}}function f(e){return e.internalFormatFloat}function m(e,t,r,n){let[s,a]=l.getUnpackedMatrixTextureShapeWidthHeight(t,r);return d(e,s,a,f(n),n.textureFormatFloat,e.FLOAT)}function h(e){return e.internalFormatHalfFloat}function g(e,t,r,n){let[s,a]=l.getUnpackedMatrixTextureShapeWidthHeight(t,r);return d(e,s,a,h(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function x(e){return e.downloadTextureFormat}function v(e,t,r,n){let[s,a]=l.getUnpackedMatrixTextureShapeWidthHeight(t,r);return d(e,s,a,x(n),e.RGBA,e.UNSIGNED_BYTE)}function y(e){return e.internalFormatPackedFloat}function b(e,t,r,n){let[s,a]=l.getPackedMatrixTextureShapeWidthHeight(t,r);return d(e,s,a,y(n),e.RGBA,e.FLOAT)}function _(e){return e.internalFormatPackedHalfFloat}function k(e,t,r,n){let[s,a]=l.getPackedMatrixTextureShapeWidthHeight(t,r);return d(e,s,a,_(n),e.RGBA,n.textureTypeHalfFloat)}function j(e,t,r){return i.callAndCheck(e,()=>e.bindBuffer(e.ARRAY_BUFFER,r)),i.bindVertexBufferToProgramAttribute(e,t,"clipSpacePos",r,3,20,0)&&i.bindVertexBufferToProgramAttribute(e,t,"uv",r,2,20,12)}function I(e,t,r,n,s,o){let l,u,p;i.callAndCheck(e,()=>e.bindTexture(e.TEXTURE_2D,t)),s instanceof Uint8Array?(l=new Uint8Array(r*n*4),u=e.UNSIGNED_BYTE,p=e.RGBA):(l=new Float32Array(r*n*4),u=e.FLOAT,p=o.internalFormatPackedFloat),l.set(s),2===(0,a.env)().getNumber("WEBGL_VERSION")?i.callAndCheck(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,r,n,e.RGBA,u,l)):i.callAndCheck(e,()=>e.texImage2D(e.TEXTURE_2D,0,p,r,n,0,e.RGBA,u,l)),i.callAndCheck(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function w(e,t,r){i.callAndCheck(e,()=>e.bindTexture(e.TEXTURE_2D,t)),r.data instanceof Uint8Array?2===(0,a.env)().getNumber("WEBGL_VERSION")?i.callAndCheck(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,r.width,r.height,e.RGBA,e.UNSIGNED_BYTE,r.data)):i.callAndCheck(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,r.width,r.height,0,e.RGBA,e.UNSIGNED_BYTE,r.data)):2===(0,a.env)().getNumber("WEBGL_VERSION")?i.callAndCheck(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,r)):i.callAndCheck(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,r)),i.callAndCheck(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function T(e,t,r,n){let s=e.createBuffer();i.callAndCheck(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,s));let a=16*t*r;return i.callAndCheck(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,a,e.STREAM_READ)),i.callAndCheck(e,()=>e.readPixels(0,0,r,t,e.RGBA,e.FLOAT,0)),i.callAndCheck(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),s}function N(e,t,r){let n=new Float32Array(r);return e.bindBuffer(e.PIXEL_PACK_BUFFER,t),e.getBufferSubData(e.PIXEL_PACK_BUFFER,0,n),e.bindBuffer(e.PIXEL_PACK_BUFFER,null),n}function S(e,t,r,n){let[s,a]=l.getUnpackedMatrixTextureShapeWidthHeight(t,r),o=new Uint8Array(l.getUnpackedArraySizeFromMatrixSize(t*r,4));return i.callAndCheck(e,()=>e.readPixels(0,0,s,a,n.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function C(e,t,r,n,s,a,o,i){let u=new Float32Array(l.getPackedRGBAArraySizeFromMatrixShape(a,o));return e.bindBuffer(e.PIXEL_PACK_BUFFER,t),e.getBufferSubData(e.PIXEL_PACK_BUFFER,0,u),e.bindBuffer(e.PIXEL_PACK_BUFFER,null),u}function E(e,t,r){let n=new Float32Array(t*r*4);return i.callAndCheck(e,()=>e.readPixels(0,0,r,t,e.RGBA,e.FLOAT,n)),n}},{"@tensorflow/tfjs-core":"biUij","./glsl_version":"9EOgg","./tex_util":"jmYC7","./webgl_util":"8Bhtc","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lQim5:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addImplCPU",()=>a),s.export(r,"bincountImplCPU",()=>o),s.export(r,"bincountReduceImplCPU",()=>l),s.export(r,"bitwiseAndImplCPU",()=>i),s.export(r,"castImplCPU",()=>u),s.export(r,"ceilImplCPU",()=>p),s.export(r,"concatImplCPU",()=>c),s.export(r,"equalImplCPU",()=>d),s.export(r,"expImplCPU",()=>f),s.export(r,"expm1ImplCPU",()=>m),s.export(r,"floorImplCPU",()=>h),s.export(r,"gatherNdImplCPU",()=>g),s.export(r,"gatherV2ImplCPU",()=>x),s.export(r,"greaterEqualImplCPU",()=>y),s.export(r,"greaterImplCPU",()=>v),s.export(r,"lessEqualImplCPU",()=>_),s.export(r,"lessImplCPU",()=>b),s.export(r,"linSpaceImplCPU",()=>k),s.export(r,"logImplCPU",()=>j),s.export(r,"maxImplCPU",()=>I),s.export(r,"maximumImplCPU",()=>w),s.export(r,"minimumImplCPU",()=>T),s.export(r,"multiplyImplCPU",()=>N),s.export(r,"negImplCPU",()=>S),s.export(r,"notEqualImplCPU",()=>C),s.export(r,"prodImplCPU",()=>E),s.export(r,"raggedGatherImplCPU",()=>F),s.export(r,"raggedRangeImplCPU",()=>A),s.export(r,"raggedTensorToTensorImplCPU",()=>R),s.export(r,"scatterImplCPU",()=>$),s.export(r,"sigmoidImplCPU",()=>O),s.export(r,"simpleAbsImplCPU",()=>M),s.export(r,"sliceImplCPU",()=>W),s.export(r,"sparseFillEmptyRowsImplCPU",()=>B),s.export(r,"sparseReshapeImplCPU",()=>L),s.export(r,"sparseSegmentReductionImplCPU",()=>V),s.export(r,"sqrtImplCPU",()=>U),s.export(r,"staticRegexReplaceImplCPU",()=>G),s.export(r,"stridedSliceImplCPU",()=>z),s.export(r,"stringNGramsImplCPU",()=>Q),s.export(r,"stringSplitImplCPU",()=>q),s.export(r,"stringToHashBucketFastImplCPU",()=>H),s.export(r,"subImplCPU",()=>K),s.export(r,"rangeImplCPU",()=>P),s.export(r,"rsqrtImplCPU",()=>D),s.export(r,"tileImplCPU",()=>X),s.export(r,"topKImplCPU",()=>Y),s.export(r,"transposeImplCPU",()=>J),s.export(r,"uniqueImplCPU",()=>Z);let{addImpl:a,bincountImpl:o,bincountReduceImpl:l,bitwiseAndImpl:i,castImpl:u,ceilImpl:p,concatImpl:c,equalImpl:d,expImpl:f,expm1Impl:m,floorImpl:h,gatherNdImpl:g,gatherV2Impl:x,greaterImpl:v,greaterEqualImpl:y,lessImpl:b,lessEqualImpl:_,linSpaceImpl:k,logImpl:j,maxImpl:I,maximumImpl:w,minimumImpl:T,multiplyImpl:N,negImpl:S,notEqualImpl:C,prodImpl:E,raggedGatherImpl:F,raggedRangeImpl:A,raggedTensorToTensorImpl:R,rangeImpl:P,rsqrtImpl:D,scatterImpl:$,sigmoidImpl:O,simpleAbsImpl:M,sliceImpl:W,sparseFillEmptyRowsImpl:B,sparseReshapeImpl:L,sparseSegmentReductionImpl:V,sqrtImpl:U,staticRegexReplaceImpl:G,stridedSliceImpl:z,stringNGramsImpl:Q,stringSplitImpl:q,stringToHashBucketFastImpl:H,subImpl:K,tileImpl:X,topKImpl:Y,transposeImpl:J,uniqueImpl:Z}=e("@tensorflow/tfjs-backend-cpu/dist/shared")},{"@tensorflow/tfjs-backend-cpu/dist/shared":"8xYEJ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8xYEJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"simpleAbsImpl",()=>a.simpleAbsImpl),s.export(r,"addImpl",()=>o.addImpl),s.export(r,"bincountImpl",()=>l.bincountImpl),s.export(r,"bincountReduceImpl",()=>l.bincountReduceImpl),s.export(r,"bitwiseAndImpl",()=>i.bitwiseAndImpl),s.export(r,"castImpl",()=>u.castImpl),s.export(r,"ceilImpl",()=>p.ceilImpl),s.export(r,"concatImpl",()=>c.concatImpl),s.export(r,"equalImpl",()=>d.equalImpl),s.export(r,"expImpl",()=>f.expImpl),s.export(r,"expm1Impl",()=>m.expm1Impl),s.export(r,"floorImpl",()=>h.floorImpl),s.export(r,"floorDivImpl",()=>g.floorDivImpl),s.export(r,"gatherNdImpl",()=>x.gatherNdImpl),s.export(r,"gatherV2Impl",()=>v.gatherV2Impl),s.export(r,"greaterImpl",()=>y.greaterImpl),s.export(r,"greaterEqualImpl",()=>b.greaterEqualImpl),s.export(r,"lessImpl",()=>_.lessImpl),s.export(r,"lessEqualImpl",()=>k.lessEqualImpl),s.export(r,"linSpaceImpl",()=>j.linSpaceImpl),s.export(r,"logImpl",()=>I.logImpl),s.export(r,"maxImpl",()=>w.maxImpl),s.export(r,"maximumImpl",()=>T.maximumImpl),s.export(r,"minimumImpl",()=>N.minimumImpl),s.export(r,"multiplyImpl",()=>S.multiplyImpl),s.export(r,"negImpl",()=>C.negImpl),s.export(r,"notEqualImpl",()=>E.notEqualImpl),s.export(r,"prodImpl",()=>F.prodImpl),s.export(r,"raggedGatherImpl",()=>A.raggedGatherImpl),s.export(r,"raggedRangeImpl",()=>R.raggedRangeImpl),s.export(r,"raggedTensorToTensorImpl",()=>P.raggedTensorToTensorImpl),s.export(r,"rangeImpl",()=>D.rangeImpl),s.export(r,"rsqrtImpl",()=>$.rsqrtImpl),s.export(r,"scatterImpl",()=>O.scatterImpl),s.export(r,"sigmoidImpl",()=>M.sigmoidImpl),s.export(r,"sliceImpl",()=>W.sliceImpl),s.export(r,"sparseFillEmptyRowsImpl",()=>B.sparseFillEmptyRowsImpl),s.export(r,"sparseReshapeImpl",()=>L.sparseReshapeImpl),s.export(r,"sparseSegmentReductionImpl",()=>V.sparseSegmentReductionImpl),s.export(r,"sqrtImpl",()=>U.sqrtImpl),s.export(r,"squaredDifferenceImpl",()=>G.squaredDifferenceImpl),s.export(r,"staticRegexReplaceImpl",()=>z.staticRegexReplaceImpl),s.export(r,"stridedSliceImpl",()=>Q.stridedSliceImpl),s.export(r,"stringNGramsImpl",()=>q.stringNGramsImpl),s.export(r,"stringSplitImpl",()=>H.stringSplitImpl),s.export(r,"stringToHashBucketFastImpl",()=>K.stringToHashBucketFastImpl),s.export(r,"subImpl",()=>X.subImpl),s.export(r,"tileImpl",()=>Y.tileImpl),s.export(r,"topKImpl",()=>J.topKImpl),s.export(r,"transposeImpl",()=>Z.transposeImpl),s.export(r,"uniqueImpl",()=>ee.uniqueImpl);var a=e("./kernels/Abs"),o=e("./kernels/Add"),l=e("./kernels/Bincount_impl"),i=e("./kernels/BitwiseAnd"),u=e("./kernels/Cast"),p=e("./kernels/Ceil"),c=e("./kernels/Concat_impl"),d=e("./kernels/Equal"),f=e("./kernels/Exp"),m=e("./kernels/Expm1"),h=e("./kernels/Floor"),g=e("./kernels/FloorDiv"),x=e("./kernels/GatherNd_Impl"),v=e("./kernels/GatherV2_impl"),y=e("./kernels/Greater"),b=e("./kernels/GreaterEqual"),_=e("./kernels/Less"),k=e("./kernels/LessEqual"),j=e("./kernels/LinSpace_impl"),I=e("./kernels/Log"),w=e("./kernels/Max_impl"),T=e("./kernels/Maximum"),N=e("./kernels/Minimum"),S=e("./kernels/Multiply"),C=e("./kernels/Neg"),E=e("./kernels/NotEqual"),F=e("./kernels/Prod"),A=e("./kernels/RaggedGather_impl"),R=e("./kernels/RaggedRange_impl"),P=e("./kernels/RaggedTensorToTensor_impl"),D=e("./kernels/Range_impl"),$=e("./kernels/Rsqrt"),O=e("./kernels/Scatter_impl"),M=e("./kernels/Sigmoid"),W=e("./kernels/Slice"),B=e("./kernels/SparseFillEmptyRows_impl"),L=e("./kernels/SparseReshape_impl"),V=e("./kernels/SparseSegmentReduction_impl"),U=e("./kernels/Sqrt"),G=e("./kernels/SquaredDifference"),z=e("./kernels/StaticRegexReplace"),Q=e("./kernels/StridedSlice_impl"),q=e("./kernels/StringNGrams_impl"),H=e("./kernels/StringSplit_impl"),K=e("./kernels/StringToHashBucketFast_impl"),X=e("./kernels/Sub"),Y=e("./kernels/Tile_impl"),J=e("./kernels/TopK_impl"),Z=e("./kernels/Transpose_impl"),ee=e("./kernels/Unique_impl")},{"./kernels/Abs":"l1fu2","./kernels/Add":"1JfHj","./kernels/Bincount_impl":"ceVxB","./kernels/BitwiseAnd":"jaEPk","./kernels/Cast":"cMwEt","./kernels/Ceil":"9E97z","./kernels/Concat_impl":"8toKD","./kernels/Equal":"hGYXP","./kernels/Exp":"d2WVN","./kernels/Expm1":"6wCyc","./kernels/Floor":"d8vHS","./kernels/FloorDiv":"24gWZ","./kernels/GatherNd_Impl":"1Ft9I","./kernels/GatherV2_impl":"7ukZH","./kernels/Greater":"1ATD8","./kernels/GreaterEqual":"aNJ5D","./kernels/Less":"8Tr8X","./kernels/LessEqual":"kA9T4","./kernels/LinSpace_impl":"ctjgv","./kernels/Log":"cZeHh","./kernels/Max_impl":"jxxkk","./kernels/Maximum":"9lCQT","./kernels/Minimum":"31JS7","./kernels/Multiply":"dvGJ0","./kernels/Neg":"iuSgJ","./kernels/NotEqual":"3Xx4N","./kernels/Prod":"4VmTK","./kernels/RaggedGather_impl":"kXBNx","./kernels/RaggedRange_impl":"56JXs","./kernels/RaggedTensorToTensor_impl":"bqJDy","./kernels/Range_impl":"egj95","./kernels/Rsqrt":"4j1GM","./kernels/Scatter_impl":"kduZ3","./kernels/Sigmoid":"8bByZ","./kernels/Slice":"dHddY","./kernels/SparseFillEmptyRows_impl":"c6AeG","./kernels/SparseReshape_impl":"5soT4","./kernels/SparseSegmentReduction_impl":"73Ezr","./kernels/Sqrt":"45xsA","./kernels/SquaredDifference":"4q6UK","./kernels/StaticRegexReplace":"6lMX2","./kernels/StridedSlice_impl":"3XL7y","./kernels/StringNGrams_impl":"acuWz","./kernels/StringSplit_impl":"hVXkV","./kernels/StringToHashBucketFast_impl":"6n7GK","./kernels/Sub":"5EzoO","./kernels/Tile_impl":"1lWzm","./kernels/TopK_impl":"kIJEs","./kernels/Transpose_impl":"itrtA","./kernels/Unique_impl":"8WaZh","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],l1fu2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"simpleAbsImpl",()=>l),s.export(r,"abs",()=>i),s.export(r,"absConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let t=new Float32Array(e.length);for(let r=0;r{let{x:t}=e.inputs,r=e.backend;(0,o.assertNotComplex)(t,"abs");let n=new Float32Array(a.util.sizeFromShape(t.shape));return n=l(r.data.get(t.dataId).values),r.makeOutput(n,t.shape,t.dtype)},u={kernelName:a.Abs,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aSshR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"assertNotComplex",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t){Array.isArray(e)||(e=[e]),e.forEach(e=>{null!=e&&a.util.assert("complex64"!==e.dtype,()=>`${t} does not support complex64 tensors in the CPU backend.`)})}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1JfHj":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addImpl",()=>i),s.export(r,"addComplexImpl",()=>u),s.export(r,"add",()=>p),s.export(r,"addConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e+t),u=(0,l.createComplexBinaryKernelImpl)((e,t,r,n)=>({real:e+r,imag:t+n})),p=(0,l.binaryKernelFunc)(a.Add,i,u),c={kernelName:a.Add,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1mxo2":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"createSimpleBinaryKernelImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e){return(t,r,n,s,o)=>{let l=a.backend_util.assertAndGetBroadcastShape(t,r),i=l.length,u=a.util.computeStrides(l),p=a.util.sizeFromShape(l),c=a.util.getTypedArrayFromDType(o,p),d=t.length,f=r.length,m=a.util.computeStrides(t),h=a.util.computeStrides(r),g=a.backend_util.getBroadcastDims(t,l),x=a.backend_util.getBroadcastDims(r,l);if(g.length+x.length===0)for(let t=0;to[e]=0);let l=a.util.locToIndex(o,d,m),p=r.slice(-f);x.forEach(e=>p[e]=0);let v=a.util.locToIndex(p,f,h);c[t]=e(n[l],s[v])}return[c,l]}}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jPAKn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"binaryKernelFunc",()=>u),s.export(r,"createComplexBinaryKernelImpl",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../kernels/Cast"),i=e("../kernels/Complex");function u(e,t,r,n){return null==r?({inputs:r,backend:s})=>{let{a:l,b:i}=r;(0,o.assertNotComplex)([l,i],e);let u=s.data.get(l.dataId).values,p=s.data.get(i.dataId).values,c="string"===l.dtype?a.backend_util.fromUint8ToStringArray(u):u,d="string"===l.dtype?a.backend_util.fromUint8ToStringArray(p):p,f=n||l.dtype,[m,h]=t(l.shape,i.shape,c,d,f);return s.makeTensorInfo(h,f,m)}:({inputs:e,backend:s})=>{let{a,b:o}=e;if("complex64"===a.dtype||"complex64"===o.dtype){let e=(0,l.cast)({inputs:{x:a},backend:s,attrs:{dtype:"complex64"}}),t=s.data.get(e.dataId),n=t.complexTensorInfos.real,u=t.complexTensorInfos.imag,p=s.data.get(n.dataId).values,c=s.data.get(u.dataId).values,d=(0,l.cast)({inputs:{x:o},backend:s,attrs:{dtype:"complex64"}}),f=s.data.get(d.dataId),m=f.complexTensorInfos.real,h=f.complexTensorInfos.imag,g=s.data.get(m.dataId).values,x=s.data.get(h.dataId).values,[v,y,b]=r(a.shape,o.shape,p,c,g,x),_=s.makeTensorInfo(b,"float32",v),k=s.makeTensorInfo(b,"float32",y),j=(0,i.complex)({inputs:{real:_,imag:k},backend:s});return s.disposeIntermediateTensorInfo(e),s.disposeIntermediateTensorInfo(d),s.disposeIntermediateTensorInfo(_),s.disposeIntermediateTensorInfo(k),j}{let e=s.data.get(a.dataId).values,r=s.data.get(o.dataId).values,l=n||a.dtype,[i,u]=t(a.shape,o.shape,e,r,l);return s.makeTensorInfo(u,l,i)}}}function p(e){return(t,r,n,s,o,l)=>{let i=a.backend_util.assertAndGetBroadcastShape(t,r),u=a.util.sizeFromShape(i),p=i.length,c=a.util.computeStrides(i),d=a.util.getTypedArrayFromDType("float32",u),f=a.util.getTypedArrayFromDType("float32",u),m=a.backend_util.getBroadcastDims(t,i),h=a.backend_util.getBroadcastDims(r,i),g=a.backend_util.mergeRealAndImagArrays(n,s),x=a.backend_util.mergeRealAndImagArrays(o,l),v=t.length,y=a.util.computeStrides(t),b=r.length,_=a.util.computeStrides(r);if(m.length+h.length===0)for(let t=0;tn[e]=0);let s=a.util.locToIndex(n,v,y),o=r.slice(-b);h.forEach(e=>o[e]=0);let l=a.util.locToIndex(o,b,_),i=e(g[2*s],g[2*s+1],x[2*l],x[2*l+1]);d[t]=i.real,f[t]=i.imag}return[d,f,i]}}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","../kernels/Cast":"cMwEt","../kernels/Complex":"iqjKD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cMwEt:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"castImpl",()=>c),s.export(r,"cast",()=>d),s.export(r,"castConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/zeros_impl"),i=e("./Complex"),u=e("./Identity"),p=e("./Real");function c(e,t,r,n){if("int32"===n)return[t,"int32",Int32Array.from(e)];if("bool"===n){let n=a.util.toTypedArray([0],r),[s,l]=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e!==t))(t,[],e,n,"bool");return[l,"bool",s]}throw Error(`Error in Cast: failed to cast ${r} to ${n}`)}function d(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{dtype:o}=n;if("complex64"===o){if("complex64"===s.dtype)return(0,u.identity)({inputs:{x:s},backend:r});let e=(0,l.zeros)(r,s.shape,s.dtype),t=d({inputs:{x:s},backend:r,attrs:{dtype:"float32"}}),n=(0,i.complex)({inputs:{real:t,imag:e},backend:r});return r.disposeIntermediateTensorInfo(e),r.disposeIntermediateTensorInfo(t),n}if("complex64"===s.dtype){let e=(0,p.real)({inputs:{input:s},backend:r}),t=d({inputs:{x:e},backend:r,attrs:{dtype:o}});return r.disposeIntermediateTensorInfo(e),t}if(!a.util.hasEncodingLoss(s.dtype,o)){let e=(0,u.identity)({inputs:{x:s},backend:r});return{dataId:e.dataId,shape:e.shape,dtype:o}}let[f,m,h]=c(r.data.get(s.dataId).values,s.shape,s.dtype,o);return r.makeTensorInfo(f,m,h)}let f={kernelName:a.Cast,backendName:"cpu",kernelFunc:d}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/zeros_impl":"kE711","./Complex":"iqjKD","./Identity":"bdLxl","./Real":"bLoe4","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kE711:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"zeros",()=>function e(t,r,n="float32"){if("complex64"===n){let n=e(t,r,"float32"),s=e(t,r,"float32");return(0,o.complex)({inputs:{real:n,imag:s},backend:t})}let s=a.util.makeZerosTypedArray(a.util.sizeFromShape(r),n);return t.makeTensorInfo(r,n,s)});var a=e("@tensorflow/tfjs-core"),o=e("../kernels/Complex")},{"@tensorflow/tfjs-core":"biUij","../kernels/Complex":"iqjKD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iqjKD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r}=e,{real:n,imag:s}=t,a=r.data.get(n.dataId).values,o=r.data.get(s.dataId).values,l=r.makeTensorInfo(n.shape,"complex64");return r.data.get(l.dataId).complexTensorInfos={real:r.makeTensorInfo(n.shape,"float32",a),imag:r.makeTensorInfo(s.shape,"float32",o)},l}s.defineInteropFlag(r),s.export(r,"complex",()=>a),s.export(r,"complexConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Complex,backendName:"cpu",kernelFunc:a}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bdLxl:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r}=e,{x:n}=t;return r.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}s.defineInteropFlag(r),s.export(r,"identity",()=>a),s.export(r,"identityConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Identity,backendName:"cpu",kernelFunc:a}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bLoe4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r}=e,{input:n}=t,s=r.data.get(n.dataId).complexTensorInfos.real,a=r.data.get(s.dataId).values;return r.makeTensorInfo(s.shape,s.dtype,a)}s.defineInteropFlag(r),s.export(r,"real",()=>a),s.export(r,"realConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Real,backendName:"cpu",kernelFunc:a}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ceVxB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bincountImpl",()=>o),s.export(r,"bincountReduceImpl",()=>l);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s){let o=a.util.sizeFromShape(n),l=a.util.makeZerosTypedArray(s,r);for(let r=0;r=s||(o>0?l[n]+=t[r]:l[n]+=1)}return l}function l(e,t,r,n=!1){let s=e.shape[0],o=e.shape[1],i=(0,a.buffer)([s,r],t.dtype);for(let a=0;a=r||(n?i.set(1,a,o):t.size>0?i.set(i.get(a,o)+t.get(a,s),a,o):i.set(i.get(a,o)+1,a,o))}return i}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jaEPk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bitwiseAndImpl",()=>i),s.export(r,"bitwiseAnd",()=>u),s.export(r,"bitwiseAndConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e&t),u=(0,l.binaryKernelFunc)(a.BitwiseAnd,i),p={kernelName:a.BitwiseAnd,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9E97z":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ceilImpl",()=>i),s.export(r,"ceil",()=>u),s.export(r,"ceilConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.ceil(e)),u=(0,l.unaryKernelFuncFromImpl)(a.Ceil,i),p={kernelName:a.Ceil,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_impl":"iRTzA","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iRTzA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"createSimpleUnaryImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e){return(t,r,n)=>{let s=a.util.getArrayFromDType(r,t.length);for(let r=0;ri),s.export(r,"unaryKernelFuncFromImpl",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./unary_impl");function i(e,t,r){return u(e,(0,l.createSimpleUnaryImpl)(t),r)}function u(e,t,r){return({inputs:n,attrs:s,backend:l})=>{let i,{x:u}=n;(0,o.assertNotComplex)(u,e);let p=l.data.get(u.dataId).values;if("string"===u.dtype){if(!Array.isArray(p))throw Error("String tensor's value was not an instance of Array");i=a.backend_util.fromUint8ToStringArray(p)}else i=p;let c=r||u.dtype,d=t(i,c,s);return l.makeTensorInfo(u.shape,c,d)}}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./unary_impl":"iRTzA","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8toKD":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concatImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n){let s=a.util.getArrayFromDType(r,a.util.sizeFromShape(t));if(n&&"string"!==r){let t=0;e.forEach(e=>{let r=a.util.sizeFromShape(e.shape);s.set(e.vals,t),t+=r})}else{let n=0;e.forEach(e=>{let o="string"===r?a.backend_util.fromUint8ToStringArray(e.vals):e.vals,l=0;for(let r=0;ri),s.export(r,"equal",()=>u),s.export(r,"equalConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e===t)),u=(0,l.binaryKernelFunc)(a.Equal,i,null,"bool"),p={kernelName:a.Equal,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],d2WVN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expImpl",()=>i),s.export(r,"exp",()=>u),s.export(r,"expConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.exp(e)),u=(0,l.unaryKernelFuncFromImpl)(a.Exp,i,"float32"),p={kernelName:a.Exp,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_impl":"iRTzA","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6wCyc":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expm1Impl",()=>i),s.export(r,"expm1",()=>u),s.export(r,"expm1Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.expm1(e)),u=(0,l.unaryKernelFuncFromImpl)(a.Expm1,i),p={kernelName:a.Expm1,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_impl":"iRTzA","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],d8vHS:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floorImpl",()=>i),s.export(r,"floor",()=>u),s.export(r,"floorConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.floor(e)),u=(0,l.unaryKernelFuncFromImpl)(a.Floor,i),p={kernelName:a.Floor,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_impl":"iRTzA","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"24gWZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floorDivImpl",()=>i),s.export(r,"floorDiv",()=>u),s.export(r,"floorDivConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>Math.floor(e/t)),u=(0,l.binaryKernelFunc)(a.FloorDiv,i,null,"int32"),p={kernelName:a.FloorDiv,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1Ft9I":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherNdImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o,l,i,u){let p=(0,a.buffer)([n,o],r);for(let r=0;r=u/o)throw Error(`Invalid indices: ${n} does not index into ${i}`);for(let e=0;eo);var a=e("@tensorflow/tfjs-core");function o(e,t,r){let n=(0,a.buffer)(r,e.dtype);for(let r=0;ri),s.export(r,"greater",()=>u),s.export(r,"greaterConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e>t)),u=(0,l.binaryKernelFunc)(a.Greater,i,null,"bool"),p={kernelName:a.Greater,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aNJ5D:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"greaterEqualImpl",()=>i),s.export(r,"greaterEqual",()=>u),s.export(r,"greaterEqualConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e>=t)),u=(0,l.binaryKernelFunc)(a.GreaterEqual,i,null,"bool"),p={kernelName:a.GreaterEqual,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8Tr8X":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lessImpl",()=>i),s.export(r,"less",()=>u),s.export(r,"lessConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(ei),s.export(r,"lessEqual",()=>u),s.export(r,"lessEqualConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e<=t)),u=(0,l.binaryKernelFunc)(a.LessEqual,i,null,"bool"),p={kernelName:a.LessEqual,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ctjgv:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"linSpaceImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r){let n=(t-e)/(r-1),s=a.util.makeZerosTypedArray(r,"float32");s[0]=e;for(let e=1;ei),s.export(r,"log",()=>u),s.export(r,"logConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.log(e)),u=(0,l.unaryKernelFuncFromImpl)(a.Log,i),p={kernelName:a.Log,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_impl":"iRTzA","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jxxkk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n){let s=a.util.getTypedArrayFromDType(n,a.util.sizeFromShape(r));for(let r=0;ra)&&(a=t)}s[r]=a}return s}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9lCQT":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maximumImpl",()=>i),s.export(r,"maximum",()=>u),s.export(r,"maximumConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>Math.max(e,t)),u=(0,l.binaryKernelFunc)(a.Maximum,i),p={kernelName:a.Maximum,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"31JS7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"minimumImpl",()=>i),s.export(r,"minimum",()=>u),s.export(r,"minimumConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>Math.min(e,t)),u=(0,l.binaryKernelFunc)(a.Minimum,i),p={kernelName:a.Minimum,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dvGJ0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"multiplyImpl",()=>i),s.export(r,"multiplyComplexImpl",()=>u),s.export(r,"multiply",()=>p),s.export(r,"multiplyConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e*t),u=(0,l.createComplexBinaryKernelImpl)((e,t,r,n)=>({real:e*r-t*n,imag:e*n+t*r})),p=(0,l.binaryKernelFunc)(a.Multiply,i,u),c={kernelName:a.Multiply,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iuSgJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"negImpl",()=>i),s.export(r,"neg",()=>u),s.export(r,"negConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Multiply");function i(e,t,r){let n=a.util.createScalarValue(-1,r);return(0,l.multiplyImpl)([],t,n,e,r)}function u(e){let{inputs:t,backend:r}=e,{x:n}=t;(0,o.assertNotComplex)(n,"neg");let[s,a]=i(r.data.get(n.dataId).values,n.shape,n.dtype);return r.makeTensorInfo(a,n.dtype,s)}let p={kernelName:a.Neg,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./Multiply":"dvGJ0","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3Xx4N":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"notEqualImpl",()=>i),s.export(r,"notEqual",()=>u),s.export(r,"notEqualConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e!==t)),u=(0,l.binaryKernelFunc)(a.NotEqual,i,null,"bool"),p={kernelName:a.NotEqual,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4VmTK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prodImpl",()=>i),s.export(r,"prod",()=>u),s.export(r,"prodConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose");function i(e,t,r,n){let[s,o]=a.backend_util.computeOutAndReduceShapes(e,n),l=(0,a.upcastType)(t,"int32"),i=a.util.makeZerosTypedArray(a.util.sizeFromShape(s),l),u=a.util.sizeFromShape(o);for(let e=0;er.disposeIntermediateTensorInfo(e)),r.makeTensorInfo(_,b,v)}let p={kernelName:a.Prod,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./Transpose":"3cgqd","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3cgqd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transpose",()=>i),s.export(r,"transposeConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose_impl");function i(e){let{inputs:t,attrs:r,backend:n}=e,{x:s}=t,{perm:a}=r;(0,o.assertNotComplex)(s,"transpose");let i=Array(s.shape.length);for(let e=0;eo);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s){let o=t.length,l=a.util.sizeFromShape(t),i=a.util.computeStrides(t),u=a.util.computeStrides(s),p=a.util.getTypedArrayFromDType(r,a.util.sizeFromShape(s));for(let t=0;tl);var a=e("@tensorflow/tfjs-core");function o(e,t){let r=e.slice(0,t);for(;r.length{if(e<0||e>=p){let r=a.util.indexToLoc(t,i.length,a.util.computeStrides(i)).join(",");throw Error(`indices[${r}] = ${e} is not in [0, ${p})`)}}),0===n.length)throw Error("params.rank must be nonzero");let{outSplits:c,valueSlices:d,numValues:f}=function(e,t,r,n){let s=[],a=0,o=Array(t.length-1+r.length).fill(null).map(()=>[0]);for(let e=0;es)throw Error("Ragged splits must not point past values");for(let e=1;et[e])throw Error("Ragged splits must be sorted in ascending order")}let l=1;for(let e=0;e=0){let e=o[s],t=e[e.length-1]-n[l];for(let e=l;es[t]=e)}return t}(c),h=function(e,t,r,n,s){let l=t.slice();l[0]=s;let i=a.util.getArrayFromDType(r,a.util.sizeFromShape(l)),u=e.length,p=0===u?0:u/t[0];return!function(e,t,r,n,s,a){let l=o(t,2)[1],i=o(a,2)[1],u=0;for(let t of r)for(let r=t[0];ro);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o,l){if(t.length>1)throw Error("starts must be a scalar or vector");if(s.length>1)throw Error("limits must be a scalar or vector");if(l.length>1)throw Error("deltas must be a scalar or vector");let i=0===t.length,u=0===s.length,p=0===l.length,c=[];i||c.push(t[0]),u||c.push(s[0]),p||c.push(l[0]);for(let e=1;e0&&as)r=0;else if((r=Math.ceil(Math.abs((a-s)/l)))>0x7fffffff)throw Error("Requires ((limit - start) / delta) <= 2147483647");f[t+1]=f[t]+r}let m=f[d],h=a.util.getArrayFromDType(r,m),g=0;for(let t=0;tp);var a=e("@tensorflow/tfjs-core"),o=a.backend_util.RowPartitionType;class l{constructor(e,t,r,n,s,o,l,i,u,p){this.shape=e,this.shapeShape=t,this.values=r,this.valuesShape=n,this.valuesDType=s,this.defaultValue=o,this.defaultValueShape=l,this.rowPartitionValues=i,this.rowPartitionValuesShapes=u,this.rowPartitionTypes=a.backend_util.getRowPartitionTypesHelper(p),this.raggedRank=a.backend_util.getRaggedRank(this.rowPartitionTypes)}getRowPartitionTypeByDimension(e){return this.rowPartitionTypes[0]===o.FIRST_DIM_SIZE?this.rowPartitionTypes[e+1]:this.rowPartitionTypes[e]}getRowPartitionTensor(e){return this.rowPartitionTypes[0]===o.FIRST_DIM_SIZE?this.rowPartitionValues[e+1]:this.rowPartitionValues[e]}getMaxWidth(e){let t=this.getRowPartitionTensor(e-1);switch(this.getRowPartitionTypeByDimension(e-1)){case o.VALUE_ROWIDS:return l.getMaxWidthValueRowID(t);case o.ROW_SPLITS:return l.getMaxWidthRowSplit(t);default:throw Error(`Cannot handle partition type ${o[this.getRowPartitionTypeByDimension(e-1)]}`)}}static getMaxWidthRowSplit(e){let t=e.length;if(0===t||1===t)return 0;let r=0;for(let n=0;nr&&(r=t)}return r}static getMaxWidthValueRowID(e){let t=e.length;if(0===t)return 0;let r=0,n=e[0],s=0;for(let a=1;a"Final length of result must be equal to firstDimension."),s}calculateOutputIndexRowSplit(e,t,r,n){let s=e.length,a=[];for(let o=0;o0&&a.length!==e[s-1])throw Error("Invalid row split size.");return a}calculateOutputIndexValueRowID(e,t,r,n){let s=e.length,a=[];if(0===s)return[];let o=0,l=e[0];if(l>=t.length)throw Error(`Got currentValueRowId=${l}, which is not less than ${t.length}`);let i=t[l];a.push(i);for(let u=1;u=0&&(++o=t.length)throw Error(`Got nextValueRowId=${s} which is not less than ${t.length}`);i=t[s]}a.push(i)}if(a.length!==e.length)throw Error("Invalid row ids.");return a}calculateOutputIndex(e,t,r,n){let s=this.getRowPartitionTensor(e),a=this.getRowPartitionTypeByDimension(e);switch(a){case o.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,t,r,n);case o.ROW_SPLITS:if(s.length-1>t.length)throw Error(`Row partition size is greater than output size: ${s.length-1} > ${t.length}`);return this.calculateOutputIndexRowSplit(s,t,r,n);default:throw Error(`Unsupported partition type: ${o[a]}`)}}getFirstDimensionSize(){let e=this.rowPartitionValues[0];if(0===this.rowPartitionTypes.length)throw Error("No row_partition_types given.");let t=this.rowPartitionTypes[0];switch(t){case o.FIRST_DIM_SIZE:return e[0];case o.VALUE_ROWIDS:throw Error("Cannot handle VALUE_ROWIDS in first dimension.");case o.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw Error(`Cannot handle type ${o[t]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw Error("Invalid first partition input. Tensor requires at least one element.");let e=this.getFirstDimensionSize(),t=this.calculateOutputSize(e),r=Array(this.raggedRank+1);r[r.length-1]=1;for(let e=r.length-2;e>=0;--e)r[e]=r[e+1]*t[e+1];let n=u(t,!1),s=a.util.getArrayFromDType(this.valuesDType,a.util.sizeFromShape(n));if(r[0]*t[0]>0){let a=this.calculateFirstParentOutputIndex(e,r[0],t[0]);for(let e=1;e<=this.raggedRank;++e)a=this.calculateOutputIndex(e-1,a,r[e],t[e]);this.setOutput(this.raggedRank,a,s,n)}return[n,s]}setOutput(e,t,r,n){if(0===r.length)return;let s=this.values,o=n.slice();o=o.slice(e+1);let l=a.util.sizeFromShape(o),u=t.length,p=this.defaultValue;if(p.length!==l&&1!==p.length){let e=this.defaultValueShape;(0,a.tidy)(()=>{let t=(0,a.reshape)(p,e);p=(0,a.broadcastTo)(t,o).dataSync()})}let c=0,d=0,f=0;for(let e=0;e<=u;++e){let n=e=u&&(n=Math.floor(r.length/l)),n>f)if(1===this.defaultValue.length)r.subarray(f*l,n*l).fill(this.defaultValue[0]),f=n;else for(;n>f;)i(r.slice(f*l),p,l),++f;n<0?(c=e+1,d=f):(c=e,f=(d=f)+1)}}}function i(e,t,r){for(let n=0;n= 0`);if(n<-1)throw Error(`Dimension ${n} must be >= -1`);n=-1}r.push(n)}return r}function p(e,t,r,n,s,a,o,i,u,p){return new l(e,t,r,n,s,a,o,i,u,p).compute()}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],egj95:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rangeImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n){let s=e===t,o=e1;if(s||o||l)return a.util.makeZerosTypedArray(0,n);let i=Math.abs(Math.ceil((t-e)/r)),u=a.util.makeZerosTypedArray(i,n);ti),s.export(r,"rsqrt",()=>u),s.export(r,"rsqrtConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>1/Math.sqrt(e)),u=(0,l.unaryKernelFuncFromImpl)(a.Rsqrt,i),p={kernelName:a.Rsqrt,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_impl":"iRTzA","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kduZ3:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"scatterImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o,l,i,u,p){let c=e.values,d=t.values;if(0===n)return(0,a.buffer)(r,t.dtype);let f=u instanceof a.TensorBuffer?u:(0,a.buffer)([n/s,s],t.dtype);"string"==typeof u||"number"==typeof u?f.values.fill(u):"boolean"==typeof u&&f.values.fill(+u);for(let e=0;e=n/s)throw Error(`Invalid indices: ${a} does not index into ${r}`);for(let r=0;ri),s.export(r,"sigmoid",()=>u),s.export(r,"sigmoidConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>1/(1+Math.exp(-e))),u=(0,l.unaryKernelFunc)(a.Sigmoid,e=>1/(1+Math.exp(-e))),p={kernelName:a.Sigmoid,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_impl":"iRTzA","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dHddY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sliceImpl",()=>l),s.export(r,"slice",()=>i),s.export(r,"sliceConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e,t,r,n,s){let o=a.slice_util.isSliceContinous(n,t,r),l=a.util.sizeFromShape(r),i=a.util.computeStrides(n);if(o){let r=a.slice_util.computeFlatOffset(t,i);return"string"===s?e.slice(r,r+l):e.subarray(r,r+l)}let u="string"===s?a.backend_util.fromUint8ToStringArray(e):e,p=(0,a.buffer)(n,s,u),c=(0,a.buffer)(r,s);for(let e=0;ee+t[r]);c.set(p.get(...n),...r)}return"string"===s?a.backend_util.fromStringArrayToUint8(c.values):c.values}function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{begin:i,size:u}=n;(0,o.assertNotComplex)(s,"slice");let[p,c]=a.slice_util.parseSliceParams(s,i,u);a.slice_util.assertParamsValid(s,p,c);let d=l(r.data.get(s.dataId).values,p,c,s.shape,s.dtype);return r.makeTensorInfo(c,s.dtype,d)}let u={kernelName:a.Slice,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],c6AeG:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseFillEmptyRowsImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o,l){let i=t[0],u=o[0],p=Array(u),c=Array(i),d=t[1];if(0===u){if(0!==i)throw Error(a.backend_util.getSparseFillEmptyRowsIndicesDenseShapeMismatch(i));return[a.util.getArrayFromDType(r,0),[0,d],a.util.getArrayFromDType(s,0),p,c]}let f=!0,m=0,h=Array(u).fill(0);for(let t=0;t=u)throw Error(a.backend_util.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(t,r,u));++h[r],f=f&&r>=m,m=r}let g=!0;for(let e=0;e0&&(h[e]+=h[e-1])}if(g&&f){for(let e=0;eo);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s){let o=a.util.sizeFromShape(n),l=t[0],i=s.length,u=[],p=1,c=-1;for(let e=0;e0){f[d-1]=1;for(let e=d-2;e>=0;--e)f[e]=f[e+1]*n[e+1]}let m=[];if(i>0){m[i-1]=1;for(let e=i-2;e>=0;--e)m[e]=m[e+1]*u[e+1]}let h=a.util.getArrayFromDType(r,l*i);for(let t=0;to);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,l=!1,i=0){let u=n.length,p=[t[0],e.length/t[0]],c=p[1],d=u>0?s[u-1]+1:0;if(d<0)throw Error(a.backend_util.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let f=t.slice();f[0]=d;let m=f.reduce((e,t)=>e*t,1),h=a.util.getArrayFromDType(r,m);if(0===u)return d>0&&h.fill(i),[h,f];if(d<=0)throw Error(a.backend_util.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let g=0,x=1,v=0,y=s[0];for(;;){let t=0;if(x=t)throw Error(a.backend_util.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(y<0||y>=d)throw Error(a.backend_util.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y,d));y>v&&h.fill(i,v*c,y*c);for(let t=g;t=p[0])throw Error(a.backend_util.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(t,n[t],p[0]));for(let t=0;tu)break}return vi),s.export(r,"sqrt",()=>u),s.export(r,"sqrtConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.sqrt(e)),u=(0,l.unaryKernelFunc)(a.Sqrt,e=>Math.sqrt(e)),p={kernelName:a.Sqrt,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_impl":"iRTzA","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4q6UK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"squaredDifferenceImpl",()=>i),s.export(r,"squaredDifference",()=>u),s.export(r,"squaredDifferenceConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>{let r=e-t;return r*r}),u=(0,l.binaryKernelFunc)(a.SquaredDifference,i),p={kernelName:a.SquaredDifference,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6lMX2":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"staticRegexReplaceImpl",()=>i),s.export(r,"staticRegexReplaceConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)((e,t)=>{let{pattern:r,replaceGlobal:n,rewrite:s}=t;return e.replace(new RegExp(r,n?"g":""),s)}),u=(0,l.unaryKernelFuncFromImpl)(a.StaticRegexReplace,i),p={kernelName:a.StaticRegexReplace,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_impl":"iRTzA","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3XL7y":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stridedSliceImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n){let s=(0,a.buffer)(e,t.dtype);for(let e=0;el);var a=e("@tensorflow/tfjs-core");class o{constructor(e,t,r,n,s,o){this.separator=a.util.encodeString(e),this.nGramWidths=t,this.leftPad=a.util.encodeString(r),this.rightPad=a.util.encodeString(n),this.padWidth=s,this.preserveShort=o}getPadWidth(e){return Math.min(this.padWidth<0?e-1:this.padWidth,e-1)}getNumNGrams(e,t){return Math.max(0,e+2*this.getPadWidth(t)-t+1)}createNGrams(e,t,r,n,s,a){for(let o=0;o0?0:o-i);l=0+u*this.leftPad.length;for(let t=0;te.forEach(e=>f[m++]=e);for(let e=0;e0){h(e[d+c-1]);for(let e=0;e0){let e=t[0];if(0!==e)throw Error(`First split value must be 0, got ${e}`);for(let s=1;s=e;if(!(n=n&&t[s]<=r))throw Error(`Invalid split value ${t[s]}, must be in [${e}, ${r}]`);e=t[s]}if(e!==r)throw Error(`Last split value must be data size. Expected ${r}, got ${e}`)}let s=n-1,o=a.util.getArrayFromDType("int32",n);if(0===r||0===n){let e=Array(r);for(let e=0;e<=s;++e)o[e]=0;return[e,o]}o[0]=0;for(let e=1;e<=s;++e){let r=t[e]-t[e-1],n=0;this.nGramWidths.forEach(e=>{n+=this.getNumNGrams(r,e)}),this.preserveShort&&r>0&&0===n&&(n=1),o[e]=o[e-1]+n}let l=Array(o[s]);for(let r=0;r{let o=t[r+1]-t[r],i=this.getNumNGrams(o,a);this.createNGrams(e,n,l,s,i,a),s+=i}),this.preserveShort&&s===o[r]){let a=t[r+1]-t[r];if(0===a)continue;let o=a+2*this.padWidth;this.createNGrams(e,n,l,s,1,o)}}return[l,o]}}function l(e,t,r,n,s,a,l,i){return new o(r,n,s,a,l,i).compute(e,t)}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hVXkV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringSplitImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r){let n=e.length,s=[],o=0,l=0,i=Array(n);for(let a=0;ao);var a=e("@tensorflow/tfjs-core");function o(e,t){let r=a.util.getArrayFromDType("int32",e.length);for(let n=0;ni),s.export(r,"subComplexImpl",()=>u),s.export(r,"sub",()=>p),s.export(r,"subConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e-t),u=(0,l.createComplexBinaryKernelImpl)((e,t,r,n)=>({real:e-r,imag:t-n})),p=(0,l.binaryKernelFunc)(a.Sub,i,u),c={kernelName:a.Sub,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1lWzm":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tileImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t){let r=Array(e.rank);for(let n=0;nl);var a=e("@tensorflow/tfjs-core");let o=(e,t)=>{let r=t.value-e.value;return 0===r?e.index-t.index:r};function l(e,t,r,n,s){let l=t[t.length-1],[i,u]=[e.length/l,l],p=a.util.getTypedArrayFromDType(r,i*n),c=a.util.getTypedArrayFromDType("int32",i*n);for(let t=0;ti[t]={value:e,index:t}),nn;){if(s-n>600){let a=s-n+1,o=r-n+1,l=Math.log(a),i=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*i*(a-i)/a)*Math.sign(o-a/2),p=Math.max(n,Math.floor(r-o*i/a+u)),c=Math.min(s,Math.floor(r+(a-o)*i/a+u));e(t,r,p,c)}let l=t[r],i=n,u=s;for(a.util.swap(t,n,r),o(t[s],l)>0&&a.util.swap(t,n,s);io(t[i],l);)i+=1;for(;o(t[u],l)>0;)u-=1}0===o(t[n],l)?a.util.swap(t,n,u):(u+=1,a.util.swap(t,u,s)),u<=r&&(n=u+1),r<=u&&(s=u-1)}}(i,n),i=i.slice(0,n)),s&&i.sort(o);let d=t*n,f=p.subarray(d,d+n),m=c.subarray(d,d+n);for(let e=0;eo);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n){let s=a.util.parseAxisParam(t,r)[0],o=[1,r[0],1];for(let e=0;e{for(let r=0;ri);var a=e("./gpgpu_math"),o=e("./packing_util"),l=e("./shader_compiler");class i{constructor(e){if(this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length),0===this.rank)this.userCode=` + void main() { + setOutput(vec4(getA(), 0., 0., 0.)); + } + `;else{let e=(0,o.getChannels)("rc",this.rank),t=(0,l.getCoordsDataType)(this.rank),r=this.getOutOfBoundsCondition(e),n=this.getSetup(e),s=this.getOutput(e);this.userCode=` + void main() { + ${t} rc = getOutputCoords(); + + if(${r}) { + setOutput(vec4(0)); + } else { + ${n} + + setOutput(vec4(${s})); + } + } + `}}getSourceCoordsArr(e){let t=[];for(let r=0;r<=1;r++)for(let n=0;n<=1;n++){let s=`${0===r?"r":"rp1"}, ${0===n?"c":"cp1"}`;for(let t=2;t ${this.enableShapeUniforms?"outShape":this.outputShape[0]}`;let t="";for(let r=this.rank-2;r= ${this.enableShapeUniforms?`outShape[${r}]`:this.outputShape[r]}`,r= ${r}; + bool rEdge = rp1 >= ${n}; + `}getOutput(e){let t=this.getSourceCoordsArr(e);if(1===this.rank){let e=this.enableShapeUniforms?"outShape":this.outputShape[0];return`getA(rc), (rc + 1 >= ${e} ? 0. : getA(rc + 1)), 0, 0`}return`getA(${t[0]}), + cEdge ? 0. : getA(${t[1]}), + rEdge ? 0. : getA(${t[2]}), + rEdge || cEdge ? 0. : getA(${t[3]})`}}},{"./gpgpu_math":"1F9Jp","./packing_util":"k3hej","./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],k3hej:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){return["x","y","z","w","u","v"].slice(0,t).map(t=>`${e}.${t}`)}function o(e,t){return 1===t?[e]:a(e,t)}function l(e,t){if(1===e)return"rc";let r="";for(let n=0;na),s.export(r,"getChannels",()=>o),s.export(r,"getSourceCoords",()=>l)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"72Xgh":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ReshapePackedProgram",()=>l);var a=e("./gpgpu_math"),o=e("./shader_compiler_util");class l{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length);let r="";for(let e=0;e<4;e++){let t="thisRC = rc;";e%2==1&&(t+="thisRC.z += 1;"),e>1&&(t+="thisRC.y += 1;"),r+=` + ${t} + ${e>0?"if(thisRC.y < rows && thisRC.z < cols){":""} + int flatIndex = getFlatIndex(thisRC); + + ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex); + vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z)); + + result[${e}] = + getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); + ${e>0?"}":""} + `}this.userCode=` + ${function(e,t){let r=t?o.getLogicalCoordinatesFromFlatIndexByUniform(["r","c","d"],"inputShape"):o.getLogicalCoordinatesFromFlatIndex(["r","c","d"],e);return` + ivec3 inputCoordsFromReshapedOutCoords(int index) { + ${r} + return ivec3(r, c, d); + } + `}(t,this.enableShapeUniforms)} + ${this.enableShapeUniforms?o.getFlatIndexFrom3DOutput():o.getFlatIndexFrom3D(e)} + + void main() { + ivec3 rc = getOutputCoords(); + + vec4 result = vec4(0.); + + ivec3 thisRC; + int rows = ${this.enableShapeUniforms?"outShape[1]":e[1]}; + int cols = ${this.enableShapeUniforms?"outShape[2]":e[2]}; + + ${r} + + setOutput(result); + } + `}}},{"./gpgpu_math":"1F9Jp","./shader_compiler_util":"cJiqQ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jLwum:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TextureManager",()=>i),s.export(r,"computeBytes",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_util"),l=e("./tex_util");class i{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(e,t,r){let n,s=p(t,r),a=c(e,s,r);a in this.freeTextures||(this.freeTextures[a]=[]),a in this.usedTextures||(this.usedTextures[a]=[]);let o=u(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,r);if(this.freeTextures[a].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=o,this.log();let e=this.freeTextures[a].pop();return this.usedTextures[a].push(e),e}return s===l.PhysicalTextureType.PACKED_2X2_FLOAT32?n=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):s===l.PhysicalTextureType.PACKED_2X2_FLOAT16?n=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):s===l.PhysicalTextureType.UNPACKED_FLOAT32?n=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):s===l.PhysicalTextureType.UNPACKED_FLOAT16?n=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):s===l.PhysicalTextureType.PACKED_4X1_UNSIGNED_BYTE&&(n=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[a].push(n),this.numUsedTextures++,this._numBytesAllocated+=o,this.log(),n}releaseTexture(e,t,r,n){if(null==this.freeTextures)return;let s=p(r,n),o=c(t,s,n);o in this.freeTextures||(this.freeTextures[o]=[]);let l=u(t,s,this.gpgpu.gl,this.gpgpu.textureConfig,n),i=(0,a.env)().getNumber("WEBGL_DELETE_TEXTURE_THRESHOLD");-1!==i&&this._numBytesAllocated>i?(this.gpgpu.deleteMatrixTexture(e.texture),this._numBytesAllocated-=l):(this.freeTextures[o].push(e),this.numFreeTextures++,this._numBytesFree+=l),this.numUsedTextures--;let d=this.usedTextures[o],f=d&&d.indexOf(e);if(null==f||f<0)throw Error("Cannot release a texture that was never provided by this texture manager");d[f]=d[d.length-1],d.pop(),this.log()}log(){if(!this.logEnabled)return;let e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);let t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(null!=this.freeTextures){for(let e in this.freeTextures)this.freeTextures[e].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});for(let e in this.usedTextures)this.usedTextures[e].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}}function u(e,t,r,n,s){let a,i=function(e,t){switch(e){case l.PhysicalTextureType.PACKED_2X2_FLOAT32:return(0,o.getInternalFormatForPackedMatrixTexture)(t);case l.PhysicalTextureType.PACKED_2X2_FLOAT16:return(0,o.getInternalFormatForFloat16PackedMatrixTexture)(t);case l.PhysicalTextureType.UNPACKED_FLOAT32:return(0,o.getInternalFormatForFloat32MatrixTexture)(t);case l.PhysicalTextureType.UNPACKED_FLOAT16:return(0,o.getInternalFormatForFloat16MatrixTexture)(t);case l.PhysicalTextureType.PACKED_4X1_UNSIGNED_BYTE:return(0,o.getInternalFormatForUnsignedBytesMatrixTexture)(t);default:throw Error(`Unknown physical texture type ${e}`)}}(t,n);if(s){let[t,r]=(0,l.getPackedMatrixTextureShapeWidthHeight)(e[0],e[1]);a=t*r}else{let[t,r]=(0,l.getUnpackedMatrixTextureShapeWidthHeight)(e[0],e[1]);a=t*r}return a*function(e,t){if(t===e.R32F)return 4;if(t===e.R16F)return 2;if(t===e.RGBA32F)return 16;if(t===e.RGBA)return 16;if(t===e.RGBA16F)return 8;else if(t===e.RGBA8)return 4;throw Error(`Unknown internal format ${t}`)}(r,i)}function p(e,t){if(e===l.TextureUsage.UPLOAD)return l.PhysicalTextureType.PACKED_2X2_FLOAT32;if(e===l.TextureUsage.RENDER||null==e)return(0,a.env)().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?t?l.PhysicalTextureType.PACKED_2X2_FLOAT32:l.PhysicalTextureType.UNPACKED_FLOAT32:t?l.PhysicalTextureType.PACKED_2X2_FLOAT16:l.PhysicalTextureType.UNPACKED_FLOAT16;if(e===l.TextureUsage.DOWNLOAD||e===l.TextureUsage.PIXELS)return l.PhysicalTextureType.PACKED_4X1_UNSIGNED_BYTE;throw Error(`Unknown logical texture type ${e}`)}function c(e,t,r){return`${e[0]}_${e[1]}_${t}_${r}`}},{"@tensorflow/tfjs-core":"biUij","./gpgpu_util":"hYx9D","./tex_util":"jmYC7","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],LccPS:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"UnaryOpProgram",()=>o),s.export(r,"CHECK_NAN_SNIPPET",()=>l),s.export(r,"LINEAR",()=>i),s.export(r,"ABS",()=>u),s.export(r,"STEP",()=>p),s.export(r,"ELU",()=>c),s.export(r,"RELU",()=>d),s.export(r,"RELU6",()=>f),s.export(r,"CLONE",()=>m),s.export(r,"SIGMOID",()=>h);var a=e("./gpgpu_math");class o{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length),this.userCode=` + float unaryOperation(float x) { + ${t} + } + + void main() { + float x = getAAtOutCoords(); + float y = unaryOperation(x); + + setOutput(y); + } + `}}let l="if (isnan(x)) return x;",i="return x;",u="return abs(x);";function p(e=0){return l+` + return x > 0.0 ? 1.0 : float(${e}); + `}let c="return (x >= 0.0) ? x : (exp(x) - 1.0);",d=l+` + return (x < 0.0) ? 0.0 : x; +`,f=l+` + return (x < 0.0) ? 0.0 : min(6.0, x); +`,m="return x;",h="return 1.0 / (1.0 + exp(-1.0 * x));"},{"./gpgpu_math":"1F9Jp","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2qT48":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LINEAR",()=>o),s.export(r,"ELU",()=>l),s.export(r,"RELU",()=>i),s.export(r,"RELU6",()=>u),s.export(r,"SIGMOID",()=>p),s.export(r,"UnaryOpPackedProgram",()=>c);var a=e("./gpgpu_math");let o="return x;",l=` + vec4 result; + + result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); + result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0); + result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0); + result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); + + return result; +`,i=` + vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`,u=` + vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`,p="return 1.0 / (1.0 + exp(-1.0 * x));";class c{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length),this.userCode=` + vec4 unaryOperation(vec4 x) { + ${t} + } + + void main() { + vec4 x = getAAtOutCoords(); + vec4 y = unaryOperation(x); + + setOutput(y); + } + `}}},{"./gpgpu_math":"1F9Jp","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jD6NV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"UnpackProgram",()=>i);var a=e("./gpgpu_math"),o=e("./packing_util"),l=e("./shader_compiler");class i{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length);let t=e.length,r=(0,o.getChannels)("rc",t),n=(0,l.getCoordsDataType)(t),s=(0,o.getSourceCoords)(t,r),i=r.slice(-2),u=t<=1?"rc":`vec2(${i.join(",")})`;this.userCode=` + void main() { + ${n} rc = getOutputCoords(); + vec4 packedInput = getA(${s}); + + setOutput(getChannel(packedInput, ${u})); + } + `}}},{"./gpgpu_math":"1F9Jp","./packing_util":"k3hej","./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lkdID:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"version",()=>a);let a="4.22.0"},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8EsbE":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MathBackendWebGL",()=>i.MathBackendWebGL),s.export(r,"setWebGLContext",()=>u.setWebGLContext),s.export(r,"GPGPUContext",()=>p.GPGPUContext),s.export(r,"gpgpu_util",()=>o),s.export(r,"webgl_util",()=>l),s.export(r,"forceHalfFloat",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_util"),l=e("./webgl_util"),i=e("./backend_webgl"),u=e("./canvas_util"),p=e("./gpgpu_context");function c(){(0,a.env)().set("WEBGL_FORCE_F16_TEXTURES",!0)}},{"@tensorflow/tfjs-core":"biUij","./gpgpu_util":"hYx9D","./webgl_util":"8Bhtc","./backend_webgl":"b3oid","./canvas_util":"6lv4k","./gpgpu_context":"eTBiK","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hyRXv:[function(e,t,r,n){var s=e("@tensorflow/tfjs-core"),a=e("./kernels/_FusedMatMul"),o=e("./kernels/Abs"),l=e("./kernels/Acos"),i=e("./kernels/Acosh"),u=e("./kernels/Add"),p=e("./kernels/AddN"),c=e("./kernels/All"),d=e("./kernels/Any"),f=e("./kernels/ArgMax"),m=e("./kernels/ArgMin"),h=e("./kernels/Asin"),g=e("./kernels/Asinh"),x=e("./kernels/Atan"),v=e("./kernels/Atan2"),y=e("./kernels/Atanh"),b=e("./kernels/AvgPool"),_=e("./kernels/AvgPool3D"),k=e("./kernels/AvgPool3DGrad"),j=e("./kernels/AvgPoolGrad"),I=e("./kernels/BatchMatMul"),w=e("./kernels/BatchNorm"),T=e("./kernels/BatchToSpaceND"),N=e("./kernels/Bincount"),S=e("./kernels/BitwiseAnd"),C=e("./kernels/BroadcastArgs"),E=e("./kernels/Cast"),F=e("./kernels/Ceil"),A=e("./kernels/ClipByValue"),R=e("./kernels/Complex"),P=e("./kernels/ComplexAbs"),D=e("./kernels/Concat"),$=e("./kernels/Conv2D"),O=e("./kernels/Conv2DBackpropFilter"),M=e("./kernels/Conv2DBackpropInput"),W=e("./kernels/Conv3D"),B=e("./kernels/Conv3DBackpropFilterV2"),L=e("./kernels/Conv3DBackpropInputV2"),V=e("./kernels/Cos"),U=e("./kernels/Cosh"),G=e("./kernels/CropAndResize"),z=e("./kernels/Cumprod"),Q=e("./kernels/Cumsum"),q=e("./kernels/DenseBincount"),H=e("./kernels/DepthToSpace"),K=e("./kernels/DepthwiseConv2dNative"),X=e("./kernels/DepthwiseConv2dNativeBackpropFilter"),Y=e("./kernels/DepthwiseConv2dNativeBackpropInput"),J=e("./kernels/Diag"),Z=e("./kernels/Dilation2D"),ee=e("./kernels/Einsum"),et=e("./kernels/Elu"),er=e("./kernels/EluGrad"),en=e("./kernels/Equal"),es=e("./kernels/Erf"),ea=e("./kernels/Exp"),eo=e("./kernels/ExpandDims"),el=e("./kernels/Expm1"),ei=e("./kernels/FFT"),eu=e("./kernels/Fill"),ep=e("./kernels/FlipLeftRight"),ec=e("./kernels/Floor"),ed=e("./kernels/FloorDiv"),ef=e("./kernels/FromPixels"),em=e("./kernels/FusedConv2D"),eh=e("./kernels/FusedDepthwiseConv2D"),eg=e("./kernels/GatherNd"),ex=e("./kernels/GatherV2"),ev=e("./kernels/Greater"),ey=e("./kernels/GreaterEqual"),eb=e("./kernels/Identity"),e_=e("./kernels/IFFT"),ek=e("./kernels/Imag"),ej=e("./kernels/IsFinite"),eI=e("./kernels/IsInf"),ew=e("./kernels/IsNaN"),eT=e("./kernels/LeakyRelu"),eN=e("./kernels/Less"),eS=e("./kernels/LessEqual"),eC=e("./kernels/LinSpace"),eE=e("./kernels/Log"),eF=e("./kernels/Log1p"),eA=e("./kernels/LogicalAnd"),eR=e("./kernels/LogicalNot"),eP=e("./kernels/LogicalOr"),eD=e("./kernels/LRN"),e$=e("./kernels/LRNGrad"),eO=e("./kernels/Max"),eM=e("./kernels/Maximum"),eW=e("./kernels/MaxPool"),eB=e("./kernels/MaxPool3D"),eL=e("./kernels/MaxPool3DGrad"),eV=e("./kernels/MaxPoolGrad"),eU=e("./kernels/MaxPoolWithArgmax"),eG=e("./kernels/Mean"),ez=e("./kernels/Min"),eQ=e("./kernels/Minimum"),eq=e("./kernels/MirrorPad"),eH=e("./kernels/Mod"),eK=e("./kernels/Multinomial"),eX=e("./kernels/Multiply"),eY=e("./kernels/Neg"),eJ=e("./kernels/NonMaxSuppressionV3"),eZ=e("./kernels/NonMaxSuppressionV4"),e0=e("./kernels/NonMaxSuppressionV5"),e1=e("./kernels/NotEqual"),e2=e("./kernels/OneHot"),e3=e("./kernels/OnesLike"),e5=e("./kernels/Pack"),e4=e("./kernels/PadV2"),e6=e("./kernels/Pow"),e8=e("./kernels/Prelu"),e9=e("./kernels/Prod"),e7=e("./kernels/RaggedGather"),te=e("./kernels/RaggedRange"),tt=e("./kernels/RaggedTensorToTensor"),tr=e("./kernels/Range"),tn=e("./kernels/Real"),ts=e("./kernels/RealDiv"),ta=e("./kernels/Reciprocal"),to=e("./kernels/Relu"),tl=e("./kernels/Relu6"),ti=e("./kernels/Reshape"),tu=e("./kernels/ResizeBilinear"),tp=e("./kernels/ResizeBilinearGrad"),tc=e("./kernels/ResizeNearestNeighbor"),td=e("./kernels/ResizeNearestNeighborGrad"),tf=e("./kernels/Reverse"),tm=e("./kernels/RotateWithOffset"),th=e("./kernels/Round"),tg=e("./kernels/Rsqrt"),tx=e("./kernels/ScatterNd"),tv=e("./kernels/SearchSorted"),ty=e("./kernels/Select"),tb=e("./kernels/Selu"),t_=e("./kernels/Sigmoid"),tk=e("./kernels/Sign"),tj=e("./kernels/Sin"),tI=e("./kernels/Sinh"),tw=e("./kernels/Slice"),tT=e("./kernels/Softmax"),tN=e("./kernels/Softplus"),tS=e("./kernels/SpaceToBatchND"),tC=e("./kernels/SparseFillEmptyRows"),tE=e("./kernels/SparseReshape"),tF=e("./kernels/SparseSegmentMean"),tA=e("./kernels/SparseSegmentSum"),tR=e("./kernels/SparseToDense"),tP=e("./kernels/SplitV"),tD=e("./kernels/Sqrt"),t$=e("./kernels/Square"),tO=e("./kernels/SquaredDifference"),tM=e("./kernels/StaticRegexReplace"),tW=e("./kernels/Step"),tB=e("./kernels/StridedSlice"),tL=e("./kernels/StringNGrams"),tV=e("./kernels/StringSplit"),tU=e("./kernels/StringToHashBucketFast"),tG=e("./kernels/Sub"),tz=e("./kernels/Sum"),tQ=e("./kernels/Tan"),tq=e("./kernels/Tanh"),tH=e("./kernels/TensorScatterUpdate"),tK=e("./kernels/Tile"),tX=e("./kernels/TopK"),tY=e("./kernels/Transform"),tJ=e("./kernels/Transpose"),tZ=e("./kernels/Unique"),t0=e("./kernels/Unpack"),t1=e("./kernels/UnsortedSegmentSum"),t2=e("./kernels/ZerosLike");for(let e of[a._fusedMatMulConfig,o.absConfig,l.acosConfig,i.acoshConfig,u.addConfig,p.addNConfig,c.allConfig,d.anyConfig,f.argMaxConfig,m.argMinConfig,h.asinConfig,g.asinhConfig,x.atanConfig,v.atan2Config,y.atanhConfig,b.avgPoolConfig,_.avgPool3DConfig,k.avgPool3DGradConfig,j.avgPoolGradConfig,I.batchMatMulConfig,w.batchNormConfig,T.batchToSpaceNDConfig,N.bincountConfig,S.bitwiseAndConfig,C.broadcastArgsConfig,E.castConfig,F.ceilConfig,A.clipByValueConfig,R.complexConfig,P.complexAbsConfig,D.concatConfig,$.conv2DConfig,O.conv2DBackpropFilterConfig,M.conv2DBackpropInputConfig,W.conv3DConfig,B.conv3DBackpropFilterV2Config,L.conv3DBackpropInputConfig,V.cosConfig,U.coshConfig,G.cropAndResizeConfig,z.cumprodConfig,Q.cumsumConfig,q.denseBincountConfig,H.depthToSpaceConfig,K.depthwiseConv2dNativeConfig,X.depthwiseConv2dNativeBackpropFilterConfig,Y.depthwiseConv2dNativeBackpropInputConfig,J.diagConfig,Z.dilation2DConfig,ee.einsumConfig,et.eluConfig,er.eluGradConfig,en.equalConfig,es.erfConfig,ea.expConfig,eo.expandDimsConfig,el.expm1Config,ei.fftConfig,eu.fillConfig,ep.flipLeftRightConfig,ec.floorConfig,ed.floorDivConfig,ef.fromPixelsConfig,em.fusedConv2DConfig,eh.fusedDepthwiseConv2DConfig,eg.gatherNdConfig,ex.gatherV2Config,ev.greaterConfig,ey.greaterEqualConfig,eb.identityConfig,e_.ifftConfig,ek.imagConfig,ej.isFiniteConfig,eI.isInfConfig,ew.isNaNConfig,eT.leakyReluConfig,eN.lessConfig,eS.lessEqualConfig,eC.linSpaceConfig,eE.logConfig,eF.log1pConfig,eA.logicalAndConfig,eR.logicalNotConfig,eP.logicalOrConfig,eD.LRNConfig,e$.LRNGradConfig,eO.maxConfig,eM.maximumConfig,eW.maxPoolConfig,eB.maxPool3DConfig,eL.maxPool3DGradConfig,eV.maxPoolGradConfig,eU.maxPoolWithArgmaxConfig,eG.meanConfig,ez.minConfig,eQ.minimumConfig,eq.mirrorPadConfig,eH.modConfig,eK.multinomialConfig,eX.multiplyConfig,eY.negConfig,eJ.nonMaxSuppressionV3Config,eZ.nonMaxSuppressionV4Config,e0.nonMaxSuppressionV5Config,e1.notEqualConfig,e2.oneHotConfig,e3.onesLikeConfig,e5.packConfig,e4.padV2Config,e6.powConfig,e8.preluConfig,e9.prodConfig,e7.raggedGatherConfig,te.raggedRangeConfig,tt.raggedTensorToTensorConfig,tr.rangeConfig,tn.realConfig,ts.realDivConfig,ta.reciprocalConfig,to.reluConfig,tl.relu6Config,ti.reshapeConfig,tu.resizeBilinearConfig,tp.resizeBilinearGradConfig,tc.resizeNearestNeighborConfig,td.resizeNearestNeighborGradConfig,tf.reverseConfig,tm.rotateWithOffsetConfig,th.roundConfig,tg.rsqrtConfig,tx.scatterNdConfig,tv.searchSortedConfig,ty.selectConfig,tb.seluConfig,t_.sigmoidConfig,tk.signConfig,tj.sinConfig,tI.sinhConfig,tw.sliceConfig,tT.softmaxConfig,tN.softplusConfig,tS.spaceToBatchNDConfig,tC.sparseFillEmptyRowsConfig,tE.sparseReshapeConfig,tF.sparseSegmentMeanConfig,tA.sparseSegmentSumConfig,tR.sparseToDenseConfig,tP.splitVConfig,tD.sqrtConfig,t$.squareConfig,tO.squaredDifferenceConfig,tM.staticRegexReplaceConfig,tW.stepConfig,tB.stridedSliceConfig,tL.stringNGramsConfig,tV.stringSplitConfig,tU.stringToHashBucketFastConfig,tG.subConfig,tz.sumConfig,tQ.tanConfig,tq.tanhConfig,tH.tensorScatterUpdateConfig,tK.tileConfig,tX.topKConfig,tY.transformConfig,tJ.transposeConfig,tZ.uniqueConfig,t0.unpackConfig,t1.unsortedSegmentSumConfig,t2.zerosLikeConfig])(0,s.registerKernel)(e)},{"@tensorflow/tfjs-core":"biUij","./kernels/_FusedMatMul":"iBNae","./kernels/Abs":"jWk5l","./kernels/Acos":"7j3gu","./kernels/Acosh":"1VbjA","./kernels/Add":"9hSg4","./kernels/AddN":"7lUKm","./kernels/All":"a4kv4","./kernels/Any":"dOsa2","./kernels/ArgMax":"dIvKh","./kernels/ArgMin":"heJQD","./kernels/Asin":"bf3iO","./kernels/Asinh":"9Bin5","./kernels/Atan":"kvGKe","./kernels/Atan2":"9Y9Q9","./kernels/Atanh":"8Ly0o","./kernels/AvgPool":"1D3SK","./kernels/AvgPool3D":"9sCwx","./kernels/AvgPool3DGrad":"luoao","./kernels/AvgPoolGrad":"6L0OF","./kernels/BatchMatMul":"i8dTA","./kernels/BatchNorm":"aHEBx","./kernels/BatchToSpaceND":"eNBxD","./kernels/Bincount":"fObx5","./kernels/BitwiseAnd":"jEqiV","./kernels/BroadcastArgs":"hwBjc","./kernels/Cast":"gbr2B","./kernels/Ceil":"bv9f4","./kernels/ClipByValue":"8fEM6","./kernels/Complex":"fN7J8","./kernels/ComplexAbs":"huldI","./kernels/Concat":"99eNw","./kernels/Conv2D":"2AXF2","./kernels/Conv2DBackpropFilter":"adj3h","./kernels/Conv2DBackpropInput":"37yY1","./kernels/Conv3D":"j7XkX","./kernels/Conv3DBackpropFilterV2":"12kPy","./kernels/Conv3DBackpropInputV2":"99k4w","./kernels/Cos":"cRH7x","./kernels/Cosh":"84qKA","./kernels/CropAndResize":"kVL9C","./kernels/Cumprod":"6Iebd","./kernels/Cumsum":"3ElbW","./kernels/DenseBincount":"j1F7G","./kernels/DepthToSpace":"lBwE2","./kernels/DepthwiseConv2dNative":"iybmn","./kernels/DepthwiseConv2dNativeBackpropFilter":"1PECr","./kernels/DepthwiseConv2dNativeBackpropInput":"5kFJD","./kernels/Diag":"9P3no","./kernels/Dilation2D":"hIDhJ","./kernels/Einsum":"hb4tp","./kernels/Elu":"bP2Cy","./kernels/EluGrad":"2chy9","./kernels/Equal":"8hRle","./kernels/Erf":"glNIu","./kernels/Exp":"1Az5Y","./kernels/ExpandDims":"8Gccb","./kernels/Expm1":"27kYG","./kernels/FFT":"9VoBN","./kernels/Fill":"e9rdf","./kernels/FlipLeftRight":"7AJEx","./kernels/Floor":"fmbXP","./kernels/FloorDiv":"19u50","./kernels/FromPixels":"aePD5","./kernels/FusedConv2D":"hPMC4","./kernels/FusedDepthwiseConv2D":"70OVY","./kernels/GatherNd":"bxpkW","./kernels/GatherV2":"4oWqG","./kernels/Greater":"l81Xk","./kernels/GreaterEqual":"1GezO","./kernels/Identity":"fI9uV","./kernels/IFFT":"eHC6h","./kernels/Imag":"2YczW","./kernels/IsFinite":"hHolW","./kernels/IsInf":"ec2An","./kernels/IsNaN":"19SeZ","./kernels/LeakyRelu":"je8JA","./kernels/Less":"6Lpyh","./kernels/LessEqual":"aCE7c","./kernels/LinSpace":"iUEf1","./kernels/Log":"igGOt","./kernels/Log1p":"96DB5","./kernels/LogicalAnd":"bpNAW","./kernels/LogicalNot":"k1Nis","./kernels/LogicalOr":"35UMf","./kernels/LRN":"8GTy8","./kernels/LRNGrad":"huUNV","./kernels/Max":"ibDAd","./kernels/Maximum":"DKfrD","./kernels/MaxPool":"1hHzY","./kernels/MaxPool3D":"aNSAI","./kernels/MaxPool3DGrad":"7sDRX","./kernels/MaxPoolGrad":"1t5hC","./kernels/MaxPoolWithArgmax":"eO2cQ","./kernels/Mean":"fEe2K","./kernels/Min":"4VMnf","./kernels/Minimum":"eyWlc","./kernels/MirrorPad":"62hPs","./kernels/Mod":"eKw5T","./kernels/Multinomial":"68mmd","./kernels/Multiply":"2bVHl","./kernels/Neg":"8rsJ0","./kernels/NonMaxSuppressionV3":"9Mwgd","./kernels/NonMaxSuppressionV4":"K4Pwt","./kernels/NonMaxSuppressionV5":"4ytP0","./kernels/NotEqual":"gUjt7","./kernels/OneHot":"8dpOL","./kernels/OnesLike":"3l0Co","./kernels/Pack":"kp21h","./kernels/PadV2":"7yedB","./kernels/Pow":"dU2VT","./kernels/Prelu":"3CdUY","./kernels/Prod":"1tGYF","./kernels/RaggedGather":"7W42z","./kernels/RaggedRange":"81NyQ","./kernels/RaggedTensorToTensor":"i0jiS","./kernels/Range":"5tyAf","./kernels/Real":"8FQ28","./kernels/RealDiv":"gEqYa","./kernels/Reciprocal":"zLtsg","./kernels/Relu":"1s4ab","./kernels/Relu6":"lH0Kr","./kernels/Reshape":"2Do1g","./kernels/ResizeBilinear":"cjsd8","./kernels/ResizeBilinearGrad":"2huuw","./kernels/ResizeNearestNeighbor":"1Dxyi","./kernels/ResizeNearestNeighborGrad":"kFmpF","./kernels/Reverse":"3J3Rk","./kernels/RotateWithOffset":"65v6T","./kernels/Round":"8ECWg","./kernels/Rsqrt":"dcXmB","./kernels/ScatterNd":"loFfE","./kernels/SearchSorted":"DXpUT","./kernels/Select":"2PWLQ","./kernels/Selu":"9NWHQ","./kernels/Sigmoid":"6cCYC","./kernels/Sign":"dp8JZ","./kernels/Sin":"ct2Dv","./kernels/Sinh":"c26Zq","./kernels/Slice":"25e33","./kernels/Softmax":"gepZ2","./kernels/Softplus":"4j2t3","./kernels/SpaceToBatchND":"8STND","./kernels/SparseFillEmptyRows":"biy3L","./kernels/SparseReshape":"jOyRx","./kernels/SparseSegmentMean":"iD0FM","./kernels/SparseSegmentSum":"1QCK1","./kernels/SparseToDense":"7Aqau","./kernels/SplitV":"1NShq","./kernels/Sqrt":"dZ6U9","./kernels/Square":"deYhi","./kernels/SquaredDifference":"5unPR","./kernels/StaticRegexReplace":"91ayt","./kernels/Step":"6OAPh","./kernels/StridedSlice":"haVF6","./kernels/StringNGrams":"hsdG9","./kernels/StringSplit":"dBtFt","./kernels/StringToHashBucketFast":"grEDz","./kernels/Sub":"eoz4W","./kernels/Sum":"jCPqj","./kernels/Tan":"1DxYi","./kernels/Tanh":"6x3XV","./kernels/TensorScatterUpdate":"eknBm","./kernels/Tile":"2QC1Z","./kernels/TopK":"1Xjlv","./kernels/Transform":"fm65S","./kernels/Transpose":"c9udT","./kernels/Unique":"8c1i6","./kernels/Unpack":"eFQSo","./kernels/UnsortedSegmentSum":"34lCk","./kernels/ZerosLike":"k8pQn"}],iBNae:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"_fusedMatMul",()=>l),s.export(r,"_fusedMatMulConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./BatchMatMul_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{a:s,b:a,bias:l,preluActivationWeights:i}=t,{transposeA:u,transposeB:p,activation:c,leakyreluAlpha:d}=n;return(0,o.batchMatMulImpl)({a:s,b:a,transposeA:u,transposeB:p,backend:r,bias:l,preluActivationWeights:i,leakyreluAlpha:d,activation:c})}let i={kernelName:a._FusedMatMul,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./BatchMatMul_impl":"5lxDH","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5lxDH":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MATMUL_SHARED_DIM_THRESHOLD",()=>d),s.export(r,"batchMatMulImpl",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../mulmat_packed_gpu"),i=e("./Multiply"),u=e("./Reshape"),p=e("./Sum"),c=e("./Transpose");let d=1e3;function f({a:e,b:t,transposeA:r,transposeB:n,backend:s,bias:f=null,preluActivationWeights:m=null,leakyreluAlpha:h=0,activation:g=null}){let x,v=e.shape.length,y=t.shape.length,b=r?e.shape[v-2]:e.shape[v-1],_=n?t.shape[y-1]:t.shape[y-2],k=r?e.shape[v-1]:e.shape[v-2],j=n?t.shape[y-2]:t.shape[y-1],I=e.shape.slice(0,-2),w=t.shape.slice(0,-2),T=a.util.sizeFromShape(I),N=a.util.sizeFromShape(w),S=a.broadcast_util.assertAndGetBroadcastShape(e.shape.slice(0,-2),t.shape.slice(0,-2)).concat([k,j]);a.util.assert(b===_,()=>`Error in matMul: inner shapes (${b}) and (${_}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${r} and transposeB=${n} must match.`);let C=r?[T,b,k]:[T,k,b],E=n?[N,j,_]:[N,_,j],F=(0,u.reshape)({inputs:{x:e},backend:s,attrs:{shape:C}}),A=(0,u.reshape)({inputs:{x:t},backend:s,attrs:{shape:E}}),R=[F,A],P=Math.max(T,N),D=r?F.shape[1]:F.shape[2],$=null!=f,O=null!=m,M="leakyrelu"===g,W=null!=g?(0,o.mapActivationToShaderProgram)(g,!0):null,B=$||O||M||null!=W;if((1===k||1===j)&&D>d&&!1===B){let e=F,t=A;r&&(e=(0,c.transpose)({inputs:{x:F},backend:s,attrs:{perm:[0,2,1]}}),R.push(e)),n&&(t=(0,c.transpose)({inputs:{x:A},backend:s,attrs:{perm:[0,2,1]}}),R.push(t));let a=1!==j,o=1===j,l=e;a&&(l=(0,u.reshape)({inputs:{x:e},backend:s,attrs:{shape:[P,D,1]}}),R.push(l));let d=t;o&&(d=(0,u.reshape)({inputs:{x:t},backend:s,attrs:{shape:[P,1,D]}}),R.push(d));let f=(0,i.multiply)({inputs:{a:l,b:d},backend:s});x=(0,p.sum)({inputs:{x:f},backend:s,attrs:{axis:1===j?2:1,keepDims:!0}}),R.push(f)}else{let o=(0,a.upcastType)(e.dtype,t.dtype),i=new(0,l.MatMulPackedProgram)(C,E,[P,k,j],r,n,$,W,O,M),u=[F,A];if(null!=f&&u.push(f),O&&u.push(m),M){let e=s.makeTensorInfo([],"float32",a.util.createScalarValue(h,"float32"));u.push(e),R.push(e)}x=s.runWebGLProgram(i,u,o)}let L=(0,u.reshape)({inputs:{x:x},backend:s,attrs:{shape:S}});for(let e of(R.push(x),R))s.disposeIntermediateTensorInfo(e);return L}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../mulmat_packed_gpu":"laYzs","./Multiply":"2bVHl","./Reshape":"2Do1g","./Sum":"jCPqj","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5WW6u":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"CHECK_NAN_SNIPPET_UNARY",()=>f),s.export(r,"unaryKernelFunc",()=>m),s.export(r,"binaryKernelFunc",()=>h),s.export(r,"mapActivationToShaderProgram",()=>g);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu"),i=e("../kernels/Complex"),u=e("../kernels/LeakyRelu"),p=e("../kernels/Prelu"),c=e("../unaryop_gpu"),d=e("../unaryop_packed_gpu");let f="if (isnan(x)) return x;";function m({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:r,dtype:n}){return({inputs:s,backend:o})=>{let l,{x:i}=s,u=n||i.dtype;if(o.shouldExecuteOnCPU([i])&&null!=r){let e=r(o.texData.get(i.dataId).values,u);return o.makeTensorInfo(i.shape,u,e)}return l=(0,a.env)().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&null!=t?new(0,d.UnaryOpPackedProgram)(i.shape,t):new(0,c.UnaryOpProgram)(i.shape,e),o.runWebGLProgram(l,[i],u)}}function h({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:r=!1,supportsComplex:n=!1,cpuKernelImpl:s,dtype:u}){return({inputs:p,backend:c})=>{let d,{a:f,b:m}=p;if(n&&"complex64"===f.dtype){let t=c.texData.get(f.dataId),r=c.texData.get(m.dataId),[n,s]=[[t.complexTensorInfos.real,r.complexTensorInfos.real],[t.complexTensorInfos.imag,r.complexTensorInfos.imag]].map(t=>{let[r,n]=t,s={dataId:r.dataId,dtype:r.dtype,shape:f.shape},l={dataId:n.dataId,dtype:n.dtype,shape:m.shape},i=new(0,o.BinaryOpProgram)(e,f.shape,m.shape);return c.runWebGLProgram(i,[s,l],(0,a.upcastType)(r.dtype,n.dtype))}),l=(0,i.complex)({inputs:{real:n,imag:s},backend:c});return c.disposeIntermediateTensorInfo(n),c.disposeIntermediateTensorInfo(s),l}let h=u||(0,a.upcastType)(f.dtype,m.dtype);if(("string"===f.dtype||"string"===m.dtype||c.shouldExecuteOnCPU([f,m]))&&null!=s){let e=c.texData.get(f.dataId).values,t=c.texData.get(m.dataId).values,r="string"===f.dtype?a.backend_util.fromUint8ToStringArray(e):e,n="string"===f.dtype?a.backend_util.fromUint8ToStringArray(t):t,[o,l]=s(f.shape,m.shape,r,n,h),i=c.makeTensorInfo(l,h);return c.texData.get(i.dataId).values=o,i}return d=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&null!=t?new(0,l.BinaryOpPackedProgram)(t,f.shape,m.shape,r):new(0,o.BinaryOpProgram)(e,f.shape,m.shape),c.runWebGLProgram(d,[f,m],h)}}function g(e,t=!1){if("linear"===e)return t?d.LINEAR:c.LINEAR;if("relu"===e)return t?d.RELU:c.RELU;if("elu"===e)return t?d.ELU:c.ELU;if("relu6"===e)return t?d.RELU6:c.RELU6;if("prelu"===e)return t?p.PRELU_PACKED:p.PRELU;else if("leakyrelu"===e)return t?u.LEAKYRELU_PACKED:u.LEAKYRELU;else if("sigmoid"===e)return t?d.SIGMOID:c.SIGMOID;throw Error(`Activation ${e} has not been implemented for the WebGL backend.`)}},{"@tensorflow/tfjs-core":"biUij","../binaryop_gpu":"iq2Hg","../binaryop_packed_gpu":"g7FAa","../kernels/Complex":"fN7J8","../kernels/LeakyRelu":"je8JA","../kernels/Prelu":"3CdUY","../unaryop_gpu":"LccPS","../unaryop_packed_gpu":"2qT48","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iq2Hg:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"CHECK_NAN_SNIPPET",()=>l),s.export(r,"SQUARED_DIFFERENCE",()=>i),s.export(r,"BinaryOpProgram",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_math");let l=` + if (isnan(a)) return a; + if (isnan(b)) return b; +`,i="return (a - b) * (a - b);";class u{constructor(e,t,r){this.variableNames=["A","B"],this.outputShape=a.backend_util.assertAndGetBroadcastShape(t,r),this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length),this.userCode=` + float binaryOperation(float a, float b) { + ${e} + } + + void main() { + float a = getAAtOutCoords(); + float b = getBAtOutCoords(); + setOutput(binaryOperation(a, b)); + } + `}}},{"@tensorflow/tfjs-core":"biUij","./gpgpu_math":"1F9Jp","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],g7FAa:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"CHECK_NAN_SNIPPET_PACKED",()=>u),s.export(r,"ELU_DER",()=>p),s.export(r,"NOT_EQUAL",()=>c),s.export(r,"BinaryOpPackedProgram",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_math"),l=e("./packing_util"),i=e("./shader_compiler");let u=` + result.r = isNaN.r ? NAN : result.r; + result.g = isNaN.g ? NAN : result.g; + result.b = isNaN.b ? NAN : result.b; + result.a = isNaN.a ? NAN : result.a; +`,p=` + vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); + return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); +`,c=` + return vec4(notEqual(a, b)); +`;class d{constructor(e,t,r,n=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=a.backend_util.assertAndGetBroadcastShape(t,r);let s=this.outputShape.length;this.enableShapeUniforms=(0,o.useShapeUniforms)(s);let u="";if(n)if(0===s||1===a.util.sizeFromShape(this.outputShape))u=` + result.y = 0.; + result.z = 0.; + result.w = 0.; + `;else{let e=(0,i.getCoordsDataType)(s);if(u=` + ${e} coords = getOutputCoords(); + `,1===s)this.enableShapeUniforms?u+=` + result.y = (coords + 1) >= outShape ? 0. : result.y; + result.z = 0.; + result.w = 0.; + `:u+=` + result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y; + result.z = 0.; + result.w = 0.; + `;else{let e=(0,l.getChannels)("coords",s);this.enableShapeUniforms?u+=` + bool nextRowOutOfBounds = + (${e[s-2]} + 1) >= outShape[${s} - 2]; + bool nextColOutOfBounds = + (${e[s-1]} + 1) >= outShape[${s} - 1]; + result.y = nextColOutOfBounds ? 0. : result.y; + result.z = nextRowOutOfBounds ? 0. : result.z; + result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w; + `:u+=` + bool nextRowOutOfBounds = + (${e[s-2]} + 1) >= ${this.outputShape[s-2]}; + bool nextColOutOfBounds = + (${e[s-1]} + 1) >= ${this.outputShape[s-1]}; + result.y = nextColOutOfBounds ? 0. : result.y; + result.z = nextRowOutOfBounds ? 0. : result.z; + result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w; + `}}this.userCode=` + vec4 binaryOperation(vec4 a, vec4 b) { + ${e} + } + + void main() { + vec4 a = getAAtOutCoords(); + vec4 b = getBAtOutCoords(); + + vec4 result = binaryOperation(a, b); + ${u} + + setOutput(result); + } + `}}},{"@tensorflow/tfjs-core":"biUij","./gpgpu_math":"1F9Jp","./packing_util":"k3hej","./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fN7J8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"complex",()=>l),s.export(r,"complexConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Identity");function l(e){let{inputs:t,backend:r}=e,{real:n,imag:s}=t,a=r.makeTensorInfo(n.shape,"complex64"),l=r.texData.get(a.dataId);return l.complexTensorInfos={real:(0,o.identity)({inputs:{x:n},backend:r}),imag:(0,o.identity)({inputs:{x:s},backend:r})},a}let i={kernelName:a.Complex,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Identity":"fI9uV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fI9uV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r}=e,{x:n}=t;return r.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}s.defineInteropFlag(r),s.export(r,"identity",()=>a),s.export(r,"identityConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Identity,backendName:"webgl",kernelFunc:a}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],je8JA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LEAKYRELU",()=>i),s.export(r,"LEAKYRELU_PACKED",()=>u),s.export(r,"leakyRelu",()=>p),s.export(r,"leakyReluConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu");let i="return (a < 0.) ? b * a : a;",u=` + vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); + return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); +`;function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{alpha:p}=n,c=r.makeTensorInfo([],"float32",a.util.createScalarValue(p,"float32")),d=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new(0,l.BinaryOpPackedProgram)(u,s.shape,c.shape):new(0,o.BinaryOpProgram)(i,s.shape,c.shape),f=r.runWebGLProgram(d,[s,c],"float32");return r.disposeIntermediateTensorInfo(c),f}let c={kernelName:a.LeakyRelu,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../binaryop_gpu":"iq2Hg","../binaryop_packed_gpu":"g7FAa","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3CdUY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"PRELU",()=>i),s.export(r,"PRELU_PACKED",()=>u),s.export(r,"prelu",()=>p),s.export(r,"preluConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu");let i="return (a < 0.) ? b * a : a;",u=` + vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); + return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); +`;function p(e){let{inputs:t,backend:r}=e,{x:n,alpha:s}=t,p=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new(0,l.BinaryOpPackedProgram)(u,n.shape,s.shape):new(0,o.BinaryOpProgram)(i,n.shape,s.shape);return r.runWebGLProgram(p,[n,s],"float32")}let c={kernelName:a.Prelu,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../binaryop_gpu":"iq2Hg","../binaryop_packed_gpu":"g7FAa","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],laYzs:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MatMulPackedProgram",()=>o);var a=e("./gpgpu_math");class o{constructor(e,t,r,n=!1,s=!1,o=!1,l=null,i=!1,u=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=r,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length);let p=Math.ceil((n?e[1]:e[2])/2),c=n?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],d=s?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],f="",m="";l&&(f=i?`vec4 activation(vec4 a) { + vec4 b = getPreluActivationWeightsAtOutCoords(); + ${l} + }`:u?`vec4 activation(vec4 a) { + vec4 b = getLeakyreluAlphaAtOutCoords(); + ${l} + }`:`vec4 activation(vec4 x) { + ${l} + }`,m="result = activation(result);"),o&&this.variableNames.push("bias"),i&&this.variableNames.push("preluActivationWeights"),u&&this.variableNames.push("leakyreluAlpha");let h="rc.x",g="rc.x";e[0]d),s.export(r,"multiplyConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_complex_gpu"),l=e("../binaryop_gpu"),i=e("../binaryop_packed_gpu"),u=e("../kernel_utils/shared"),p=e("./Complex");let c="return a * b;";function d(e){let t,{inputs:r,backend:n}=e,{a:s,b:d}=r,f=a.backend_util.upcastType(s.dtype,d.dtype);if("complex64"===s.dtype){let e=n.texData.get(s.dataId),t=n.texData.get(d.dataId),r=new(0,o.BinaryOpComplexProgram)(o.COMPLEX_MULTIPLY.REAL,s.shape,d.shape),a=new(0,o.BinaryOpComplexProgram)(o.COMPLEX_MULTIPLY.IMAG,s.shape,d.shape),l=[{dataId:e.complexTensorInfos.real.dataId,dtype:e.complexTensorInfos.real.dtype,shape:s.shape},{dataId:e.complexTensorInfos.imag.dataId,dtype:e.complexTensorInfos.imag.dtype,shape:s.shape},{dataId:t.complexTensorInfos.real.dataId,dtype:t.complexTensorInfos.real.dtype,shape:d.shape},{dataId:t.complexTensorInfos.imag.dataId,dtype:t.complexTensorInfos.imag.dtype,shape:d.shape}],i=n.runWebGLProgram(r,l,"float32"),u=n.runWebGLProgram(a,l,"float32"),c=(0,p.complex)({inputs:{real:i,imag:u},backend:n});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(u),c}if(n.shouldExecuteOnCPU([s,d])){let e=n.texData.get(s.dataId),t=n.texData.get(d.dataId),[r,a]=(0,u.multiplyImplCPU)(s.shape,d.shape,e.values,t.values,f),o=n.makeTensorInfo(a,f);return n.texData.get(o.dataId).values=r,o}return t=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new(0,i.BinaryOpPackedProgram)(c,s.shape,d.shape):new(0,l.BinaryOpProgram)(c,s.shape,d.shape),n.runWebGLProgram(t,[s,d],f)}let f={kernelName:a.Multiply,backendName:"webgl",kernelFunc:d}},{"@tensorflow/tfjs-core":"biUij","../binaryop_complex_gpu":"3Y6aD","../binaryop_gpu":"iq2Hg","../binaryop_packed_gpu":"g7FAa","../kernel_utils/shared":"lQim5","./Complex":"fN7J8","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3Y6aD":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"COMPLEX_MULTIPLY",()=>o),s.export(r,"BinaryOpComplexProgram",()=>l);var a=e("@tensorflow/tfjs-core");let o={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"};class l{constructor(e,t,r){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=a.backend_util.assertAndGetBroadcastShape(t,r),this.userCode=` + float binaryOpComplex( + float areal, float aimag, float breal, float bimag) { + ${e} + } + + void main() { + float areal = getARealAtOutCoords(); + float aimag = getAImagAtOutCoords(); + float breal = getBRealAtOutCoords(); + float bimag = getBImagAtOutCoords(); + setOutput(binaryOpComplex(areal, aimag, breal, bimag)); + } + `}}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2Do1g":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reshape",()=>i),s.export(r,"reshapeConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reshape"),l=e("../webgl_util");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{shape:i}=n,u=a.util.sizeFromShape(s.shape),p=a.util.inferFromImplicitShape(i,u),c=a.util.sizeFromShape(p);a.util.assert(u===c,()=>`The new shape (${p}) has ${c} elements and the old shape (${s.shape}) has ${u} elements. The new shape and old shape must have the same number of elements.`);let d=r.texData.get(s.dataId);return!d.isPacked||(0,l.isReshapeFree)(s.shape,p)||null!==d.texture&&(0,l.isReshapeFree)(d.shape,p)?(r.incRef(s.dataId),{dataId:s.dataId,shape:p,dtype:s.dtype}):(0,o.packedReshape)(s,p,r)}let u={kernelName:a.Reshape,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/reshape":"57d96","../webgl_util":"8Bhtc","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"57d96":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"packedReshape",()=>l);var a=e("../reshape_packed_gpu"),o=e("../webgl_util");function l(e,t,r){let n=[(0,o.getBatchDim)(e.shape),...(0,o.getRowsCols)(e.shape)],s={dtype:e.dtype,shape:n,dataId:e.dataId},l=[(0,o.getBatchDim)(t),...(0,o.getRowsCols)(t)],i=new(0,a.ReshapePackedProgram)(l,n),u=r.runWebGLProgram(i,[s],e.dtype,[n],!0);return{dataId:u.dataId,shape:t,dtype:u.dtype}}},{"../reshape_packed_gpu":"72Xgh","../webgl_util":"8Bhtc","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jCPqj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sum",()=>l),s.export(r,"sumConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Sum_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:a,keepDims:l}=n;return(0,o.sumImpl)(s,a,l,r)}let i={kernelName:a.Sum,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Sum_impl":"hiAsR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hiAsR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sumImpl",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("./Reshape"),i=e("./Transpose_impl");function u(e,t,r,n){let s=e.shape.length,u=a.util.parseAxisParam(t,e.shape),p=u,c=a.backend_util.getAxesPermutation(p,s),d=null!=c,f=e;d&&(f=(0,i.transposeImpl)(e,c,n),p=a.backend_util.getInnerMostAxes(p.length,s)),a.backend_util.assertAxesAreInnerMostDims("sum",p,s);let[m,h]=a.backend_util.computeOutAndReduceShapes(f.shape,p),g=m;r&&(g=a.backend_util.expandShapeToKeepDim(m,u));let x=a.util.sizeFromShape(h),v=a.util.sizeFromShape(e.shape),y=(0,l.reshape)({inputs:{x:f},attrs:{shape:[v/x,x]},backend:n}),b=(0,a.sumOutType)(e.dtype),_=(0,o.reduce)(y,b,"sum",n),k=(0,l.reshape)({inputs:{x:_},attrs:{shape:g},backend:n});return n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(_),d&&n.disposeIntermediateTensorInfo(f),k}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/reduce":"3I7Fk","./Reshape":"2Do1g","./Transpose_impl":"eGbyc","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3I7Fk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reduce",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../mean_gpu"),l=e("../reduce_gpu");function i(e,t,r,n){let s=function(e){let t=[];for(;0===t.length||1!==t[t.length-1].outSize;){let r=t.length?t[t.length-1].outSize:e[1],n=a.backend_util.computeOptimalWindowSize(r);t.push({inSize:r,windowSize:n,outSize:Math.ceil(r/n)})}return t}(e.shape),i=e;for(let a=0;ao);var a=e("@tensorflow/tfjs-core");class o{constructor(e,t){this.variableNames=["x"];let{windowSize:r,batchSize:n,inSize:s,outSize:o}=e;this.outputShape=[n,o];let l=4*Math.floor(r/4),i=r%4,u="sumValue += dot(values, ones);";if(null!=t){let e=1/t;u=`sumValue += dot(values * ${a.util.isInt(e)?e.toPrecision(2):e}, ones);`}let p="";s%r>0&&(p=` + if (inIdx < 0 || inIdx >= ${s}) { + return 0.0; + } + `),this.userCode=` + const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); + + float getValue(int batch, int inIdx) { + ${p} + return getX(batch, inIdx); + } + + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int outIdx = coords[1]; + int inOffset = outIdx * ${r}; + + float sumValue = 0.0; + + for (int i = 0; i < ${l}; i += 4) { + int inIdx = inOffset + i; + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + getValue(batch, inIdx + 3) + ); + + ${u} + } + + int inIdx = inOffset + ${l}; + if (${1===i}) { + vec4 values = vec4(getValue(batch, inIdx), 0.0, 0.0, 0.0); + + ${u} + } else if (${2===i}) { + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), 0.0, 0.0); + + ${u} + } else if (${3===i}) { + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), 0.0); + + ${u} + } + setOutput(sumValue); + } + `}}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3rKEU":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ReduceProgram",()=>a);class a{constructor(e,t){this.variableNames=["x"];let{windowSize:r,batchSize:n,inSize:s,outSize:a}=e;this.outputShape=[n,a];let o="0.0",l="";"prod"===t?o="1.0":"min"===t?(o="1.0 / 1e-20",l="min"):"max"===t&&(o="-1.0 / 1e-20",l="max");let i=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"sum"===t?i="sumValue":"prod"===t?i="prodValue":"all"===t?i="allValue":"any"===t&&(i="anyValue");let u=4*Math.floor(r/4),p=r%4,c=` + if (${"sum"===t}) { + sumValue += dot(values, ones); + } else if (${"prod"===t}) { + vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]); + prodValue *= tmp[0] * tmp[1]; + } else { + minMaxValue = ${l}(values, minMaxValue); + if (${"min"===t} || ${"max"===t}) { + minMaxValue = ${l}(values, minMaxValue); + bvec4 isNaN = isnan(values); + if (isNaN.r || isNaN.g || isNaN.b || isNaN.a) { + minMaxValue = vec4(NAN); + } + } + } + `,d="vec4";"all"===t?(o="1.0",c=` + bool reducedAllValue = all(values); + float floatedReducedAllValue = float(reducedAllValue); + allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0); + `,d="bvec4"):"any"===t&&(o="0.0",c=` + bool reducedAnyValue = any(values); + float floatedReducedAnyValue = float(reducedAnyValue); + anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0); + `,d="bvec4");let f="";s%r>0&&(f=` + if (inIdx < 0 || inIdx >= ${s}) { + return initializationValue; + } + `),this.userCode=` + const float initializationValue = ${o}; + const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); + + float getValue(int batch, int inIdx) { + ${f} + return getX(batch, inIdx); + } + + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int outIdx = coords[1]; + int inOffset = outIdx * ${r}; + + vec4 minMaxValue = vec4(${o}); + float prodValue = 1.0; + float sumValue = 0.0; + float allValue = 1.0; + float anyValue = 0.0; + + for (int i = 0; i < ${u}; i += 4) { + int inIdx = inOffset + i; + ${d} values = ${d}( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + getValue(batch, inIdx + 3) + ); + + ${c} + } + + int inIdx = inOffset + ${u}; + if (${1===p}) { + ${d} values = ${d}( + getValue(batch, inIdx), + initializationValue, + initializationValue, + initializationValue + ); + + ${c} + } else if (${2===p}) { + ${d} values = ${d}( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + initializationValue, + initializationValue + ); + + ${c} + } else if (${3===p}) { + ${d} values = ${d}( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + initializationValue + ); + + ${c} + } + setOutput(${i}); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eGbyc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transposeImpl",()=>u),s.export(r,"transposeImplCPU",()=>o.transposeImplCPU);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../transpose_gpu"),i=e("../transpose_packed_gpu");function u(e,t,r){let n=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new(0,i.TransposePackedProgram)(e.shape,t):new(0,l.TransposeProgram)(e.shape,t);return r.runWebGLProgram(n,[e],e.dtype)}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","../transpose_gpu":"cl3Ds","../transpose_packed_gpu":"luOxI","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cl3Ds:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TransposeProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t){this.variableNames=["A"];let r=Array(e.length);for(let n=0;n6)throw Error(`Transpose for rank ${t} is not yet supported`);let r=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],n=Array(t);for(let t=0;tl);var a=e("./packing_util"),o=e("./shader_compiler");class l{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0;let r=Array(e.length);for(let n=0;n6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let n=(0,o.getCoordsDataType)(this.rank),s=(0,a.getVecChannels)("rc",this.rank),l=Array(this.rank);for(let e=0;el),s.export(r,"transposeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Transpose_impl");function l(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:a}=r,{perm:l}=s,i=Array(a.shape.length);for(let e=0;ep),s.export(r,"absConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../unaryop_gpu"),i=e("../unaryop_packed_gpu");let u="return abs(x);";function p(e){let t,{inputs:r,backend:n}=e,{x:s}=r;if(n.shouldExecuteOnCPU([s])&&"complex64"!==s.dtype){let e=n.texData.get(s.dataId),t=(0,o.simpleAbsImplCPU)(e.values);return n.makeTensorInfo(s.shape,s.dtype,t)}return t=(0,a.env)().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new(0,i.UnaryOpPackedProgram)(s.shape,u):new(0,l.UnaryOpProgram)(s.shape,u),n.runWebGLProgram(t,[s],s.dtype)}let c={kernelName:a.Abs,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","../unaryop_gpu":"LccPS","../unaryop_packed_gpu":"2qT48","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7j3gu":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acos",()=>i),s.export(r,"acosConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` + if (abs(x) > 1.) { + return NAN; + } + return acos(x); +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Acos,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../unaryop_gpu":"LccPS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1VbjA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acosh",()=>i),s.export(r,"acoshConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` + if (x < 1.0) return NAN; +return log(x + sqrt(x * x - 1.0));`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Acosh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../unaryop_gpu":"LccPS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9hSg4":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addKernelFunc",()=>u),s.export(r,"addConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return a + b;",u=(0,o.binaryKernelFunc)({opSnippet:i,packedOpSnippet:i,supportsComplex:!0,cpuKernelImpl:l.addImplCPU}),p={kernelName:a.Add,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7lUKm":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addN",()=>u),s.export(r,"addNConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../addn_gpu"),l=e("../addn_packed_gpu"),i=e("./Identity");function u(e){let{inputs:t,backend:r}=e;if(1===t.length)return(0,i.identity)({inputs:{x:t[0]},backend:r});if(t.length>(0,a.env)().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){let e=Math.floor(t.length/2),n=u({inputs:t.slice(0,e),backend:r}),s=u({inputs:t.slice(e),backend:r});return u({inputs:[n,s],backend:r})}let n=t.map(e=>e.dtype).reduce((e,t)=>(0,a.upcastType)(e,t)),s=t.map(e=>e.shape),p=(0,a.env)().getBool("WEBGL_PACK")?new(0,l.AddNPackedProgram)(t[0].shape,s):new(0,o.AddNProgram)(t[0].shape,s);return r.runWebGLProgram(p,t,n)}let p={kernelName:a.AddN,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../addn_gpu":"4gcRF","../addn_packed_gpu":"24fmd","./Identity":"fI9uV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4gcRF":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AddNProgram",()=>a);class a{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((e,t)=>`T${t}`);let r=[];this.variableNames.forEach(e=>{r.push(`float v${e} = get${e}AtOutCoords();`)});let n=this.variableNames.map(e=>`v${e}`).join(" + ");this.userCode=` + void main() { + ${r.join("\n ")} + + float result = ${n}; + setOutput(result); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"24fmd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AddNPackedProgram",()=>a);class a{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((e,t)=>`T${t}`);let r=[];this.variableNames.forEach(e=>{r.push(`vec4 v${e} = get${e}AtOutCoords();`)});let n=this.variableNames.map(e=>`v${e}`).join(" + ");this.userCode=` + void main() { + ${r.join("\n ")} + + vec4 result = ${n}; + setOutput(result); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],a4kv4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"all",()=>u),s.export(r,"allConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("./Reshape"),i=e("./Transpose");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u}=r,{axis:p,keepDims:c}=s,d=u.shape.length,f=a.util.parseAxisParam(p,u.shape),m=f,h=a.backend_util.getAxesPermutation(m,d),g=u;null!=h&&(g=(0,i.transpose)({inputs:{x:u},backend:n,attrs:{perm:h}}),m=a.backend_util.getInnerMostAxes(m.length,d)),a.backend_util.assertAxesAreInnerMostDims("all",m,d);let[x,v]=a.backend_util.computeOutAndReduceShapes(g.shape,m),y=a.util.sizeFromShape(v),b=(0,l.reshape)({inputs:{x:g},backend:n,attrs:{shape:[-1,y]}}),_=(0,o.reduce)(b,b.dtype,"all",n);if(c){let e=a.backend_util.expandShapeToKeepDim(x,f);t=(0,l.reshape)({inputs:{x:_},backend:n,attrs:{shape:e}})}else t=(0,l.reshape)({inputs:{x:_},backend:n,attrs:{shape:x}});return n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(_),null!=h&&n.disposeIntermediateTensorInfo(g),t}let p={kernelName:a.All,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/reduce":"3I7Fk","./Reshape":"2Do1g","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dOsa2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"any",()=>u),s.export(r,"anyConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("./Reshape"),i=e("./Transpose");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u}=r,{axis:p,keepDims:c}=s,d=u.shape.length,f=a.util.parseAxisParam(p,u.shape),m=f,h=a.backend_util.getAxesPermutation(m,d),g=u;null!=h&&(g=(0,i.transpose)({inputs:{x:u},backend:n,attrs:{perm:h}}),m=a.backend_util.getInnerMostAxes(m.length,d)),a.backend_util.assertAxesAreInnerMostDims("any",m,d);let[x,v]=a.backend_util.computeOutAndReduceShapes(g.shape,m),y=a.util.sizeFromShape(v),b=(0,l.reshape)({inputs:{x:g},backend:n,attrs:{shape:[-1,y]}}),_=(0,o.reduce)(b,b.dtype,"any",n);if(c){let e=a.backend_util.expandShapeToKeepDim(x,f);t=(0,l.reshape)({inputs:{x:_},backend:n,attrs:{shape:e}})}else t=(0,l.reshape)({inputs:{x:_},backend:n,attrs:{shape:x}});return n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(_),null!=h&&n.disposeIntermediateTensorInfo(g),t}let p={kernelName:a.Any,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/reduce":"3I7Fk","./Reshape":"2Do1g","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dIvKh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMax",()=>i),s.export(r,"argMaxConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/arg_min_max"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i}=n,u=a.util.parseAxisParam(i,s.shape),p=a.backend_util.getAxesPermutation(u,s.shape.length),c=s,d=[];null!=p&&(d.push(c=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:p}})),u=a.backend_util.getInnerMostAxes(u.length,c.shape.length)),a.backend_util.assertAxesAreInnerMostDims("argMax",[u[0]],c.shape.length);let f=(0,o.argMinMaxReduce)(r,c,u[0],"max");return d.forEach(e=>r.disposeIntermediateTensorInfo(e)),f}let u={kernelName:a.ArgMax,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/arg_min_max":"28xQ9","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"28xQ9":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMinMaxReduce",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../argminmax_gpu"),l=e("../argminmax_packed_gpu"),i=e("../kernels/Reshape");function u(e,t,r,n){let s=[r];if(a.backend_util.assertAxesAreInnerMostDims("arg"+n.charAt(0).toUpperCase()+n.slice(1),s,t.shape.length),!(0,a.env)().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let r=[],l=e.texData.get(t.dataId),u=null!==l&&l.isPacked,p=t;u&&r.push(p=e.unpackTensor(t));let[c,d]=a.backend_util.computeOutAndReduceShapes(p.shape,s),f=a.util.sizeFromShape(d),m=(0,i.reshape)({inputs:{x:p},backend:e,attrs:{shape:[-1,f]}});r.push(m);let h=function e(t,r,n,s=null){let l=r.shape[0],i=r.shape[1];null!=s&&(l=s.shape[0],i=s.shape[1]);let u=a.backend_util.computeOptimalWindowSize(i),p={windowSize:u,inSize:i,batchSize:l,outSize:Math.ceil(i/u)},c=new(0,o.ArgMinMaxProgram)(p,n,null==s),d=[r];null!=s&&d.push(s);let f=t.runWebGLProgram(c,d,"int32");if(1===f.shape[1])return f;let m=e(t,r,n,f);return t.disposeIntermediateTensorInfo(f),m}(e,m,n);r.push(h);let g=(0,i.reshape)({inputs:{x:h},backend:e,attrs:{shape:c}});return r.forEach(t=>e.disposeIntermediateTensorInfo(t)),g}return function e(t,r,n,s=null){let o=null!=s?s.shape:r.shape,i=o[o.length-1],u=a.backend_util.computeOptimalWindowSize(i),p=new(0,l.ArgMinMaxPackedProgram)(o,u,n,null==s),c=null==s?[r]:[r,s],d=t.runWebGLProgram(p,c,"int32");if(d.shape.length===r.shape.length){let s=e(t,r,n,d);return t.disposeIntermediateTensorInfo(d),s}return d}(e,t,n)}},{"@tensorflow/tfjs-core":"biUij","../argminmax_gpu":"dQA2L","../argminmax_packed_gpu":"fO3CD","../kernels/Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dQA2L:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ArgMinMaxProgram",()=>a);class a{constructor(e,t,r){this.variableNames=["A"];let{windowSize:n,batchSize:s,outSize:a}=e;r||this.variableNames.push("bestIndicesA"),this.outputShape=[s,a],this.userCode=` + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int outIdx = coords[1]; + int inOffset = outIdx * ${n}; + + int bestIndex = inOffset; + float bestValue = getA(batch, bestIndex); + + for (int i = 0; i < ${n}; i++) { + int inIdx = ${r?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));"}; + float candidate = getA(batch, inIdx); + if (candidate ${"max"===t?">":"<"} bestValue) { + bestValue = candidate; + bestIndex = inIdx; + } + } + setOutput(float(bestIndex)); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fO3CD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ArgMinMaxPackedProgram",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./packing_util"),l=e("./shader_compiler");class i{constructor(e,t,r,n){let s,i;this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,a.util.assert(e.length>2,()=>`Packed arg${r.charAt(0).toUpperCase()+r.slice(1)} supports only inputs with rank above 2.`);let u=Math.ceil(e[e.length-1]/t);this.outputShape=e.slice(0,-1),u>1&&this.outputShape.push(u),n||this.variableNames.push("bestIndicesA");let p=this.outputShape,c=p.length,d=(0,l.getCoordsDataType)(c),f=(0,o.getChannels)("coords",c);if(1===u){i=c+1;let e=(0,l.getCoordsDataType)(i);s=` + ${e} sourceLocR = ${e}(${f.join()}, 0); + ++${f[c-1]}; + ${e} sourceLocG = ${e}(${f.join()}, 0); + ++${f[c-2]}; + ${e} sourceLocA = ${e}(${f.join()}, 0); + --${f[c-1]}; + ${e} sourceLocB = ${e}(${f.join()}, 0); + --${f[c-2]};`}else i=c,s=` + ${d} sourceLocR = coords; + ++${f[c-1]}; + ${d} sourceLocG = coords; + ++${f[c-2]}; + ${d} sourceLocA = coords; + --${f[c-1]}; + ${d} sourceLocB = coords; + --${f[c-2]};`;let m=["x","y","z","w","u","v"].slice(0,i),h="."+m[i-1],g=m.map(e=>"int "+e),x=(0,o.getChannels)("sourceLocR",i-1).concat("inIdx.r"),v=(0,o.getChannels)("sourceLocG",i-1).concat("inIdx.g"),y=(0,o.getChannels)("sourceLocB",i-1).concat("inIdx.b"),b=(0,o.getChannels)("sourceLocA",i-1).concat("inIdx.a"),_="max"===r?"greaterThan":"lessThan",k=n?"":` + inIdx = round(vec4(getBestIndicesAChannel(${x.join()}), + getBestIndicesAChannel(${v.join()}), + getBestIndicesAChannel(${y.join()}), + getBestIndicesAChannel(${b.join()})));`,j=`vec4( + getAChannel(${x.join()}), + hasNextCol ? getAChannel(${v.join()}) : 0., + hasNextRow ? getAChannel(${y.join()}) : 0., + hasNextRow && hasNextCol ? getAChannel(${b.join()}) : 0.)`,I=n?"":` + float getBestIndicesAChannel(${g.join()}) { + return getChannel(getBestIndicesA(${m.join()}), + vec2(${m.slice(-2).join()})); + }`;this.userCode=` + float getAChannel(${g.join()}) { + return getChannel(getA(${m.join()}), + vec2(${m.slice(-2).join()})); + } + ${I} + void main() { + ${d} coords = getOutputCoords(); + bool hasNextCol = ${f[c-1]} < ${p[c-1]-1}; + bool hasNextRow = ${f[c-2]} < ${p[c-2]-1}; + ${s} + ivec4 srcIdx = ivec4(sourceLocR${h}, sourceLocG${h}, + sourceLocB${h}, sourceLocA${h}) * ${t}; + ivec4 inIdx = srcIdx; + vec4 bestIndex = vec4(inIdx); + vec4 bestValue = ${j}; + + for (int i = 0; i < ${t}; i++) { + inIdx = srcIdx; + ${k} + vec4 candidate = ${j}; + bvec4 nan = isnan(candidate); + bvec4 replace = bvec4( + vec4(${_}(candidate, bestValue)) * (vec4(1.0) - vec4(nan))); + + bestValue = vec4(replace.x ? candidate.x : bestValue.x, + replace.y ? candidate.y : bestValue.y, + replace.z ? candidate.z : bestValue.z, + replace.w ? candidate.w : bestValue.w); + bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace)); + srcIdx++; + } + setOutput(bestIndex); + } + `}}},{"@tensorflow/tfjs-core":"biUij","./packing_util":"k3hej","./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],heJQD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMin",()=>i),s.export(r,"argMinConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/arg_min_max"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i}=n,u=a.util.parseAxisParam(i,s.shape),p=a.backend_util.getAxesPermutation(u,s.shape.length),c=s,d=[];null!=p&&(d.push(c=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:p}})),u=a.backend_util.getInnerMostAxes(u.length,c.shape.length)),a.backend_util.assertAxesAreInnerMostDims("argMin",[u[0]],c.shape.length);let f=(0,o.argMinMaxReduce)(r,c,u[0],"min");return d.forEach(e=>r.disposeIntermediateTensorInfo(e)),f}let u={kernelName:a.ArgMin,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/arg_min_max":"28xQ9","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bf3iO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asin",()=>i),s.export(r,"asinConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` + if (abs(x) > 1.) { + return NAN; + } + return asin(x); +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Asin,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../unaryop_gpu":"LccPS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9Bin5":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asinh",()=>i),s.export(r,"asinhConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+"return log(x + sqrt(x * x + 1.0));",i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Asinh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../unaryop_gpu":"LccPS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kvGKe:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan",()=>i),s.export(r,"atanConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` + return atan(x); +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Atan,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../unaryop_gpu":"LccPS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9Y9Q9":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan2",()=>c),s.export(r,"atan2Config",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu"),i=e("../kernel_utils/kernel_funcs_utils");let u=o.CHECK_NAN_SNIPPET+` + return atan(a, b); +`,p=` + vec4 result = atan(a, b); + bvec4 isNaNA = isnan(a); + bvec4 isNaNB = isnan(b); + bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w); + `+l.CHECK_NAN_SNIPPET_PACKED+` + return result; +`,c=(0,i.binaryKernelFunc)({opSnippet:u,packedOpSnippet:p}),d={kernelName:a.Atan2,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"biUij","../binaryop_gpu":"iq2Hg","../binaryop_packed_gpu":"g7FAa","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8Ly0o":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atanh",()=>i),s.export(r,"atanhConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` + if ((x < -1.0) || (x > 1.0)) return NAN; +return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Atanh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../unaryop_gpu":"LccPS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1D3SK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool",()=>u),s.export(r,"avgPoolConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../pool_gpu"),l=e("../webgl_util"),i=e("./Identity");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t;(0,l.assertNotComplex)(s,"avgPool");let{filterSize:u,strides:p,pad:c,dimRoundingMode:d}=n;a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(p,1),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${p} and dilations '1'`);let f=a.backend_util.computePool2DInfo(s.shape,u,p,1,c,d);if(1===f.filterWidth&&1===f.filterHeight&&a.util.arraysEqual(f.inShape,f.outShape))return(0,i.identity)({inputs:{x:s},backend:r});let m=new(0,o.Pool2DProgram)(f,"avg",!1);return r.runWebGLProgram(m,[s],"float32")}let p={kernelName:a.AvgPool,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../pool_gpu":"fEtti","../webgl_util":"8Bhtc","./Identity":"fI9uV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fEtti:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Pool2DProgram",()=>a),s.export(r,"Pool3DProgram",()=>o);class a{constructor(e,t,r,n=!1,s=!1){if(this.variableNames=["x"],"avg"===t&&r)throw Error("Cannot compute positions for average pool.");let a=e.filterWidth,o=e.strideHeight,l=e.strideWidth,i=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterHeight,c=e.effectiveFilterWidth,d=e.padInfo.top,f=e.padInfo.left;this.outputShape=e.outShape;let m="avg"===t,h=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`,x="0.0";if(m||(x="-1.0 / 1e-20"),r){this.userCode=` + const ivec2 strides = ivec2(${o}, ${l}); + const ivec2 pads = ivec2(${d}, ${f}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d = coords[3]; + + ivec2 xRCCorner = coords.yz * strides - pads; + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + // max/min x(?, ?, d) to get y(yR, yC, d). + // ? = to be determined + float minMaxValue = 0.0; + float minMaxValueFound = 0.0; + int minMaxPosition = 0; + float avgValue = 0.0; + + for (int wR = 0; wR < ${p}; + wR += ${i}) { + int xR = xRCorner + wR; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${c}; + wC += ${u}) { + int xC = xCCorner + wC; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + float value = getX(batch, xR, xC, d); + + // If a min / max value has already been found, use it. If not, + // use the current value. + float currMinMaxValue = mix( + value, minMaxValue, minMaxValueFound); + if (value >= currMinMaxValue) { + minMaxValue = value; + minMaxValueFound = 1.0; + minMaxPosition = ${n?s?h:g:`wR * ${c} + wC`}; + } + } + } + setOutput(float(minMaxPosition)); + } + `;return}let v=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"avg"===t&&(v="avgValue / max(count, 1.0)");let y=4*Math.floor(a/4),b=a%4,_=` + if (${m}) { + avgValue += dot(values, ones); + } else { + minMaxValue = max(values, minMaxValue); + } + `;this.userCode=` + const ivec2 strides = ivec2(${o}, ${l}); + const ivec2 pads = ivec2(${d}, ${f}); + const float initializationValue = ${x}; + const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); + + float count = 0.0; + + float getValue(int batch, int xR, int xC, int d) { + if (xC < 0 || xC >= ${e.inWidth}) { + return initializationValue; + } + count += 1.0; + return getX(batch, xR, xC, d); + } + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d = coords[3]; + + ivec2 xRCCorner = coords.yz * strides - pads; + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + // max/min x(?, ?, d) to get y(yR, yC, d). + // ? = to be determined + vec4 minMaxValue = vec4(${x}); + float avgValue = 0.0; + count = 0.0; + + for (int wR = 0; wR < ${p}; + wR += ${i}) { + int xR = xRCorner + wR; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${y}; wC += 4) { + int xC = xCCorner + wC * ${u}; + + vec4 values = vec4( + getValue(batch, xR, xC, d), + getValue(batch, xR, xC + ${u}, d), + getValue(batch, xR, xC + 2 * ${u}, d), + getValue(batch, xR, xC + 3 * ${u}, d) + ); + + ${_} + } + + int xC = xCCorner + ${y}; + if (${1===b}) { + vec4 values = vec4( + getValue(batch, xR, xC, d), + initializationValue, + initializationValue, + initializationValue + ); + + ${_} + } else if (${2===b}) { + vec4 values = vec4( + getValue(batch, xR, xC, d), + getValue(batch, xR, xC + ${u}, d), + initializationValue, + initializationValue + ); + + ${_} + } else if (${3===b}) { + vec4 values = vec4( + getValue(batch, xR, xC, d), + getValue(batch, xR, xC + ${u}, d), + getValue(batch, xR, xC + 2 * ${u}, d), + initializationValue + ); + + ${_} + } + } + setOutput(${v}); + } + `}}class o{constructor(e,t,r,n=!1,s=!1){if(this.variableNames=["x"],"avg"===t&&r)throw Error("Cannot compute positions for average pool.");let a=e.filterWidth,o=e.strideDepth,l=e.strideHeight,i=e.strideWidth,u=e.dilationDepth,p=e.dilationHeight,c=e.dilationWidth,d=e.effectiveFilterDepth,f=e.effectiveFilterHeight,m=e.effectiveFilterWidth,h=e.padInfo.front,g=e.padInfo.top,x=e.padInfo.left;this.outputShape=e.outShape;let v="avg"===t,y="0.0";if(v||(y="-1.0 / 1e-20"),r){this.userCode=` + const ivec3 strides = + ivec3(${o}, ${l}, ${i}); + const ivec3 pads = ivec3(${h}, ${g}, ${x}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; + int xDCorner = xCorner.x; + int xRCorner = xCorner.y; + int xCCorner = xCorner.z; + + // max/min x(?, ?, ?, ch) to get y(yD, yR, yC, ch). + // ? = to be determined + float minMaxValue = 0.0; + float minMaxValueFound = 0.0; + int minMaxPosition = 0; + + for (int wD = 0; wD < ${d}; + wD += ${u}) { + int xD = xDCorner + wD; + + if (xD < 0 || xD >= ${e.inDepth}) { + continue; + } + + for (int wR = 0; wR < ${f}; + wR += ${p}) { + int xR = xRCorner + wR; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${m}; + wC += ${c}) { + int xC = xCCorner + wC; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + float value = getX(batch, xD, xR, xC, ch); + + // If a min / max value has already been found, use it. If not, + // use the current value. + float currMinMaxValue = mix( + value, minMaxValue, minMaxValueFound); + if (value >= currMinMaxValue) { + minMaxValue = value; + minMaxValueFound = 1.0; + minMaxPosition = ${n?s?`(((batch * ${e.inDepth} + xD) * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`((xD * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`wD * ${f} * ${m} + + wR * ${m} + wC`}; + } + } + } + } + setOutput(float(minMaxPosition)); + } + `;return}let b=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"avg"===t&&(b="avgValue / max(count, 1.0)");let _=4*Math.floor(a/4),k=a%4,j=` + if (${v}) { + avgValue += dot(values, ones); + } else { + minMaxValue = max(values, minMaxValue); + } + `;this.userCode=` + const ivec3 strides = + ivec3(${o}, ${l}, ${i}); + const ivec3 pads = ivec3(${h}, ${g}, ${x}); + const float initializationValue = ${y}; + const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); + + float count = 0.0; + + float getValue(int batch, int xD, int xR, int xC, int ch) { + if (xC < 0 || xC >= ${e.inWidth}) { + return initializationValue; + } + count += 1.0; + return getX(batch, xD, xR, xC, ch); + } + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; + int xDCorner = xCorner.x; + int xRCorner = xCorner.y; + int xCCorner = xCorner.z; + + // max/min x(?, ?, ?, d) to get y(yD, yR, yC, ch). + // ? = to be determined + vec4 minMaxValue = vec4(${y}); + float avgValue = 0.0; + count = 0.0; + + for (int wD = 0; wD < ${d}; + wD += ${u}) { + int xD = xDCorner + wD; + + if (xD < 0 || xD >= ${e.inDepth}) { + continue; + } + + for (int wR = 0; wR < ${f}; + wR += ${p}) { + int xR = xRCorner + wR; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${_}; wC += 4) { + int xC = xCCorner + wC * ${c}; + + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + getValue(batch, xD, xR, xC + ${c}, ch), + getValue(batch, xD, xR, xC + 2 * ${c}, ch), + getValue(batch, xD, xR, xC + 3 * ${c}, ch) + ); + + ${j} + } + + int xC = xCCorner + ${_}; + if (${1===k}) { + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + initializationValue, + initializationValue, + initializationValue + ); + + ${j} + } else if (${2===k}) { + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + getValue(batch, xD, xR, xC + ${c}, ch), + initializationValue, + initializationValue + ); + + ${j} + } else if (${3===k}) { + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + getValue(batch, xD, xR, xC + ${c}, ch), + getValue(batch, xD, xR, xC + 2 * ${c}, ch), + initializationValue + ); + + ${j} + } + } + } + setOutput(${b}); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9sCwx":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool3D",()=>l),s.export(r,"avgPool3DConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../pool_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{filterSize:l,strides:i,pad:u,dimRoundingMode:p,dataFormat:c}=n,d=a.backend_util.computePool3DInfo(s.shape,l,i,[1,1,1],u,p,c),f=new(0,o.Pool3DProgram)(d,"avg",!1);return r.runWebGLProgram(f,[s],"float32")}let i={kernelName:a.AvgPool3D,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../pool_gpu":"fEtti","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],luoao:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool3DGrad",()=>l),s.export(r,"avgPool3DGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../avg_pool_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:l}=t,{filterSize:i,strides:u,pad:p,dimRoundingMode:c}=n,d=a.backend_util.computePool3DInfo(l.shape,i,u,[1,1,1],p,c),f=new(0,o.AvgPool3DBackpropProgram)(d);return r.runWebGLProgram(f,[s],l.dtype)}let i={kernelName:a.AvgPool3DGrad,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../avg_pool_backprop_gpu":"gntgh","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gntgh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AvgPool2DBackpropProgram",()=>a),s.export(r,"AvgPool3DBackpropProgram",()=>o);class a{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,r=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a=e.dilationHeight,o=e.dilationWidth,l=e.effectiveFilterHeight,i=e.effectiveFilterWidth,u=l-1-e.padInfo.top,p=i-1-e.padInfo.left;this.userCode=` + const ivec2 pads = ivec2(${u}, ${p}); + const float avgMultiplier = float(${1/(t*r)}); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + + ivec2 dyRCCorner = coords.yz - pads; + int dyRCorner = dyRCCorner.x; + int dyCCorner = dyRCCorner.y; + + // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${l}; + wR += ${a}) { + float dyR = float(dyRCorner + wR) / ${n}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${i}; + wC+= ${o}) { + float dyC = float(dyCCorner + wC) / ${s}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(b, idyR, idyC, d); + + dotProd += dyValue * avgMultiplier; + } + } + setOutput(dotProd); + } + `}}class o{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,r=e.filterHeight,n=e.filterWidth,s=e.strideDepth,a=e.strideHeight,o=e.strideWidth,l=e.dilationDepth,i=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterDepth,c=e.effectiveFilterHeight,d=e.effectiveFilterWidth,f=p-1-e.padInfo.front,m=c-1-e.padInfo.top,h=d-1-e.padInfo.left;this.userCode=` + const ivec3 pads = ivec3(${f}, ${m}, ${h}); + const float avgMultiplier = float(${1/(t*r*n)}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; + int dyDCorner = dyCorner.x; + int dyRCorner = dyCorner.y; + int dyCCorner = dyCorner.z; + + // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get + // dx(xD, xR, xC, ch). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + + for (int wD = 0; wD < ${p}; + wD += ${l}) { + float dyD = float(dyDCorner + wD) / ${s}.0; + + if (dyD < 0.0 || dyD >= ${e.outDepth}.0 || fract(dyD) > 0.0) { + continue; + } + int idyD = int(dyD); + + for (int wR = 0; wR < ${c}; + wR += ${i}) { + float dyR = float(dyRCorner + wR) / ${a}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || + fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${d}; + wC += ${u}) { + float dyC = float(dyCCorner + wC) / ${o}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(batch, idyD, idyR, idyC, ch); + + dotProd += dyValue * avgMultiplier; + } + } + } + setOutput(dotProd); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6L0OF":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPoolGrad",()=>i),s.export(r,"avgPoolGradConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../avg_pool_backprop_gpu"),l=e("../webgl_util");function i(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:i}=t;(0,l.assertNotComplex)([s,i],"avgPoolGrad");let{filterSize:u,strides:p,pad:c}=n,d=a.backend_util.computePool2DInfo(i.shape,u,p,1,c),f=new(0,o.AvgPool2DBackpropProgram)(d);return r.runWebGLProgram(f,[s],i.dtype)}let u={kernelName:a.AvgPoolGrad,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../avg_pool_backprop_gpu":"gntgh","../webgl_util":"8Bhtc","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],i8dTA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchMatMul",()=>l),s.export(r,"batchMatMulConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./BatchMatMul_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{a:s,b:a}=t,{transposeA:l,transposeB:i}=n;return(0,o.batchMatMulImpl)({a:s,b:a,transposeA:l,transposeB:i,backend:r})}let i={kernelName:a.BatchMatMul,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./BatchMatMul_impl":"5lxDH","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aHEBx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm",()=>i),s.export(r,"batchNormConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../batchnorm_gpu"),l=e("../batchnorm_packed_gpu");let i=({inputs:e,backend:t,attrs:r})=>{let{x:n,mean:s,variance:i,offset:u,scale:p}=e;a.util.assert(s.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),a.util.assert(null==u||s.shape.length===u.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),a.util.assert(null==p||s.shape.length===p.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:c}=r;null==c&&(c=.001);let d=[n,s,i],f=null;null!=u&&(f=u.shape,d.push(u));let m=null;null!=p&&(m=p.shape,d.push(p));let h=(0,a.env)().getBool("WEBGL_PACK_NORMALIZATION")?new(0,l.BatchNormPackedProgram)(n.shape,s.shape,i.shape,f,m,c):new(0,o.BatchNormProgram)(n.shape,s.shape,i.shape,f,m,c);return t.runWebGLProgram(h,d,d[0].dtype)},u={kernelName:a.FusedBatchNorm,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../batchnorm_gpu":"kqJlo","../batchnorm_packed_gpu":"2VC58","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kqJlo:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"BatchNormProgram",()=>o);var a=e("@tensorflow/tfjs-core");class o{constructor(e,t,r,n,s,o){this.outputShape=[],this.variableNames=["x","mean","variance"],a.backend_util.assertAndGetBroadcastShape(e,t),a.backend_util.assertAndGetBroadcastShape(e,r);let l="0.0";null!=n&&(a.backend_util.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),l="getOffsetAtOutCoords()");let i="1.0";null!=s&&(a.backend_util.assertAndGetBroadcastShape(e,s),this.variableNames.push("scale"),i="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + void main() { + float x = getXAtOutCoords(); + float mean = getMeanAtOutCoords(); + float variance = getVarianceAtOutCoords(); + float offset = ${l}; + float scale = ${i}; + float inv = scale * inversesqrt(variance + float(${o})); + setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); + } + `}}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2VC58":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"BatchNormPackedProgram",()=>o);var a=e("@tensorflow/tfjs-core");class o{constructor(e,t,r,n,s,o){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],a.backend_util.assertAndGetBroadcastShape(e,t),a.backend_util.assertAndGetBroadcastShape(e,r);let l="vec4(0.0)";null!=n&&(a.backend_util.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),l="getOffsetAtOutCoords()");let i="vec4(1.0)";null!=s&&(a.backend_util.assertAndGetBroadcastShape(e,s),this.variableNames.push("scale"),i="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + void main() { + vec4 offset = ${l}; + vec4 scale = ${i}; + + vec4 x = getXAtOutCoords(); + vec4 mean = getMeanAtOutCoords(); + vec4 variance = getVarianceAtOutCoords(); + + vec4 inv = scale * inversesqrt(variance + vec4(${o})); + + setOutput((x - mean) * inv + offset); + } + `}}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eNBxD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchToSpaceND",()=>u),s.export(r,"batchToSpaceNDConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("./Reshape"),l=e("./Slice"),i=e("./Transpose");let u=e=>{let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockShape:u,crops:p}=n;a.util.assert(s.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let c=u.reduce((e,t)=>e*t),d=a.backend_util.getReshaped(s.shape,u,c),f=a.backend_util.getPermuted(d.length,u.length),m=a.backend_util.getReshapedPermuted(s.shape,u,c),h=a.backend_util.getSliceBeginCoords(p,u.length),g=a.backend_util.getSliceSize(m,p,u.length),x=[],v=(0,o.reshape)({inputs:{x:s},backend:r,attrs:{shape:d}}),y=(0,i.transpose)({inputs:{x:v},backend:r,attrs:{perm:f}}),b=(0,o.reshape)({inputs:{x:y},backend:r,attrs:{shape:m}}),_=(0,l.slice)({inputs:{x:b},backend:r,attrs:{begin:h,size:g}});return x.push(v),x.push(y),x.push(b),x.forEach(e=>r.disposeIntermediateTensorInfo(e)),_},p={kernelName:a.BatchToSpaceND,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","./Reshape":"2Do1g","./Slice":"25e33","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"25e33":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice",()=>u),s.export(r,"sliceConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../slice_gpu"),i=e("../slice_packed_gpu");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{begin:u,size:p}=n,[c,d]=a.slice_util.parseSliceParams(s,u,p);if(a.slice_util.assertParamsValid(s,c,d),0===a.util.sizeFromShape(d))return r.makeTensorInfo(d,s.dtype,[]);if(r.shouldExecuteOnCPU([s])||"string"===s.dtype){let e=r.texData.get(s.dataId),t=(0,o.sliceImplCPU)(e.values,c,d,s.shape,s.dtype);return r.makeTensorInfo(d,s.dtype,t)}let{isPacked:f}=r.texData.get(s.dataId),m=a.slice_util.isSliceContinous(s.shape,c,d);if(f||!m){let e=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new(0,i.SlicePackedProgram)(d):new(0,l.SliceProgram)(d),t=[c];return r.runWebGLProgram(e,[s],s.dtype,t)}return r.uploadToGPU(s.dataId),function(e,t,r,n){let s=n.texData.get(e.dataId),o=n.makeTensorInfo(r,e.dtype),l=n.texData.get(o.dataId);Object.assign(l,s),l.refCount=1,l.shape=r,l.dtype=e.dtype;let i=a.slice_util.computeFlatOffset(t,a.util.computeStrides(e.shape));s.slice&&(i+=s.slice.flatOffset),l.slice={flatOffset:i,origDataId:s.slice&&s.slice.origDataId||e.dataId};let u=n.dataRefCount.get(l.slice.origDataId)||1;return n.dataRefCount.set(l.slice.origDataId,u+1),o}(s,c,d,r)}let p={kernelName:a.Slice,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","../slice_gpu":"8fKuU","../slice_packed_gpu":"aDwkt","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8fKuU":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SliceProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e){let t;this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let r=(0,a.getCoordsDataType)(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=function(e){if(1===e)return"sourceLoc";if(e<=6)return l.slice(0,e).map(e=>"sourceLoc."+e).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}(this.rank),s=e.map((e,t)=>`sourceLoc.${l[t]} = start[${t}] + coords.${l[t]};`);t=` + ${r} sourceLoc; + ${r} coords = getOutputCoords(); + ${s.join("\n")} + `,this.userCode=` + void main() { + ${t} + setOutput(getSource(${n})); + } + `}}let l=["x","y","z","w","u","v"]},{"./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aDwkt:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SlicePackedProgram",()=>l);var a=e("./packing_util"),o=e("./shader_compiler");class l{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let t=(0,o.getCoordsDataType)(this.rank),r=(0,a.getChannels)("coords",this.rank),n=(0,a.getChannels)("sourceLoc",this.rank),s=1===this.rank?"sourceLoc":`vec2(${n.slice(-2).join()})`,l=`getChannel(getSource(${n.join()}), ${s})`,i=` + result.x = ${l}; + if (++${r[this.rank-1]} < ${e[this.rank-1]}) { + ++${n[this.rank-1]}; + result.y = ${l}; + --${n[this.rank-1]}; + } + `,u=1===this.rank?"":` + --${r[this.rank-1]}; + if (++${r[this.rank-2]} < ${e[this.rank-2]}) { + ++${n[this.rank-2]}; + result.z = ${l}; + if (++${r[this.rank-1]} < ${e[this.rank-1]}) { + ++${n[this.rank-1]}; + result.w = ${l}; + } + } + `,p=this.rank<=4?`sourceLoc = coords + + ${t}(${e.map((e,t)=>`start[${t}]`).join()});`:e.map((e,t)=>`${n[t]} = ${r[t]} + start[${t}];`).join("\n");this.userCode=` + void main() { + ${t} coords = getOutputCoords(); + ${t} sourceLoc; + ${p} + vec4 result = vec4(0.); + ${i} + ${u} + setOutput(result); + } + `}}},{"./packing_util":"k3hej","./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fObx5:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bincount",()=>l),s.export(r,"bincountConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,weights:a}=t,{size:l}=n,i=r.readSync(s.dataId),u=r.readSync(a.dataId),p=(0,o.bincountImplCPU)(i,u,a.dtype,a.shape,l);return r.makeTensorInfo([l],a.dtype,p)}let i={kernelName:a.Bincount,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jEqiV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"BITWISEAND",()=>u),s.export(r,"BITWISEAND_UNPACKED",()=>p),s.export(r,"bitwiseAnd",()=>c),s.export(r,"bitwiseAndConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu"),i=e("../kernel_utils/shared");let u=` + int r = int(a.r) & int(b.r); + int g = int(a.g) & int(b.g); + int rb = int(a.b) & int(b.b); + int ra = int(a.a) & int(b.a); + return vec4(r, g, rb, ra); +`,p=` + return float(int(a.r) & int(b.r)); +`;function c(e){let t,{inputs:r,backend:n}=e,{a:s,b:c}=r,d=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS"),f=(0,a.env)().getNumber("WEBGL_VERSION");if(n.shouldExecuteOnCPU([s,c])||1===f){let e=n.texData.get(s.dataId).values,t=n.texData.get(c.dataId).values,[r,a]=(0,i.bitwiseAndImplCPU)(s.shape,c.shape,e,t,s.dtype),o=n.makeTensorInfo(a,s.dtype);return n.texData.get(o.dataId).values=r,o}return t=d?new(0,l.BinaryOpPackedProgram)(u,s.shape,c.shape,!1):new(0,o.BinaryOpProgram)(p,s.shape,c.shape),n.runWebGLProgram(t,[s,c],s.dtype)}let d={kernelName:a.BitwiseAnd,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"biUij","../binaryop_gpu":"iq2Hg","../binaryop_packed_gpu":"g7FAa","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hwBjc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"broadcastArgs",()=>o),s.export(r,"broadcastArgsConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r}=e,{s0:n,s1:s}=t,o=r.readSync(n.dataId),l=r.readSync(s.dataId),i=a.backend_util.assertAndGetBroadcastShape(Array.from(o),Array.from(l));return r.makeTensorInfo([i.length],"int32",Int32Array.from(i))}let l={kernelName:a.BroadcastArgs,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gbr2B:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cast",()=>d),s.export(r,"castConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("./Complex"),i=e("./Identity"),u=e("./NotEqual"),p=e("./Real"),c=e("../kernel_utils/int");function d(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{dtype:f}=n;if("complex64"===f){if("complex64"===s.dtype)return(0,i.identity)({inputs:{x:s},backend:r});let e=a.zeros(s.shape),t=d({inputs:{x:s},backend:r,attrs:{dtype:"float32"}}),n=(0,l.complex)({inputs:{real:t,imag:e},backend:r});return e.dispose(),r.disposeIntermediateTensorInfo(t),n}if("complex64"===s.dtype){let e=(0,p.real)({inputs:{input:s},backend:r}),t=d({inputs:{x:e},backend:r,attrs:{dtype:f}});return r.disposeIntermediateTensorInfo(e),t}if(!a.util.hasEncodingLoss(s.dtype,f)){let e=(0,i.identity)({inputs:{x:s},backend:r});return{dataId:e.dataId,shape:e.shape,dtype:f}}if(r.shouldExecuteOnCPU([s])){let e=r.texData.get(s.dataId).values,[t,n,a]=(0,o.castImplCPU)(e,s.shape,s.dtype,f);return r.makeTensorInfo(t,n,a)}if("int32"===f)return(0,c.int)(s,r);if("bool"===f){let e=r.makeTensorInfo([],"bool",a.util.getTypedArrayFromDType("bool",1)),t=(0,u.notEqual)({inputs:{a:s,b:e},backend:r});return r.disposeIntermediateTensorInfo(e),t}throw Error(`Error in Cast: failed to cast ${s.dtype} to ${f}`)}let f={kernelName:a.Cast,backendName:"webgl",kernelFunc:d}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","./Complex":"fN7J8","./Identity":"fI9uV","./NotEqual":"gUjt7","./Real":"8FQ28","../kernel_utils/int":"cdltf","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gUjt7:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"notEqual",()=>i),s.export(r,"notEqualConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=(0,o.binaryKernelFunc)({opSnippet:"return float(a != b);",cpuKernelImpl:l.notEqualImplCPU,dtype:"bool"}),u={kernelName:a.NotEqual,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8FQ28":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"real",()=>l),s.export(r,"realConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Identity");function l(e){let{inputs:t,backend:r}=e,{input:n}=t,s=r.texData.get(n.dataId);return(0,o.identity)({inputs:{x:s.complexTensorInfos.real},backend:r})}let i={kernelName:a.Real,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Identity":"fI9uV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cdltf:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"int",()=>o);var a=e("../unaryop_gpu");function o(e,t){let r=new(0,a.UnaryOpProgram)(e.shape,"return float(int(x));"),n=t.runWebGLProgram(r,[e],"int32");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}},{"../unaryop_gpu":"LccPS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bv9f4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ceil",()=>u),s.export(r,"ceilConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return ceil(x);",u=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:i,cpuKernelImpl:l.ceilImplCPU}),p={kernelName:a.Ceil,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8fEM6":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"clipByValue",()=>i),s.export(r,"clipByValueConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../clip_gpu"),l=e("../clip_packed_gpu");function i(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:i}=r,{clipValueMin:u,clipValueMax:p}=s;return t=(0,a.env)().getBool("WEBGL_PACK_CLIP")?new(0,l.ClipPackedProgram)(i.shape):new(0,o.ClipProgram)(i.shape),n.runWebGLProgram(t,[i],i.dtype,[[u],[p]])}let u={kernelName:a.ClipByValue,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../clip_gpu":"1UjYs","../clip_packed_gpu":"jifqF","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1UjYs":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ClipProgram",()=>a);class a{constructor(e){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` + + void main() { + float value = getAAtOutCoords(); + if (isnan(value)) { + setOutput(value); + return; + } + + setOutput(clamp(value, minVal, maxVal)); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jifqF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ClipPackedProgram",()=>a);class a{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` + void main() { + vec4 value = getAAtOutCoords(); + + if (any(isnan(value))) { + setOutput(value); + return; + } + + setOutput(clamp(value, vec4(minVal), vec4(maxVal))); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],huldI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"complexAbs",()=>i),s.export(r,"complexAbsConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../complex_abs_gpu");function l(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}function i(e){let{inputs:t,backend:r}=e,{x:n}=t,s=r.texData.get(n.dataId),a=new(0,o.ComplexAbsProgram)(n.shape),i=[l(n,s.complexTensorInfos.real),l(n,s.complexTensorInfos.imag)];return r.runWebGLProgram(a,i,i[0].dtype)}let u={kernelName:a.ComplexAbs,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../complex_abs_gpu":"cfthk","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cfthk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ComplexAbsProgram",()=>a);class a{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` + void main() { + float re = abs(getRealAtOutCoords()); + float im = abs(getImagAtOutCoords()); + float mx = max(re, im); + + // sadly the length function in glsl is not underflow-safe + // (at least not on Intel GPUs). So the safe solution is + // to ensure underflow-safety in all cases. + setOutput( + mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) + ); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"99eNw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat",()=>i),s.export(r,"concatConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./Concat_impl"),l=e("./Identity");function i(e){let{inputs:t,backend:r,attrs:n}=e,{axis:s}=n,i=a.util.parseAxisParam(s,t[0].shape)[0],u=t.map(e=>e.shape);a.backend_util.assertParamsConsistent(u,i);let p=a.backend_util.computeOutShape(t.map(e=>e.shape),i);if(0===a.util.sizeFromShape(p))return r.makeTensorInfo(p,t[0].dtype,[]);let c=t.filter(e=>a.util.sizeFromShape(e.shape)>0);return 1===c.length?(0,l.identity)({inputs:{x:c[0]},backend:r}):(0,o.concatImpl)(c,i,r)}let u={kernelName:a.Concat,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","./Concat_impl":"gAUaq","./Identity":"fI9uV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gAUaq:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concatImpl",()=>function e(t,r,n){let s=t[0].dtype;if("complex64"===s){let s=t.map(e=>(0,f.real)({inputs:{input:e},backend:n})),a=t.map(e=>(0,d.imag)({inputs:{input:e},backend:n})),o=e(s,r,n),l=e(a,r,n),i=(0,c.complex)({inputs:{real:o,imag:l},backend:n});return s.forEach(e=>n.disposeIntermediateTensorInfo(e)),a.forEach(e=>n.disposeIntermediateTensorInfo(e)),n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),i}let h=n.shouldExecuteOnCPU(t);if("string"===s&&(h=!0),h){let e=t.map(e=>{let t=a.util.sizeFromShape(e.shape.slice(r));return(0,m.reshape)({inputs:{x:e},backend:n,attrs:{shape:[-1,t]}})}),o=e.map(e=>({vals:n.readSync(e.dataId),shape:e.shape})),l=a.backend_util.computeOutShape(e.map(e=>e.shape),1),u=1===e[0].shape[0],p=(0,i.concatImplCPU)(o,l,s,u),c=a.backend_util.computeOutShape(t.map(e=>e.shape),r),d=n.makeTensorInfo(c,s,p);return e.forEach(e=>n.disposeIntermediateTensorInfo(e)),d}let g=t.filter(e=>a.util.sizeFromShape(e.shape)>0),x=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&g[0].shape.length>1;if(1===g.length){let e=x?new(0,u.UnaryOpProgram)(t[0].shape,u.CLONE):new(0,p.UnaryOpPackedProgram)(t[0].shape,u.CLONE);return n.runWebGLProgram(e,t,s)}let v=(0,a.env)().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(g.length>v){let t=[];for(let s=0;se.shape),r);return n.runWebGLProgram(e,g,s)}let{tensors2D:y,outShape:b}=function(e,t,r){let n=a.backend_util.computeOutShape(e.map(e=>e.shape),t);return{tensors2D:e.map(e=>(0,m.reshape)({inputs:{x:e},attrs:{shape:[-1,a.util.sizeFromShape(e.shape.slice(t))]},backend:r})),outShape:n}}(g,r,n),_=new(0,o.ConcatProgram)(y.map(e=>e.shape)),k=n.runWebGLProgram(_,y,s);y.forEach(e=>n.disposeIntermediateTensorInfo(e));let j=(0,m.reshape)({inputs:{x:k},attrs:{shape:b},backend:n});return n.disposeIntermediateTensorInfo(k),j});var a=e("@tensorflow/tfjs-core"),o=e("../concat_gpu"),l=e("../concat_packed_gpu"),i=e("../kernel_utils/shared"),u=e("../unaryop_gpu"),p=e("../unaryop_packed_gpu"),c=e("./Complex"),d=e("./Imag"),f=e("./Real"),m=e("./Reshape")},{"@tensorflow/tfjs-core":"biUij","../concat_gpu":"551tf","../concat_packed_gpu":"aEbBH","../kernel_utils/shared":"lQim5","../unaryop_gpu":"LccPS","../unaryop_packed_gpu":"2qT48","./Complex":"fN7J8","./Imag":"2YczW","./Real":"8FQ28","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"551tf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ConcatProgram",()=>o);var a=e("@tensorflow/tfjs-core");class o{constructor(e){this.outputShape=[],this.outputShape=a.backend_util.computeOutShape(e,1),this.variableNames=e.map((e,t)=>`T${t}`);let t=Array(e.length-1);t[0]=e[0][1];for(let r=1;ri);var a=e("@tensorflow/tfjs-core"),o=e("./packing_util"),l=e("./shader_compiler");class i{constructor(e,t){this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[],this.outputShape=a.backend_util.computeOutShape(e,t);let r=this.outputShape,n=r.length,s=(0,l.getCoordsDataType)(n),i=(0,o.getChannels)("coords",n),p=["x","y","z","w","u","v"].slice(0,n);this.variableNames=e.map((e,t)=>`T${t}`);let c=Array(e.length-1);c[0]=e[0][t];for(let r=1;r= ${c[e-1]}) { + return getChannel( + getT${e}(${u(p,d,t)}), + vec2(${u(f,d,t)})); + }`}let g=c.length,x=c[c.length-1];h+=` + return getChannel( + getT${g}(${u(p,d,x)}), + vec2(${u(f,d,x)}));`,this.userCode=` + float getValue(${p.map(e=>"int "+e)}) { + ${h} + } + + void main() { + ${s} coords = getOutputCoords(); + vec4 result = vec4(getValue(${i}), 0., 0., 0.); + + ${i[n-1]} = ${i[n-1]} + 1; + if (${i[n-1]} < ${r[n-1]}) { + result.g = getValue(${i}); + } + + ${i[n-2]} = ${i[n-2]} + 1; + if (${i[n-2]} < ${r[n-2]}) { + result.a = getValue(${i}); + } + + ${i[n-1]} = ${i[n-1]} - 1; + if (${i[n-2]} < ${r[n-2]} && + ${i[n-1]} < ${r[n-1]}) { + result.b = getValue(${i}); + } + setOutput(result); + } + `}}function u(e,t,r){let n=e.indexOf(t);return e.map((e,t)=>t===n?`${e} - ${r}`:e).join()}},{"@tensorflow/tfjs-core":"biUij","./packing_util":"k3hej","./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2YczW":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"imag",()=>l),s.export(r,"imagConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Identity");function l(e){let{inputs:t,backend:r}=e,{input:n}=t,s=r.texData.get(n.dataId);return(0,o.identity)({inputs:{x:s.complexTensorInfos.imag},backend:r})}let i={kernelName:a.Imag,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Identity":"fI9uV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2AXF2":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2d",()=>p),s.export(r,"conv2DConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../conv_gpu"),l=e("../conv_packed_gpu"),i=e("./Conv2D_impl"),u=e("./Reshape");function p(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:p,filter:c}=r,{strides:d,pad:f,dataFormat:m,dilations:h,dimRoundingMode:g}=s,x=a.backend_util.convertConv2DDataFormat(m),v=a.backend_util.computeConv2DInfo(p.shape,c.shape,d,h,f,g,!1,x);if(1===v.filterHeight&&1===v.filterWidth&&1===v.dilationHeight&&1===v.dilationWidth&&1===v.strideHeight&&1===v.strideWidth&&("SAME"===v.padInfo.type||"VALID"===v.padInfo.type))t=(0,i.conv2dByMatMul)({x:p,filter:c,convInfo:v,backend:n});else if(v.strideWidth<=2&&"channelsLast"===x&&(0,a.env)().getBool("WEBGL_EXP_CONV")){let e=new(0,l.Conv2DPackedProgram)(v),r=[[v.padInfo.top,v.padInfo.left],[v.strideHeight,v.strideWidth],[v.dilationHeight,v.dilationWidth],[v.inHeight,v.inWidth]];t=n.runWebGLProgram(e,[p,c],"float32",r)}else if((0,a.env)().getBool("WEBGL_CONV_IM2COL"))t=(0,i.conv2dWithIm2Row)({x:p,filter:c,convInfo:v,backend:n});else{let e=new(0,o.Conv2DProgram)(v);t=n.runWebGLProgram(e,[p,c],"float32")}let y=(0,u.reshape)({inputs:{x:t},backend:n,attrs:{shape:v.outShape}});return n.disposeIntermediateTensorInfo(t),y}let c={kernelName:a.Conv2D,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../conv_gpu":"lCtEK","../conv_packed_gpu":"63vcn","./Conv2D_impl":"cOUbb","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lCtEK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Conv2DProgram",()=>a),s.export(r,"Conv3DProgram",()=>o);class a{constructor(e,t=!1,r=null,n=!1,s=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let a=e.padInfo.top,o=e.padInfo.left,l=e.strideHeight,i=e.strideWidth,u=e.dilationHeight,p=e.dilationWidth,c=e.filterHeight,d=e.filterWidth,f=4*Math.floor(e.inChannels/4),m=e.inChannels%4,h="channelsLast"===e.dataFormat,g="",x="";r&&(g=n?`float activation(float a) { + float b = getPreluActivationWeightsAtOutCoords(); + ${r} + }`:s?`float activation(float a) { + float b = getLeakyreluAlphaAtOutCoords(); + ${r} + }`:` + float activation(float x) { + ${r} + } + `,x="result = activation(result);"),t&&this.variableNames.push("bias"),n&&this.variableNames.push("preluActivationWeights"),s&&this.variableNames.push("leakyreluAlpha"),this.userCode=` + ${g} + + const ivec2 strides = ivec2(${l}, ${i}); + const ivec2 pads = ivec2(${a}, ${o}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d2 = coords[${h?3:1}]; + + ivec2 xRCCorner = + ivec2(coords[${h?1:2}], coords[${h?2:3}]) * strides - pads; + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${c}; wR++) { + int xR = xRCorner + wR * ${u}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${d}; wC++) { + int xC = xCCorner + wC * ${p}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + for (int d1 = 0; d1 < ${f}; d1 += 4) { + vec4 wValues = vec4( + getW(wR, wC, d1, d2), + getW(wR, wC, d1 + 1, d2), + getW(wR, wC, d1 + 2, d2), + getW(wR, wC, d1 + 3, d2) + ); + + if (${h}) { + vec4 xValues = vec4( + getX(batch, xR, xC, d1), + getX(batch, xR, xC, d1 + 1), + getX(batch, xR, xC, d1 + 2), + getX(batch, xR, xC, d1 + 3) + ); + dotProd += dot(xValues, wValues); + } else { + vec4 xValues = vec4( + getX(batch, d1, xR, xC), + getX(batch, d1 + 1, xR, xC), + getX(batch, d1 + 2, xR, xC), + getX(batch, d1 + 3, xR, xC) + ); + dotProd += dot(xValues, wValues); + } + } + + if (${1===m}) { + + if (${h}) { + dotProd += + getX(batch, xR, xC, ${f}) * + getW(wR, wC, ${f}, d2); + } else { + dotProd += + getX(batch, ${f}, xR, xC) * + getW(wR, wC, ${f}, d2); + } + + } else if (${2===m}) { + vec2 wValues = vec2( + getW(wR, wC, ${f}, d2), + getW(wR, wC, ${f} + 1, d2) + ); + + if (${h}) { + vec2 xValues = vec2( + getX(batch, xR, xC, ${f}), + getX(batch, xR, xC, ${f} + 1) + ); + dotProd += dot(xValues, wValues); + } else { + vec2 xValues = vec2( + getX(batch, ${f}, xR, xC), + getX(batch, ${f} + 1, xR, xC) + ); + dotProd += dot(xValues, wValues); + } + + } else if (${3===m}) { + vec3 wValues = vec3( + getW(wR, wC, ${f}, d2), + getW(wR, wC, ${f} + 1, d2), + getW(wR, wC, ${f} + 2, d2) + ); + + if (${h}) { + vec3 xValues = vec3( + getX(batch, xR, xC, ${f}), + getX(batch, xR, xC, ${f} + 1), + getX(batch, xR, xC, ${f} + 2) + ); + dotProd += dot(xValues, wValues); + } else { + vec3 xValues = vec3( + getX(batch, ${f}, xR, xC), + getX(batch, ${f} + 1, xR, xC), + getX(batch, ${f} + 2, xR, xC) + ); + dotProd += dot(xValues, wValues); + } + + } + } + } + + float result = dotProd; + ${t?"result += getBiasAtOutCoords();":""} + ${x} + setOutput(result); + } + `}}class o{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,r=e.padInfo.top,n=e.padInfo.left,s=e.strideDepth,a=e.strideHeight,o=e.strideWidth,l=e.dilationDepth,i=e.dilationHeight,u=e.dilationWidth,p=e.filterDepth,c=e.filterHeight,d=e.filterWidth,f=4*Math.floor(e.inChannels/4),m=e.inChannels%4;this.userCode=` + const ivec3 strides = ivec3(${s}, ${a}, ${o}); + const ivec3 pads = ivec3(${t}, ${r}, ${n}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int d2 = coords.u; + + ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; + int xFCorner = xFRCCorner.x; + int xRCorner = xFRCCorner.y; + int xCCorner = xFRCCorner.z; + + // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get + // y(yF, yR, yC, d2). ? = to be determined. : = across all + // values in that axis. + float dotProd = 0.0; + for (int wF = 0; wF < ${p}; wF++) { + int xF = xFCorner + wF * ${l}; + + if (xF < 0 || xF >= ${e.inDepth}) { + continue; + } + + for (int wR = 0; wR < ${c}; wR++) { + int xR = xRCorner + wR * ${i}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${d}; wC++) { + int xC = xCCorner + wC * ${u}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + for (int d1 = 0; d1 < ${f}; d1 += 4) { + vec4 xValues = vec4( + getX(batch, xF, xR, xC, d1), + getX(batch, xF, xR, xC, d1 + 1), + getX(batch, xF, xR, xC, d1 + 2), + getX(batch, xF, xR, xC, d1 + 3) + ); + vec4 wValues = vec4( + getW(wF, wR, wC, d1, d2), + getW(wF, wR, wC, d1 + 1, d2), + getW(wF, wR, wC, d1 + 2, d2), + getW(wF, wR, wC, d1 + 3, d2) + ); + + dotProd += dot(xValues, wValues); + } + + if (${1===m}) { + dotProd += + getX(batch, xF, xR, xC, ${f}) * + getW(wF, wR, wC, ${f}, d2); + } else if (${2===m}) { + vec2 xValues = vec2( + getX(batch, xF, xR, xC, ${f}), + getX(batch, xF, xR, xC, ${f} + 1) + ); + vec2 wValues = vec2( + getW(wF, wR, wC, ${f}, d2), + getW(wF, wR, wC, ${f} + 1, d2) + ); + dotProd += dot(xValues, wValues); + } else if (${3===m}) { + vec3 xValues = vec3( + getX(batch, xF, xR, xC, ${f}), + getX(batch, xF, xR, xC, ${f} + 1), + getX(batch, xF, xR, xC, ${f} + 2) + ); + vec3 wValues = vec3( + getW(wF, wR, wC, ${f}, d2), + getW(wF, wR, wC, ${f} + 1, d2), + getW(wF, wR, wC, ${f} + 2, d2) + ); + dotProd += dot(xValues, wValues); + } + } + } + } + setOutput(dotProd); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"63vcn":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Conv2DPackedProgram",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_math");class l{constructor(e,t=!1,r=null,n=!1,s=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length);let l=e.padInfo.left,i=e.strideWidth,u=e.dilationWidth,p=e.filterHeight,c=e.filterWidth,d=` + int xR; int xC; int xCOffset; + vec4 wTexel; vec4 previous; vec4 final;`;for(let e=0;e=0 && xR < inDims[0]) { + `;for(let t=0;t<(c+1)/2;t++){let r=2*t;if(d+=` + xC = xCCorner + ${r*u}; + `,1===i){if(r= 0 && xCOffset < inDims[1] && xTexelC${r}Ready == 0) { + xTexelC${r} = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + xTexelC${r}.zw = vec2(0.0); + } + xTexelC${r}Ready = 1; + } + `,1===u&&r>0?d+=` + xC${r} = vec4(xTexelC${r-2}.zw, xTexelC${r}.xy); + `:d+=` + xCOffset = xC + 1 - 2; + + if (xCOffset >= 0 && xCOffset < inDims[1]) { + previous = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + previous.zw = vec2(0.0); + } + + xC${r} = vec4(previous.zw, xTexelC${r}.xy); + } else { + xC${r} = vec4(0.0, 0.0, xTexelC${r}.xy); + } + `):d+=` + if (xC >= 0 && xC < inDims[1] && xTexelC${r}Ready == 0) { + xTexelC${r} = getX(batch, xR, xC, d1); + if (xC + 1 >= inDims[1]) { + xTexelC${r}.zw = vec2(0.0); + } + xTexelC${r}Ready = 1; + } + + xC${r} = xTexelC${r}; + `,r+1= 0 && xCOffset < inDims[1] && xTexelC${r+1}Ready == 0) { + xTexelC${r+1} = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + xTexelC${r+1}.zw = vec2(0.0); + } + xTexelC${r+1}Ready = 1; + } + `,u>1?d+=` + xCOffset -= 2; + if (xCOffset >= 0 && xCOffset < inDims[1]) { + previous = getX(batch, xR, xCOffset, d1); + xC${r+1} = vec4(previous.zw, xTexelC${r+1}.xy); + } else { + xC${r+1} = vec4(0.0, 0.0, xTexelC${r+1}.xy); + } + `:d+=` + xC${r+1} = vec4(xTexelC${r}.zw, xTexelC${r+1}.xy); + `):1===e?d+=` + xC${r+1} = xTexelC${r}; + `:d+=` + xCOffset = xC + ${e}; + + if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${r+1}Ready == 0) { + xTexelC${r+1} = getX(batch, xR, xCOffset, d1); + if (xCOffset + 1 >= inDims[1]) { + xTexelC${r+1}.zw = vec2(0.0); + } + xTexelC${r+1}Ready = 1; + } + + xC${r+1} = xTexelC${r+1}; + `}}else r= 0 && xCOffset < inDims[1] && xTexelC${r}Ready == 0) { + xTexelC${r} = getX(batch, xR, xCOffset, d1); + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + xTexelC${r}.zw = vec2(0.0); + } + xTexelC${r}Ready = 1; + } + + if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${r+1}Ready == 0) { + xTexelC${r+1} = getX(batch, xR, xC + 1, d1); + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xC + 2 >= inDims[1]) { + xTexelC${r+1}.zw = vec2(0.0); + } + xTexelC${r+1}Ready = 1; + } + + xC${r} = vec4(xTexelC${r}.zw, xTexelC${r+1}.zw); + `,r+1= 0 && xCOffset < inDims[1]) { + final = getX(batch, xR, xCOffset, d1); + } + xC${r+1} = vec4(xTexelC${r+1}.xy, final.xy); + `)):(d+=` + if(xC >= 0 && xC < inDims[1] && xTexelC${r}Ready == 0) { + xTexelC${r} = getX(batch, xR, xC, d1); + if (xC + 1 >= inDims[1]) { + xTexelC${r}.zw = vec2(0.0); + } + xTexelC${r}Ready = 1; + } + + xCOffset = xC + strides[1]; + if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${r+1}Ready == 0) { + xTexelC${r+1} = getX(batch, xR, xCOffset, d1); + if (xCOffset + 1 >= inDims[1]) { + xTexelC${r+1}.zw = vec2(0.); + } + xTexelC${r+1}Ready = 1; + } + + xC${r} = vec4( + xTexelC${r}.xy, xTexelC${r+1}.xy); + `,r+1m),s.export(r,"conv2dWithIm2Row",()=>h);var a=e("@tensorflow/tfjs-core"),o=e("../im2col_packed_gpu"),l=e("../kernel_utils/kernel_funcs_utils"),i=e("../mulmat_packed_gpu"),u=e("../webgl_util"),p=e("./BatchMatMul_impl"),c=e("./Identity"),d=e("./Reshape");function f(e,t){let r=e.length;return r>=3?t?[...e.slice(0,-3),e[r-3]*e[r-2],e[r-1]]:[...e.slice(0,-3),e[r-3],e[r-2]*e[r-1]]:!t&&1===r&&e[0]>1?[e[0],1]:null}function m({x:e,filter:t,convInfo:r,backend:n,bias:s=null,preluActivationWeights:o=null,leakyreluAlpha:l=0,activation:i=null}){let m,h=e.shape,g=n.texData.get(e.dataId),x=r.inChannels,v=h[0]*h[1]*h[2],y=r.outChannels,b="channelsLast"===r.dataFormat,_=[];if(null!=o){let e=f(o.shape,b);null!=e&&(o=(0,d.reshape)({inputs:{x:o},backend:n,attrs:{shape:e}}),_.push(o))}if(null!=s){let e=f(s.shape,b);null!=e&&(s=(0,d.reshape)({inputs:{x:s},backend:n,attrs:{shape:e}}),_.push(s))}if(!((1===v||1===y)&&x>p.MATMUL_SHARED_DIM_THRESHOLD)&&g.isPacked&&b&&null!=g.texture&&h[2]%2!=0&&a.util.arraysEqual(g.shape.slice(-3),h.slice(-3))){let f=h[0]*h[1]*(h[2]+1),x={dataId:e.dataId,shape:[1,f,r.inChannels],dtype:e.dtype},v=g.shape;g.shape=g.shape.slice(),g.shape[g.shape.length-2]++,a.util.assert(u.isReshapeFree(g.shape,x.shape),()=>`packed reshape ${g.shape} to ${x.shape} isn't free`);let y=(0,d.reshape)({inputs:{x:t},backend:n,attrs:{shape:[1,r.inChannels,r.outChannels]}});_.push(y);let b=(0,p.batchMatMulImpl)({a:x,b:y,backend:n,transposeA:!1,transposeB:!1,bias:s,activation:i,preluActivationWeights:o,leakyreluAlpha:l}),k=n.texData.get(b.dataId);a.util.assert(k.isPacked,()=>"batchMatMul result is expected to be packed"),g.shape=v,k.shape=r.outShape,(m=(0,c.identity)({inputs:{x:b},backend:n})).shape=r.outShape,_.push(b)}else{let a=r.outHeight*r.outWidth,u=(0,d.reshape)({inputs:{x:e},backend:n,attrs:{shape:b?[r.batchSize,a,r.inChannels]:[r.batchSize,r.inChannels,a]}}),c=(0,d.reshape)({inputs:{x:t},backend:n,attrs:{shape:[1,r.inChannels,r.outChannels]}}),f=(0,p.batchMatMulImpl)({a:b?u:c,b:b?c:u,transposeA:!b,transposeB:!1,backend:n,bias:s,activation:i,preluActivationWeights:o,leakyreluAlpha:l});m=(0,d.reshape)({inputs:{x:f},backend:n,attrs:{shape:r.outShape}}),_.push(u),_.push(c),_.push(f)}for(let e of _)n.disposeIntermediateTensorInfo(e);return m}function h({x:e,filter:t,convInfo:r,backend:n,bias:s=null,preluActivationWeights:u=null,leakyreluAlpha:p=0,activation:c=null}){let{filterWidth:m,filterHeight:h,inChannels:g,outWidth:x,outHeight:v,dataFormat:y}=r,b="channelsLast"===y,_=m*h*g,k=v*x,j=[r.batchSize,_,k],I=[];if(null!=u){let e=f(u.shape,b);null!=e&&(u=(0,d.reshape)({inputs:{x:u},backend:n,attrs:{shape:e}}),I.push(u))}if(null!=s){let e=f(s.shape,b);null!=e&&(s=(0,d.reshape)({inputs:{x:s},backend:n,attrs:{shape:e}}),I.push(s))}let w=(0,d.reshape)({inputs:{x:t},backend:n,attrs:{shape:[1,_,a.util.sizeFromShape(t.shape)/_]}});I.push(w);let T=new(0,o.Im2ColPackedProgram)(j,r),N=[e.shape,[r.padInfo.top,r.padInfo.left],[r.strideHeight,r.strideWidth],[r.dilationHeight,r.dilationWidth],[r.inChannels],[r.filterWidth*r.inChannels],[r.outWidth]],S=n.runWebGLProgram(T,[e],"float32",N),C=(0,d.reshape)({inputs:{x:S},backend:n,attrs:{shape:j}});I.push(S),I.push(C);let E=null!=s,F=null!=u,A="leakyrelu"===c,R=c?(0,l.mapActivationToShaderProgram)(c,!0):null,P=new(0,i.MatMulPackedProgram)(b?C.shape:w.shape,b?w.shape:C.shape,b?[r.batchSize,k,r.outChannels]:[r.batchSize,r.outChannels,k],!0,!1,E,R,F,A),D=b?[C,w]:[w,C];if(s&&D.push(s),F&&D.push(u),A){let e=n.makeTensorInfo([],"float32",a.util.createScalarValue(p,"float32"));D.push(e),I.push(e)}let $=n.runWebGLProgram(P,D,"float32"),O=(0,d.reshape)({inputs:{x:$},backend:n,attrs:{shape:r.outShape}});for(let e of(I.push($),I))n.disposeIntermediateTensorInfo(e);return O}},{"@tensorflow/tfjs-core":"biUij","../im2col_packed_gpu":"2pm04","../kernel_utils/kernel_funcs_utils":"5WW6u","../mulmat_packed_gpu":"laYzs","../webgl_util":"8Bhtc","./BatchMatMul_impl":"5lxDH","./Identity":"fI9uV","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2pm04":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Im2ColPackedProgram",()=>l);var a=e("./glsl_version"),o=e("./gpgpu_math");class l{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec4"},{name:"pad",type:"ivec2"},{name:"stride",type:"ivec2"},{name:"dilation",type:"ivec2"},{name:"inChannels",type:"int"},{name:"itemsPerBlockRow",type:"int"},{name:"outWidth",type:"int"}],this.outputShape=e,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length);let{dataFormat:r}=t,n=(0,a.getGlslDifferences)(),s="channelsLast"===r,l=s?1:2,i=s?2:3,u=this.enableShapeUniforms?"if(blockIndex < outShape[2] && pos < outShape[1]) {":`if(blockIndex < ${e[2]} && pos < ${e[1]}) {`,p="";for(let e=0;e<=1;e++)for(let t=0;t<=1;t++)p+=` + blockIndex = rc.z + ${t}; + pos = rc.y + ${e}; + + ${u} + offsetY = int(blockIndex / outWidth) * stride[0] - pad[0]; + d0 = offsetY + dilation[0] * (pos / itemsPerBlockRow); + + if(d0 < inputShape[${l}] && d0 >= 0) { + // Use custom imod instead mod. On Intel GPU, mod may generate + // unexpected value. + // https://github.com/tensorflow/tfjs/issues/5447 + offsetX = imod(blockIndex, outWidth) * stride[1] - pad[1]; + d1 = offsetX + dilation[1] * (imod(pos, itemsPerBlockRow) / + inChannels); + + if(d1 < inputShape[${i}] && d1 >= 0) { + + ch = imod(pos, inChannels); + + if (${s}) { + innerDims = vec2(d1, ch); + result[${2*e+t}] = getChannel( + getA(rc.x, d0, int(innerDims.x), + int(innerDims.y)), innerDims); + } else { + innerDims = vec2(d0, d1); + result[${2*e+t}] = getChannel( + getA(rc.x, ch, int(innerDims.x), + int(innerDims.y)), innerDims); + } + } + } + } + `;this.userCode=` + void main() { + ivec3 rc = getOutputCoords(); + + vec4 result = vec4(0); + + int blockIndex, pos, offsetY, d0, offsetX, d1, ch; + vec2 innerDims; + + ${p} + + ${n.output} = result; + } + `}}},{"./glsl_version":"9EOgg","./gpgpu_math":"1F9Jp","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],adj3h:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2DBackpropFilter",()=>l),s.export(r,"conv2DBackpropFilterConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,pad:u,dataFormat:p,dimRoundingMode:c,filterShape:d}=n,f=a.backend_util.convertConv2DDataFormat(p),m=a.backend_util.computeConv2DInfo(s.shape,d,i,1,u,c,!1,f),h=new(0,o.Conv2DDerFilterProgram)(m);return r.runWebGLProgram(h,[s,l],"float32")}let i={kernelName:a.Conv2DBackpropFilter,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../conv_backprop_gpu":"lGDHL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lGDHL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Conv2DDerFilterProgram",()=>a),s.export(r,"Conv2DDerInputProgram",()=>o),s.export(r,"Conv3DDerFilterProgram",()=>l),s.export(r,"Conv3DDerInputProgram",()=>i);class a{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,r=e.strideWidth,n=e.padInfo.top,s=e.padInfo.left,a="channelsLast"===e.dataFormat;this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int wR = coords.x; + int wC = coords.y; + int d1 = coords.z; + int d2 = coords.w; + + // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + + for (int b = 0; b < ${e.batchSize}; b++) { + for (int yR = 0; yR < ${e.outHeight}; yR++) { + int xR = wR + yR * ${t} - ${n}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int yC = 0; yC < ${e.outWidth}; yC++) { + int xC = wC + yC * ${r} - ${s}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + ${a?`float dyValue = getDy(b, yR, yC, d2); + float xValue = getX(b, xR, xC, d1); + dotProd += (xValue * dyValue);`:`float dyValue = getDy(b, d2, yR, yC); + float xValue = getX(b, d1, xR, xC); + dotProd += (xValue * dyValue);`} + } + } + } + setOutput(dotProd); + } + `}}class o{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,r=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a="channelsLast"===e.dataFormat,o=t-1-e.padInfo.top,l=r-1-e.padInfo.left;this.userCode=` + const ivec2 pads = ivec2(${o}, ${l}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d1 = coords[${a?3:1}]; + + ivec2 dyCorner = ivec2(coords[${a?1:2}], coords[${a?2:3}]) - pads; + int dyRCorner = dyCorner.x; + int dyCCorner = dyCorner.y; + + // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${t}; wR++) { + float dyR = float(dyRCorner + wR) / ${n}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + int wRPerm = ${t} - 1 - wR; + + for (int wC = 0; wC < ${r}; wC++) { + float dyC = float(dyCCorner + wC) / ${s}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + int wCPerm = ${r} - 1 - wC; + + for (int d2 = 0; d2 < ${e.outChannels}; d2++) { + + if (${a}) { + float xValue = getDy(batch, idyR, idyC, d2); + float wValue = getW(wRPerm, wCPerm, d1, d2); + dotProd += xValue * wValue; + } else { + float xValue = getDy(batch, d2, idyR, idyC); + float wValue = getW(wRPerm, wCPerm, d1, d2); + dotProd += xValue * wValue; + } + + } + } + } + setOutput(dotProd); + } + `}}class l{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,r=e.strideHeight,n=e.strideWidth,s=e.padInfo.front,a=e.padInfo.top,o=e.padInfo.left;this.userCode=` + void main() { + ivec5 coords = getOutputCoords(); + int wF = coords.x; + int wR = coords.y; + int wC = coords.z; + int d1 = coords.w; + int d2 = coords.u; + + float dotProd = 0.0; + + for (int b = 0; b < ${e.batchSize}; b++) { + for (int yF = 0; yF < ${e.outDepth}; yF++) { + int xF = wF + yF * ${t} - ${s}; + + if (xF < 0 || xF >= ${e.inDepth}) { + continue; + } + + for (int yR = 0; yR < ${e.outHeight}; yR++) { + int xR = wR + yR * ${r} - ${a}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int yC = 0; yC < ${e.outWidth}; yC++) { + int xC = wC + yC * ${n} - ${o}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + float dyValue = getDy(b, yF, yR, yC, d2); + float xValue = getX(b, xF, xR, xC, d1); + dotProd += (xValue * dyValue); + } + } + } + } + setOutput(dotProd); + } + `}}class i{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,r=e.filterHeight,n=e.filterWidth,s=e.strideDepth,a=e.strideHeight,o=e.strideWidth,l=t-1-e.padInfo.front,i=r-1-e.padInfo.top,u=n-1-e.padInfo.left;this.userCode=` + const ivec3 pads = ivec3(${l}, ${i}, ${u}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int d1 = coords.u; + + + ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; + int dyFCorner = dyCorner.x; + int dyRCorner = dyCorner.y; + int dyCCorner = dyCorner.z; + + float dotProd = 0.0; + for (int wF = 0; wF < ${t}; wF++) { + float dyF = float(dyFCorner + wF) / ${s}.0; + + if (dyF < 0.0 || dyF >= ${e.outDepth}.0 || fract(dyF) > 0.0) { + continue; + } + int idyF = int(dyF); + + int wFPerm = ${t} - 1 - wF; + + for (int wR = 0; wR < ${r}; wR++) { + float dyR = float(dyRCorner + wR) / ${a}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || + fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + int wRPerm = ${r} - 1 - wR; + + for (int wC = 0; wC < ${n}; wC++) { + float dyC = float(dyCCorner + wC) / ${o}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + int wCPerm = ${n} - 1 - wC; + + for (int d2 = 0; d2 < ${e.outChannels}; d2++) { + float xValue = getDy(batch, idyF, idyR, idyC, d2); + float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2); + dotProd += xValue * wValue; + } + } + } + } + setOutput(dotProd); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"37yY1":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2DBackpropInput",()=>i),s.export(r,"conv2DBackpropInputConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu"),l=e("../conv_backprop_packed_gpu");function i(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:i}=t,{inputShape:u,strides:p,pad:c,dataFormat:d,dimRoundingMode:f}=n,m=a.backend_util.convertConv2DDataFormat(d),h=a.backend_util.computeConv2DInfo(u,i.shape,p,1,c,f,!1,m);if((0,a.env)().getBool("WEBGL_PACK_CONV2DTRANSPOSE")&&"channelsLast"===m){let e=[[h.strideHeight,h.strideWidth]],t=new(0,l.Conv2DDerInputPackedProgram)(h);return r.runWebGLProgram(t,[s,i],"float32",e)}{let e=new(0,o.Conv2DDerInputProgram)(h);return r.runWebGLProgram(e,[s,i],"float32")}}let u={kernelName:a.Conv2DBackpropInput,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../conv_backprop_gpu":"lGDHL","../conv_backprop_packed_gpu":"5dBE0","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5dBE0":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Conv2DDerInputPackedProgram",()=>o);var a=e("./gpgpu_math");class o{constructor(e){this.variableNames=["dy","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"strides",type:"vec2"}],this.outputShape=e.inShape,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length);let t=e.filterHeight,r=e.filterWidth,n=t-1-e.padInfo.top,s=r-1-e.padInfo.left;this.userCode=` + const ivec2 pads = ivec2(${n}, ${s}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d1 = coords[3]; + + ivec2 dyCorner = ivec2(coords[1], coords[2]) - pads; + int dyRCorner = dyCorner.x; + int dyCCorner = dyCorner.y; + + vec4 result = vec4(0.); + for (int wR = 0; wR < ${t}; wR++) { + float dyR = float(dyRCorner + wR) / strides[0]; + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + int wRPerm = ${t} - 1 - wR; + + for (int wC = 0; wC < ${r}; wC++) { + int wCPerm = ${r} - 1 - wC; + + float dyC = float(dyCCorner + wC) / strides[1]; + bool idyCVal = (dyC >= 0.0) && (dyC < ${e.outWidth}.0) + && (fract(dyC) == 0.0); + int idyC = int(dyC); + + float dyC2 = float(dyCCorner + wC + 1) / strides[1]; + bool idyCVal2 = (dyC2 >= 0.0) && (dyC2 < ${e.outWidth}.0) + && (fract(dyC2) == 0.0); + int idyC2 = int(dyC2); + + if (idyCVal && idyCVal2) { + for (int d2 = 0; d2 < ${e.outChannels}; d2 += 2) { + vec4 wValue = getW(wRPerm, wCPerm, d1, d2); + vec4 dySample = getDy(batch, idyR, idyC, d2); + vec4 dySample2 = (idyC / 2 == idyC2 / 2) ? + dySample : getDy(batch, idyR, idyC2, d2); + + vec2 dyValue = mod(float(idyC), 2.) == 0. ? + dySample.xy : dySample.zw; + result.xy += vec2(dot(dyValue, wValue.xy), + dot(dyValue, wValue.zw)); + + dyValue = mod(float(idyC2), 2.) == 0. ? + dySample2.xy : dySample2.zw; + result.zw += vec2(dot(dyValue, wValue.xy), + dot(dyValue, wValue.zw)); + } + } else if (idyCVal) { + for (int d2 = 0; d2 < ${e.outChannels}; d2 += 2) { + vec4 wValue = getW(wRPerm, wCPerm, d1, d2); + vec4 dySample = getDy(batch, idyR, idyC, d2); + vec2 dyValue = mod(float(idyC), 2.) == 0. ? + dySample.xy : dySample.zw; + result.xy += vec2(dot(dyValue, wValue.xy), + dot(dyValue, wValue.zw)); + } + } else if (idyCVal2) { + for (int d2 = 0; d2 < ${e.outChannels}; d2 += 2) { + vec4 wValue = getW(wRPerm, wCPerm, d1, d2); + vec4 dySample = getDy(batch, idyR, idyC2, d2); + vec2 dyValue = mod(float(idyC2), 2.) == 0. ? + dySample.xy : dySample.zw; + result.zw += vec2(dot(dyValue, wValue.xy), + dot(dyValue, wValue.zw)); + } + } + } + } + setOutput(result); + } + `}}},{"./gpgpu_math":"1F9Jp","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],j7XkX:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3D",()=>l),s.export(r,"conv3DConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:l}=t,{strides:i,pad:u,dilations:p}=n,c=a.backend_util.computeConv3DInfo(s.shape,l.shape,i,p,u),d=new(0,o.Conv3DProgram)(c);return r.runWebGLProgram(d,[s,l],"float32")}let i={kernelName:a.Conv3D,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../conv_gpu":"lCtEK","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"12kPy":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3DBackpropFilterV2",()=>l),s.export(r,"conv3DBackpropFilterV2Config",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,pad:u,filterShape:p}=n,c=a.backend_util.computeConv3DInfo(s.shape,p,i,1,u),d=new(0,o.Conv3DDerFilterProgram)(c);return r.runWebGLProgram(d,[s,l],"float32")}let i={kernelName:a.Conv3DBackpropFilterV2,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../conv_backprop_gpu":"lGDHL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"99k4w":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3DBackpropInput",()=>l),s.export(r,"conv3DBackpropInputConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:l}=t,{pad:i,strides:u,inputShape:p}=n,c=a.backend_util.computeConv3DInfo(p,l.shape,u,1,i),d=new(0,o.Conv3DDerInputProgram)(c);return r.runWebGLProgram(d,[s,l],"float32")}let i={kernelName:a.Conv3DBackpropInputV2,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../conv_backprop_gpu":"lGDHL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cRH7x:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cos",()=>p),s.export(r,"cosConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_packed_gpu"),l=e("../kernel_utils/kernel_funcs_utils");let i=l.CHECK_NAN_SNIPPET_UNARY+` + return cos(x); +`,u=` + vec4 result = cos(x); + bvec4 isNaN = isnan(x); + ${o.CHECK_NAN_SNIPPET_PACKED} + return result; +`,p=(0,l.unaryKernelFunc)({opSnippet:i,packedOpSnippet:u}),c={kernelName:a.Cos,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../binaryop_packed_gpu":"g7FAa","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"84qKA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cosh",()=>i),s.export(r,"coshConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + float e2x = exp(-x); + return (e2x + 1.0 / e2x) / 2.0; +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Cosh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kVL9C:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cropAndResize",()=>l),s.export(r,"cropAndResizeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../crop_and_resize_gpu");let l=e=>{let{inputs:t,backend:r,attrs:n}=e,{image:s,boxes:a,boxInd:l}=t,{cropSize:i,method:u,extrapolationValue:p}=n,c=new(0,o.CropAndResizeProgram)(s.shape,a.shape,i,u,p);return r.runWebGLProgram(c,[s,a,l],"float32")},i={kernelName:a.CropAndResize,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../crop_and_resize_gpu":"lzvvE","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lzvvE:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"CropAndResizeProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[a,o,l,i]=e,[u]=t,[p,c]=r;this.outputShape=[u,p,c,i];let[d,f]=[`${o-1}.0`,`${l-1}.0`],[m,h,g]=p>1?[`${(o-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${d} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${d}`],[x,v,y]=c>1?[`${(l-1)/(c-1)}`,"(x2-x1) * width_ratio",`x1*${f} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${f}`];this.userCode=` + const float height_ratio = float(${m}); + const float width_ratio = float(${x}); + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int y = coords[1]; + int x = coords[2]; + int d = coords[3]; + + // get box vals + float y1 = getBoxes(b,0); + float x1 = getBoxes(b,1); + float y2 = getBoxes(b,2); + float x2 = getBoxes(b,3); + + // get image in batch index + int bInd = round(getBoxInd(b)); + if(bInd < 0 || bInd >= ${a}) { + return; + } + + float height_scale = ${h}; + float width_scale = ${v}; + + float in_y = ${g}; + if( in_y < 0.0 || in_y > ${d} ) { + setOutput(float(${s})); + return; + } + float in_x = ${y}; + if( in_x < 0.0 || in_x > ${f} ) { + setOutput(float(${s})); + return; + } + + vec2 sourceFracIndexCR = vec2(in_x,in_y); + if(${+("bilinear"===n)} == 1) { + // Compute the four integer indices. + ivec2 sourceFloorCR = ivec2(sourceFracIndexCR); + ivec2 sourceCeilCR = ivec2(ceil(sourceFracIndexCR)); + + float topLeft = getImage(b, sourceFloorCR.y, sourceFloorCR.x, d); + float bottomLeft = getImage(b, sourceCeilCR.y, sourceFloorCR.x, d); + float topRight = getImage(b, sourceFloorCR.y, sourceCeilCR.x, d); + float bottomRight = getImage(b, sourceCeilCR.y, sourceCeilCR.x, d); + + vec2 fracCR = sourceFracIndexCR - vec2(sourceFloorCR); + + float top = topLeft + (topRight - topLeft) * fracCR.x; + float bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x; + float newValue = top + (bottom - top) * fracCR.y; + setOutput(newValue); + } else { + // Compute the coordinators of nearest neighbor point. + ivec2 sourceNearestCR = ivec2(floor( + sourceFracIndexCR + vec2(0.5,0.5))); + float newValue = getImage(b, sourceNearestCR.y, sourceNearestCR.x, d); + setOutput(newValue); + } + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6Iebd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumprod",()=>i),s.export(r,"cumprodConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cum_gpu"),l=e("./Cum_impl");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:a,exclusive:i,reverse:u}=n;return(0,l.cumImpl)(o.CumOpType.Prod,s,r,a,i,u)}let u={kernelName:a.Cumprod,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cum_gpu":"keig2","./Cum_impl":"8Wtpq","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],keig2:[function(e,t,r,n){var s,a,o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"CumOpType",()=>a),o.export(r,"CumProgram",()=>i);var l=e("./shader_compiler");(s=a||(a={})).Prod="*",s.Sum="+";class i{constructor(e,t,r,n){this.op=e,this.outputShape=t,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];let s=this.outputShape.length,o=this.op===a.Prod?"1.0":"0.0",i=r?o:`getX(${u(s,"coords",this.op)})`,c=this.outputShape[this.outputShape.length-1],d="",f="";r?(d=n?`end != ${c-1}`:"end != 0",f=n?"end + 1":"end - 1"):(d=n?`end + pow2 < ${c}`:"end >= pow2",f=n?"end + pow2":"end - pow2"),this.userCode=` + void main() { + ${(0,l.getCoordsDataType)(s)} coords = getOutputCoords(); + int end = ${p(s,"coords",this.op)}; + float val = ${i}; + int pow2 = int(pow(2.0, index)); + if (${d}) { + int idx = ${f}; + ${p(s,"coords",this.op)} = idx; + val ${this.op}= getX(${u(s,"coords",this.op)}); + } + setOutput(val); + } + `}}function u(e,t,r){if(1===e)return`${t}`;if(2===e)return`${t}.x, ${t}.y`;if(3===e)return`${t}.x, ${t}.y, ${t}.z`;if(4===e)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw Error(`Cumulative ${r} for rank ${e} is not yet supported`)}function p(e,t,r){if(1===e)return`${t}`;if(2===e)return`${t}.y`;if(3===e)return`${t}.z`;if(4===e)return`${t}.w`;throw Error(`Cumulative ${r} for rank ${e} is not yet supported`)}},{"./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8Wtpq":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumImpl",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cum_gpu"),l=e("./Identity"),i=e("./Transpose");function u(e,t,r,n,s,u){let p=t.shape.length,c=a.backend_util.getAxesPermutation([n],p),d=t;null!=c&&(d=(0,i.transpose)({inputs:{x:t},backend:r,attrs:{perm:c}}));let f=a.backend_util.getInnerMostAxes(1,p)[0];if(f!==p-1)throw Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${n}`);let m=d.shape[f],h=(0,l.identity)({inputs:{x:d},backend:r});for(let t=0;t<=Math.ceil(Math.log2(m))-1;t++){let n=new(0,o.CumProgram)(e,d.shape,!1,u),s=[[t]],a=h;h=r.runWebGLProgram(n,[h],h.dtype,s),r.disposeIntermediateTensorInfo(a)}if(s){let t=new(0,o.CumProgram)(e,d.shape,s,u),n=h;h=r.runWebGLProgram(t,[h],h.dtype),r.disposeIntermediateTensorInfo(n)}if(null!=c){let e=a.backend_util.getUndoAxesPermutation(c),t=(0,i.transpose)({inputs:{x:h},backend:r,attrs:{perm:e}});return r.disposeIntermediateTensorInfo(h),r.disposeIntermediateTensorInfo(d),t}return h}},{"@tensorflow/tfjs-core":"biUij","../cum_gpu":"keig2","./Identity":"fI9uV","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3ElbW":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumsum",()=>i),s.export(r,"cumsumConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cum_gpu"),l=e("./Cum_impl");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:a,exclusive:i,reverse:u}=n;return(0,l.cumImpl)(o.CumOpType.Sum,s,r,a,i,u)}let u={kernelName:a.Cumsum,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cum_gpu":"keig2","./Cum_impl":"8Wtpq","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],j1F7G:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"denseBincount",()=>l),s.export(r,"denseBincountConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,weights:a}=t,{size:l,binaryOutput:i}=n;if(1===s.shape.length){let e=r.readSync(s.dataId),t=r.readSync(a.dataId),n=(0,o.bincountImplCPU)(e,t,a.dtype,a.shape,l);return r.makeTensorInfo([l],a.dtype,n)}if(2===s.shape.length){let e=r.bufferSync(s),t=r.bufferSync(a),n=(0,o.bincountReduceImplCPU)(e,t,l,i);return r.makeTensorInfo(n.shape,a.dtype,n.values)}throw Error(`Error in denseBincount: input must be at most rank 2, but got rank${s.shape.length}.`)}let i={kernelName:a.DenseBincount,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lBwE2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthToSpace",()=>l),s.export(r,"depthToSpaceConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../depth_to_space_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockSize:a,dataFormat:l}=n,i=s.shape[0],u="NHWC"===l?s.shape[1]:s.shape[2],p="NHWC"===l?s.shape[2]:s.shape[3],c="NHWC"===l?s.shape[3]:s.shape[1],d=u*a,f=p*a,m=c/(a*a),h=new(0,o.DepthToSpaceProgram)("NHWC"===l?[i,d,f,m]:[i,m,d,f],a,l);return r.runWebGLProgram(h,[s],s.dtype)}let i={kernelName:a.DepthToSpace,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../depth_to_space_gpu":"3giZ7","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3giZ7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DepthToSpaceProgram",()=>a);class a{constructor(e,t,r){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=r,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int h = ${this.getHeightCoordString()}; + int w = ${this.getWidthCoordString()}; + int d = ${this.getDepthCoordString()}; + + int in_h = h / ${t}; + int offset_h = imod(h, ${t}); + int in_w = w / ${t}; + int offset_w = imod(w, ${t}); + int offset_d = (offset_h * ${t} + offset_w) * + ${this.getOutputDepthSize()}; + int in_d = d + offset_d; + + float result = ${this.getInputSamplingString()}; + setOutput(result); + } + `}getHeightCoordString(){return"NHWC"===this.dataFormat?"coords[1]":"coords[2]"}getWidthCoordString(){return"NHWC"===this.dataFormat?"coords[2]":"coords[3]"}getDepthCoordString(){return"NHWC"===this.dataFormat?"coords[3]":"coords[1]"}getOutputDepthSize(){return"NHWC"===this.dataFormat?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return"NHWC"===this.dataFormat?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iybmn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNative",()=>i),s.export(r,"depthwiseConv2dNativeConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../conv_gpu_depthwise"),l=e("../conv_packed_gpu_depthwise");function i(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:i,filter:u}=r,{strides:p,pad:c,dilations:d,dimRoundingMode:f}=s,m=d;null==m&&(m=[1,1]),a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(p,m),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${p} and dilations '${m}'`);let h=a.backend_util.computeConv2DInfo(i.shape,u.shape,p,m,c,f,!0);t=(0,a.env)().getBool("WEBGL_PACK_DEPTHWISECONV")&&h.strideWidth<=2&&h.outChannels/h.inChannels==1?new(0,l.DepthwiseConvPacked2DProgram)(h):new(0,o.DepthwiseConv2DProgram)(h);let g=[[h.padInfo.top,h.padInfo.left],[h.strideHeight,h.strideWidth],[h.dilationHeight,h.dilationWidth],[h.inHeight,h.inWidth]];return n.runWebGLProgram(t,[i,u],"float32",g)}let u={kernelName:a.DepthwiseConv2dNative,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../conv_gpu_depthwise":"fvJLC","../conv_packed_gpu_depthwise":"eBfIK","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fvJLC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DepthwiseConv2DProgram",()=>o);var a=e("./gpgpu_math");class o{constructor(e,t=!1,r=null,n=!1,s=!1){this.variableNames=["x","W"],this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length);let o=e.filterHeight,l=e.filterWidth,i=e.outChannels/e.inChannels,u="",p="";r&&(u=n?`float activation(float a) { + float b = getPreluActivationWeightsAtOutCoords(); + ${r} + }`:s?`float activation(float a) { + float b = getLeakyreluAlphaAtOutCoords(); + ${r} + }`:` + float activation(float x) { + ${r} + } + `,p="result = activation(result);"),t&&this.variableNames.push("bias"),n&&this.variableNames.push("preluActivationWeights"),s&&this.variableNames.push("leakyreluAlpha"),this.userCode=` + ${u} + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords.x; + ivec2 xRCCorner = coords.yz * strides - pads; + int d2 = coords.w; + int d1 = d2 / ${i}; + int q = d2 - d1 * ${i}; + + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations. + for (int wR = 0; wR < ${o}; wR++) { + int xR = xRCorner + wR * dilations[0]; + + if (xR < 0 || xR >= inDims[0]) { + continue; + } + + for (int wC = 0; wC < ${l}; wC++) { + int xC = xCCorner + wC * dilations[1]; + + if (xC < 0 || xC >= inDims[1]) { + continue; + } + + float xVal = getX(batch, xR, xC, d1); + float wVal = getW(wR, wC, d1, q); + dotProd += xVal * wVal; + } + } + + float result = dotProd; + ${t?"result += getBiasAtOutCoords();":""} + ${p} + setOutput(result); + } + `}}},{"./gpgpu_math":"1F9Jp","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eBfIK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DepthwiseConvPacked2DProgram",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_math");class l{constructor(e,t=!1,r=null,n=!1,s=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length);let l=e.outChannels/e.inChannels,i=e.padInfo.left,u=e.strideWidth,p=e.dilationWidth,c=e.filterHeight,d=e.filterWidth,f=` + int xR; int xC; int xCOffset; + vec4 wTexel; vec4 previous; vec4 final;`;for(let e=0;e=0 && xR < inDims[0]) { + `;for(let e=0;e<(d+1)/2;e++){let t=2*e;if(f+=` + xC = xCCorner + ${t*p}; + `,1===u){if(t= 0 && xCOffset < inDims[1] && xTexelC${t}Ready == 0) { + xTexelC${t} = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + xTexelC${t}.zw = vec2(0.0); + } + xTexelC${t}Ready = 1; + } + `,1===p&&t>0?f+=` + xC${t} = vec4(xTexelC${t-2}.zw, xTexelC${t}.xy); + `:f+=` + xCOffset = xC + 1 - 2; + + if (xCOffset >= 0 && xCOffset < inDims[1]) { + previous = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + previous.zw = vec2(0.0); + } + + xC${t} = vec4(previous.zw, xTexelC${t}.xy); + } else { + xC${t} = vec4(0.0, 0.0, xTexelC${t}.xy); + } + `):f+=` + if (xC >= 0 && xC < inDims[1] && xTexelC${t}Ready == 0) { + xTexelC${t} = getX(batch, xR, xC, d1); + if (xC + 1 >= inDims[1]) { + xTexelC${t}.zw = vec2(0.0); + } + xTexelC${t}Ready = 1; + } + + xC${t} = xTexelC${t}; + `,t+1= 0 && xCOffset < inDims[1] && xTexelC${t+1}Ready == 0) { + xTexelC${t+1} = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + xTexelC${t+1}.zw = vec2(0.0); + } + xTexelC${t+1}Ready = 1; + } + `,p>1?f+=` + xCOffset -= 2; + if (xCOffset >= 0 && xCOffset < inDims[1]) { + previous = getX(batch, xR, xCOffset, d1); + xC${t+1} = vec4(previous.zw, xTexelC${t+1}.xy); + } else { + xC${t+1} = vec4(0.0, 0.0, xTexelC${t+1}.xy); + } + `:f+=` + xC${t+1} = vec4(xTexelC${t}.zw, xTexelC${t+1}.xy); + `):1===e?f+=` + xC${t+1} = xTexelC${t}; + `:f+=` + xCOffset = xC + ${e}; + + if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${t+1}Ready == 0) { + xTexelC${t+1} = getX(batch, xR, xCOffset, d1); + if (xCOffset + 1 >= inDims[1]) { + xTexelC${t+1}.zw = vec2(0.0); + } + xTexelC${t+1}Ready = 1; + } + + xC${t+1} = xTexelC${t+1}; + `}}else t= 0 && xCOffset < inDims[1] && xTexelC${t}Ready == 0) { + xTexelC${t} = getX(batch, xR, xCOffset, d1); + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + xTexelC${t}.zw = vec2(0.0); + } + xTexelC${t}Ready = 1; + } + + if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${t+1}Ready == 0) { + xTexelC${t+1} = getX(batch, xR, xC + 1, d1); + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xC + 2 >= inDims[1]) { + xTexelC${t+1}.zw = vec2(0.0); + } + xTexelC${t+1}Ready = 1; + } + + xC${t} = vec4(xTexelC${t}.zw, xTexelC${t+1}.zw); + `,t+1= 0 && xCOffset < inDims[1]) { + final = getX(batch, xR, xCOffset, d1); + } + xC${t+1} = vec4(xTexelC${t+1}.xy, final.xy); + `)):(f+=` + if(xC >= 0 && xC < inDims[1] && xTexelC${t}Ready == 0) { + xTexelC${t} = getX(batch, xR, xC, d1); + if (xC + 1 >= inDims[1]) { + xTexelC${t}.zw = vec2(0.0); + } + xTexelC${t}Ready = 1; + } + + xCOffset = xC + strides[1]; + if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${t+1}Ready == 0) { + xTexelC${t+1} = getX(batch, xR, xCOffset, d1); + if (xCOffset + 1 >= inDims[1]) { + xTexelC${t+1}.zw = vec2(0.); + } + xTexelC${t+1}Ready = 1; + } + + xC${t} = vec4( + xTexelC${t}.xy, xTexelC${t+1}.xy); + `,t+1l),s.export(r,"depthwiseConv2dNativeBackpropFilterConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu_depthwise");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,dilations:u,pad:p,dimRoundingMode:c,filterShape:d}=n,f=a.backend_util.computeConv2DInfo(s.shape,d,i,u,p,c,!0),m=new(0,o.DepthwiseConv2DDerFilterProgram)(f);return r.runWebGLProgram(m,[s,l],"float32")}let i={kernelName:a.DepthwiseConv2dNativeBackpropFilter,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../conv_backprop_gpu_depthwise":"dzYcR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dzYcR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DepthwiseConv2DDerFilterProgram",()=>a),s.export(r,"DepthwiseConv2DDerInputProgram",()=>o);class a{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,r=e.strideWidth,n=e.padInfo.top,s=e.padInfo.left,a=e.outChannels/e.inChannels;this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int wR = coords.x; + int wC = coords.y; + int d1 = coords.z; + int dm = coords.w; + int d2 = d1 * ${a} + dm; + + float dotProd = 0.0; + + // TO DO: Vec4 over the batch size + for (int b = 0; b < ${e.batchSize}; b++) { + for (int yR = 0; yR < ${e.outHeight}; yR++) { + int xR = wR + yR * ${t} - ${n}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int yC = 0; yC < ${e.outWidth}; yC++) { + int xC = wC + yC * ${r} - ${s}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + float dyValue = getDy(b, yR, yC, d2); + float xValue = getX(b, xR, xC, d1); + dotProd += (xValue * dyValue); + } + } + } + setOutput(dotProd); + } + `}}class o{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,r=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a=t-1-e.padInfo.top,o=r-1-e.padInfo.left,l=e.outChannels/e.inChannels;this.userCode=` + const ivec2 pads = ivec2(${a}, ${o}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d1 = coords[3]; + ivec2 dyCorner = coords.yz - pads; + int dyRCorner = dyCorner.x; + int dyCCorner = dyCorner.y; + + float dotProd = 0.0; + + for (int wR = 0; wR < ${t}; wR++) { + float dyR = float(dyRCorner + wR) / ${n}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + int wRPerm = ${t} - 1 - wR; + + for (int wC = 0; wC < ${r}; wC++) { + float dyC = float(dyCCorner + wC) / ${s}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + int wCPerm = ${r} - 1 - wC; + + // TO DO: Vec4 over the channelMul + for (int dm = 0; dm < ${l}; dm++) { + int d2 = d1 * ${l} + dm; + float xValue = getDy(batch, idyR, idyC, d2); + float wValue = getW(wRPerm, wCPerm, d1, dm); + dotProd += xValue * wValue; + } + } + } + setOutput(dotProd); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5kFJD":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNativeBackpropInput",()=>l),s.export(r,"depthwiseConv2dNativeBackpropInputConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu_depthwise");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:l}=t,{strides:i,dilations:u,pad:p,dimRoundingMode:c,inputShape:d}=n,f=a.backend_util.computeConv2DInfo(d,l.shape,i,u,p,c,!0),m=new(0,o.DepthwiseConv2DDerInputProgram)(f);return r.runWebGLProgram(m,[s,l],"float32")}let i={kernelName:a.DepthwiseConv2dNativeBackpropInput,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../conv_backprop_gpu_depthwise":"dzYcR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9P3no":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"diag",()=>i),s.export(r,"diagConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../diag_gpu"),l=e("./Reshape");function i(e){let{inputs:t,backend:r}=e,{x:n}=t,s=[...n.shape,...n.shape],i=a.util.sizeFromShape(n.shape),u=(0,l.reshape)({inputs:{x:n},backend:r,attrs:{shape:[i]}}),p=new(0,o.DiagProgram)(i),c=r.runWebGLProgram(p,[u],u.dtype),d=(0,l.reshape)({inputs:{x:c},backend:r,attrs:{shape:s}});return r.disposeIntermediateTensorInfo(u),r.disposeIntermediateTensorInfo(c),d}let u={kernelName:a.Diag,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../diag_gpu":"7wcCN","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7wcCN":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DiagProgram",()=>a);class a{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` + void main() { + ivec2 coords = getOutputCoords(); + float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0; + setOutput(val); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hIDhJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dilation2D",()=>i),s.export(r,"dilation2DConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../dilation_gpu"),l=e("./Reshape");function i(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:i,filter:u}=r,{strides:p,pad:c,dilations:d}=s,f=a.backend_util.computeDilation2DInfo(i.shape,u.shape,p,c,"NHWC",d),m=new(0,o.Dilation2DProgram)(f);t=n.runWebGLProgram(m,[i,u],"float32");let h=(0,l.reshape)({inputs:{x:t},backend:n,attrs:{shape:f.outShape}});return n.disposeIntermediateTensorInfo(t),h}let u={kernelName:a.Dilation2D,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../dilation_gpu":"cLxI8","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cLxI8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Dilation2DProgram",()=>a);class a{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:r,padInfo:n,strideHeight:s,strideWidth:a,filterHeight:o,filterWidth:l,dilationHeight:i,dilationWidth:u}=e,{top:p,left:c}=n;this.userCode=` + const ivec2 strides = ivec2(${s}, ${a}); + const ivec2 pads = ivec2(${p}, ${c}); + const float neg_infinity = -3.4e38; + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords.x; + int d1 = coords.w; + ivec2 outTopLeftCorner = + coords.yz * strides - pads; + int hBeg = outTopLeftCorner.x; + int wBeg = outTopLeftCorner.y; + + float curVal = neg_infinity; + for (int h = 0; h < ${o}; h++) { + int hIn = hBeg + h * ${i}; + + if (hIn >= 0 && hIn < ${t}) { + for (int w = 0; w < ${l}; w++) { + int wIn = wBeg + w * ${u}; + + if (wIn >= 0 && wIn < ${r}) { + float xVal = getX(batch, hIn, wIn, d1); + float wVal = getW(h, w, d1); + + float val = xVal + wVal; + if (val > curVal) { + curVal = val; + } + } + } + } + } + + float result = curVal; + setOutput(result); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hb4tp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"einsum",()=>p),s.export(r,"einsumConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./Multiply"),l=e("./Reshape"),i=e("./Sum"),u=e("./Transpose");function p(e){let{inputs:t,backend:r,attrs:n}=e,{equation:s}=n,{allDims:p,summedDims:c,idDims:d}=a.backend_util.decodeEinsumEquation(s,t.length);a.backend_util.checkEinsumDimSizes(p.length,d,t);let{path:f,steps:m}=a.backend_util.getEinsumComputePath(c,d),h=m.length,g=null,x=p.length,v=[];for(let e=0;e=0&&(g=(0,i.sum)({inputs:{x:g},backend:r,attrs:{axis:f[e]-(p.length-x),keepDims:!1}}),v.push(g)),x--)}for(let e of v)e!==g&&r.disposeIntermediateTensorInfo(e);return g}let c={kernelName:a.Einsum,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","./Multiply":"2bVHl","./Reshape":"2Do1g","./Sum":"jCPqj","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bP2Cy:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"eluConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + vec4 result; + + result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); + result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0); + result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0); + result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); + + return result; +`,i=(0,o.unaryKernelFunc)({opSnippet:"return (x >= 0.0) ? x : (exp(x) - 1.0);",packedOpSnippet:l}),u={kernelName:a.Elu,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2chy9":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"eluGrad",()=>u),s.export(r,"eluGradConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu");let i=` + vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); + return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); +`,u=e=>{let{inputs:t,backend:r}=e,{dy:n,y:s}=t,u=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new(0,l.BinaryOpPackedProgram)(i,n.shape,s.shape):new(0,o.BinaryOpProgram)("return (b >= 0.0) ? a : a * (b + 1.0);",n.shape,s.shape);return r.runWebGLProgram(u,[n,s],n.dtype)},p={kernelName:a.EluGrad,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../binaryop_gpu":"iq2Hg","../binaryop_packed_gpu":"g7FAa","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8hRle":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"equal",()=>u),s.export(r,"equalConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=` + return vec4(equal(a, b)); +`,u=(0,o.binaryKernelFunc)({opSnippet:"return float(a == b);",packedOpSnippet:i,dtype:"bool",cpuKernelImpl:l.equalImplCPU}),p={kernelName:a.Equal,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],glNIu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"erf",()=>i),s.export(r,"erfConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + // Error function is calculated approximately with elementary function. + // See "Handbook of Mathematical Functions with Formulas, + // Graphs, and Mathematical Tables", Abramowitz and Stegun. + float p = ${a.backend_util.ERF_P}; + float a1 = ${a.backend_util.ERF_A1}; + float a2 = ${a.backend_util.ERF_A2}; + float a3 = ${a.backend_util.ERF_A3}; + float a4 = ${a.backend_util.ERF_A4}; + float a5 = ${a.backend_util.ERF_A5}; + + float sign = sign(x); + x = abs(x); + float t = 1.0 / (1.0 + p * x); + return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x)); +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Erf,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1Az5Y":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EXP",()=>i),s.export(r,"exp",()=>p),s.export(r,"expConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=o.CHECK_NAN_SNIPPET_UNARY+` + return exp(x); +`,u=` + vec4 result = exp(x); + bvec4 isNaN = isnan(x); + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`,p=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:u,cpuKernelImpl:l.expImplCPU,dtype:"float32"}),c={kernelName:a.Exp,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8Gccb":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expandDims",()=>l),s.export(r,"expandDimsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Reshape");function l(e){let{inputs:t,attrs:r,backend:n}=e,{dim:s}=r,{input:l}=t,i=l.shape.length,u=l.shape.slice(),p=s;return s<0&&(a.util.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),p=i+s+1),u.splice(p,0,1),(0,o.reshape)({inputs:{x:l},backend:n,attrs:{shape:u}})}let i={kernelName:a.ExpandDims,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"27kYG":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expm1",()=>u),s.export(r,"expm1Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return exp(x) - 1.0;",u=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:i,cpuKernelImpl:l.expm1ImplCPU}),p={kernelName:a.Expm1,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9VoBN":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fft",()=>l),s.export(r,"fftConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./FFT_impl");function l(e){let{inputs:t,backend:r}=e,{input:n}=t;return(0,o.fftImpl)(n,!1,r)}let i={kernelName:a.FFT,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./FFT_impl":"01g1S","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"01g1S":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fftImpl",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../fft_gpu"),l=e("./Complex"),i=e("./Reshape");function u(e,t,r){let n=r.texData.get(e.dataId),s=a.util.sizeFromShape(e.shape),u=e.shape[e.shape.length-1],p=(0,i.reshape)({inputs:{x:e},backend:r,attrs:{shape:[s/u,u]}}),c=p.shape,d=new(0,o.FFTProgram)("real",c,t),f=new(0,o.FFTProgram)("imag",c,t),m=[{dataId:n.complexTensorInfos.real.dataId,dtype:n.complexTensorInfos.real.dtype,shape:c},{dataId:n.complexTensorInfos.imag.dataId,dtype:n.complexTensorInfos.imag.dtype,shape:c}],h=r.runWebGLProgram(d,m,"float32"),g=r.runWebGLProgram(f,m,"float32"),x=(0,l.complex)({inputs:{real:h,imag:g},backend:r});r.disposeIntermediateTensorInfo(h),r.disposeIntermediateTensorInfo(g);let v=(0,i.reshape)({inputs:{x:x},backend:r,attrs:{shape:e.shape}});return r.disposeIntermediateTensorInfo(p),r.disposeIntermediateTensorInfo(x),v}},{"@tensorflow/tfjs-core":"biUij","../fft_gpu":"2RJfY","./Complex":"fN7J8","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2RJfY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"FFTProgram",()=>a);class a{constructor(e,t,r){let n;this.variableNames=["real","imag"];let s=t[1];this.outputShape=t;let a=r?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,o=r?`${s}.0`:"1.0";if("real"===e)n="return real * expR - imag * expI;";else if("imag"===e)n="return real * expI + imag * expR;";else throw Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` + const float exponentMultiplier = ${a}; + + float unaryOpComplex(float real, float expR, float imag, float expI) { + ${n} + } + + float mulMatDFT(int batch, int index) { + float indexRatio = float(index) / float(${s}); + float exponentMultiplierTimesIndexRatio = + exponentMultiplier * indexRatio; + + float result = 0.0; + + for (int i = 0; i < ${s}; i++) { + // x = (-2|2 * PI / N) * index * i; + float x = exponentMultiplierTimesIndexRatio * float(i); + float expR = cos(x); + float expI = sin(x); + float real = getReal(batch, i); + float imag = getImag(batch, i); + + result += + unaryOpComplex(real, expR, imag, expI) / ${o}; + } + + return result; + } + + void main() { + ivec2 coords = getOutputCoords(); + setOutput(mulMatDFT(coords[0], coords[1])); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],e9rdf:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fill",()=>l),s.export(r,"fillConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../fill_gpu");function l(e){let{backend:t,attrs:r}=e,{shape:n,value:s}=r,{dtype:l}=r;if("string"===(l=l||a.util.inferDtype(s))){let e=a.util.getArrayFromDType(l,a.util.sizeFromShape(n));return e.fill(s),t.makeTensorInfo(n,l,e)}{let e=new(0,o.FillProgram)(n,s),r=[[s]];return t.runWebGLProgram(e,[],l,r)}}let i={kernelName:a.Fill,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../fill_gpu":"2OgHL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2OgHL":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"FillProgram",()=>a);class a{constructor(e,t){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=e,this.userCode=` + void main() { + // Input can be obtained from uniform value. + setOutput(value); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7AJEx":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"flipLeftRightConfig",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("../flip_left_right_gpu");let l={kernelName:a.FlipLeftRight,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:r}=e,n=new(0,o.FlipLeftRightProgram)(r.shape);return t.runWebGLProgram(n,[r],r.dtype)}}},{"@tensorflow/tfjs-core":"biUij","../flip_left_right_gpu":"9baEm","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9baEm":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"FlipLeftRightProgram",()=>a);class a{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int x = coords[2]; + + int coordX = ${t} - x - 1; + float outputValue; + if(coordX >= 0 && coordX < ${t}) { + outputValue = getImage(coords[0], coords[1], coordX, coords[3]); + } else { + outputValue = getImage(coords[0], coords[1], coords[2], coords[3]); + } + setOutput(outputValue); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fmbXP:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floor",()=>u),s.export(r,"floorConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return floor(x);",u=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:i,cpuKernelImpl:l.floorImplCPU}),p={kernelName:a.Floor,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"19u50":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floorDiv",()=>u),s.export(r,"floorDivConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + float s = sign(a) * sign(b); + int ia = round(a); + int ib = round(b); + if (ib != 0) { + // Windows (D3D) wants guaranteed non-zero int division at compile-time. + return float(idiv(ia, ib, s)); + } else { + return NAN; + } +`,i=` + ivec4 ia = round(a); + ivec4 ib = round(b); + bvec4 cond = notEqual(ib, ivec4(0)); + ivec4 result = ivec4(0); + vec4 s = sign(a) * sign(b); + + // Windows (D3D) wants guaranteed non-zero int division at compile-time. + if (cond[0]) { + result[0] = idiv(ia[0], ib[0], s[0]); + } + if (cond[1]) { + result[1] = idiv(ia[1], ib[1], s[1]); + } + if (cond[2]) { + result[2] = idiv(ia[2], ib[2], s[2]); + } + if (cond[3]) { + result[3] = idiv(ia[3], ib[3], s[3]); + } + return vec4(result); +`,u=(0,o.binaryKernelFunc)({opSnippet:l,packedOpSnippet:i,dtype:"int32"}),p={kernelName:a.FloorDiv,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aePD5:[function(e,t,r,n){let s;var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"fromPixelsConfig",()=>p);var o=e("@tensorflow/tfjs-core"),l=e("../tex_util"),i=e("./FromPixels_utils/from_pixels_gpu"),u=e("./FromPixels_utils/from_pixels_packed_gpu");let p={kernelName:o.FromPixels,backendName:"webgl",kernelFunc:function(e){let{inputs:t,backend:r,attrs:n}=e,{pixels:a}=t,{numChannels:p}=n,d="undefined"!=typeof HTMLVideoElement&&a instanceof HTMLVideoElement,f="undefined"!=typeof HTMLImageElement&&a instanceof HTMLImageElement,[m,h]=d?[a.videoWidth,a.videoHeight]:[a.width,a.height],g=[h,m],x=[h,m,p];if(f||d){let e=(0,o.env)().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(null==s||e!==c)&&(c=e,s=document.createElement("canvas").getContext("2d",{willReadFrequently:c})),s.canvas.width=m,s.canvas.height=h,s.drawImage(a,0,0,m,h),a=s.canvas}let v=r.makeTensorInfo(g,"int32");r.texData.get(v.dataId).usage=l.TextureUsage.PIXELS,r.gpgpu.uploadPixelDataToTexture(r.getTexture(v.dataId),a);let y=(0,o.env)().getBool("WEBGL_PACK")?new(0,u.FromPixelsPackedProgram)(x):new(0,i.FromPixelsProgram)(x),b=r.runWebGLProgram(y,[v],"int32");return r.disposeData(v.dataId),b}},c=(0,o.env)().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU")},{"@tensorflow/tfjs-core":"biUij","../tex_util":"jmYC7","./FromPixels_utils/from_pixels_gpu":"dzapw","./FromPixels_utils/from_pixels_packed_gpu":"bZSIj","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dzapw:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"FromPixelsProgram",()=>o);var a=e("../../glsl_version");class o{constructor(e){this.variableNames=["A"];let t=(0,a.getGlslDifferences)(),[r,n]=e;this.outputShape=e,this.userCode=` + void main() { + ivec3 coords = getOutputCoords(); + int texR = coords[0]; + int texC = coords[1]; + int depth = coords[2]; + vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${n}.0, ${r}.0); + + vec4 values = ${t.texture2D}(A, uv); + float value; + if (depth == 0) { + value = values.r; + } else if (depth == 1) { + value = values.g; + } else if (depth == 2) { + value = values.b; + } else if (depth == 3) { + value = values.a; + } + + setOutput(floor(value * 255.0 + 0.5)); + } + `}}},{"../../glsl_version":"9EOgg","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bZSIj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"FromPixelsPackedProgram",()=>o);var a=e("../../glsl_version");class o{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=(0,a.getGlslDifferences)(),[r,n]=e;this.outputShape=e,this.userCode=` + void main() { + ivec3 coords = getOutputCoords(); + int texR = coords[0]; + int texC = coords[1]; + int depth = coords[2]; + + vec4 result = vec4(0.); + + for(int row=0; row<=1; row++) { + for(int col=0; col<=1; col++) { + texC = coords[1] + row; + depth = coords[2] + col; + + vec2 uv = (vec2(texC, texR) + halfCR) / + vec2(${n}.0, ${r}.0); + vec4 values = ${t.texture2D}(A, uv); + float value; + if (depth == 0) { + value = values.r; + } else if (depth == 1) { + value = values.g; + } else if (depth == 2) { + value = values.b; + } else if (depth == 3) { + value = values.a; + } + + result[row * 2 + col] = floor(value * 255.0 + 0.5); + } + } + + ${t.output} = result; + } + `}}},{"../../glsl_version":"9EOgg","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hPMC4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fusedConv2d",()=>c),s.export(r,"fusedConv2DConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("../conv_gpu"),l=e("../conv_packed_gpu"),i=e("../kernel_utils/kernel_funcs_utils"),u=e("./Conv2D_impl"),p=e("./Reshape");function c(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:c,filter:d,bias:f,preluActivationWeights:m}=r,{strides:h,pad:g,dataFormat:x,dilations:v,dimRoundingMode:y,activation:b,leakyreluAlpha:_}=s,k=a.backend_util.convertConv2DDataFormat(x),j=a.backend_util.computeConv2DInfo(c.shape,d.shape,h,v,g,y,!1,k),I=[],w=null!=f,T=null!=m,N="leakyrelu"===b,S=()=>{let e=[c,d],t=(e,t)=>{if("NCHW"===t&&1===e.shape.length&&1!==e.shape[0]){let t=(0,p.reshape)({inputs:{x:e},backend:n,attrs:{shape:[e.shape[0],1,1]}});return I.push(t),t}return e};if(w&&e.push(t(f,x)),T&&e.push(t(m,x)),N){let t=n.makeTensorInfo([],"float32",a.util.createScalarValue(_,"float32"));e.push(t),I.push(t)}return e};if(1===j.filterHeight&&1===j.filterWidth&&1===j.dilationHeight&&1===j.dilationWidth&&1===j.strideHeight&&1===j.strideWidth&&("SAME"===j.padInfo.type||"VALID"===j.padInfo.type))t=(0,u.conv2dByMatMul)({x:c,filter:d,convInfo:j,backend:n,bias:f,activation:b,preluActivationWeights:m,leakyreluAlpha:_});else if(j.strideWidth<=2&&"channelsLast"===k&&(0,a.env)().getBool("WEBGL_EXP_CONV")){let e=b?(0,i.mapActivationToShaderProgram)(b,!0):null,r=new(0,l.Conv2DPackedProgram)(j,w,e,T,N),s=[[j.padInfo.top,j.padInfo.left],[j.strideHeight,j.strideWidth],[j.dilationHeight,j.dilationWidth],[j.inHeight,j.inWidth]],a=S();t=n.runWebGLProgram(r,a,"float32",s)}else if((0,a.env)().getBool("WEBGL_CONV_IM2COL"))t=(0,u.conv2dWithIm2Row)({x:c,filter:d,convInfo:j,backend:n,bias:f,activation:b,preluActivationWeights:m,leakyreluAlpha:_});else{let e=b?(0,i.mapActivationToShaderProgram)(b,!1):null,r=new(0,o.Conv2DProgram)(j,w,e,T,N),s=S();t=n.runWebGLProgram(r,s,"float32")}let C=(0,p.reshape)({inputs:{x:t},backend:n,attrs:{shape:j.outShape}});return I.push(t),I.forEach(e=>n.disposeIntermediateTensorInfo(e)),C}let d={kernelName:a.FusedConv2D,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"biUij","../conv_gpu":"lCtEK","../conv_packed_gpu":"63vcn","../kernel_utils/kernel_funcs_utils":"5WW6u","./Conv2D_impl":"cOUbb","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"70OVY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fusedDepthwiseConv2D",()=>u),s.export(r,"fusedDepthwiseConv2DConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../conv_gpu_depthwise"),l=e("../conv_packed_gpu_depthwise"),i=e("../kernel_utils/kernel_funcs_utils");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u,filter:p,bias:c,preluActivationWeights:d}=r,{strides:f,pad:m,dilations:h,dimRoundingMode:g,activation:x,leakyreluAlpha:v}=s,y=[],b=h;null==b&&(b=[1,1]),a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(f,b),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${f} and dilations '${b}'`);let _=a.backend_util.computeConv2DInfo(u.shape,p.shape,f,b,m,g,!0),k=(0,a.env)().getBool("WEBGL_PACK_DEPTHWISECONV")&&_.strideWidth<=2&&_.outChannels/_.inChannels==1,j=x?(0,i.mapActivationToShaderProgram)(x,k):null,I=[u,p],w=null!=c,T=null!=d,N="leakyrelu"===x;if(w&&I.push(c),T&&I.push(d),N){let e=n.makeTensorInfo([],"float32",a.util.createScalarValue(v,"float32"));I.push(e),y.push(e)}t=k?new(0,l.DepthwiseConvPacked2DProgram)(_,w,j,T,N):new(0,o.DepthwiseConv2DProgram)(_,w,j,T,N);let S=[[_.padInfo.top,_.padInfo.left],[_.strideHeight,_.strideWidth],[_.dilationHeight,_.dilationWidth],[_.inHeight,_.inWidth]],C=n.runWebGLProgram(t,I,"float32",S);return y.forEach(e=>n.disposeIntermediateTensorInfo(e)),C}let p={kernelName:a.FusedDepthwiseConv2D,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../conv_gpu_depthwise":"fvJLC","../conv_packed_gpu_depthwise":"eBfIK","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bxpkW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherNd",()=>u),s.export(r,"gatherNdConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../gather_nd_gpu"),l=e("../kernel_utils/shared"),i=e("./Reshape");function u(e){let{inputs:t,backend:r}=e,{params:n,indices:s}=t,u=s.shape,p=u[u.length-1],c=a.util.sizeFromShape(n.shape),[d,f,m,h]=a.backend_util.prepareAndValidate(n,s),g=(0,i.reshape)({inputs:{x:s},backend:r,attrs:{shape:[f,p]}}),x=(0,i.reshape)({inputs:{x:n},backend:r,attrs:{shape:[a.util.sizeFromShape(n.shape)/m,m]}});if(r.shouldExecuteOnCPU([n,s])||"string"===n.dtype){let e=r.readSync(s.dataId),t=r.bufferSync(n),a=(0,l.gatherNdImplCPU)(e,t,n.dtype,f,p,m,h,n.shape,c);return r.makeTensorInfo(d,n.dtype,a.values)}let v=new(0,o.GatherNDProgram)(p,h,[f,m],n.shape),y=r.runWebGLProgram(v,[x,g],x.dtype),b=(0,i.reshape)({inputs:{x:y},backend:r,attrs:{shape:d}});return r.disposeIntermediateTensorInfo(g),r.disposeIntermediateTensorInfo(x),r.disposeIntermediateTensorInfo(y),b}let p={kernelName:a.GatherNd,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../gather_nd_gpu":"bTRYg","../kernel_utils/shared":"lQim5","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bTRYg:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"GatherNDProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r,n){this.sliceDim=e,this.strides=t,this.paramsShape=n,this.variableNames=["x","indices"],this.outputShape=r;let s=(0,a.getCoordsDataType)(r.length),o=` + int index;`;for(let e=0;e= ${this.paramsShape[e]}; + flattenIndex += index * ${this.strides[e]};`;this.userCode=` + void main() { + ${s} coords = getOutputCoords(); + int flattenIndex = 0; + bool out_of_bounds = false; + + ${o} + + setOutput(out_of_bounds ? 0.0 : getX(flattenIndex, coords[1])); + } + `}}},{"./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4oWqG":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherV2",()=>u),s.export(r,"gatherV2Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../gather_gpu"),l=e("../kernel_utils/shared"),i=e("./Reshape");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,indices:u}=t,{axis:p,batchDims:c}=n,d=a.util.parseAxisParam(p,s.shape)[0];if((0,a.env)().get("DEBUG")){let e=r.readSync(u.dataId),t=s.shape[d];for(let r=0;r=0,()=>`GatherV2: the index value ${n} is not in [0, ${t-1}]`)}}let f=a.backend_util.segment_util.collectGatherOpShapeInfo(s,u,d,c),m=a.util.sizeFromShape(u.shape),h=[],g=(0,i.reshape)({inputs:{x:s},backend:r,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),x=(0,i.reshape)({inputs:{x:u},backend:r,attrs:{shape:[f.batchSize,m/f.batchSize]}});h.push(g),h.push(x);let v=[f.batchSize,f.outerSize,m/f.batchSize,f.sliceSize];if(r.shouldExecuteOnCPU([s,u])||"string"===s.dtype){let e=r.bufferSync(x),t=r.bufferSync(g),n=(0,l.gatherV2ImplCPU)(t,e,v);return h.forEach(e=>r.disposeIntermediateTensorInfo(e)),r.makeTensorInfo(f.outputShape,n.dtype,n.values)}let y=new(0,o.GatherProgram)(g.shape,v),b=r.runWebGLProgram(y,[g,x],g.dtype);h.push(b);let _=(0,i.reshape)({inputs:{x:b},backend:r,attrs:{shape:f.outputShape}});return h.forEach(e=>r.disposeIntermediateTensorInfo(e)),_}let p={kernelName:a.GatherV2,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../gather_gpu":"3f5Vd","../kernel_utils/shared":"lQim5","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3f5Vd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"GatherProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;let r=(0,a.getCoordsDataType)(this.rank),n=function(e,t){let r=["resRC.x","resRC.y","resRC.z","resRC.w"],n=[];for(let t=0;t= 0) && (index < ${e[2]}) ? 1.0 : 0.0; + setOutput(inBounds * getA(${n})); + } + `}}},{"./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],l81Xk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"greater",()=>u),s.export(r,"greaterConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=` + return vec4(greaterThan(a, b)); +`,u=(0,o.binaryKernelFunc)({opSnippet:"return float(a > b);",packedOpSnippet:i,cpuKernelImpl:l.greaterImplCPU,dtype:"bool"}),p={kernelName:a.Greater,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1GezO":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"greaterEqual",()=>u),s.export(r,"greaterEqualConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=` + return vec4(greaterThanEqual(a, b)); +`,u=(0,o.binaryKernelFunc)({opSnippet:"return float(a >= b);",packedOpSnippet:i,dtype:"bool",cpuKernelImpl:l.greaterEqualImplCPU}),p={kernelName:a.GreaterEqual,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eHC6h:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ifft",()=>l),s.export(r,"ifftConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./FFT_impl");function l(e){let{inputs:t,backend:r}=e,{input:n}=t;return(0,o.fftImpl)(n,!0,r)}let i={kernelName:a.IFFT,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./FFT_impl":"01g1S","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hHolW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isFinite",()=>o),s.export(r,"isFiniteConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return float(!isnan(x) && !isinf(x));",dtype:"bool"}),l={kernelName:a.IsFinite,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ec2An:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isInf",()=>o),s.export(r,"isInfConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return float(isinf(x));",dtype:"bool"}),l={kernelName:a.IsInf,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"19SeZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isNaN",()=>o),s.export(r,"isNaNConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return float(isnan(x));",dtype:"bool"}),l={kernelName:a.IsNan,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6Lpyh":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"less",()=>u),s.export(r,"lessConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=` + return vec4(lessThan(a, b)); +`,u=(0,o.binaryKernelFunc)({opSnippet:"return float(a < b);",packedOpSnippet:i,cpuKernelImpl:l.lessImplCPU,dtype:"bool"}),p={kernelName:a.Less,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aCE7c:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LESS_EQUAL",()=>i),s.export(r,"LESS_EQUAL_PACKED",()=>u),s.export(r,"lessEqual",()=>p),s.export(r,"lessEqualConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return float(a <= b);",u=` + return vec4(lessThanEqual(a, b)); +`,p=(0,o.binaryKernelFunc)({opSnippet:i,packedOpSnippet:u,cpuKernelImpl:l.lessEqualImplCPU,dtype:"bool"}),c={kernelName:a.LessEqual,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iUEf1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"linSpace",()=>l),s.export(r,"linSpaceConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{backend:t,attrs:r}=e,{start:n,stop:s,num:a}=r,l=(0,o.linSpaceImplCPU)(n,s,a);return t.makeTensorInfo([l.length],"float32",l)}let i={kernelName:a.LinSpace,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],igGOt:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"log",()=>p),s.export(r,"logConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=o.CHECK_NAN_SNIPPET_UNARY+` + return x < 0.0 ? 0./0. : log(x); +`,u=` + vec4 result = log(x); + bvec4 isNaN = isnan(x); + result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r); + result.g = isNaN.g ? x.g : (x.g < 0.0 ? 0./0. : result.g); + result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b); + result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a); + return result; +`,p=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:u,cpuKernelImpl:l.logImplCPU}),c={kernelName:a.Log,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"96DB5":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"log1p",()=>i),s.export(r,"log1pConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=o.CHECK_NAN_SNIPPET_UNARY+` + return log(1.0 + x); +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Log1p,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bpNAW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalAnd",()=>i),s.export(r,"logicalAndConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + return vec4( + vec4(greaterThanEqual(a, vec4(1.0))) * + vec4(greaterThanEqual(b, vec4(1.0)))); +`,i=(0,o.binaryKernelFunc)({opSnippet:"return float(a >= 1.0 && b >= 1.0);",packedOpSnippet:l,dtype:"bool"}),u={kernelName:a.LogicalAnd,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],k1Nis:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalNot",()=>o),s.export(r,"logicalNotConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return float(!(x >= 1.0));"}),l={kernelName:a.LogicalNot,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"35UMf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalOr",()=>i),s.export(r,"logicalOrConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + return min( + vec4(greaterThanEqual(a, vec4(1.0))) + + vec4(greaterThanEqual(b, vec4(1.0))), + vec4(1.0)); +`,i=(0,o.binaryKernelFunc)({opSnippet:"return float(a >= 1.0 || b >= 1.0);",packedOpSnippet:l,dtype:"bool"}),u={kernelName:a.LogicalOr,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8GTy8":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lrn",()=>i),s.export(r,"LRNConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../lrn_gpu"),l=e("../lrn_packed_gpu");let i=e=>{let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{depthRadius:i,bias:u,alpha:p,beta:c}=n,d=(0,a.env)().getBool("WEBGL_PACK_NORMALIZATION")?new(0,l.LRNPackedProgram)(s.shape,i,u,p,c):new(0,o.LRNProgram)(s.shape,i,u,p,c);return r.runWebGLProgram(d,[s],s.dtype)},u={kernelName:a.LRN,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../lrn_gpu":"2SdDz","../lrn_packed_gpu":"k5f5n","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2SdDz":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LRNProgram",()=>a);class a{constructor(e,t,r,n,s){let a;this.variableNames=["x"],this.outputShape=[];let o=e[3]-1;this.outputShape=e;let l=`float(${r}) + float(${n}) * sum`;a=.5===s?`inversesqrt(${l})`:1===s?`1.0/(${l})`:`exp(log(${l}) * float(-${s}));`,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int r = coords[1]; + int c = coords[2]; + int d = coords[3]; + float x = getX(b, r, c, d); + float sum = 0.0; + for (int j = -${t}; j <= ${t}; j++) { + int idx = d + j; + if (idx >= 0 && idx <= ${o}) { + float z = getX(b, r, c, idx); + sum += z * z; + } + } + float val = x * ${a}; + setOutput(val); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],k5f5n:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LRNPackedProgram",()=>a);class a{constructor(e,t,r,n,s){let a;this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let o=e[3]-1;this.outputShape=e;let l=`float(${r}) + float(${n}) * sum`;a=.5===s?`inversesqrt(${l})`:1===s?`1.0/(${l})`:`exp(log(${l}) * float(-${s}));`,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords.x; + int r = coords.y; + int c = coords.z; + int d = coords.w; + + bool hasNextCol = d < ${this.outputShape[3]}; + bool hasNextRow = c < ${this.outputShape[2]}; + + vec4 sum = vec4(0.); + vec4 xFragAtOutputCoords = getX(b, r, c, d); + + vec4 xAtOutputCoords = vec4( + getChannel(xFragAtOutputCoords, vec2(c, d)), + hasNextCol ? + getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0, + hasNextRow ? + getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0, + (hasNextRow && hasNextCol) ? + getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0 + ); + + int firstChannel = d - ${t}; + vec2 cache = vec2(0.); + if(firstChannel >= 0){ + vec4 firstChannelFrag = getX(b, r, c, firstChannel); + cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel)); + if(hasNextRow){ + cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel)); + } + } + + ivec2 depth = ivec2(d, d + 1); + for (int j = - ${t}; j <= ${t}; j++) { + ivec2 idx = depth + j; + bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0)); + bvec2 belowUpperBound = lessThanEqual(idx, ivec2(${o})); + + bool depthInRange = aboveLowerBound.x && belowUpperBound.x; + bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y; + + if(depthInRange || depthPlusOneInRange){ + vec4 z = vec4(0.); + vec4 xFragAtCurrentDepth; + z.xz = cache.xy; + if(depthPlusOneInRange && hasNextCol){ + xFragAtCurrentDepth = idx.y != d ? + getX(b, r, c, idx.y) : xFragAtOutputCoords; + z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y)); + if(hasNextRow){ + z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y)); + } + } + cache.xy = z.yw; + sum += z * z; + } + } + vec4 result = xAtOutputCoords * ${a}; + setOutput(result); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],huUNV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lrnGrad",()=>l),s.export(r,"LRNGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../lrn_grad_gpu");let l=e=>{let{inputs:t,backend:r,attrs:n}=e,{x:s,y:a,dy:l}=t,{depthRadius:i,bias:u,alpha:p,beta:c}=n,d=new(0,o.LRNGradProgram)(s.shape,i,u,p,c);return r.runWebGLProgram(d,[s,a,l],s.dtype)},i={kernelName:a.LRNGrad,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../lrn_grad_gpu":"6uQsE","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6uQsE":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LRNGradProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=r,this.alpha=n,this.beta=s,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int r = coords[1]; + int c = coords[2]; + + float result = 0.0; + for (int d = 0; d < ${this.depth}; ++d) { + int depthBegin = int(max(0.0, float(d - ${t}))); + int depthEnd = int(min(float(${this.depth}), + float(d + ${t} + 1))); + + const int MIN_DEPTH_BEGIN = 0; + const int MAX_DEPTH_END = ${this.depth}; + + float norm = 0.0; + for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) { + if (k < depthBegin){ + continue; + } + else if (k >= depthBegin && k < depthEnd) { + norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k); + } + else { + break; + } + } + + norm = float(${n}) * norm + float(${r}); + + for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){ + if (k < depthBegin){ + continue; + } + else if (k >= depthBegin && k < depthEnd){ + float dyi = -2.0 * float(${n}) + * float(${s}) + * getInputImage(b, r, c, k) * getOutputImage(b, r, c, d) + / norm; + if (k == d) { + dyi += pow(norm, -1.0 * ${s}); + } + if (k == coords[3]) { + dyi *= getDy(b, r, c, d); + result += dyi; + } + } + else { + break; + } + } + } + setOutput(result); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ibDAd:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"max",()=>u),s.export(r,"maxConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("./Max_impl"),i=e("./Transpose_impl");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u}=r,{reductionIndices:p,keepDims:c}=s,d=u.shape.length,f=a.util.parseAxisParam(p,u.shape),m=f,h=a.backend_util.getAxesPermutation(m,d),g=null!=h,x=n.shouldExecuteOnCPU([u]),v=u;if(g){if(x){let e=n.texData.get(v.dataId).values,t=Array(d);for(let e=0;ei);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("../kernels/Reshape");function i(e,t,r,n){let s=a.util.sizeFromShape(t),i=a.util.sizeFromShape(e.shape),u=(0,l.reshape)({inputs:{x:e},attrs:{shape:[i/s,s]},backend:n}),p=(0,o.reduce)(u,e.dtype,"max",n),c=(0,l.reshape)({inputs:{x:p},attrs:{shape:r},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),c}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/reduce":"3I7Fk","../kernels/Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],DKfrD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maximum",()=>d),s.export(r,"maximumConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu"),i=e("../kernel_utils/kernel_funcs_utils"),u=e("../kernel_utils/shared");let p=o.CHECK_NAN_SNIPPET+` + return max(a, b); +`,c=` + vec4 result = vec4(max(a, b)); + bvec4 isNaNA = isnan(a); + bvec4 isNaNB = isnan(b); + bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w); + `+l.CHECK_NAN_SNIPPET_PACKED+` + return result; +`,d=(0,i.binaryKernelFunc)({opSnippet:p,packedOpSnippet:c,cpuKernelImpl:u.maximumImplCPU}),f={kernelName:a.Maximum,backendName:"webgl",kernelFunc:d}},{"@tensorflow/tfjs-core":"biUij","../binaryop_gpu":"iq2Hg","../binaryop_packed_gpu":"g7FAa","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1hHzY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool",()=>u),s.export(r,"maxPoolConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../pool_gpu"),l=e("../webgl_util"),i=e("./Identity");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t;(0,l.assertNotComplex)(s,"maxPool");let{filterSize:u,strides:p,pad:c,dimRoundingMode:d}=n;a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(p,1),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${p} and dilations '1'`);let f=a.backend_util.computePool2DInfo(s.shape,u,p,1,c,d);if(1===f.filterWidth&&1===f.filterHeight&&a.util.arraysEqual(f.inShape,f.outShape))return(0,i.identity)({inputs:{x:s},backend:r});let m=new(0,o.Pool2DProgram)(f,"max",!1);return r.runWebGLProgram(m,[s],s.dtype)}let p={kernelName:a.MaxPool,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../pool_gpu":"fEtti","../webgl_util":"8Bhtc","./Identity":"fI9uV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aNSAI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool3d",()=>l),s.export(r,"maxPool3DConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../pool_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{filterSize:l,strides:i,pad:u,dataFormat:p,dimRoundingMode:c}=n,d=a.backend_util.computePool3DInfo(s.shape,l,i,[1,1,1],u,c,p),f=new(0,o.Pool3DProgram)(d,"max",!1);return r.runWebGLProgram(f,[s],s.dtype)}let i={kernelName:a.MaxPool3D,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../pool_gpu":"fEtti","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7sDRX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool3DGrad",()=>i),s.export(r,"maxPool3DGradConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../max_pool_backprop_gpu"),l=e("../pool_gpu");function i(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:i}=t,{filterSize:u,strides:p,pad:c,dimRoundingMode:d}=n,f=a.backend_util.computePool3DInfo(i.shape,u,p,[1,1,1],c,d),m=new(0,l.Pool3DProgram)(f,"max",!0),h=r.runWebGLProgram(m,[i],i.dtype),g=new(0,o.MaxPool3DBackpropProgram)(f),x=r.runWebGLProgram(g,[s,h],i.dtype);return r.disposeIntermediateTensorInfo(h),x}let u={kernelName:a.MaxPool3DGrad,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../max_pool_backprop_gpu":"hjmzw","../pool_gpu":"fEtti","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hjmzw:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MaxPool2DBackpropProgram",()=>a),s.export(r,"MaxPool3DBackpropProgram",()=>o);class a{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,r=e.strideWidth,n=e.dilationHeight,s=e.effectiveFilterHeight,a=e.effectiveFilterWidth,o=s-1-e.padInfo.top,l=a-1-e.padInfo.left;this.userCode=` + const ivec2 pads = ivec2(${o}, ${l}); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + + ivec2 dyRCCorner = coords.yz - pads; + int dyRCorner = dyRCCorner.x; + int dyCCorner = dyRCCorner.y; + + // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${s}; + wR += ${n}) { + float dyR = float(dyRCorner + wR) / ${t}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${a}; wC++) { + float dyC = float(dyCCorner + wC) / ${r}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(b, idyR, idyC, d); + int maxPosValue = ${s*a-1} - int(getMaxPos(b, idyR, idyC, d)); + + // Get the current value, check it against the value from the + // position matrix. + int curPosValue = wR * ${a} + wC; + float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0); + + dotProd += dyValue * mask; + } + } + setOutput(dotProd); + } + `}}class o{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,r=e.strideHeight,n=e.strideWidth,s=e.dilationDepth,a=e.dilationHeight,o=e.dilationWidth,l=e.effectiveFilterDepth,i=e.effectiveFilterHeight,u=e.effectiveFilterWidth,p=l-1-e.padInfo.front,c=i-1-e.padInfo.top,d=u-1-e.padInfo.left;this.userCode=` + const ivec3 pads = ivec3(${p}, ${c}, ${d}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; + int dyDCorner = dyCorner.x; + int dyRCorner = dyCorner.y; + int dyCCorner = dyCorner.z; + + // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get + // dx(xD, xR, xC, ch). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + + for (int wD = 0; wD < ${l}; + wD += ${s}) { + float dyD = float(dyDCorner + wD) / ${t}.0; + + if (dyD < 0.0 || dyD >= ${e.outDepth}.0 || fract(dyD) > 0.0) { + continue; + } + int idyD = int(dyD); + + for (int wR = 0; wR < ${i}; + wR += ${a}) { + float dyR = float(dyRCorner + wR) / ${r}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || + fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${u}; + wC += ${o}) { + float dyC = float(dyCCorner + wC) / ${n}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(batch, idyD, idyR, idyC, ch); + int maxPosValue = ${l*i*u-1} - + int(getMaxPos(batch, idyD, idyR, idyC, ch)); + + // Get the current value, check it against the value from the + // position matrix. + int curPosValue = + wD * ${i} * ${u} + + wR * ${u} + wC; + float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0); + + dotProd += dyValue * mask; + } + } + } + setOutput(dotProd); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1t5hC":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolGrad",()=>u),s.export(r,"maxPoolGradConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../max_pool_backprop_gpu"),l=e("../pool_gpu"),i=e("../webgl_util");function u(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:u,output:p}=t;(0,i.assertNotComplex)([u,p],"maxPoolGrad");let{filterSize:c,strides:d,pad:f,dimRoundingMode:m}=n,h=a.backend_util.computePool2DInfo(u.shape,c,d,1,f,m),g=new(0,l.Pool2DProgram)(h,"max",!0),x=r.runWebGLProgram(g,[u],u.dtype),v=new(0,o.MaxPool2DBackpropProgram)(h),y=r.runWebGLProgram(v,[s,x],u.dtype);return r.disposeIntermediateTensorInfo(x),y}let p={kernelName:a.MaxPoolGrad,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../max_pool_backprop_gpu":"hjmzw","../pool_gpu":"fEtti","../webgl_util":"8Bhtc","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eO2cQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolWithArgmaxConfig",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("./MaxPoolWithArgmax_impl");let l={kernelName:a.MaxPoolWithArgmax,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{x:n}=e,{filterSize:s,strides:l,pad:i,includeBatchInIndex:u}=t;a.util.assert(4===n.shape.length,()=>`Error in maxPool: input must be rank 4 but got rank ${n.shape.length}.`);let p=[1,1];a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(l,p),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${l} and dilations '${p}'`);let c=a.backend_util.computePool2DInfo(n.shape,s,l,p,i),[d,f]=(0,o.maxPoolWithArgmaxImpl)(n,u,c,r);return[d,f]}}},{"@tensorflow/tfjs-core":"biUij","./MaxPoolWithArgmax_impl":"3YWVw","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3YWVw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolWithArgmaxImpl",()=>o);var a=e("../pool_gpu");function o(e,t,r,n){let s=new(0,a.Pool2DProgram)(r,"max",!1),o=n.runWebGLProgram(s,[e],"float32");return s=new(0,a.Pool2DProgram)(r,"max",!0,!0,t),[o,n.runWebGLProgram(s,[e],"float32")]}},{"../pool_gpu":"fEtti","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fEe2K:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"meanConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Mean_impl"),l=e("./Transpose_impl");let i={kernelName:a.Mean,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{x:n}=e,{keepDims:s,axis:i}=t,u=n.shape.length,p=a.util.parseAxisParam(i,n.shape),c=p,d=a.backend_util.getAxesPermutation(c,u),f=null!=d,m=r.shouldExecuteOnCPU([n]),h=[],g=n;if(f){if(m){let e=r.texData.get(g.dataId).values,t=Array(u);for(let e=0;ei);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("../kernels/Reshape");function i(e,t,r,n){let s=a.util.sizeFromShape(t),i=a.util.sizeFromShape(e.shape),u=(0,l.reshape)({inputs:{x:e},attrs:{shape:[i/s,s]},backend:n}),p=(0,o.reduce)(u,"float32","mean",n),c=(0,l.reshape)({inputs:{x:p},attrs:{shape:r},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),c}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/reduce":"3I7Fk","../kernels/Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4VMnf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"min",()=>u),s.export(r,"minConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("./Reshape"),i=e("./Transpose");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u}=r,{axis:p,keepDims:c}=s,d=u.shape.length,f=a.util.parseAxisParam(p,u.shape),m=f,h=a.backend_util.getAxesPermutation(m,d),g=u;null!=h&&(g=(0,i.transpose)({inputs:{x:u},backend:n,attrs:{perm:h}}),m=a.backend_util.getInnerMostAxes(m.length,u.shape.length)),a.backend_util.assertAxesAreInnerMostDims("min",m,d);let[x,v]=a.backend_util.computeOutAndReduceShapes(g.shape,m),y=a.util.sizeFromShape(v),b=(0,l.reshape)({inputs:{x:g},backend:n,attrs:{shape:[-1,y]}}),_=(0,o.reduce)(b,b.dtype,"min",n);if(c){let e=a.backend_util.expandShapeToKeepDim(x,f);t=(0,l.reshape)({inputs:{x:_},backend:n,attrs:{shape:e}})}else t=(0,l.reshape)({inputs:{x:_},backend:n,attrs:{shape:x}});return n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(_),null!=h&&n.disposeIntermediateTensorInfo(g),t}let p={kernelName:a.Min,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/reduce":"3I7Fk","./Reshape":"2Do1g","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eyWlc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"minimum",()=>d),s.export(r,"minimumConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu"),i=e("../kernel_utils/kernel_funcs_utils"),u=e("../kernel_utils/shared");let p=o.CHECK_NAN_SNIPPET+` + return min(a, b); +`,c=` + vec4 result = vec4(min(a, b)); + bvec4 isNaNA = isnan(a); + bvec4 isNaNB = isnan(b); + bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w); + `+l.CHECK_NAN_SNIPPET_PACKED+` + return result; +`,d=(0,i.binaryKernelFunc)({opSnippet:p,packedOpSnippet:c,cpuKernelImpl:u.minimumImplCPU}),f={kernelName:a.Minimum,backendName:"webgl",kernelFunc:d}},{"@tensorflow/tfjs-core":"biUij","../binaryop_gpu":"iq2Hg","../binaryop_packed_gpu":"g7FAa","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"62hPs":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mirrorPadKernelFunc",()=>i),s.export(r,"mirrorPadConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../mirror_pad_gpu"),l=e("../mirror_pad_packed_gpu");let i=({inputs:e,backend:t,attrs:r})=>{let{x:n}=e,{paddings:s,mode:i}=r,u=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new(0,l.MirrorPadPackedProgram)(n.shape,s,i):new(0,o.MirrorPadProgram)(n.shape,s,i);return t.runWebGLProgram(u,[n],n.dtype)},u={kernelName:a.MirrorPad,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../mirror_pad_gpu":"4gGb3","../mirror_pad_packed_gpu":"8cArO","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4gGb3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MirrorPadProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r){this.variableNames=["x"],this.outputShape=t.map((t,r)=>t[0]+e[r]+t[1]);let n=e.length,s=(0,a.getCoordsDataType)(n),o=t.map(e=>e[0]).join(","),l=t.map((t,r)=>t[0]+e[r]).join(","),i=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,n),u=+("reflect"!==r);if(1===n){this.userCode=` + int start = ${o}; + int end = ${l}; + + void main() { + int outC = getOutputCoords(); + if (outC < start) { + outC = start * 2 - outC - ${u}; + } else if(outC >= end) { + outC = (end - 1) * 2 - outC + ${u}; + } + setOutput(getX(outC - start)); + } + `;return}this.userCode=` + ${s} start = ${s}(${o}); + ${s} end = ${s}(${l}); + + void main() { + ${s} outC = getOutputCoords(); + for (int i = 0; i < ${n}; i++) { + if (outC[i] < start[i]) { + outC[i] = start[i] * 2 - outC[i] - ${u}; + } else if(outC[i] >= end[i]) { + outC[i] = (end[i] - 1) * 2 - outC[i] + ${u}; + } + } + ${s} coords = outC - start; + setOutput(getX(${i})); + } + `}}},{"./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8cArO":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MirrorPadPackedProgram",()=>l);var a=e("./packing_util"),o=e("./shader_compiler");class l{constructor(e,t,r){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((t,r)=>t[0]+e[r]+t[1]);let n=e.length,s=(0,o.getCoordsDataType)(n),l=t.map(e=>e[0]).join(","),i=t.map((t,r)=>t[0]+e[r]).join(","),u=(0,a.getChannels)("rc",n),p=(0,a.getChannels)("source",n),c=`${u[n-1]} < ${this.outputShape[n-1]}`,d=1===n?"source":`vec2(${p.slice(-2).join()})`,f=+("reflect"!==r),m="";if(1===n){let e=` + ${s} source = rc; + if (source < start) { + source = start * 2 - source - ${f}; + } else if (source >= end) { + source = (end - 1) * 2 - source + ${f}; + } + source -= start; + `;m=` + ${s} rc = outputLoc; + ${e} + result[0] = getChannel(getX(${p.join()}), ${d}); + ${u[n-1]} += 1; + if(${c}) { + ${e} + result[1] = getChannel(getX(${p.join()}), ${d}); + } + `}else{let e=` + ${s} source = rc; + ${s} lt = ${s}(lessThan(source, start)); + ${s} gte = ${s}(greaterThanEqual(source, end)); + ${s} orig = 1 - (lt + gte); + source = orig * source + + lt * (start * 2 - source - ${f}) + + gte * ((end - 1) * 2 - source + ${f}); + source -= start; + `;m=` + ${s} rc = outputLoc; + ${e} + result[0] = getChannel(getX(${p.join()}), ${d}); + ${u[n-1]} += 1; + if(${c}) { + ${e} + result[1] = getChannel(getX(${p.join()}), ${d}); + } + rc = outputLoc; + ${u[n-2]} += 1; + if(${u[n-2]} < ${this.outputShape[n-2]}) { + ${e} + result[2] = getChannel(getX(${p.join()}), ${d}); + ${u[n-1]} += 1; + if(${c}) { + ${e} + result[3] = getChannel(getX(${p.join()}), ${d}); + } + } + `}this.userCode=` + const ${s} start = ${s}(${l}); + const ${s} end = ${s}(${i}); + + void main() { + ${s} outputLoc = getOutputCoords(); + vec4 result = vec4(0.); + ${m} + setOutput(result); + } + `}}},{"./packing_util":"k3hej","./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eKw5T:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mod",()=>p),s.export(r,"modConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_packed_gpu"),l=e("../kernel_utils/kernel_funcs_utils");let i=`if (b == 0.0) return NAN; + return mod(a, b);`,u=` + vec4 result = mod(a, b); + bvec4 isNaN = equal(b, vec4(0.0)); + `+o.CHECK_NAN_SNIPPET_PACKED+` + return result; +`,p=(0,l.binaryKernelFunc)({opSnippet:i,packedOpSnippet:u}),c={kernelName:a.Mod,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../binaryop_packed_gpu":"g7FAa","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"68mmd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"multinomial",()=>i),s.export(r,"multinomialConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../multinomial_gpu"),l=e("./Softmax");function i(e){let{inputs:t,backend:r,attrs:n}=e,{logits:s}=t,{numSamples:a,seed:i,normalized:u}=n,p=u?s:(0,l.softmax)({inputs:{logits:s},backend:r,attrs:{dim:s.shape.length-1}}),c=p.shape[0],d=p.shape[1],f=new(0,o.MultinomialProgram)(c,d,a),m=r.runWebGLProgram(f,[p],"int32",[[i]]);return u||r.disposeIntermediateTensorInfo(p),m}let u={kernelName:a.Multinomial,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../multinomial_gpu":"1YoCf","./Softmax":"gepZ2","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1YoCf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MultinomialProgram",()=>a);class a{constructor(e,t,r){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[e,r],this.userCode=` + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + + float r = random(seed); + float cdf = 0.0; + + for (int i = 0; i < ${t-1}; i++) { + cdf += getProbs(batch, i); + + if (r < cdf) { + setOutput(float(i)); + return; + } + } + + // If no other event happened, last event happened. + setOutput(float(${t-1})); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gepZ2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softmax",()=>d),s.export(r,"softmaxConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("./Exp"),l=e("./Max"),i=e("./RealDiv"),u=e("./Reshape"),p=e("./Sub"),c=e("./Sum");function d(e){let{inputs:t,backend:r,attrs:n}=e,{logits:s}=t,{dim:d}=n,f=a.util.parseAxisParam([d],s.shape),m=(0,l.max)({inputs:{x:s},backend:r,attrs:{reductionIndices:f,keepDims:!1}}),h=a.backend_util.expandShapeToKeepDim(m.shape,f),g=(0,u.reshape)({inputs:{x:m},backend:r,attrs:{shape:h}}),x=(0,p.sub)({inputs:{a:s,b:g},backend:r}),v=(0,o.exp)({inputs:{x:x},backend:r}),y=(0,c.sum)({inputs:{x:v},backend:r,attrs:{axis:f,keepDims:!1}}),b=(0,u.reshape)({inputs:{x:y},backend:r,attrs:{shape:h}}),_=(0,i.realDiv)({inputs:{a:v,b:b},backend:r});return r.disposeIntermediateTensorInfo(m),r.disposeIntermediateTensorInfo(g),r.disposeIntermediateTensorInfo(x),r.disposeIntermediateTensorInfo(v),r.disposeIntermediateTensorInfo(y),r.disposeIntermediateTensorInfo(b),_}let f={kernelName:a.Softmax,backendName:"webgl",kernelFunc:d}},{"@tensorflow/tfjs-core":"biUij","./Exp":"1Az5Y","./Max":"ibDAd","./RealDiv":"gEqYa","./Reshape":"2Do1g","./Sub":"eoz4W","./Sum":"jCPqj","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gEqYa:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"realDiv",()=>u),s.export(r,"realDivConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` +if (a == b) { + return 1.0; +}; +return a / b;`,i=` + // vec4 one = vec4(equal(a, b)); + // return one + (vec4(1.0) - one) * a / b; + vec4 result = a / b; + if(a.x == b.x) { + result.x = 1.; + } + if(a.y == b.y) { + result.y = 1.; + } + if(a.z == b.z) { + result.z = 1.; + } + if(a.w == b.w) { + result.w = 1.; + } + + return result; +`,u=(0,o.binaryKernelFunc)({opSnippet:l,packedOpSnippet:i,checkOutOfBounds:!0}),p={kernelName:a.RealDiv,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eoz4W:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sub",()=>u),s.export(r,"subConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return a - b;",u=(0,o.binaryKernelFunc)({opSnippet:i,packedOpSnippet:i,supportsComplex:!0,cpuKernelImpl:l.subImplCPU}),p={kernelName:a.Sub,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8rsJ0":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"neg",()=>c),s.export(r,"negConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../unaryop_gpu"),i=e("../unaryop_packed_gpu");let u=l.CHECK_NAN_SNIPPET+` + return -x; +`,p=` + vec4 result = -x; + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`;function c(e){let t,{inputs:r,backend:n}=e,{x:s}=r;if(n.shouldExecuteOnCPU([s])){let e=n.texData.get(s.dataId),[t,r]=(0,o.negImplCPU)(e.values,s.shape,s.dtype);return n.makeTensorInfo(r,s.dtype,t)}return t=(0,a.env)().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new(0,i.UnaryOpPackedProgram)(s.shape,p):new(0,l.UnaryOpProgram)(s.shape,u),n.runWebGLProgram(t,[s],s.dtype)}let d={kernelName:a.Neg,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","../unaryop_gpu":"LccPS","../unaryop_packed_gpu":"2qT48","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9Mwgd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV3",()=>l),s.export(r,"nonMaxSuppressionV3Config",()=>i);var a=e("@tensorflow/tfjs-core");let o=a.kernel_impls.nonMaxSuppressionV3Impl;function l(e){a.backend_util.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:l}=t,{maxOutputSize:i,iouThreshold:u,scoreThreshold:p}=n,{selectedIndices:c}=o(r.readSync(s.dataId),r.readSync(l.dataId),i,u,p);return r.makeTensorInfo([c.length],"int32",new Int32Array(c))}let i={kernelName:a.NonMaxSuppressionV3,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],K4Pwt:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV4",()=>l),s.export(r,"nonMaxSuppressionV4Config",()=>i);var a=e("@tensorflow/tfjs-core");let o=a.kernel_impls.nonMaxSuppressionV4Impl;function l(e){a.backend_util.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:l}=t,{maxOutputSize:i,iouThreshold:u,scoreThreshold:p,padToMaxOutputSize:c}=n,{selectedIndices:d,validOutputs:f}=o(r.readSync(s.dataId),r.readSync(l.dataId),i,u,p,c);return[r.makeTensorInfo([d.length],"int32",new Int32Array(d)),r.makeTensorInfo([],"int32",new Int32Array([f]))]}let i={kernelName:a.NonMaxSuppressionV4,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4ytP0":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV5",()=>l),s.export(r,"nonMaxSuppressionV5Config",()=>i);var a=e("@tensorflow/tfjs-core");let o=a.kernel_impls.nonMaxSuppressionV5Impl;function l(e){a.backend_util.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:l}=t,{maxOutputSize:i,iouThreshold:u,scoreThreshold:p,softNmsSigma:c}=n,d=r.readSync(s.dataId),{selectedIndices:f,selectedScores:m}=o(d,r.readSync(l.dataId),i,u,p,c);return[r.makeTensorInfo([f.length],"int32",new Int32Array(f)),r.makeTensorInfo([m.length],"float32",new Float32Array(m))]}let i={kernelName:a.NonMaxSuppressionV5,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8dpOL":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"oneHot",()=>i),s.export(r,"oneHotConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../onehot_gpu"),l=e("./Reshape");let i=e=>{let{inputs:t,backend:r,attrs:n}=e,{indices:s}=t,{dtype:i,depth:u,onValue:p,offValue:c}=n,d=a.util.sizeFromShape(s.shape),f=new(0,o.OneHotProgram)(d,u,p,c),m=(0,l.reshape)({inputs:{x:s},backend:r,attrs:{shape:[d]}}),h=r.runWebGLProgram(f,[m],i);r.disposeIntermediateTensorInfo(m);let g=[...s.shape,u],x=(0,l.reshape)({inputs:{x:h},backend:r,attrs:{shape:g}});return r.disposeIntermediateTensorInfo(h),x},u={kernelName:a.OneHot,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../onehot_gpu":"22PBA","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"22PBA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"OneHotProgram",()=>a);class a{constructor(e,t,r,n){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` + void main() { + ivec2 coords = getOutputCoords(); + int index = round(getIndices(coords.x)); + setOutput(mix(float(${n}), float(${r}), + float(index == coords.y))); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3l0Co":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"onesLike",()=>c),s.export(r,"onesLikeConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("./Complex"),l=e("./Fill"),i=e("./Imag"),u=e("./Real"),p=e("./ZerosLike");function c(e){let{inputs:t,backend:r}=e,{x:n}=t;if("string"===n.dtype)throw Error("onesLike is not supported under string dtype");if("complex64"!==n.dtype)return(0,l.fill)({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:r});{let e=(0,u.real)({inputs:{input:n},backend:r}),t=c({inputs:{x:e},backend:r}),s=(0,i.imag)({inputs:{input:n},backend:r}),a=(0,p.zerosLike)({inputs:{x:s},backend:r}),l=(0,o.complex)({inputs:{real:t,imag:a},backend:r});return r.disposeIntermediateTensorInfo(e),r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(a),l}}let d={kernelName:a.OnesLike,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"biUij","./Complex":"fN7J8","./Fill":"e9rdf","./Imag":"2YczW","./Real":"8FQ28","./ZerosLike":"k8pQn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],k8pQn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"zerosLike",()=>p),s.export(r,"zerosLikeConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./Complex"),l=e("./Fill"),i=e("./Imag"),u=e("./Real");function p(e){let{inputs:t,backend:r}=e,{x:n}=t;if("complex64"!==n.dtype)return(0,l.fill)({attrs:{shape:n.shape,dtype:n.dtype,value:"string"===n.dtype?"":0},backend:r});{let e=(0,u.real)({inputs:{input:n},backend:r}),t=p({inputs:{x:e},backend:r}),s=(0,i.imag)({inputs:{input:n},backend:r}),a=p({inputs:{x:s},backend:r}),l=(0,o.complex)({inputs:{real:t,imag:a},backend:r});return r.disposeIntermediateTensorInfo(e),r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(a),l}}let c={kernelName:a.ZerosLike,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","./Complex":"fN7J8","./Fill":"e9rdf","./Imag":"2YczW","./Real":"8FQ28","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kp21h:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pack",()=>i),s.export(r,"packConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./Concat"),l=e("./ExpandDims");function i(e){let{inputs:t,backend:r,attrs:n}=e,{axis:s}=n;if(1===t.length)return(0,l.expandDims)({inputs:{input:t[0]},backend:r,attrs:{dim:s}});let i=t[0].shape,u=t[0].dtype;t.forEach(e=>{a.util.assertShapesMatch(i,e.shape,"All tensors passed to stack must have matching shapes"),a.util.assert(u===e.dtype,()=>"All tensors passed to stack must have matching dtypes")});let p=[],c=t.map(e=>{let t=(0,l.expandDims)({inputs:{input:e},backend:r,attrs:{dim:s}});return p.push(t),t}),d=(0,o.concat)({inputs:c,backend:r,attrs:{axis:s}});return p.forEach(e=>r.disposeIntermediateTensorInfo(e)),d}let u={kernelName:a.Pack,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","./Concat":"99eNw","./ExpandDims":"8Gccb","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7yedB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"padV2",()=>u),s.export(r,"padV2Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../pad_gpu"),l=e("../pad_packed_gpu"),i=e("./Fill");let u=e=>{let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{paddings:u,constantValue:p}=n;if(0===a.util.sizeFromShape(s.shape)){let e=u.map((e,t)=>e[0]+s.shape[t]+e[1]);return(0,i.fill)({backend:r,attrs:{shape:e,value:p,dtype:s.dtype}})}let c=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new(0,l.PadPackedProgram)(s.shape,u,p):new(0,o.PadProgram)(s.shape,u,p),d=[[p]];return r.runWebGLProgram(c,[s],s.dtype,d)},p={kernelName:a.PadV2,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../pad_gpu":"6QVVM","../pad_packed_gpu":"80Rbg","./Fill":"e9rdf","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6QVVM":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"PadProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((t,r)=>t[0]+e[r]+t[1]);let n=e.length,s=(0,a.getCoordsDataType)(n),o=t.map(e=>e[0]).join(","),l=t.map((t,r)=>t[0]+e[r]).join(","),i=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,n);if(1===n){this.userCode=` + int start = ${o}; + int end = ${l}; + + void main() { + int outC = getOutputCoords(); + if (outC < start || outC >= end) { + setOutput(value); + } else { + setOutput(getX(outC - start)); + } + } + `;return}this.userCode=` + ${s} start = ${s}(${o}); + ${s} end = ${s}(${l}); + + void main() { + ${s} outC = getOutputCoords(); + if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) { + setOutput(value); + } else { + ${s} coords = outC - start; + setOutput(getX(${i})); + } + } + `}}},{"./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"80Rbg":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"PadPackedProgram",()=>l);var a=e("./packing_util"),o=e("./shader_compiler");class l{constructor(e,t,r){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((t,r)=>t[0]+e[r]+t[1]);let n=e.length,s=(0,o.getCoordsDataType)(n),l=t.map(e=>e[0]).join(","),i=t.map((t,r)=>t[0]+e[r]).join(","),u=(0,a.getChannels)("rc",n),p=(0,a.getChannels)("source",n),c=`${u[n-1]} < ${this.outputShape[n-1]}`,d=1===n?"source":`vec2(${p.slice(-2).join()})`,f=[`${s} rc = outputLoc;`,`${u[n-1]} += 1; + if(${c}) { + `,1===n?"":`} + rc = outputLoc; + ${u[n-2]} += 1; + if(${u[n-2]} < ${this.outputShape[n-2]}) {`,1===n?"":` ${u[n-1]} += 1; + if(${c}) {`],m=1===n?"rc < start || rc >= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))",h="";for(let e=0,t=1===n?2:4;ep),s.export(r,"powConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_packed_gpu"),l=e("../kernel_utils/kernel_funcs_utils");let i=` + if(a < 0.0 && floor(b) < b){ + return NAN; + } + if (b == 0.0) { + return 1.0; + } + return (round(mod(b, 2.0)) != 1) ? + pow(abs(a), b) : sign(a) * pow(abs(a), b); +`,u=` + // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise. + vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1))); + vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1); + vec4 result = multiplier * pow(abs(a), b); + + // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS + bvec4 isExpZero = equal(b, vec4(0.0)); + result.r = isExpZero.r ? 1.0 : result.r; + result.g = isExpZero.g ? 1.0 : result.g; + result.b = isExpZero.b ? 1.0 : result.b; + result.a = isExpZero.a ? 1.0 : result.a; + + bvec4 isNaN1 = lessThan(a, vec4(0.0)); + bvec4 isNaN2 = lessThan(floor(b), b); + bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w); + `+o.CHECK_NAN_SNIPPET_PACKED+` + return result; +`,p=(0,l.binaryKernelFunc)({opSnippet:i,packedOpSnippet:u}),c={kernelName:a.Pow,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../binaryop_packed_gpu":"g7FAa","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1tGYF":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prod",()=>p),s.export(r,"prodConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("../kernel_utils/shared"),i=e("./Reshape"),u=e("./Transpose");function p(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:p}=r,{axis:c,keepDims:d}=s,f=p.shape.length,m=[],h=a.util.parseAxisParam(c,p.shape),g=h,x=a.backend_util.getAxesPermutation(g,f),v=p;if(null!=x&&(v=(0,u.transpose)({inputs:{x:p},backend:n,attrs:{perm:x}}),g=a.backend_util.getInnerMostAxes(g.length,f),m.push(v)),a.backend_util.assertAxesAreInnerMostDims("prod",g,f),n.shouldExecuteOnCPU([v])){let e=n.texData.get(v.dataId).values,{outVals:r,outShape:s,outDtype:a}=(0,l.prodImplCPU)(v.shape,v.dtype,e,g);t=n.makeTensorInfo(s,a,r)}else{let[e,r]=a.backend_util.computeOutAndReduceShapes(v.shape,g),s=a.util.sizeFromShape(r),l=(0,i.reshape)({inputs:{x:v},backend:n,attrs:{shape:[-1,s]}}),u=(0,a.sumOutType)(p.dtype),c=(0,o.reduce)(l,u,"prod",n);t=(0,i.reshape)({inputs:{x:c},backend:n,attrs:{shape:e}}),m.push(l),m.push(c)}if(d){m.push(t);let e=a.backend_util.expandShapeToKeepDim(t.shape,h);t=(0,i.reshape)({inputs:{x:t},backend:n,attrs:{shape:e}})}return m.forEach(e=>n.disposeIntermediateTensorInfo(e)),t}let c={kernelName:a.Prod,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/reduce":"3I7Fk","../kernel_utils/shared":"lQim5","./Reshape":"2Do1g","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7W42z":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedGather",()=>l),s.export(r,"raggedGatherConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{paramsNestedSplits:s,paramsDenseValues:a,indices:l}=t,{outputRaggedRank:i}=n,u=s.map(e=>r.readSync(e.dataId)),p=s.map(e=>e.shape),c=r.readSync(a.dataId),d=r.readSync(l.dataId),[f,m,h]=(0,o.raggedGatherImplCPU)(u,p,c,a.shape,a.dtype,d,l.shape,i),g=f.map(e=>r.makeTensorInfo([e.length],"int32",e)),x=r.makeTensorInfo(h,a.dtype,m);return g.concat([x])}let i={kernelName:a.RaggedGather,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"81NyQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedRange",()=>l),s.export(r,"raggedRangeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r}=e,{starts:n,limits:s,deltas:a}=t,l=r.readSync(n.dataId),i=r.readSync(s.dataId),u=r.readSync(a.dataId),[p,c]=(0,o.raggedRangeImplCPU)(l,n.shape,n.dtype,i,s.shape,u,a.shape);return[r.makeTensorInfo([p.length],"int32",p),r.makeTensorInfo([c.length],n.dtype,c)]}let i={kernelName:a.RaggedRange,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],i0jiS:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedTensorToTensor",()=>l),s.export(r,"raggedTensorToTensorConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{shape:s,values:a,defaultValue:l,rowPartitionTensors:i}=t,{rowPartitionTypes:u}=n,p=r.readSync(s.dataId),c=r.readSync(a.dataId),d=r.readSync(l.dataId),f=i.map(e=>r.readSync(e.dataId)),m=i.map(e=>e.shape),[h,g]=(0,o.raggedTensorToTensorImplCPU)(p,s.shape,c,a.shape,a.dtype,d,l.shape,f,m,u);return r.makeTensorInfo(h,a.dtype,g)}let i={kernelName:a.RaggedTensorToTensor,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5tyAf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"range",()=>l),s.export(r,"rangeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");let l=e=>{let{backend:t,attrs:r}=e,{start:n,stop:s,step:a,dtype:l}=r,i=(0,o.rangeImplCPU)(n,s,a,l);return t.makeTensorInfo([i.length],l,i)},i={kernelName:a.Range,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],zLtsg:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reciprocal",()=>o),s.export(r,"reciprocalConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return 1.0 / x;"}),l={kernelName:a.Reciprocal,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1s4ab":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu",()=>u),s.export(r,"reluConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` + return (x < 0.0) ? 0.0 : x; +`,i=` + vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`,u=(0,o.unaryKernelFunc)({opSnippet:l,packedOpSnippet:i}),p={kernelName:a.Relu,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../unaryop_gpu":"LccPS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lH0Kr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu6",()=>u),s.export(r,"relu6Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` + return (x < 0.0) ? 0.0 : min(6.0, x); +`,i=` + vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`,u=(0,o.unaryKernelFunc)({opSnippet:l,packedOpSnippet:i}),p={kernelName:a.Relu6,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../unaryop_gpu":"LccPS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cjsd8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeBilinear",()=>i),s.export(r,"resizeBilinearConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../resize_bilinear_gpu"),l=e("../resize_bilinear_packed_gpu");function i(e){let{inputs:t,backend:r,attrs:n}=e,{images:s}=t,{alignCorners:i,halfPixelCenters:u,size:p}=n,[c,d]=p,f=(0,a.env)().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new(0,l.ResizeBilinearPackedProgram)(s.shape,c,d,i,u):new(0,o.ResizeBilinearProgram)(s.shape,c,d,i,u);return r.runWebGLProgram(f,[s],"float32")}let u={kernelName:a.ResizeBilinear,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../resize_bilinear_gpu":"2qHvI","../resize_bilinear_packed_gpu":"3Fe23","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2qHvI":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeBilinearProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["A"],this.outputShape=[];let[a,o,l,i]=e;this.outputShape=[a,t,r,i];let u=[n&&t>1?o-1:o,n&&r>1?l-1:l],p=[n&&t>1?t-1:t,n&&r>1?r-1:r];this.userCode=` + const vec2 effectiveInputOverOutputRatioRC = vec2( + ${u[0]/p[0]}, + ${u[1]/p[1]}); + const vec2 inputShapeRC = vec2(${o}.0, ${l}.0); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + ivec2 yRC = coords.yz; + + // Fractional source index. + vec2 sourceFracIndexRC = ${s?"(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":"vec2(yRC) * effectiveInputOverOutputRatioRC"}; + + // Compute the four integer indices. + ivec2 sourceFloorRC = ivec2(max(sourceFracIndexRC, vec2(0.0))); + ivec2 sourceCeilRC = ivec2( + min(inputShapeRC - 1.0, ceil(sourceFracIndexRC))); + + float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d); + float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d); + float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d); + float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d); + + vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC); + + float top = topLeft + (topRight - topLeft) * fracRC.y; + float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y; + float newValue = top + (bottom - top) * fracRC.x; + + setOutput(newValue); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3Fe23":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeBilinearPackedProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[a,o,l,i]=e;this.outputShape=[a,t,r,i];let u=[n&&t>1?o-1:o,n&&r>1?l-1:l],p=[n&&t>1?t-1:t,n&&r>1?r-1:r];this.userCode=` + const vec3 effectiveInputOverOutputRatioRC = vec3( + ${u[0]/p[0]}, + ${u[1]/p[1]}, + ${u[1]/p[1]}); + const vec3 inputShapeRC = vec3(${o}.0, ${l}.0, + ${l}.0); + + float getAValue(int b, int r, int c, int d) { + return getChannel(getA(b, r, c, d), vec2(c, d)); + } + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + // Calculate values for next column in yRC.z. + ivec3 yRC = coords.yzz + ivec3(0, 0, 1); + + // Fractional source index. + vec3 sourceFracIndexRC = ${s?"(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":"vec3(yRC) * effectiveInputOverOutputRatioRC"}; + + // Compute the four integer indices. + ivec3 sourceFloorRC = ivec3(max(sourceFracIndexRC, vec3(0.0))); + ivec3 sourceCeilRC = ivec3( + min(inputShapeRC - 1.0, ceil(sourceFracIndexRC))); + + // Should we calculate next column and row elements in 2x2 packed cell. + bool hasNextCol = d < ${i-1}; + bool hasNextRow = coords.z < ${r-1}; + + // In parallel, construct four corners for all four components in + // packed 2x2 cell. + vec4 topLeft = vec4( + getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d), + hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0); + + vec4 bottomLeft = vec4( + getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d), + hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0); + + vec4 topRight = vec4( + getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d), + hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0); + + vec4 bottomRight = vec4( + getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d), + hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0); + + vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC); + + vec4 top = mix(topLeft, topRight, fracRC.yyzz); + vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz); + vec4 newValue = mix(top, bottom, fracRC.x); + + setOutput(newValue); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2huuw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeBilinearGrad",()=>l),s.export(r,"resizeBilinearGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../resize_bilinear_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s,dy:a}=t,{alignCorners:l}=n,i=new(0,o.ResizeBilinearBackpropProgram)(a.shape,s.shape,l);return r.runWebGLProgram(i,[a],a.dtype)}let i={kernelName:a.ResizeBilinearGrad,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../resize_bilinear_backprop_gpu":"i5dOB","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],i5dOB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeBilinearBackpropProgram",()=>a);class a{constructor(e,t,r){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,n,s]=t,[,a,o]=e,l=[r&&a>1?n-1:n,r&&o>1?s-1:s],i=[r&&a>1?a-1:a,r&&o>1?o-1:o],u=l[0]/i[0],p=l[1]/i[1],c=1/u,d=1/p,f=2*Math.ceil(c)+2,m=2*Math.ceil(d)+2;this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + int r = coords[1]; + int c = coords[2]; + + float accumulator = 0.0; + + const float heightScale = float(${u}); + const float widthScale = float(${p}); + + const float invHeightScale = float(${c}); + const float invWidthScale = float(${d}); + + const int winHeight = int(${f}); + const int winWidth = int(${m}); + + // Compute bounds for where in dy we will look + float startRLerp = floor(float(r) * invHeightScale); + int startDyR = int(startRLerp - float(winHeight / 2)); + + float startCLerp = floor(float(c) * invWidthScale); + int startDyC = int(startCLerp - float(winWidth / 2)); + + // Loop over dy + for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) { + int dyR = dyROffset + startDyR; + + // Guard against the window exceeding the bounds of dy + if (dyR < 0 || dyR >= ${a}) { + continue; + } + + for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) { + int dyC = dyCOffset + startDyC; + + // Guard against the window exceeding the bounds of dy + if (dyC < 0 || dyC >= ${o}) { + continue; + } + + float dxR = float(dyR) * heightScale; + int topDxRIndex = int(floor(dxR)); + int bottomDxRIndex = int(min(ceil(dxR), ${n-1}.0)); + float dxRLerp = dxR - float(topDxRIndex); + float inverseDxRLerp = 1.0 - dxRLerp; + + float dxC = float(dyC) * widthScale; + int leftDxCIndex = int(floor(dxC)); + int rightDxCIndex = int(min(ceil(dxC), ${s-1}.0)); + float dxCLerp = dxC - float(leftDxCIndex); + float inverseDxCLerp = 1.0 - dxCLerp; + + if (r == topDxRIndex && c == leftDxCIndex) { + // topLeft + accumulator += + getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp; + } + + if (r == topDxRIndex && c == rightDxCIndex) { + // topRight + accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp; + } + + if (r == bottomDxRIndex && c == leftDxCIndex) { + // bottomLeft + accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp; + } + + if (r == bottomDxRIndex && c == rightDxCIndex) { + // bottomRight + accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp; + } + } + } + // End loop over dy + + setOutput(accumulator); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1Dxyi":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeNearestNeighbor",()=>i),s.export(r,"resizeNearestNeighborConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../resize_nearest_neighbor_gpu"),l=e("../resize_nearest_neighbor_packed_gpu");function i(e){let{inputs:t,backend:r,attrs:n}=e,{images:s}=t,{alignCorners:i,halfPixelCenters:u,size:p}=n,[c,d]=p,f=(0,a.env)().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new(0,l.ResizeNearestNeighborPackedProgram)(s.shape,c,d,i,u):new(0,o.ResizeNearestNeighborProgram)(s.shape,c,d,i,u);return r.runWebGLProgram(f,[s],s.dtype)}let u={kernelName:a.ResizeNearestNeighbor,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../resize_nearest_neighbor_gpu":"2B9OP","../resize_nearest_neighbor_packed_gpu":"cmzy3","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2B9OP":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeNearestNeighborProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["A"],this.outputShape=[];let[a,o,l,i]=e;this.outputShape=[a,t,r,i];let u=[n&&t>1?o-1:o,n&&r>1?l-1:l],p=[n&&t>1?t-1:t,n&&r>1?r-1:r];this.userCode=` + const vec2 effectiveInputOverOutputRatioRC = vec2( + ${u[0]/p[0]}, + ${u[1]/p[1]}); + const vec2 inputShapeRC = vec2(${o}.0, ${l}.0); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + ivec2 yRC = coords.yz; + + // Fractional source index. + vec2 sourceFracIndexRC = ${s?"max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":"vec2(yRC) * effectiveInputOverOutputRatioRC"}; + + // Compute the coordinators of nearest neighbor point. + ivec2 sourceNearestRC = ivec2( + min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${n?"0.5":"0.0"}))); + float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d); + + setOutput(newValue); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cmzy3:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeNearestNeighborPackedProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[a,o,l,i]=e;this.outputShape=[a,t,r,i];let u=[n&&t>1?o-1:o,n&&r>1?l-1:l],p=[n&&t>1?t-1:t,n&&r>1?r-1:r];this.userCode=` + const vec3 effectiveInputOverOutputRatioRC = vec3( + ${u[0]/p[0]}, + ${u[1]/p[1]}, + ${u[1]/p[1]}); + const vec3 inputShapeRC = vec3(${o}.0, ${l}.0, + ${l}.0); + + float getAValue(int b, int r, int c, int d) { + return getChannel(getA(b, r, c, d), vec2(c, d)); + } + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + // Calculate values for next column in yRC.z. + ivec3 yRC = coords.yzz + ivec3(0, 0, 1); + + // Fractional source index. + vec3 sourceFracIndexRC = ${s?"max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":"vec3(yRC) * effectiveInputOverOutputRatioRC"}; + + // Compute the coordinators of nearest neighbor point. + ivec3 sourceNearestRC = ivec3( + min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${n?"0.5":"0.0"}))); + + // Should we calculate next column and row elements in 2x2 packed cell. + bool hasNextCol = d < ${i-1}; + bool hasNextRow = coords.z < ${r-1}; + + vec4 newValue = vec4( + getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d), + hasNextCol ? getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d + 1) : 0.0); + + setOutput(newValue); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kFmpF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeNearestNeighborGrad",()=>l),s.export(r,"resizeNearestNeighborGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../resize_nearest_neighbor_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s,dy:a}=t,{alignCorners:l}=n,i=new(0,o.ResizeNearestNeigborBackpropProgram)(a.shape,s.shape,l);return r.runWebGLProgram(i,[a],a.dtype)}let i={kernelName:a.ResizeNearestNeighborGrad,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../resize_nearest_neighbor_backprop_gpu":"5mHW0","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5mHW0":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeNearestNeigborBackpropProgram",()=>a);class a{constructor(e,t,r){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,n,s]=t,[,a,o]=e,l=[r&&a>1?n-1:n,r&&o>1?s-1:s],i=[r&&a>1?a-1:a,r&&o>1?o-1:o],u=l[0]/i[0],p=l[1]/i[1],c=1/u,d=1/p,f=2*Math.ceil(c)+2,m=2*Math.ceil(d)+2;this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + int r = coords[1]; + int c = coords[2]; + + float accumulator = 0.0; + + const float heightScale = float(${u}); + const float widthScale = float(${p}); + + const float invHeightScale = float(${c}); + const float invWidthScale = float(${d}); + + const int winHeight = int(${f}); + const int winWidth = int(${m}); + + // Compute bounds for where in dy we will look + float startRLerp = floor(float(r) * invHeightScale); + int startDyR = int(floor(startRLerp - float(winHeight / 2))); + + float startCLerp = floor(float(c) * invWidthScale); + int startDyC = int(floor(startCLerp - float(winWidth / 2))); + + // Loop over dy + for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) { + int dyR = dyROffset + startDyR; + + // Guard against the window exceeding the bounds of dy + if (dyR < 0 || dyR >= ${a}) { + continue; + } + + for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) { + int dyC = dyCOffset + startDyC; + + // Guard against the window exceeding the bounds of dy + if (dyC < 0 || dyC >= ${o}) { + continue; + } + + float sourceFracRow = + float(${l[0]}) * + (float(dyR) / float(${i[0]})); + + float sourceFracCol = + float(${l[1]}) * + (float(dyC) / float(${i[1]})); + + int sourceNearestRow = int(min( + float(int(${n}) - 1), + ${r} ? float(round(sourceFracRow)) : + float(floor(sourceFracRow)))); + + int sourceNearestCol = int(min( + float(int(${s}) - 1), + ${r} ? float(round(sourceFracCol)) : + float(floor(sourceFracCol)))); + + if (r == sourceNearestRow && c == sourceNearestCol) { + accumulator += getDy(b, dyR, dyC, d); + } + } + } + // End loop over dy + + setOutput(accumulator); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3J3Rk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse",()=>u),s.export(r,"reverseConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../reverse_gpu"),l=e("../reverse_packed_gpu"),i=e("./Identity");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{dims:u}=n,p=s.shape.length,c=a.util.parseAxisParam(u,s.shape);if(0===p)return(0,i.identity)({inputs:{x:s},backend:r});let d=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new(0,l.ReversePackedProgram)(s.shape,c):new(0,o.ReverseProgram)(s.shape,c);return r.runWebGLProgram(d,[s],s.dtype)}let p={kernelName:a.Reverse,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../reverse_gpu":"05h8z","../reverse_packed_gpu":"lhQ1z","./Identity":"fI9uV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"05h8z":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ReverseProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t){this.variableNames=["x"];let r=e.length;if(r>4)throw Error(`WebGL backend: Reverse of rank-${r} tensor is not yet supported`);if(this.outputShape=e,1===r){this.userCode=` + void main() { + int coord = getOutputCoords(); + setOutput(getX(${e[0]} - coord - 1)); + } + `;return}let n=r=>-1!==t.indexOf(r)&&1!==e[r]?`${e[r]} - coords[${r}] - 1`:`coords[${r}]`,s=e.map((e,t)=>n(t)).join(","),o=(0,a.getCoordsDataType)(r);this.userCode=` + void main() { + ${o} coords = getOutputCoords(); + setOutput(getX(${s})); + } + `}}},{"./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lhQ1z:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ReversePackedProgram",()=>l);var a=e("./packing_util"),o=e("./shader_compiler");class l{constructor(e,t){var r,n,s;this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let l=e.length;if(l>4)throw Error(`WebGL backend: Reverse of rank-${l} tensor is not yet supported`);this.outputShape=e;let i=(0,a.getChannels)("rc",l),u=`${i[l-1]} + 1 < ${this.outputShape[l-1]}`,p=`${i[l-2]} + 1 < ${this.outputShape[l-2]}`,c=(0,o.getCoordsDataType)(l);function d(r){let n=e.map((n,s)=>{var a,o;return a=s,o=r,-1!==t.indexOf(a)&&1!==e[a]?`${e[a]} - ${o[a]} - 1`:`${o[a]}`}),s=n.join(","),a=n.slice(-2).join(",");return`getChannel(getX(${s}), vec2(${a}))`}1===l?this.userCode=` + void main(){ + int rc = getOutputCoords(); + vec4 result = vec4(0.); + result.r = getChannel(getX(${e[0]} - rc - 1), + ${e[0]} - rc - 1); + if(${u}){ + result.g = getChannel(getX(${e[0]} - (rc + 1) - 1), + ${e[0]} - (rc + 1) - 1); + } + setOutput(result); + } + `:this.userCode=` + void main() { + ${c} rc = getOutputCoords(); + vec4 result = vec4(0.); + result.r = ${d(i.slice())}; + if(${u}){ + result.g = ${(r=i.slice())[l-1]="("+r[l-1]+" + 1)",d(r)}; + } + if(${p}) { + result.b = ${(n=i.slice())[l-2]="("+n[l-2]+" + 1)",d(n)}; + if(${u}) { + result.a = ${(s=i.slice())[l-1]="("+s[l-1]+" + 1)",s[l-2]="("+s[l-2]+" + 1)",d(s)}; + } + } + setOutput(result); + } + `}}},{"./packing_util":"k3hej","./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"65v6T":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rotateWithOffsetConfig",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("../rotate_gpu");let l={kernelName:a.RotateWithOffset,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{image:n}=e,{radians:s,fillValue:l,center:i}=t,u=new(0,o.RotateProgram)(n.shape,l),[p,c]=a.backend_util.getImageCenter(i,n.shape[1],n.shape[2]),d=[[p,c,Math.sin(s),Math.cos(s)]];return r.runWebGLProgram(u,[n],n.dtype,d)}}},{"@tensorflow/tfjs-core":"biUij","../rotate_gpu":"79DqB","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"79DqB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"RotateProgram",()=>a);class a{constructor(e,t){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];let r=e[1],n=e[2];this.outputShape=e;let s="";s="number"==typeof t?`float outputValue = ${t.toFixed(2)};`:` + vec3 fill = vec3(${t.join(",")}); + float outputValue = fill[coords[3]];`,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int x = coords[2]; + int y = coords[1]; + float coordXFloat = (float(x) - params[0]) * params[3] - + (float(y) - params[1]) * params[2]; + float coordYFloat = (float(x) - params[0]) * params[2] + + (float(y) - params[1]) * params[3]; + int coordX = int(round(coordXFloat + params[0])); + int coordY = int(round(coordYFloat + params[1])); + ${s} + if(coordX >= 0 && coordX < ${n} && coordY >= 0 && coordY < ${r}) { + outputValue = getImage(coords[0], coordY, coordX, coords[3]); + } + setOutput(outputValue); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8ECWg":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"round",()=>i),s.export(r,"roundConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + // OpenGL ES does not support round function. + // The algorithm is based on banker's rounding. + float base = floor(x); + if ((x - base) < 0.5) { + return floor(x); + } else if ((x - base) > 0.5) { + return ceil(x); + } else { + if (mod(base, 2.0) == 0.0) { + return base; + } else { + return base + 1.0; + } + } +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Round,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dcXmB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rsqrt",()=>i),s.export(r,"rsqrtConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=(0,o.unaryKernelFunc)({opSnippet:"return inversesqrt(x);",cpuKernelImpl:l.rsqrtImplCPU}),u={kernelName:a.Rsqrt,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],loFfE:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"scatterNd",()=>u),s.export(r,"scatterNdConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../scatter_gpu"),l=e("../scatter_packed_gpu"),i=e("./Reshape");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{indices:u,updates:p}=r,{shape:c}=s,{sliceRank:d,numUpdates:f,sliceSize:m,strides:h,outputSize:g}=a.backend_util.calculateShapes(p,u,c),x=[g/m,m];if(0===g)return n.makeTensorInfo(c,u.dtype);let v=(0,i.reshape)({inputs:{x:u},backend:n,attrs:{shape:[f,d]}}),y=(0,i.reshape)({inputs:{x:p},backend:n,attrs:{shape:[f,m]}}),b=n.makeTensorInfo([],"float32",new Float32Array([0]));t=(0,a.env)().getBool("WEBGL_PACK")?new(0,l.ScatterPackedProgram)(f,d,v.shape.length,y.shape.length,h,x):new(0,o.ScatterProgram)(f,d,v.shape.length,y.shape.length,h,x);let _=n.runWebGLProgram(t,[y,v,b],y.dtype),k=(0,i.reshape)({inputs:{x:_},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(_),n.disposeIntermediateTensorInfo(b),k}let p={kernelName:a.ScatterNd,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../scatter_gpu":"86nzQ","../scatter_packed_gpu":"eR3XB","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"86nzQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ScatterProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r,n,s,o,l=!0,i=!1){this.variableNames=["updates","indices","defaultValue"],this.outputShape=o;let u=(0,a.getCoordsDataType)(s.length),p=(0,a.getCoordsDataType)(o.length),c="";1===r?c="i":2===r&&(c="i, j");let d=`getIndices(${c})`,f="";1===n?f="i":2===n&&(f="i, coords[1]");let m=`getUpdates(${f})`,h="";i&&(h="coords[0], coords[1]");let g=`getDefaultValue(${h})`;this.userCode=` + ${u} strides = ${u}(${s}); + + void main() { + ${p} coords = getOutputCoords(); + float sum = 0.0; + bool found = false; + for (int i = 0; i < ${e}; i++) { + int flattenedIndex = 0; + for (int j = 0; j < ${t}; j++) { + int index = round(${d}); + flattenedIndex += index * ${t>1?"strides[j]":"strides"}; + } + if (flattenedIndex == coords[0]) { + sum += ${m}; + found = true; + } + } + setOutput(mix(${g}, sum, float(found))); + } + `}}},{"./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eR3XB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ScatterPackedProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r,n,s,o,l=!0,i=!1){this.variableNames=["updates","indices","defaultValue"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=o;let u=(0,a.getCoordsDataType)(s.length),p=(0,a.getCoordsDataType)(o.length),c="";1===r?c="i":2===r&&(c="i, j");let d=`getIndices(${c})`,f="";1===n?f="i":2===n&&(f="i, coords[1]");let m=`getUpdates(${f})`,h="";i&&(h="coords[0], coords[1]");let g=`getDefaultValue(${h})`;this.userCode=` + ${u} strides = ${u}(${s}); + + void main() { + ${p} coords = getOutputCoords(); + vec4 sum = vec4(0.); + vec4 found = vec4(0.); + for (int i = 0; i < ${e}; i+=2) { + ivec2 flattenedIndex = ivec2(0); + for (int j = 0; j < ${t}; j+=2) { + ivec4 index = round(${d}); + flattenedIndex += index.xz * ${t>1?"strides[j]":"strides"}; + if (j + 1 < ${t}) { + flattenedIndex += index.yw * ${t>1?"strides[j + 1]":"strides"}; + } + } + if (flattenedIndex[0] == coords[0] || flattenedIndex[1] == coords[0] || + flattenedIndex[0] == coords[0] + 1 || flattenedIndex[1] == coords[0] + 1) { + vec4 updVals = ${m}; + if (flattenedIndex[0] == coords[0]) { + sum.xy += updVals.xy; + found.xy = vec2(1.); + } else if (flattenedIndex[0] == coords[0] + 1) { + sum.zw += updVals.xy; + found.zw = vec2(1.); + } + if (flattenedIndex[1] == coords[0]) { + sum.xy += updVals.zw; + found.xy = vec2(1.); + } else if (flattenedIndex[1] == coords[0] + 1) { + sum.zw += updVals.zw; + found.zw = vec2(1.); + } + } + } + setOutput(mix(${g}, sum, found)); + } + `}}},{"./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],DXpUT:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"searchSorted",()=>l),s.export(r,"searchSortedConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../search_sorted_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{sortedSequence:s,values:a}=t,{side:l}=n,i=new(0,o.SearchSortedProgram)(s.shape[0],s.shape[1],a.shape[1],l),u=[[s.shape[1]]];return r.runWebGLProgram(i,[s,a],"int32",u)}let i={kernelName:a.SearchSorted,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../search_sorted_gpu":"2Xu5p","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2Xu5p":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SearchSortedProgram",()=>o);var a=e("@tensorflow/tfjs-core");class o{constructor(e,t,r,n){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[e,r];let s=`for (int i = 0; i < ${Math.ceil(Math.log2(t+1))}; ++i) { if (left >= right) break;`,o=2===(0,a.env)().getNumber("WEBGL_VERSION")?"while (left < right) {":s;this.userCode=` + int findBound(int batch, float value) { + int left = 0; + int right = numInputs; + int mid; + ${o} + mid = (left + right) / 2; + if (getSortedSequence(batch, mid) ${"left"===n?"<":"<="} value) { + left = mid + 1; + } else { + right = mid; + } + } + return right; + } + + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int valueIndex = coords[1]; + + float value = getValues(batch, valueIndex); + + setOutput(float(findBound(batch, value))); + } + `}}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2PWLQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"select",()=>l),s.export(r,"selectConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../select_gpu");function l(e){let{inputs:t,backend:r}=e,{condition:n,t:s,e:l}=t,i=new(0,o.SelectProgram)(n.shape.length,s.shape,s.shape.length);return r.runWebGLProgram(i,[n,s,l],(0,a.upcastType)(s.dtype,l.dtype))}let i={kernelName:a.Select,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../select_gpu":"bhoEI","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bhoEI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SelectProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r){let n,s;if(this.variableNames=["c","a","b"],this.outputShape=t,r>4)throw Error(`Where for rank ${r} is not yet supported`);if(1===r)s="resRC",n="resRC";else{let r=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[],o=[];for(let n=0;n= 1.0) { + setOutput(getA(${s})); + } else { + setOutput(getB(${s})); + } + } + `}}},{"./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9NWHQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"selu",()=>i),s.export(r,"seluConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + // Stable and Attracting Fixed Point (0, 1) for Normalized Weights. + // see: https://arxiv.org/abs/1706.02515 + float scaleAlpha = ${a.backend_util.SELU_SCALEALPHA}; + float scale = ${a.backend_util.SELU_SCALE}; + return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0); +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Selu,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6cCYC":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sigmoid",()=>p),s.export(r,"sigmoidConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=o.CHECK_NAN_SNIPPET_UNARY+` + return 1.0 / (1.0 + exp(-1.0 * x)); +`,u=` + vec4 result = 1.0 / (1.0 + exp(-1.0 * x)); + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`,p=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:u,cpuKernelImpl:l.sigmoidImplCPU}),c={kernelName:a.Sigmoid,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dp8JZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sign",()=>i),s.export(r,"signConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + if (isnan(x)) { return 0.0; } + return sign(x); +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Sign,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ct2Dv:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sin",()=>p),s.export(r,"sinConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_packed_gpu"),l=e("../kernel_utils/kernel_funcs_utils");let i=l.CHECK_NAN_SNIPPET_UNARY+` + return sin(x); +`,u=` + vec4 result = sin(x); + bvec4 isNaN = isnan(x); + ${o.CHECK_NAN_SNIPPET_PACKED} + return result; +`,p=(0,l.unaryKernelFunc)({opSnippet:i,packedOpSnippet:u}),c={kernelName:a.Sin,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../binaryop_packed_gpu":"g7FAa","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],c26Zq:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sinh",()=>i),s.export(r,"sinhConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + float e2x = exp(x); + return (e2x - 1.0 / e2x) / 2.0; +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Sinh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4j2t3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softplus",()=>i),s.export(r,"softplusConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + float epsilon = 1.1920928955078125e-7; + float threshold = log(epsilon) + 2.0; + + bool too_large = x > -threshold; + bool too_small = x < threshold; + + float result; + float exp_x = exp(x); + + if (too_large){ + result = x; + } + else if (too_small){ + result = exp_x; + } + else{ + result = log(exp_x + 1.0); + } + return result; +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Softplus,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8STND":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"spaceToBatchND",()=>u),s.export(r,"spaceToBatchNDConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("./PadV2"),l=e("./Reshape"),i=e("./Transpose");let u=e=>{let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockShape:u,paddings:p}=n;a.util.assert(s.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let c=u.reduce((e,t)=>e*t),d=[[0,0]];d.push(...p);for(let e=1+u.length;er.disposeIntermediateTensorInfo(e)),b},p={kernelName:a.SpaceToBatchND,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","./PadV2":"7yedB","./Reshape":"2Do1g","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],biy3L:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseFillEmptyRows",()=>l),s.export(r,"sparseFillEmptyRowsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r}=e,{indices:n,values:s,denseShape:a,defaultValue:l}=t;if(1!==a.shape.length)throw Error(`Dense shape must be a vector, saw: + ${a.shape}`);if(2!==n.shape.length)throw Error(`Indices must be a matrix, saw: + ${n.shape}`);if(1!==s.shape.length)throw Error(`Values must be a vector, saw: + ${s.shape}`);if(0!==l.shape.length)throw Error(`Default value must be a scalar, saw: + ${l.shape}`);let i=r.readSync(n.dataId),u=r.readSync(s.dataId),p=r.readSync(a.dataId),c=r.readSync(l.dataId)[0],[d,f,m,h,g]=(0,o.sparseFillEmptyRowsImplCPU)(i,n.shape,n.dtype,u,s.dtype,p,c);return[r.makeTensorInfo(f,n.dtype,d),r.makeTensorInfo([f[0]],s.dtype,m),r.makeTensorInfo([h.length],"bool",new Uint8Array(h.map(e=>Number(e)))),r.makeTensorInfo([g.length],n.dtype,new Int32Array(g))]}let i={kernelName:a.SparseFillEmptyRows,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jOyRx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseReshape",()=>l),s.export(r,"sparseReshapeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r}=e,{inputIndices:n,inputShape:s,newShape:a}=t;if(2!==n.shape.length)throw Error(`Input indices should be a matrix but received shape ${n.shape}`);if(1!==s.shape.length)throw Error(`Input shape should be a vector but received shape ${s.shape}`);if(1!==a.shape.length)throw Error(`Target shape should be a vector but received shape ${a.shape}`);let l=Array.from(r.readSync(s.dataId)),i=r.readSync(n.dataId),u=Array.from(r.readSync(a.dataId)),[p,c,d]=(0,o.sparseReshapeImplCPU)(i,n.shape,n.dtype,l,u);return[r.makeTensorInfo(c,n.dtype,p),r.makeTensorInfo([d.length],a.dtype,new Int32Array(d))]}let i={kernelName:a.SparseReshape,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iD0FM:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentMean",()=>l),s.export(r,"sparseSegmentMeanConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r}=e,{data:n,indices:s,segmentIds:a}=t;if(n.shape.length<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.shape.length)throw Error(`Indices should be a vector but received shape + ${s.shape}`);if(1!==a.shape.length)throw Error(`Segment ids should be a vector but received shape + ${a.shape}`);let l=r.readSync(n.dataId),i=r.readSync(s.dataId),u=r.readSync(a.dataId),[p,c]=(0,o.sparseSegmentReductionImplCPU)(l,n.shape,n.dtype,i,u,!0);return r.makeTensorInfo(c,n.dtype,p)}let i={kernelName:a.SparseSegmentMean,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1QCK1":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentSum",()=>l),s.export(r,"sparseSegmentSumConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r}=e,{data:n,indices:s,segmentIds:a}=t;if(n.shape.length<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.shape.length)throw Error(`Indices should be a vector but received shape + ${s.shape}`);if(1!==a.shape.length)throw Error(`Segment ids should be a vector but received shape + ${a.shape}`);let l=r.readSync(n.dataId),i=r.readSync(s.dataId),u=r.readSync(a.dataId),[p,c]=(0,o.sparseSegmentReductionImplCPU)(l,n.shape,n.dtype,i,u);return r.makeTensorInfo(c,n.dtype,p)}let i={kernelName:a.SparseSegmentSum,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7Aqau":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseToDense",()=>u),s.export(r,"sparseToDenseConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../scatter_gpu"),i=e("./Reshape");function u(e){let{inputs:t,backend:r,attrs:n}=e,{sparseIndices:s,sparseValues:u,defaultValue:p}=t,{outputShape:c}=n,{sliceRank:d,numUpdates:f,sliceSize:m,strides:h,outputSize:g}=a.backend_util.calculateShapes(u,s,c);if("string"===u.dtype){let e=r.bufferSync(s),t=r.bufferSync(u),n=a.util.decodeString(r.readSync(p.dataId)[0]),l=(0,o.scatterImplCPU)(e,t,c,g,m,f,d,h,n,!1);return r.makeTensorInfo(c,l.dtype,l.values)}let x=new(0,l.ScatterProgram)(f,d,s.shape.length,u.shape.length,h,[g,1],!1),v=r.runWebGLProgram(x,[u,s,p],u.dtype),y=(0,i.reshape)({inputs:{x:v},backend:r,attrs:{shape:c}});return r.disposeIntermediateTensorInfo(v),y}let p={kernelName:a.SparseToDense,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","../scatter_gpu":"86nzQ","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1NShq":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"splitV",()=>l),s.export(r,"splitVConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Slice");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{numOrSizeSplits:l,axis:i}=n,u=a.util.parseAxisParam(i,s.shape)[0],p=a.backend_util.prepareSplitSize(s,l,u),c=Array(s.shape.length).fill(0),d=s.shape.slice();return p.map(e=>{let t=[...d];t[u]=e;let n=(0,o.slice)({inputs:{x:s},backend:r,attrs:{begin:c,size:t}});return c[u]+=e,n})}let i={kernelName:a.SplitV,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Slice":"25e33","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dZ6U9:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sqrt",()=>u),s.export(r,"sqrtConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return sqrt(x);",u=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:i,cpuKernelImpl:l.sqrtImplCPU}),p={kernelName:a.Sqrt,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],deYhi:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"square",()=>o),s.export(r,"squareConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return x * x;"}),l={kernelName:a.Square,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5unPR":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"squaredDifference",()=>i),s.export(r,"squaredDifferenceConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l="return (a - b) * (a - b);",i=(0,o.binaryKernelFunc)({opSnippet:l,packedOpSnippet:l}),u={kernelName:a.SquaredDifference,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"91ayt":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"staticRegexReplace",()=>l),s.export(r,"staticRegexReplaceConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t;if("string"!==s.dtype)throw Error("Input must be of datatype string");let l=r.readSync(s.dataId),i=a.backend_util.fromUint8ToStringArray(l),u=(0,o.staticRegexReplaceImplCPU)(i,"string",n);return r.makeTensorInfo(s.shape,"string",u)}let i={kernelName:a.StaticRegexReplace,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6OAPh":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"step",()=>l),s.export(r,"stepConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../unaryop_gpu");function l({inputs:e,attrs:t,backend:r}){let{x:n}=e,s=o.CHECK_NAN_SNIPPET+` + return x > 0.0 ? 1.0 : float(${t.alpha}); + `,a=new(0,o.UnaryOpProgram)(n.shape,s);return r.runWebGLProgram(a,[n],n.dtype)}let i={kernelName:a.Step,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../unaryop_gpu":"LccPS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],haVF6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stridedSlice",()=>p),s.export(r,"stridedSliceConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../strided_slice_gpu"),i=e("./Reshape"),u=e("./Slice");function p(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:p}=r,{begin:c,end:d,strides:f,beginMask:m,endMask:h,ellipsisMask:g,newAxisMask:x,shrinkAxisMask:v}=s,{finalShapeSparse:y,finalShape:b,isIdentity:_,sliceDim0:k,isSimpleSlice:j,begin:I,end:w,strides:T}=a.slice_util.sliceInfo(p.shape,c,d,f,m,h,g,x,v);if(_)t=(0,i.reshape)({inputs:{x:p},backend:n,attrs:{shape:b}});else if(k||j){a.util.assert(p.shape.length>=1,()=>`Input must have rank at least 1, got: ${p.shape.length}`);let e=a.slice_util.computeOutShape(I,w,T),r=(0,u.slice)({inputs:{x:p},backend:n,attrs:{begin:I,size:e}});t=(0,i.reshape)({inputs:{x:r},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(r)}else if(n.shouldExecuteOnCPU([p])){let e=n.readSync(p.dataId),r=(0,a.buffer)(p.shape,p.dtype,e),s=(0,o.stridedSliceImplCPU)(y,r,T,I);t=n.makeTensorInfo(b,p.dtype,s.values)}else{let e=new(0,l.StridedSliceProgram)(I,T,y);t=n.runWebGLProgram(e,[p],p.dtype)}let N=(0,i.reshape)({inputs:{x:t},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(t),N}let c={kernelName:a.StridedSlice,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","../strided_slice_gpu":"fdsbZ","./Reshape":"2Do1g","./Slice":"25e33","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fdsbZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"StridedSliceProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r){this.variableNames=["x"],this.outputShape=r;let n=r.length,s=(0,a.getCoordsDataType)(r.length),o=(0,a.getCoordsDataType)(r.length),l="";if(1===n)l="coords * strides + begin";else{let e=0;l=r.map((t,n)=>(e++,1===r.length?`coords * strides[${n}] + begin[${n}]`:`coords[${e-1}] * strides[${n}] + begin[${n}]`)).join(",")}this.userCode=` + ${s} begin = ${s}(${e}); + ${s} strides = ${s}(${t}); + + void main() { + ${o} coords = getOutputCoords(); + setOutput(getX(${l})); + } + `}}},{"./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hsdG9:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringNGrams",()=>l),s.export(r,"stringNGramsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{separator:s,nGramWidths:a,leftPad:l,rightPad:i,padWidth:u,preserveShortSequences:p}=n,{data:c,dataSplits:d}=t,f=r.readSync(c.dataId),m=r.readSync(d.dataId),[h,g]=(0,o.stringNGramsImplCPU)(f,m,s,a,l,i,u,p);return[r.makeTensorInfo([h.length],"string",h),r.makeTensorInfo(d.shape,"int32",g)]}let i={kernelName:a.StringNGrams,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dBtFt:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringSplit",()=>l),s.export(r,"stringSplitConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{skipEmpty:s}=n,{input:a,delimiter:l}=t;if("string"!==a.dtype)throw Error("Input must be of datatype string");if(1!==a.shape.length)throw Error(`Input must be a vector, got shape: ${a.shape}`);if(0!==l.shape.length)throw Error(`Delimiter must be a scalar, got shape: ${l.shape}`);let i=r.readSync(a.dataId),u=r.readSync(l.dataId)[0],[p,c,d]=(0,o.stringSplitImplCPU)(i,u,s),f=c.length;return[r.makeTensorInfo([f,2],"int32",p),r.makeTensorInfo([f],"string",c),r.makeTensorInfo([2],"int32",new Int32Array(d))]}let i={kernelName:a.StringSplit,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],grEDz:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringToHashBucketFast",()=>l),s.export(r,"stringToHashBucketFastConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{numBuckets:s}=n,{input:a}=t;if("string"!==a.dtype)throw Error("Input must be of datatype string");if(s<=0)throw Error("Number of buckets must be at least 1");let l=r.readSync(a.dataId),i=(0,o.stringToHashBucketFastImplCPU)(l,s);return r.makeTensorInfo(a.shape,"int32",i)}let i={kernelName:a.StringToHashBucketFast,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1DxYi":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tan",()=>o),s.export(r,"tanConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return tan(x);"}),l={kernelName:a.Tan,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6x3XV":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tanh",()=>i),s.export(r,"tanhConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + float e2x = exp(-2.0 * abs(x)); + return sign(x) * (1.0 - e2x) / (1.0 + e2x); +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Tanh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eknBm:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensorScatterUpdate",()=>i),s.export(r,"tensorScatterUpdateConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../scatter_gpu"),l=e("./Reshape");function i(e){let{inputs:t,backend:r,attrs:n}=e,{tensor:s,indices:i,updates:u}=t,{}=n,{sliceRank:p,numUpdates:c,sliceSize:d,strides:f,outputSize:m}=a.backend_util.calculateShapes(u,i,s.shape),h=[m/d,d];if(0===m)return r.makeTensorInfo(s.shape,i.dtype);let g=(0,l.reshape)({inputs:{x:i},backend:r,attrs:{shape:[c,p]}}),x=(0,l.reshape)({inputs:{x:u},backend:r,attrs:{shape:[c,d]}}),v=(0,l.reshape)({inputs:{x:s},backend:r,attrs:{shape:h}}),y=new(0,o.ScatterProgram)(c,p,g.shape.length,x.shape.length,f,h,!1,!0),b=r.runWebGLProgram(y,[x,g,v],v.dtype),_=(0,l.reshape)({inputs:{x:b},backend:r,attrs:{shape:s.shape}});return r.disposeIntermediateTensorInfo(g),r.disposeIntermediateTensorInfo(x),r.disposeIntermediateTensorInfo(v),r.disposeIntermediateTensorInfo(b),_}let u={kernelName:a.TensorScatterUpdate,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../scatter_gpu":"86nzQ","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2QC1Z":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tile",()=>i),s.export(r,"tileConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../tile_gpu");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{reps:i}=n;if("string"===s.dtype||s.shape.length>5){let e=r.readSync(s.dataId),t="string"===s.dtype?e.map(e=>a.util.decodeString(e)):e,n=(0,a.buffer)(s.shape,s.dtype,t),l=(0,o.tileImplCPU)(n,i);return r.makeTensorInfo(l.shape,l.dtype,l.values)}let u=new(0,l.TileProgram)(s.shape,i);return r.runWebGLProgram(u,[s],s.dtype)}let u={kernelName:a.Tile,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","../tile_gpu":"9pjGL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9pjGL":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TileProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t){this.variableNames=["A"];let r=Array(e.length);for(let n=0;n5)throw Error(`Tile for rank ${t} is not yet supported`);if(1===t)return`imod(resRC, ${e[0]})`;let r=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],n=[];for(let t=0;tm),s.export(r,"topKConfig",()=>h);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../top_k_gpu"),i=e("./Fill"),u=e("./GatherV2"),p=e("./Reshape"),c=e("./Slice");function d(e,t){null!==t&&e.disposeIntermediateTensorInfo(t)}function f(e){let t=1;for(;tx){let e=r.readSync(s.dataId),[t,n]=(0,o.topKImplCPU)(e,v,s.dtype,m,h);return[r.makeTensorInfo(t.shape,t.dtype,t.values),r.makeTensorInfo(n.shape,n.dtype,n.values)]}if(0===m)return v[v.length-1]=0,[r.makeTensorInfo(v,s.dtype,[]),r.makeTensorInfo(v,"int32",[])];if(1===y)return[s,(0,i.fill)({attrs:{shape:v,dtype:"int32",value:0},backend:r})];let b=r.texData.get(s.dataId),_=null!==b&&b.isPacked,k=_?r.unpackTensor(s):s,j=a.util.sizeFromShape(v)/y,I=(0,p.reshape)({inputs:{x:k},attrs:{shape:[j,y]},backend:r});_&&d(r,k);let w=f(m),T=f(y),N=null,S=()=>null===N?[I,I]:[I,N],C=(e,t,n)=>{let s=S(),a=new(0,l.SwapProgram)(n),o=[[y],[+(null===N)],[Number.NEGATIVE_INFINITY],[e],[t]],i=N;N=r.runWebGLProgram(a,s,"int32",o),d(r,i)};for(let e=1;e=1;r/=2)C(t,r,[j,T])}for(let e=T;e>w;e/=2){let t=S(),n=new(0,l.MergeProgram)([j,e/2]),s=[[y],[+(null===N)],[w]],a=N;N=r.runWebGLProgram(n,t,"int32",s),d(r,a);let o=w/2,i=2*o;for(let e=o;e>=1;e/=2)C(i,e,N.shape)}let E=N;N=(0,c.slice)({inputs:{x:N},backend:r,attrs:{begin:0,size:[j,m]}}),d(r,E);let F=(0,u.gatherV2)({inputs:{x:I,indices:N},backend:r,attrs:{axis:1,batchDims:1}});d(r,I);let A=v.slice(0,-1);A.push(m),E=N,N=(0,p.reshape)({inputs:{x:N},attrs:{shape:A},backend:r}),d(r,E);let R=F;return F=(0,p.reshape)({inputs:{x:F},attrs:{shape:A},backend:r}),d(r,R),[F,N]}let h={kernelName:a.TopK,backendName:"webgl",kernelFunc:m}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","../top_k_gpu":"cCvXi","./Fill":"e9rdf","./GatherV2":"4oWqG","./Reshape":"2Do1g","./Slice":"25e33","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cCvXi:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SwapProgram",()=>a),s.export(r,"MergeProgram",()=>o);class a{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"negativeInf",type:"float"},{name:"dir",type:"int"},{name:"inc",type:"int"}],this.outputShape=e,this.userCode=` + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int elemIdx = coords[1]; + + // We compare elements pair-wise within a group of size 2 * inc. + // The comparing rule for each group alternates between ascending + // and descending. Within each group, we compare each pair at + // positions i and i+inc. To decide whether an element at position i + // is x0 or x1, we mod it by 2 * inc, if the result is smaller than + // inc, it is in the first half of the group, we denote it as x0, + // otherwise we denote it as x1. + // For example, as shown in the Bitonic top K paper referenced above, + // Figure5(a) shows that element[1] is in the + // second half of the group when group size is 2, but it is in the + // first half of the group when group size is 4. + + bool isFirstInPair = imod(elemIdx, 2 * inc) < inc; + int i = isFirstInPair ? elemIdx : elemIdx - inc; + + int i0 = firstPass == 1 ? i : int(getIndices(batch, i)); + int i1 = firstPass == 1 ? i + inc : int(getIndices(batch, i + inc)); + float x0 = i0 < n ? getX(batch, i0) : negativeInf; + float x1 = i1 < n ? getX(batch, i1) : negativeInf; + + // Denotes which direction indices are in (ascending or descending). + bool reverse = imod(elemIdx, 2 * dir) >= dir; + bool isGreater = x0 > x1 || (x0 == x1 && i1 > i0); + if (reverse == isGreater) { // Elements in opposite order of direction + int iTemp = i0; + i0 = i1; + i1 = iTemp; + } + if (isFirstInPair) { + setOutput(float(i0)); + } else { + setOutput(float(i1)); + } + } + `}}class o{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"k",type:"int"}],this.outputShape=e,this.userCode=` + void main() { + // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ... + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int elemIdx = coords[1]; + + // The output size is half of the previous size. + // If the previous sequence is | | | | _ _ _ _ | | | | _ _ _ _ (k=4), + // we only need to output the indices at positions |, the indices at + // positions _ can be thrown away, see Figure5(b) After Phase 2 + // (Merge phase) in the Bitonic Top K paper referenced above. + // For example, the paper shows we only need to output the orange bars. + // The output sequence should look like this | | | | | | | |. + // Because the sequence is halved, to map the output index back + // to the previous sequence to find the corresponding value, + // we need to double the index. When we double the index, + // we basically interpolate a position, so 2i looks like + // | _ | _ | _ | _ | _ | _ | _. We move the | to the first k position + // of each 2k positions by - elemIdx % k. E.g. for output at + // index 4,5,6,7, we want to get the corresponding element at + // original index 8,9,10,11, for output at index 8,9,10,11, + // we want to get the corresponding element at original index + // 16,17,18,19, so on and so forth. + + int i = elemIdx < k ? elemIdx : (elemIdx * 2 - imod(elemIdx, k)); + int i0 = firstPass == 1 ? i : int(getIndices(batch, i)); + int i1 = firstPass == 1 ? i + k : int(getIndices(batch, i + k)); + + float x0 = getX(batch, i0); + float x1 = i1 < n ? getX(batch, i1) : x0; + + setOutput(x0 >= x1 ? float(i0) : float(i1)); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fm65S:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transform",()=>l),s.export(r,"transformConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../transform_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{image:s,transforms:a}=t,{interpolation:l,fillMode:i,fillValue:u,outputShape:p}=n,[c,d,f,m]=s.shape,[h,g]=null!=p?p:[d,f],x=new(0,o.TransformProgram)(d,f,l,i,u,[c,h,g,m]);return r.runWebGLProgram(x,[s,a],"float32")}let i={kernelName:a.Transform,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../transform_gpu":"ffFJY","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ffFJY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TransformProgram",()=>a);class a{constructor(e,t,r,n,s,a){let o;switch(this.variableNames=["Image","Transforms"],this.outputShape=a,n){case"constant":default:o=1;break;case"reflect":o=2;break;case"wrap":o=3;break;case"nearest":o=4}this.userCode=` + float mapCoord(float outCoord, float len) { + float inCoord = outCoord; + if(${o} == 2) { + if (inCoord < 0.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz2 = 2.0 * len; + if (inCoord < sz2) { + inCoord = sz2 * float(int(float(-inCoord / sz2))) + + inCoord; + } + inCoord = inCoord < -len ? inCoord + sz2 : -inCoord - 1.0; + } + } else if (inCoord > len - 1.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz2 = 2.0 * len; + inCoord -= sz2 * float(int(float(inCoord / sz2))); + if (inCoord >= len) { + inCoord = sz2 - inCoord - 1.0; + } + } + } + return clamp(inCoord, 0.0, len - 1.0); + } else if (${o} == 3) { + if (inCoord < 0.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz = len - 1.0; + inCoord += len * (float(int(float(-inCoord / sz))) + 1.0); + } + } else if (inCoord > len - 1.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz = len - 1.0; + inCoord -= len * float(int(float(inCoord / sz))); + } + } + return clamp(inCoord, 0.0, len - 1.0); + } else if (${o} == 4) { + return clamp(outCoord, 0.0, len - 1.0); + } else { + return outCoord; + } + } + + float readWithFillValue(int batch, int coordY, int coordX, + int channel) { + float outputValue; + if (0 <= coordY && coordY < ${e} && 0 <= coordX && coordX < ${t}) { + outputValue = getImage(batch, coordY, coordX, channel); + } else { + outputValue = float(${s}); + } + return outputValue; + } + + void main() { + ivec4 coords = getOutputCoords(); + float outputValue; + int batch = coords[0]; + int x = coords[2]; + int y = coords[1]; + int channel = coords[3]; + float xf = float(x); + float yf = float(y); + float a1 = getTransforms(batch, 0); + float a2 = getTransforms(batch, 1); + float a3 = getTransforms(batch, 2); + float b1 = getTransforms(batch, 3); + float b2 = getTransforms(batch, 4); + float b3 = getTransforms(batch, 5); + float c1 = getTransforms(batch, 6); + float c2 = getTransforms(batch, 7); + float projection = c1 * xf + c2 * yf + 1.0; + if (projection == 0.0) { + outputValue = float(${s}); + } else { + float inX = (a1 * xf + a2 * yf + a3) / projection; + float inY = (b1 * xf + b2 * yf + b3) / projection; + float mapX = mapCoord(inX, float(${t})); + float mapY = mapCoord(inY, float(${e})); + + if (${"nearest"===r?1:2} == 1) { + int coordY = int(round(mapY)); + int coordX = int(round(mapX)); + outputValue = readWithFillValue(batch, coordY, coordX, + channel); + } else { + float yFloor = floor(mapY); + float xFloor = floor(mapX); + float yCeil = yFloor + 1.0; + float xCeil = xFloor + 1.0; + float valueYFloor = (xCeil - mapX) * + readWithFillValue(batch, int(yFloor), int(xFloor), channel) + + (mapX - xFloor) * + readWithFillValue(batch, int(yFloor), int(xCeil), channel); + float valueYCeil = (xCeil - mapX) * + readWithFillValue(batch, int(yCeil), int(xFloor), channel) + + (mapX - xFloor) * + readWithFillValue(batch, int(yCeil), int(xCeil), channel); + outputValue = (yCeil - mapY) * valueYFloor + + (mapY - yFloor) * valueYCeil; + } + } + setOutput(outputValue); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8c1i6":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unique",()=>i),s.export(r,"uniqueConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../webgl_util");function i(e){let{inputs:t,attrs:r,backend:n}=e,{axis:s}=r,{x:a}=t;(0,l.assertNotComplex)(a,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=n.readSync(a.dataId),{outputValues:u,outputShape:p,indices:c}=(0,o.uniqueImplCPU)(i,s,a.shape,a.dtype);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([c.length],"int32",c)]}let u={kernelName:a.Unique,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","../webgl_util":"8Bhtc","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eFQSo:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unpack",()=>i),s.export(r,"unpackConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./Reshape"),l=e("./Slice");function i(e){let{inputs:t,backend:r,attrs:n}=e,{value:s}=t,{axis:a}=n;a<0&&(a+=s.shape.length);let i=s.shape.length,u=s.shape[a],p=Array(i-1),c=0;for(let e=0;er.disposeIntermediateTensorInfo(e)),h}let u={kernelName:a.Unpack,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","./Reshape":"2Do1g","./Slice":"25e33","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"34lCk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unsortedSegmentSum",()=>c),s.export(r,"unsortedSegmentSumConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("../segment_gpu"),l=e("./Range"),i=e("./Reshape"),u=e("./Tile"),p=e("./Transpose");function c(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,segmentIds:c}=t,{numSegments:d}=n,f=s.shape.length,m=[],h=0,g=a.backend_util.getAxesPermutation([h],f),x=s;null!=g&&(x=(0,p.transpose)({inputs:{x:s},backend:r,attrs:{perm:g}}),m.push(x),h=a.backend_util.getInnerMostAxes(1,f)[0]);let v=a.backend_util.segment_util.computeOutShape(x.shape,h,d),y=a.util.sizeFromShape([x.shape[h]]),b=(0,i.reshape)({inputs:{x:x},backend:r,attrs:{shape:[-1,y]}});m.push(b);let _=(0,a.sumOutType)(s.dtype),k=(e,t,n,s,i)=>{let p=e.shape[0],c=e.shape[1],d=a.backend_util.segment_util.segOpComputeOptimalWindowSize(c,i),f=new(0,o.SegmentOpProgram)({windowSize:d,inSize:c,batchSize:p,numSegments:i},t),h=r.compileAndRun(f,[e,n],s);if(m.push(h),h.shape[1]===i)return h;let g=(0,l.range)({backend:r,attrs:{start:0,stop:i,step:1,dtype:"float32"}}),x=(0,u.tile)({inputs:{x:g},backend:r,attrs:{reps:[c/d]}});return m.push(g),m.push(x),k(h,t,x,s,i)},j=k(b,"unsortedSegmentSum",c,_,d),I=(0,i.reshape)({inputs:{x:j},backend:r,attrs:{shape:v}}),w=I;if(null!=g){m.push(I);let e=a.backend_util.getUndoAxesPermutation(g);w=(0,p.transpose)({inputs:{x:w},backend:r,attrs:{perm:e}})}return m.forEach(e=>r.disposeIntermediateTensorInfo(e)),w}let d={kernelName:a.UnsortedSegmentSum,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"biUij","../segment_gpu":"fC50C","./Range":"5tyAf","./Reshape":"2Do1g","./Tile":"2QC1Z","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fC50C:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SegmentOpProgram",()=>a);class a{constructor(e,t){this.variableNames=["x","segmentIds"];let r=e.windowSize,n=e.batchSize,s=e.inSize,a=e.numSegments,o=a*Math.ceil(s/r);this.outputShape=[n,o];let l=4*Math.floor(r/4),i=r%4,u=` + sumValue += dot(values, segFilter); + `,p="";s%r>0&&(p=` + if (inIdx < 0 || inIdx >= ${s}) { + return initializationValue; + } + `);let c="";s%r>0&&(c=` + if (inIdx < 0 || inIdx >= ${s}) { + return -1.0; + } + `),this.userCode=` + const float initializationValue = 0.0; + + float getValue(int batch, int inIdx) { + ${p} + return getX(batch, inIdx); + } + + float getSegmentIdAtIndex(int inIdx) { + ${c} + return getSegmentIds(inIdx); + } + + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int outIdx = coords[1]; + int inOffset = int(floor(float(outIdx) / float( + ${a})) * float(${r})); + int currentSeg = int(mod(float(outIdx), float(${a}))); + + float sumValue = 0.0; + + for (int i = 0; i < ${l}; i += 4) { + int inIdx = inOffset + i; + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + getValue(batch, inIdx + 3) + ); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0 + ); + + ${u} + } + + int inIdx = inOffset + ${l}; + if (${1===i}) { + vec4 values = vec4( + getValue(batch, inIdx), + initializationValue, + initializationValue, + initializationValue + ); + + int inIdxSeg = int(getSegmentIdAtIndex(inIdx)); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + 0, + 0, + 0 + ); + + ${u} + } else if (${2===i}) { + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + initializationValue, + initializationValue + ); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, + 0, + 0 + ); + + ${u} + } else if (${3===i}) { + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + initializationValue + ); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0, + 0 + ); + + ${u} + } + setOutput(sumValue); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hOvdB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r);var a=e("./base");s.exportAll(a,r),e("./register_all_kernels")},{"./base":"64q5J","./register_all_kernels":"9EOTG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"64q5J":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MathBackendCPU",()=>o.MathBackendCPU),s.export(r,"version_cpu",()=>i.version),s.export(r,"shared",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("./backend_cpu"),l=e("./shared"),i=e("./version");(0,a.registerBackend)("cpu",()=>new(0,o.MathBackendCPU),1)},{"@tensorflow/tfjs-core":"biUij","./backend_cpu":"jpjJ0","./shared":"8xYEJ","./version":"1GcQ3","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jpjJ0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MathBackendCPU",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./cpu_util");let l=a.kernel_impls.whereImpl;class i extends a.KernelBackend{nextDataId(){return i.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new(0,a.DataStorage)(this,(0,a.engine)())}write(e,t,r){this.firstUse&&(this.firstUse=!1,(0,a.env)().get("IS_NODE")&&a.backend_util.warn("\n============================\nHi, looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, visit https://github.com/tensorflow/tfjs-node for more details. \n============================"));let n={id:this.nextDataId()};return this.data.set(n,{values:e,dtype:r,refCount:1}),n}makeTensorInfo(e,t,r){let n;if("string"===t&&null!=r&&r.length>0&&a.util.isString(r[0])){let s=r.map(e=>a.util.encodeString(e));n=this.write(s,e,t)}else n=this.write(r,e,t);return{dataId:n,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,r,n,s){this.data.set(e,{values:t,dtype:n,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:r}=this.data.get(e);if("complex64"===t){let e=this.readSync(r.real.dataId),t=this.readSync(r.imag.dataId);return a.backend_util.mergeRealAndImagArrays(e,t)}return a.util.convertBackendValuesAndArrayBuffer(this.data.get(e).values,t)}bufferSync(e){let t=this.readSync(e.dataId);if("string"===e.dtype)try{let r=t.map(e=>a.util.decodeString(e));return(0,a.buffer)(e.shape,e.dtype,r)}catch(e){throw Error("Failed to decode encoded string bytes into utf-8")}return(0,a.buffer)(e.shape,e.dtype,t)}makeOutput(e,t,r){return(0,a.engine)().makeTensorFromTensorInfo(this.makeTensorInfo(t,r,e),this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;let{complexTensorInfos:r}=this.data.get(e);null!=r&&(this.disposeData(r.real.dataId,!0),this.disposeData(r.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){let t=a.util.now();return e(),{kernelMs:a.util.now()-t}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(e){(0,o.assertNotComplex)([e],"where");let t=this.readSync(e.dataId);return l(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}}i.nextDataId=0},{"@tensorflow/tfjs-core":"biUij","./cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1GcQ3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"version",()=>a);let a="4.22.0"},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9EOTG":[function(e,t,r,n){var s=e("@tensorflow/tfjs-core"),a=e("./kernels/_FusedMatMul"),o=e("./kernels/Abs"),l=e("./kernels/Acos"),i=e("./kernels/Acosh"),u=e("./kernels/Add"),p=e("./kernels/AddN"),c=e("./kernels/All"),d=e("./kernels/Any"),f=e("./kernels/ArgMax"),m=e("./kernels/ArgMin"),h=e("./kernels/Asin"),g=e("./kernels/Asinh"),x=e("./kernels/Atan"),v=e("./kernels/Atan2"),y=e("./kernels/Atanh"),b=e("./kernels/AvgPool"),_=e("./kernels/AvgPool3D"),k=e("./kernels/AvgPool3DGrad"),j=e("./kernels/AvgPoolGrad"),I=e("./kernels/BatchMatMul"),w=e("./kernels/BatchNorm"),T=e("./kernels/BatchToSpaceND"),N=e("./kernels/Bincount"),S=e("./kernels/BitwiseAnd"),C=e("./kernels/BroadcastArgs"),E=e("./kernels/Cast"),F=e("./kernels/Ceil"),A=e("./kernels/ClipByValue"),R=e("./kernels/Complex"),P=e("./kernels/ComplexAbs"),D=e("./kernels/Concat"),$=e("./kernels/Conv2D"),O=e("./kernels/Conv2DBackpropFilter"),M=e("./kernels/Conv2DBackpropInput"),W=e("./kernels/Conv3D"),B=e("./kernels/Conv3DBackpropFilterV2"),L=e("./kernels/Conv3DBackpropInputV2"),V=e("./kernels/Cos"),U=e("./kernels/Cosh"),G=e("./kernels/CropAndResize"),z=e("./kernels/Cumprod"),Q=e("./kernels/Cumsum"),q=e("./kernels/DenseBincount"),H=e("./kernels/DepthToSpace"),K=e("./kernels/DepthwiseConv2dNative"),X=e("./kernels/DepthwiseConv2dNativeBackpropFilter"),Y=e("./kernels/DepthwiseConv2dNativeBackpropInput"),J=e("./kernels/Diag"),Z=e("./kernels/Dilation2D"),ee=e("./kernels/Dilation2DBackpropFilter"),et=e("./kernels/Dilation2DBackpropInput"),er=e("./kernels/Draw"),en=e("./kernels/Einsum"),es=e("./kernels/Elu"),ea=e("./kernels/EluGrad"),eo=e("./kernels/Equal"),el=e("./kernels/Erf"),ei=e("./kernels/Exp"),eu=e("./kernels/ExpandDims"),ep=e("./kernels/Expm1"),ec=e("./kernels/FFT"),ed=e("./kernels/Fill"),ef=e("./kernels/FlipLeftRight"),em=e("./kernels/Floor"),eh=e("./kernels/FloorDiv"),eg=e("./kernels/FusedConv2D"),ex=e("./kernels/FusedDepthwiseConv2D"),ev=e("./kernels/GatherNd"),ey=e("./kernels/GatherV2"),eb=e("./kernels/Greater"),e_=e("./kernels/GreaterEqual"),ek=e("./kernels/Identity"),ej=e("./kernels/IFFT"),eI=e("./kernels/Imag"),ew=e("./kernels/IsFinite"),eT=e("./kernels/IsInf"),eN=e("./kernels/IsNaN"),eS=e("./kernels/LeakyRelu"),eC=e("./kernels/Less"),eE=e("./kernels/LessEqual"),eF=e("./kernels/LinSpace"),eA=e("./kernels/Log"),eR=e("./kernels/Log1p"),eP=e("./kernels/LogicalAnd"),eD=e("./kernels/LogicalNot"),e$=e("./kernels/LogicalOr"),eO=e("./kernels/LRN"),eM=e("./kernels/LRNGrad"),eW=e("./kernels/Max"),eB=e("./kernels/Maximum"),eL=e("./kernels/MaxPool"),eV=e("./kernels/MaxPool3D"),eU=e("./kernels/MaxPool3DGrad"),eG=e("./kernels/MaxPoolGrad"),ez=e("./kernels/MaxPoolWithArgmax"),eQ=e("./kernels/Mean"),eq=e("./kernels/Min"),eH=e("./kernels/Minimum"),eK=e("./kernels/MirrorPad"),eX=e("./kernels/Mod"),eY=e("./kernels/Multinomial"),eJ=e("./kernels/Multiply"),eZ=e("./kernels/Neg"),e0=e("./kernels/NonMaxSuppressionV3"),e1=e("./kernels/NonMaxSuppressionV4"),e2=e("./kernels/NonMaxSuppressionV5"),e3=e("./kernels/NotEqual"),e5=e("./kernels/OneHot"),e4=e("./kernels/OnesLike"),e6=e("./kernels/Pack"),e8=e("./kernels/PadV2"),e9=e("./kernels/Pow"),e7=e("./kernels/Prelu"),te=e("./kernels/Prod"),tt=e("./kernels/RaggedGather"),tr=e("./kernels/RaggedRange"),tn=e("./kernels/RaggedTensorToTensor"),ts=e("./kernels/Range"),ta=e("./kernels/Real"),to=e("./kernels/RealDiv"),tl=e("./kernels/Reciprocal"),ti=e("./kernels/Relu"),tu=e("./kernels/Relu6"),tp=e("./kernels/Reshape"),tc=e("./kernels/ResizeBilinear"),td=e("./kernels/ResizeBilinearGrad"),tf=e("./kernels/ResizeNearestNeighbor"),tm=e("./kernels/ResizeNearestNeighborGrad"),th=e("./kernels/Reverse"),tg=e("./kernels/RotateWithOffset"),tx=e("./kernels/Round"),tv=e("./kernels/Rsqrt"),ty=e("./kernels/ScatterNd"),tb=e("./kernels/SearchSorted"),t_=e("./kernels/Select"),tk=e("./kernels/Selu"),tj=e("./kernels/Sigmoid"),tI=e("./kernels/Sign"),tw=e("./kernels/Sin"),tT=e("./kernels/Sinh"),tN=e("./kernels/Slice"),tS=e("./kernels/Softmax"),tC=e("./kernels/Softplus"),tE=e("./kernels/SpaceToBatchND"),tF=e("./kernels/SparseFillEmptyRows"),tA=e("./kernels/SparseReshape"),tR=e("./kernels/SparseSegmentMean"),tP=e("./kernels/SparseSegmentSum"),tD=e("./kernels/SparseToDense"),t$=e("./kernels/SplitV"),tO=e("./kernels/Sqrt"),tM=e("./kernels/Square"),tW=e("./kernels/SquaredDifference"),tB=e("./kernels/StaticRegexReplace"),tL=e("./kernels/Step"),tV=e("./kernels/StridedSlice"),tU=e("./kernels/StringNGrams"),tG=e("./kernels/StringSplit"),tz=e("./kernels/StringToHashBucketFast"),tQ=e("./kernels/Sub"),tq=e("./kernels/Sum"),tH=e("./kernels/Tan"),tK=e("./kernels/Tanh"),tX=e("./kernels/TensorScatterUpdate"),tY=e("./kernels/Tile"),tJ=e("./kernels/TopK"),tZ=e("./kernels/Transform"),t0=e("./kernels/Transpose"),t1=e("./kernels/Unique"),t2=e("./kernels/Unpack"),t3=e("./kernels/UnsortedSegmentSum"),t5=e("./kernels/ZerosLike");for(let e of[a._fusedMatMulConfig,o.absConfig,l.acosConfig,i.acoshConfig,u.addConfig,p.addNConfig,c.allConfig,d.anyConfig,f.argMaxConfig,m.argMinConfig,h.asinConfig,g.asinhConfig,x.atanConfig,v.atan2Config,y.atanhConfig,b.avgPoolConfig,_.avgPool3DConfig,k.avgPool3DGradConfig,j.avgPoolGradConfig,I.batchMatMulConfig,w.batchNormConfig,T.batchToSpaceNDConfig,N.bincountConfig,S.bitwiseAndConfig,C.broadcastArgsConfig,E.castConfig,F.ceilConfig,A.clipByValueConfig,R.complexConfig,P.complexAbsConfig,D.concatConfig,$.conv2DConfig,O.conv2DBackpropFilterConfig,M.conv2DBackpropInputConfig,W.conv3DConfig,B.conv3DBackpropFilterV2Config,L.conv3DBackpropInputV2Config,V.cosConfig,U.coshConfig,G.cropAndResizeConfig,z.cumprodConfig,Q.cumsumConfig,q.denseBincountConfig,H.depthToSpaceConfig,K.depthwiseConv2dNativeConfig,X.depthwiseConv2dNativeBackpropFilterConfig,Y.depthwiseConv2dNativeBackpropInputConfig,J.diagConfig,Z.dilation2DConfig,ee.dilation2DBackpropFilterConfig,et.dilation2DBackpropInputConfig,er.drawConfig,en.einsumConfig,es.eluConfig,ea.eluGradConfig,eo.equalConfig,el.erfConfig,ei.expConfig,eu.expandDimsConfig,ep.expm1Config,ec.fftConfig,ed.fillConfig,ef.flipLeftRightConfig,em.floorConfig,eh.floorDivConfig,eg.fusedConv2DConfig,ex.fusedDepthwiseConv2DConfig,ev.gatherNdConfig,ey.gatherV2Config,eb.greaterConfig,e_.greaterEqualConfig,ek.identityConfig,ej.ifftConfig,eI.imagConfig,ew.isFiniteConfig,eT.isInfConfig,eN.isNaNConfig,eS.leakyReluConfig,eC.lessConfig,eE.lessEqualConfig,eF.linSpaceConfig,eA.logConfig,eR.log1pConfig,eP.logicalAndConfig,eD.logicalNotConfig,e$.logicalOrConfig,eO.LRNConfig,eM.LRNGradConfig,eW.maxConfig,eB.maximumConfig,eL.maxPoolConfig,eV.maxPool3DConfig,eU.maxPool3DGradConfig,eG.maxPoolGradConfig,ez.maxPoolWithArgmaxConfig,eQ.meanConfig,eq.minConfig,eH.minimumConfig,eK.mirrorPadConfig,eX.modConfig,eY.multinomialConfig,eJ.multiplyConfig,eZ.negConfig,e0.nonMaxSuppressionV3Config,e1.nonMaxSuppressionV4Config,e2.nonMaxSuppressionV5Config,e3.notEqualConfig,e5.oneHotConfig,e4.onesLikeConfig,e6.packConfig,e8.padV2Config,e9.powConfig,e7.preluConfig,te.prodConfig,tt.raggedGatherConfig,tr.raggedRangeConfig,tn.raggedTensorToTensorConfig,ts.rangeConfig,ta.realConfig,to.realDivConfig,tl.reciprocalConfig,ti.reluConfig,tu.relu6Config,tp.reshapeConfig,tc.resizeBilinearConfig,td.resizeBilinearGradConfig,tf.resizeNearestNeighborConfig,tm.resizeNearestNeighborGradConfig,th.reverseConfig,tg.rotateWithOffsetConfig,tx.roundConfig,tv.rsqrtConfig,ty.scatterNdConfig,tb.searchSortedConfig,t_.selectConfig,tk.seluConfig,tj.sigmoidConfig,tI.signConfig,tw.sinConfig,tT.sinhConfig,tN.sliceConfig,tS.softmaxConfig,tC.softplusConfig,tE.spaceToBatchNDConfig,tF.sparseFillEmptyRowsConfig,tA.sparseReshapeConfig,tR.sparseSegmentMeanConfig,tP.sparseSegmentSumConfig,tD.sparseToDenseConfig,t$.splitVConfig,tO.sqrtConfig,tM.squareConfig,tW.squaredDifferenceConfig,tB.staticRegexReplaceConfig,tL.stepConfig,tV.stridedSliceConfig,tU.stringNGramsConfig,tG.stringSplitConfig,tz.stringToHashBucketFastConfig,tQ.subConfig,tq.sumConfig,tH.tanConfig,tK.tanhConfig,tX.tensorScatterUpdateConfig,tY.tileConfig,tJ.topKConfig,tZ.transformConfig,t0.transposeConfig,t1.uniqueConfig,t2.unpackConfig,t3.unsortedSegmentSumConfig,t5.zerosLikeConfig])(0,s.registerKernel)(e)},{"@tensorflow/tfjs-core":"biUij","./kernels/_FusedMatMul":"Fk37D","./kernels/Abs":"l1fu2","./kernels/Acos":"5VEd4","./kernels/Acosh":"b84lp","./kernels/Add":"1JfHj","./kernels/AddN":"6nzKX","./kernels/All":"2rsUF","./kernels/Any":"gFVsm","./kernels/ArgMax":"57HHQ","./kernels/ArgMin":"9McgA","./kernels/Asin":"fN54S","./kernels/Asinh":"gfdKx","./kernels/Atan":"1rRFg","./kernels/Atan2":"dSlnZ","./kernels/Atanh":"7AqYq","./kernels/AvgPool":"lnXJr","./kernels/AvgPool3D":"5EgHg","./kernels/AvgPool3DGrad":"61bpN","./kernels/AvgPoolGrad":"3XHe7","./kernels/BatchMatMul":"d9KMZ","./kernels/BatchNorm":"lHPc4","./kernels/BatchToSpaceND":"gQ1kN","./kernels/Bincount":"7JaDV","./kernels/BitwiseAnd":"jaEPk","./kernels/BroadcastArgs":"dxlnS","./kernels/Cast":"cMwEt","./kernels/Ceil":"9E97z","./kernels/ClipByValue":"7rJsa","./kernels/Complex":"iqjKD","./kernels/ComplexAbs":"gE0Mq","./kernels/Concat":"hyLXC","./kernels/Conv2D":"hzyQd","./kernels/Conv2DBackpropFilter":"39TtF","./kernels/Conv2DBackpropInput":"bGQaK","./kernels/Conv3D":"8PeVU","./kernels/Conv3DBackpropFilterV2":"cqOvE","./kernels/Conv3DBackpropInputV2":"4HOac","./kernels/Cos":"6Lnfw","./kernels/Cosh":"b5PVs","./kernels/CropAndResize":"5J4XN","./kernels/Cumprod":"f3kx5","./kernels/Cumsum":"RioKC","./kernels/DenseBincount":"4qnDM","./kernels/DepthToSpace":"9VHVI","./kernels/DepthwiseConv2dNative":"hmHEE","./kernels/DepthwiseConv2dNativeBackpropFilter":"cjk6x","./kernels/DepthwiseConv2dNativeBackpropInput":"7wT3F","./kernels/Diag":"3JK4S","./kernels/Dilation2D":"ffWm6","./kernels/Dilation2DBackpropFilter":"bcDl4","./kernels/Dilation2DBackpropInput":"8501X","./kernels/Draw":"f8VnK","./kernels/Einsum":"glqva","./kernels/Elu":"3z4EC","./kernels/EluGrad":"6X5Ul","./kernels/Equal":"hGYXP","./kernels/Erf":"gqzzC","./kernels/Exp":"d2WVN","./kernels/ExpandDims":"gtxdI","./kernels/Expm1":"6wCyc","./kernels/FFT":"bwwwi","./kernels/Fill":"8G2vQ","./kernels/FlipLeftRight":"49ycw","./kernels/Floor":"d8vHS","./kernels/FloorDiv":"24gWZ","./kernels/FusedConv2D":"cU37i","./kernels/FusedDepthwiseConv2D":"1KNlo","./kernels/GatherNd":"dOdTx","./kernels/GatherV2":"dSKbR","./kernels/Greater":"1ATD8","./kernels/GreaterEqual":"aNJ5D","./kernels/Identity":"bdLxl","./kernels/IFFT":"ceizA","./kernels/Imag":"e6EoH","./kernels/IsFinite":"a08wP","./kernels/IsInf":"94AkQ","./kernels/IsNaN":"dpzCA","./kernels/LeakyRelu":"6Kjso","./kernels/Less":"8Tr8X","./kernels/LessEqual":"kA9T4","./kernels/LinSpace":"4VJty","./kernels/Log":"cZeHh","./kernels/Log1p":"a7xiG","./kernels/LogicalAnd":"1NhiJ","./kernels/LogicalNot":"NHJ8x","./kernels/LogicalOr":"eTk4U","./kernels/LRN":"5HgVT","./kernels/LRNGrad":"lGWHu","./kernels/Max":"2jSAF","./kernels/Maximum":"9lCQT","./kernels/MaxPool":"cSUpf","./kernels/MaxPool3D":"fLuEK","./kernels/MaxPool3DGrad":"78uii","./kernels/MaxPoolGrad":"b5hfv","./kernels/MaxPoolWithArgmax":"8bYQt","./kernels/Mean":"53jlm","./kernels/Min":"aBv4l","./kernels/Minimum":"31JS7","./kernels/MirrorPad":"bNCDt","./kernels/Mod":"1szcc","./kernels/Multinomial":"bYw6t","./kernels/Multiply":"dvGJ0","./kernels/Neg":"iuSgJ","./kernels/NonMaxSuppressionV3":"hn7XJ","./kernels/NonMaxSuppressionV4":"fJHJc","./kernels/NonMaxSuppressionV5":"9OSbH","./kernels/NotEqual":"3Xx4N","./kernels/OneHot":"iaBfp","./kernels/OnesLike":"ehLLx","./kernels/Pack":"au22V","./kernels/PadV2":"eqxgc","./kernels/Pow":"gJsYY","./kernels/Prelu":"eRHHo","./kernels/Prod":"4VmTK","./kernels/RaggedGather":"5kWLJ","./kernels/RaggedRange":"bkwKj","./kernels/RaggedTensorToTensor":"hkBd0","./kernels/Range":"dIyXK","./kernels/Real":"bLoe4","./kernels/RealDiv":"ZONlP","./kernels/Reciprocal":"d8MTu","./kernels/Relu":"8L9W3","./kernels/Relu6":"954yw","./kernels/Reshape":"gdyYW","./kernels/ResizeBilinear":"2yL6g","./kernels/ResizeBilinearGrad":"ds0Ve","./kernels/ResizeNearestNeighbor":"gVkI2","./kernels/ResizeNearestNeighborGrad":"g7quM","./kernels/Reverse":"3pDzx","./kernels/RotateWithOffset":"iMYaS","./kernels/Round":"4NENY","./kernels/Rsqrt":"4j1GM","./kernels/ScatterNd":"3ihOs","./kernels/SearchSorted":"5lVnK","./kernels/Select":"8bLgQ","./kernels/Selu":"c843Y","./kernels/Sigmoid":"8bByZ","./kernels/Sign":"jWrc0","./kernels/Sin":"g3CCU","./kernels/Sinh":"8kEME","./kernels/Slice":"dHddY","./kernels/Softmax":"hvkGj","./kernels/Softplus":"6OJKi","./kernels/SpaceToBatchND":"knIdy","./kernels/SparseFillEmptyRows":"ft3WI","./kernels/SparseReshape":"fvimw","./kernels/SparseSegmentMean":"jt8fg","./kernels/SparseSegmentSum":"4W4rq","./kernels/SparseToDense":"gNkA2","./kernels/SplitV":"hlKME","./kernels/Sqrt":"45xsA","./kernels/Square":"csjoO","./kernels/SquaredDifference":"4q6UK","./kernels/StaticRegexReplace":"6lMX2","./kernels/Step":"i1YBD","./kernels/StridedSlice":"2rqzs","./kernels/StringNGrams":"30Jsy","./kernels/StringSplit":"1Ko5Y","./kernels/StringToHashBucketFast":"iHsXF","./kernels/Sub":"5EzoO","./kernels/Sum":"jeTUE","./kernels/Tan":"6VGWn","./kernels/Tanh":"kUHbY","./kernels/TensorScatterUpdate":"h8wzB","./kernels/Tile":"5w8Av","./kernels/TopK":"fceZ4","./kernels/Transform":"VkSQG","./kernels/Transpose":"3cgqd","./kernels/Unique":"XBUgl","./kernels/Unpack":"a4FH4","./kernels/UnsortedSegmentSum":"lDm8A","./kernels/ZerosLike":"ioFSD"}],Fk37D:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"_fusedMatMul",()=>u),s.export(r,"_fusedMatMulConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/fused_utils"),l=e("./Add"),i=e("./BatchMatMul");function u(e){let t,r,n,{inputs:s,backend:a,attrs:u}=e,{a:p,b:c,bias:d,preluActivationWeights:f}=s,{transposeA:m,transposeB:h,activation:g,leakyreluAlpha:x}=u,v=[];for(let e of(t=(0,i.batchMatMul)({inputs:{a:p,b:c},attrs:{transposeA:m,transposeB:h},backend:a}),d&&(r=(0,l.add)({inputs:{a:t,b:d},backend:a}),v.push(t),t=r),g&&(n=(0,o.applyActivation)(a,t,g,f,x),v.push(t),t=n),v))a.disposeIntermediateTensorInfo(e);return t}let p={kernelName:a._FusedMatMul,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/fused_utils":"3crDv","./Add":"1JfHj","./BatchMatMul":"d9KMZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3crDv":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"applyActivation",()=>d);var a=e("../kernels/Elu"),o=e("../kernels/Identity"),l=e("../kernels/LeakyRelu"),i=e("../kernels/Prelu"),u=e("../kernels/Relu"),p=e("../kernels/Relu6"),c=e("../kernels/Sigmoid");function d(e,t,r,n,s){if("linear"===r)return(0,o.identity)({inputs:{x:t},backend:e});if("relu"===r)return(0,u.relu)({inputs:{x:t},backend:e});if("elu"===r)return(0,a.elu)({inputs:{x:t},backend:e});if("relu6"===r)return(0,p.relu6)({inputs:{x:t},backend:e});if("prelu"===r)return(0,i.prelu)({inputs:{x:t,alpha:n},backend:e});else if("leakyrelu"===r)return(0,l.leakyRelu)({inputs:{x:t},backend:e,attrs:{alpha:s}});else if("sigmoid"===r)return(0,c.sigmoid)({inputs:{x:t},backend:e});throw Error(`Activation ${r} has not been implemented for the CPU backend.`)}},{"../kernels/Elu":"3z4EC","../kernels/Identity":"bdLxl","../kernels/LeakyRelu":"6Kjso","../kernels/Prelu":"eRHHo","../kernels/Relu":"8L9W3","../kernels/Relu6":"954yw","../kernels/Sigmoid":"8bByZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3z4EC":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"elu",()=>o),s.export(r,"eluConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Elu,e=>e>=0?e:Math.exp(e)-1),l={kernelName:a.Elu,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6Kjso":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"leakyRelu",()=>l),s.export(r,"leakyReluConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{alpha:l}=n;(0,o.assertNotComplex)([s],"leakyRelu");let i=a.util.sizeFromShape(s.shape),u=r.data.get(s.dataId).values,p=a.util.getTypedArrayFromDType("float32",i);for(let e=0;ei),s.export(r,"preluConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");let l=(0,e("../utils/binary_impl").createSimpleBinaryKernelImpl)((e,t)=>e<0?t*e:e);function i(e){let{inputs:t,backend:r}=e,{x:n,alpha:s}=t;(0,o.assertNotComplex)([n,s],"prelu");let a=r.data.get(n.dataId).values,i=r.data.get(s.dataId).values,[u,p]=l(n.shape,s.shape,a,i,"float32");return r.makeTensorInfo(p,"float32",u)}let u={kernelName:a.Prelu,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","../utils/binary_impl":"1mxo2","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8L9W3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu",()=>o),s.export(r,"reluConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Relu,e=>Math.max(0,e)),l={kernelName:a.Relu,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"954yw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu6",()=>o),s.export(r,"relu6Config",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Relu6,e=>Math.min(Math.max(0,e),6)),l={kernelName:a.Relu6,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],d9KMZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchMatMul",()=>i),s.export(r,"batchMatMulConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape");function i(e){let{inputs:t,backend:r,attrs:n}=e,{a:s,b:i}=t,{transposeA:u,transposeB:p}=n;(0,o.assertNotComplex)([s,i],"matMul");let c=s.shape.length,d=i.shape.length,f=u?s.shape[c-2]:s.shape[c-1],m=p?i.shape[d-1]:i.shape[d-2],h=u?s.shape[c-1]:s.shape[c-2],g=p?i.shape[d-2]:i.shape[d-1],x=s.shape.slice(0,-2),v=i.shape.slice(0,-2),y=a.util.sizeFromShape(x),b=a.util.sizeFromShape(v),_=a.broadcast_util.assertAndGetBroadcastShape(s.shape.slice(0,-2),i.shape.slice(0,-2)).concat([h,g]);a.util.assert(f===m,()=>`Error in matMul: inner shapes (${f}) and (${m}) of Tensors with shapes ${s.shape} and ${i.shape} and transposeA=${u} and transposeB=${p} must match.`);let k=(0,l.reshape)({inputs:{x:s},backend:r,attrs:{shape:u?[y,f,h]:[y,h,f]}}),j=(0,l.reshape)({inputs:{x:i},backend:r,attrs:{shape:p?[b,g,m]:[b,m,g]}}),I=u?k.shape[1]:k.shape[2],w=u?k.shape[2]:k.shape[1],T=p?j.shape[1]:j.shape[2],N=Math.max(y,b),S=r.data.get(k.dataId).values,C=r.data.get(j.dataId).values,E=a.util.computeStrides(k.shape),F=a.util.computeStrides(j.shape),[A,R,P]=u?[E[0],1,E[1]]:[E[0],E[1],1],[D,$,O]=p?[1,F[1],F[0]]:[F[1],1,F[0]],M=w*T,W=(0,a.buffer)([N,w,T],k.dtype),B=W.values,L=r.blockSize;for(let e=0;eo),s.export(r,"reshapeConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{shape:o}=n,l=a.util.sizeFromShape(s.shape),i=a.util.inferFromImplicitShape(o,l),u=a.util.sizeFromShape(i);a.util.assert(l===u,()=>`The new shape (${i}) has ${u} elements and the old shape (${s.shape}) has ${l} elements. The new shape and old shape must have the same number of elements.`),r.incRef(s.dataId);let p=r.data.get(s.dataId);if(null!=p.complexTensorInfos){let e=p.complexTensorInfos.real,t=p.complexTensorInfos.imag;e.shape=i,t.shape=i}return{dataId:s.dataId,shape:i,dtype:s.dtype}}let l={kernelName:a.Reshape,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5VEd4":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acos",()=>o),s.export(r,"acosConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Acos,e=>Math.acos(e)),l={kernelName:a.Acos,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],b84lp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acosh",()=>o),s.export(r,"acoshConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Acosh,e=>Math.acosh(e)),l={kernelName:a.Acosh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6nzKX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addN",()=>l),s.export(r,"addNConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r}=e;(0,o.assertNotComplex)(t,"addN");let n=t.map(e=>r.data.get(e.dataId).values),s=(0,a.buffer)(t[0].shape,t[0].dtype),l=s.values;for(let e=0;eu),s.export(r,"allConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape"),i=e("./Transpose");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:u,keepDims:p}=n;(0,o.assertNotComplex)(s,"all");let c=a.util.parseAxisParam(u,s.shape),d=c,f=a.backend_util.getAxesPermutation(d,s.shape.length),m=s;null!=f&&(m=(0,i.transpose)({inputs:{x:s},backend:r,attrs:{perm:f}}),d=a.backend_util.getInnerMostAxes(d.length,s.shape.length)),a.backend_util.assertAxesAreInnerMostDims("all",d,m.shape.length);let[h,g]=a.backend_util.computeOutAndReduceShapes(m.shape,d),x=a.util.sizeFromShape(g),v=a.util.makeZerosTypedArray(a.util.sizeFromShape(h),m.dtype),y=r.data.get(m.dataId).values;for(let e=0;eu),s.export(r,"anyConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape"),i=e("./Transpose");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:u,keepDims:p}=n;(0,o.assertNotComplex)(s,"any");let c=a.util.parseAxisParam(u,s.shape),d=c,f=a.backend_util.getAxesPermutation(d,s.shape.length),m=s;null!=f&&(m=(0,i.transpose)({inputs:{x:s},backend:r,attrs:{perm:f}}),d=a.backend_util.getInnerMostAxes(d.length,s.shape.length)),a.backend_util.assertAxesAreInnerMostDims("any",d,m.shape.length);let[h,g]=a.backend_util.computeOutAndReduceShapes(m.shape,d),x=a.util.sizeFromShape(g),v=a.util.makeZerosTypedArray(a.util.sizeFromShape(h),m.dtype),y=r.data.get(m.dataId).values;for(let e=0;ei),s.export(r,"argMaxConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i}=n;(0,o.assertNotComplex)(s,"argMax");let u=a.util.parseAxisParam(i,s.shape),p=a.backend_util.getAxesPermutation(u,s.shape.length),c=s,d=[];null!=p&&(d.push(c=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:p}})),u=a.backend_util.getInnerMostAxes(u.length,c.shape.length)),u=[u[0]],a.backend_util.assertAxesAreInnerMostDims("argMax",u,c.shape.length);let[f,m]=a.backend_util.computeOutAndReduceShapes(c.shape,u),h=a.util.sizeFromShape(f),g=a.util.makeZerosTypedArray(h,"int32"),x=a.util.sizeFromShape(m),v=r.data.get(c.dataId).values;for(let e=0;er&&(r=s,n=e)}g[e]=n}return d.forEach(e=>r.disposeIntermediateTensorInfo(e)),r.makeTensorInfo(f,"int32",g)}let u={kernelName:a.ArgMax,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./Transpose":"3cgqd","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9McgA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMin",()=>i),s.export(r,"argMinConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i}=n;(0,o.assertNotComplex)(s,"argMin");let u=a.util.parseAxisParam(i,s.shape),p=a.backend_util.getAxesPermutation(u,s.shape.length),c=s,d=[];null!=p&&(d.push(c=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:p}})),u=a.backend_util.getInnerMostAxes(u.length,c.shape.length)),u=[u[0]],a.backend_util.assertAxesAreInnerMostDims("argMin",u,c.shape.length);let[f,m]=a.backend_util.computeOutAndReduceShapes(c.shape,u),h=a.util.sizeFromShape(f),g=a.util.makeZerosTypedArray(h,"int32"),x=a.util.sizeFromShape(m),v=r.data.get(c.dataId).values;for(let e=0;er.disposeIntermediateTensorInfo(e)),r.makeTensorInfo(f,"int32",g)}let u={kernelName:a.ArgMin,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./Transpose":"3cgqd","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fN54S:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asin",()=>o),s.export(r,"asinConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Asin,e=>Math.asin(e)),l={kernelName:a.Asin,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gfdKx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asinh",()=>o),s.export(r,"asinhConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Asinh,e=>Math.asinh(e)),l={kernelName:a.Asinh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1rRFg":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan",()=>o),s.export(r,"atanConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Atan,e=>Math.atan(e)),l={kernelName:a.Atan,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dSlnZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan2Impl",()=>i),s.export(r,"atan2",()=>u),s.export(r,"atan2Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>Math.atan2(e,t)),u=(0,l.binaryKernelFunc)(a.Atan2,i),p={kernelName:a.Atan2,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7AqYq":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atanh",()=>o),s.export(r,"atanhConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Atanh,e=>Math.atanh(e)),l={kernelName:a.Atanh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lnXJr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool",()=>u),s.export(r,"avgPoolConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils"),i=e("./Identity");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u}=r;(0,o.assertNotComplex)(u,"avgPool");let{filterSize:p,strides:c,pad:d,dimRoundingMode:f}=s;a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(c,1),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${c} and dilations '1'`);let m=a.backend_util.computePool2DInfo(u.shape,p,c,1,d,f);if(1===m.filterWidth&&1===m.filterHeight&&a.util.arraysEqual(m.inShape,m.outShape))t=(0,i.identity)({inputs:{x:u},backend:n});else{let e=n.data.get(u.dataId).values,r=a.util.computeStrides(u.shape),s=(0,l.pool)(e,u.shape,u.dtype,r,m,"avg");t=n.makeTensorInfo(m.outShape,u.dtype,s.values)}return t}let p={kernelName:a.AvgPool,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","../utils/pool_utils":"5iT7r","./Identity":"bdLxl","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5iT7r":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pool",()=>o),s.export(r,"maxPoolPositions",()=>l),s.export(r,"pool3d",()=>i),s.export(r,"maxPool3dPositions",()=>u);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o){let l=s.strideHeight,i=s.strideWidth,u=s.dilationHeight,p=s.dilationWidth,c=s.effectiveFilterHeight,d=s.effectiveFilterWidth,f=s.padInfo.top,m=s.padInfo.left,h="max"===o?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,g=(0,a.buffer)(s.outShape,r),x=g.values,v=s.outShape[1]*s.outShape[2]*s.outShape[3],y=s.outShape[2]*s.outShape[3],b=s.outShape[3];for(let t=0;tg?g=a:"avg"===o&&(v+=a,y++)}if(isNaN(g))break}x[j+r*b+t]="avg"===o?v/y:g}}}return g}function l(e,t,r,n,s=!1,o=!1){let i=(0,a.buffer)(n.outShape,"int32"),u=n.strideHeight,p=n.strideWidth,c=n.dilationHeight,d=n.dilationWidth,f=n.effectiveFilterHeight,m=n.effectiveFilterWidth,h=n.padInfo.top,g=n.padInfo.left,x=(0,a.buffer)(t,r,e);for(let e=0;eb&&(b=u,_=s?o?((e*n.inHeight+r)*n.inWidth+a)*n.inChannels+t:(r*n.inWidth+a)*n.inChannels+t:l*m+i)}}i.set(_,e,r,u,t)}}return i}function i(e,t,r,n,s,o){let l=s.strideDepth,i=s.strideHeight,u=s.strideWidth,p=s.dilationDepth,c=s.dilationHeight,d=s.dilationWidth,f=s.effectiveFilterDepth,m=s.effectiveFilterHeight,h=s.effectiveFilterWidth,g=s.padInfo.front,x=s.padInfo.top,v=s.padInfo.left,y="max"===o?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,b=(0,a.buffer)(s.outShape,r),_=b.values,k=s.outShape[1]*s.outShape[2]*s.outShape[3]*s.outShape[4],j=s.outShape[2]*s.outShape[3]*s.outShape[4],I=s.outShape[3]*s.outShape[4],w=s.outShape[4];for(let t=0;tk?k=s:"avg"===o&&(j+=s,I++),isNaN(k))break}if(isNaN(k))break}if(isNaN(k))break}_[x+t]="avg"===o?j/Math.max(I,1):k}}}}return b}function u(e,t){let r=(0,a.buffer)(t.outShape,"int32"),n=t.strideDepth,s=t.strideHeight,o=t.strideWidth,l=t.dilationDepth,i=t.dilationHeight,u=t.dilationWidth,p=t.effectiveFilterDepth,c=t.effectiveFilterHeight,d=t.effectiveFilterWidth,f=t.padInfo.front,m=t.padInfo.top,h=t.padInfo.left;for(let a=0;a=I&&(I=i,w=r*c*d+s*c+l)}}}r.set(w,a,x,n,s,g)}}}return r}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5EgHg":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool3D",()=>i),s.export(r,"avgPool3DConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{filterSize:i,strides:u,pad:p,dimRoundingMode:c,dataFormat:d}=n;(0,o.assertNotComplex)(s,"avgPool3d");let f=a.backend_util.computePool3DInfo(s.shape,i,u,1,p,c,d),m=r.data.get(s.dataId).values,h=(0,l.pool3d)(m,s.shape,s.dtype,a.util.computeStrides(s.shape),f,"avg");return r.makeTensorInfo(h.shape,"float32",h.values)}let u={kernelName:a.AvgPool3D,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","../utils/pool_utils":"5iT7r","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"61bpN":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool3DGrad",()=>l),s.export(r,"avgPool3DGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:l}=t,{filterSize:i,strides:u,pad:p,dimRoundingMode:c}=n;(0,o.assertNotComplex)([s,l],"avgPool3DGrad");let d=a.backend_util.computePool3DInfo(l.shape,i,u,1,p,c),f=d.strideDepth,m=d.strideHeight,h=d.strideWidth,g=d.filterDepth,x=d.filterHeight,v=d.filterWidth,y=d.dilationDepth,b=d.dilationHeight,_=d.dilationWidth,k=d.effectiveFilterDepth,j=d.effectiveFilterHeight,I=d.effectiveFilterWidth,w=k-1-d.padInfo.front,T=I-1-d.padInfo.left,N=j-1-d.padInfo.top,S=(0,a.buffer)(l.shape,"float32"),C=1/(g*x*v),E=r.bufferSync(s);for(let e=0;e=d.outDepth)&&Math.floor(n)===n)for(let r=0;r=d.outHeight)&&Math.floor(s)===s)for(let r=0;r=d.outWidth||Math.floor(a)!==a||(i+=E.get(e,n,s,a,t))}}}S.set(i*C,e,r,n,s,t)}return r.makeTensorInfo(S.shape,S.dtype,S.values)}let i={kernelName:a.AvgPool3DGrad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3XHe7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPoolGrad",()=>l),s.export(r,"avgPoolGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:l}=t;(0,o.assertNotComplex)([s,l],"avgPoolGrad");let{filterSize:i,strides:u,pad:p}=n,c=a.backend_util.computePool2DInfo(l.shape,i,u,1,p),d=c.strideHeight,f=c.strideWidth,m=c.filterHeight,h=c.filterWidth,g=c.dilationHeight,x=c.dilationWidth,v=c.effectiveFilterHeight,y=c.effectiveFilterWidth,b=y-1-c.padInfo.left,_=v-1-c.padInfo.top,k=(0,a.buffer)(l.shape,"float32"),j=1/(m*h),I=r.data.get(s.dataId).values,w=(0,a.buffer)(s.shape,"float32",I);for(let e=0;e=c.outHeight)&&Math.floor(n)===n)for(let r=0;r=c.outWidth||Math.floor(s)!==s||(o+=w.get(e,n,s,t))}}k.set(o*j,e,r,n,t)}return r.makeTensorInfo(k.shape,k.dtype,k.values)}let i={kernelName:a.AvgPoolGrad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lHPc4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm",()=>l),s.export(r,"batchNormConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,scale:l,offset:i,mean:u,variance:p}=t;a.util.assert(u.shape.length===p.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),a.util.assert(null==i||u.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),a.util.assert(null==l||u.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),(0,o.assertNotComplex)([s,u,p,l,i],"batchNorm");let{varianceEpsilon:c}=n;null==c&&(c=.001);let d=r.data.get(s.dataId).values,f=r.data.get(u.dataId).values,m=r.data.get(p.dataId).values,h=l?r.data.get(l.dataId).values:new Float32Array([1]),g=i?r.data.get(i.dataId).values:new Float32Array([0]),x=new Float32Array(d.length),v=g.length,y=h.length,b=m.length,_=f.length,k=0,j=0,I=0,w=0;for(let e=0;e=v&&(k=0),j>=_&&(j=0),I>=y&&(I=0),w>=b&&(w=0);return r.makeTensorInfo(s.shape,s.dtype,x)}let i={kernelName:a.FusedBatchNorm,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gQ1kN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchToSpaceND",()=>p),s.export(r,"batchToSpaceNDConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape"),i=e("./Slice"),u=e("./Transpose");function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockShape:p,crops:c}=n;(0,o.assertNotComplex)([s],"batchToSpaceND");let d=p.reduce((e,t)=>e*t),f=a.backend_util.getReshaped(s.shape,p,d),m=a.backend_util.getPermuted(f.length,p.length),h=a.backend_util.getReshapedPermuted(s.shape,p,d),g=a.backend_util.getSliceBeginCoords(c,p.length),x=a.backend_util.getSliceSize(h,c,p.length),v=(0,l.reshape)({inputs:{x:s},backend:r,attrs:{shape:f}}),y=(0,u.transpose)({inputs:{x:v},backend:r,attrs:{perm:m}}),b=(0,l.reshape)({inputs:{x:y},backend:r,attrs:{shape:h}}),_=(0,i.slice)({inputs:{x:b},backend:r,attrs:{begin:g,size:x}});return r.disposeIntermediateTensorInfo(v),r.disposeIntermediateTensorInfo(y),r.disposeIntermediateTensorInfo(b),_}let c={kernelName:a.BatchToSpaceND,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./Reshape":"gdyYW","./Slice":"dHddY","./Transpose":"3cgqd","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7JaDV":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bincount",()=>l),s.export(r,"bincountConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Bincount_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,weights:a}=t,{size:l}=n,i=r.data.get(s.dataId).values,u=r.data.get(a.dataId).values,p=(0,o.bincountImpl)(i,u,a.dtype,a.shape,l);return r.makeTensorInfo([l],a.dtype,p)}let i={kernelName:a.Bincount,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Bincount_impl":"ceVxB","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dxlnS:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"broadcastArgs",()=>o),s.export(r,"broadcastArgsConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r}=e,{s0:n,s1:s}=t,o=r.data.get(n.dataId).values,l=r.data.get(s.dataId).values,i=a.backend_util.assertAndGetBroadcastShape(Array.from(o),Array.from(l));return r.makeTensorInfo([i.length],"int32",Int32Array.from(i))}let l={kernelName:a.BroadcastArgs,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7rJsa":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"clipByValue",()=>o),s.export(r,"clipByValueConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.ClipByValue,(e,t)=>e>t.clipValueMax?t.clipValueMax:eo),s.export(r,"complexAbsConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=e=>{let{x:t}=e.inputs,r=e.backend,n=new Float32Array(a.util.sizeFromShape(t.shape)),s=r.data.get(t.dataId),o=s.complexTensorInfos.real,l=s.complexTensorInfos.imag,i=r.data.get(o.dataId).values,u=r.data.get(l.dataId).values;for(let e=0;ed),s.export(r,"concatConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("./Complex"),l=e("./Concat_impl"),i=e("./Identity"),u=e("./Imag"),p=e("./Real"),c=e("./Reshape");function d(e){let{inputs:t,backend:r,attrs:n}=e,{axis:s}=n,f=a.util.parseAxisParam(s,t[0].shape)[0],m=t.map(e=>e.shape);a.backend_util.assertParamsConsistent(m,f);let h=a.backend_util.computeOutShape(t.map(e=>e.shape),f);if(0===a.util.sizeFromShape(h))return r.makeTensorInfo(h,t[0].dtype,[]);let g=t.filter(e=>a.util.sizeFromShape(e.shape)>0);if(1===g.length)return(0,i.identity)({inputs:{x:g[0]},backend:r});if("complex64"===g[0].dtype){let e=g.map(e=>(0,p.real)({inputs:{input:e},backend:r})),t=g.map(e=>(0,u.imag)({inputs:{input:e},backend:r})),n=d({inputs:e,backend:r,attrs:{axis:f}}),s=d({inputs:t,backend:r,attrs:{axis:f}}),a=(0,o.complex)({inputs:{real:n,imag:s},backend:r});return e.forEach(e=>r.disposeIntermediateTensorInfo(e)),t.forEach(e=>r.disposeIntermediateTensorInfo(e)),r.disposeIntermediateTensorInfo(n),r.disposeIntermediateTensorInfo(s),a}let x=g.map(e=>{let t=a.util.sizeFromShape(e.shape.slice(f));return(0,c.reshape)({inputs:{x:e},backend:r,attrs:{shape:[-1,t]}})}),v=x.map(e=>({vals:r.data.get(e.dataId).values,shape:e.shape}));h=a.backend_util.computeOutShape(x.map(e=>e.shape),1);let y=1===x[0].shape[0],b=(0,l.concatImpl)(v,h,t[0].dtype,y),_=a.backend_util.computeOutShape(g.map(e=>e.shape),f),k=r.makeTensorInfo(_,t[0].dtype,b);return x.forEach(e=>r.disposeIntermediateTensorInfo(e)),k}let f={kernelName:a.Concat,backendName:"cpu",kernelFunc:d}},{"@tensorflow/tfjs-core":"biUij","./Complex":"iqjKD","./Concat_impl":"8toKD","./Identity":"bdLxl","./Imag":"e6EoH","./Real":"bLoe4","./Reshape":"gdyYW","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],e6EoH:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r}=e,{input:n}=t,s=r.data.get(n.dataId).complexTensorInfos.imag,a=r.data.get(s.dataId).values;return r.makeTensorInfo(s.shape,s.dtype,a)}s.defineInteropFlag(r),s.export(r,"imag",()=>a),s.export(r,"imagConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Imag,backendName:"cpu",kernelFunc:a}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hzyQd:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2D",()=>l),s.export(r,"conv2DConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:l}=t,{strides:i,pad:u,dataFormat:p,dilations:c,dimRoundingMode:d}=n;(0,o.assertNotComplex)([s,l],"conv2d");let f=a.backend_util.convertConv2DDataFormat(p),m=a.backend_util.computeConv2DInfo(s.shape,l.shape,i,c,u,d,!1,f),h=m.filterHeight,g=m.filterWidth,x=m.dilationHeight,v=m.dilationWidth,y=m.padInfo.left,b=m.padInfo.top,_="channelsLast"===m.dataFormat,k=new(0,a.TensorBuffer)(m.outShape,s.dtype),j=a.util.computeStrides(s.shape),I=a.util.computeStrides(l.shape),w=j[0],T=_?j[1]:j[2],N=_?j[2]:1,S=_?1:j[1],C=k.strides[0],E=_?k.strides[1]:k.strides[2],F=_?k.strides[2]:1,A=_?1:k.strides[1],R=r.data.get(s.dataId).values,P=r.data.get(l.dataId).values,D=k.values;for(let e=0;e=m.inHeight)continue;let a=e*I[0],o=t+r*T;for(let e=0;e=m.inWidth)continue;let s=a+e*I[1],l=o+n*N,i=s;for(let e=0;el),s.export(r,"conv2DBackpropFilterConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,pad:u,dataFormat:p,dimRoundingMode:c,filterShape:d}=n;(0,o.assertNotComplex)([s,l],"conv2dBackpropFilter");let f=a.backend_util.convertConv2DDataFormat(p),m=a.backend_util.computeConv2DInfo(s.shape,d,i,1,u,c,!1,f),{strideHeight:h,strideWidth:g,filterHeight:x,filterWidth:v}=m,y="channelsLast"===m.dataFormat,b=new(0,a.TensorBuffer)(m.filterShape,"float32"),_=m.padInfo.left,k=m.padInfo.top,j=r.data.get(s.dataId).values,I=r.data.get(l.dataId).values,w=new(0,a.TensorBuffer)(s.shape,s.dtype,j),T=new(0,a.TensorBuffer)(l.shape,l.dtype,I);for(let e=0;el),s.export(r,"conv2DBackpropInputConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:l}=t,{inputShape:i,strides:u,pad:p,dataFormat:c,dimRoundingMode:d}=n;(0,o.assertNotComplex)([s,l],"conv2dBackpropInput");let f=a.util.computeStrides(l.shape),m=a.util.computeStrides(s.shape),h=a.backend_util.convertConv2DDataFormat(c),g=a.backend_util.computeConv2DInfo(i,l.shape,u,1,p,d,!1,h),x=new(0,a.TensorBuffer)(g.inShape,"float32"),v=x.values,y=r.data.get(s.dataId).values,b=r.data.get(l.dataId).values,[_,k,j]=f,{batchSize:I,filterHeight:w,filterWidth:T,inChannels:N,inHeight:S,inWidth:C,outChannels:E,outHeight:F,outWidth:A,strideHeight:R,strideWidth:P}=g;h=g.dataFormat;let D=w-1-g.padInfo.top,$=T-1-g.padInfo.left,O="channelsLast"===h,M=x.strides[0],W=O?x.strides[1]:x.strides[2],B=O?x.strides[2]:1,L=O?1:x.strides[1],V=m[0],U=O?m[1]:m[2],G=O?m[2]:1,z=O?1:m[1];for(let e=0;el),s.export(r,"conv3DConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:l}=t,{strides:i,pad:u,dilations:p}=n;(0,o.assertNotComplex)([s,l],"conv3d");let c=a.backend_util.computeConv3DInfo(s.shape,l.shape,i,p,u),{filterDepth:d,filterHeight:f,filterWidth:m,dilationDepth:h,dilationHeight:g,dilationWidth:x,padInfo:v}=c,y=v.front,b=v.left,_=v.top,k=new(0,a.TensorBuffer)(c.outShape,s.dtype),j=r.data.get(s.dataId).values,I=r.data.get(l.dataId).values,w=k.values,T=a.util.computeStrides(s.shape),N=a.util.computeStrides(l.shape);for(let e=0;e=c.inDepth)continue;let a=e*N[0],o=t+r*T[1];for(let e=0;e=c.inHeight)continue;let s=a+e*N[1],l=o+n*T[2];for(let e=0;e=c.inWidth)continue;let a=s+e*N[2],o=l+t*c.inChannels,i=a;for(let e=0;el),s.export(r,"conv3DBackpropFilterV2Config",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,pad:u,filterShape:p}=n;(0,o.assertNotComplex)([s,l],"conv3dBackpropFilterV2");let c=a.util.computeStrides(s.shape),d=a.util.computeStrides(l.shape),f=a.backend_util.computeConv3DInfo(s.shape,p,i,1,u),m=f.strideDepth,h=f.strideHeight,g=f.strideWidth,x=f.filterDepth,v=f.filterHeight,y=f.filterWidth,b=new(0,a.TensorBuffer)(f.filterShape,"float32"),_=b.values,[k,j,I,w]=b.strides,T=r.data.get(l.dataId).values,[N,S,C,E]=d,F=r.data.get(s.dataId).values,[A,R,P,D]=c,$=f.padInfo.front,O=f.padInfo.left,M=f.padInfo.top;for(let e=0;el),s.export(r,"conv3DBackpropInputV2Config",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:l}=t,{pad:i,strides:u,inputShape:p}=n;(0,o.assertNotComplex)([s],"conv3dBackpropInputV2");let c=a.util.computeStrides(s.shape),d=a.util.computeStrides(l.shape),f=a.backend_util.computeConv3DInfo(p,l.shape,u,1,i),m=new(0,a.TensorBuffer)(f.inShape,"float32"),h=m.values,[g,x,v,y]=m.strides,b=r.data.get(s.dataId).values,[_,k,j,I]=c,w=r.data.get(l.dataId).values,[T,N,S,C]=d,{batchSize:E,filterDepth:F,filterHeight:A,filterWidth:R,inChannels:P,inDepth:D,inHeight:$,inWidth:O,outChannels:M,outDepth:W,outHeight:B,outWidth:L,strideDepth:V,strideHeight:U,strideWidth:G}=f,z=F-1-f.padInfo.front,Q=A-1-f.padInfo.top,q=R-1-f.padInfo.left;for(let e=0;eo),s.export(r,"cosConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Cos,e=>Math.cos(e)),l={kernelName:a.Cos,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],b5PVs:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cosh",()=>o),s.export(r,"coshConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Cosh,e=>Math.cosh(e)),l={kernelName:a.Cosh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5J4XN":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cropAndResize",()=>o),s.export(r,"cropAndResizeConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r,attrs:n}=e,{image:s,boxes:o,boxInd:l}=t,{cropSize:i,method:u,extrapolationValue:p}=n,[c,d,f,m]=s.shape,h=o.shape[0],[g,x]=i,v=(0,a.buffer)([h,g,x,m],"float32"),y=r.data.get(o.dataId).values,b=r.data.get(l.dataId).values,_=r.data.get(s.dataId).values,k=a.util.computeStrides(s.shape),j=a.util.computeStrides(v.shape);for(let e=0;e=c)continue;let l=g>1?(s-r)*(d-1)/(g-1):0,i=x>1?(a-n)*(f-1)/(x-1):0;for(let t=0;t1?r*(d-1)+t*l:.5*(r+s)*(d-1);if(c<0||c>d-1){for(let r=0;r1?n*(f-1)+u*i:.5*(n+a)*(f-1);if(c<0||c>f-1){for(let r=0;r1?n*(f-1)+r*i:.5*(n+a)*(f-1);if(s<0||s>f-1){for(let n=0;ni),s.export(r,"cumprodConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i,exclusive:u,reverse:p}=n;(0,o.assertNotComplex)(s,"cumprod");let c=a.backend_util.getAxesPermutation([i],s.shape.length),d=s;null!=c&&(d=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:c}}));let f=a.backend_util.getInnerMostAxes(1,s.shape.length)[0];if(f!==d.shape.length-1)throw Error(`backend.cumprod in CPU expects an inner-most axis=${d.shape.length-1} but got axis=${f}`);let m=(0,a.upcastType)(d.dtype,"int32"),h=a.util.makeOnesTypedArray(a.util.sizeFromShape(d.shape),m),g=r.data.get(d.dataId).values,x=d.shape[d.shape.length-1],v=p?(e,t)=>e+x-t-1:(e,t)=>e+t;for(let e=0;ei),s.export(r,"cumsumConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i,exclusive:u,reverse:p}=n;(0,o.assertNotComplex)(s,"cumsum");let c=a.backend_util.getAxesPermutation([i],s.shape.length),d=s;null!=c&&(d=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:c}}));let f=a.backend_util.getInnerMostAxes(1,s.shape.length)[0];if(f!==d.shape.length-1)throw Error(`backend.cumsum in CPU expects an inner-most axis=${d.shape.length-1} but got axis=${f}`);let m=(0,a.upcastType)(d.dtype,"int32"),h=a.util.makeZerosTypedArray(a.util.sizeFromShape(d.shape),m),g=r.data.get(d.dataId).values,x=d.shape[d.shape.length-1],v=p?(e,t)=>e+x-t-1:(e,t)=>e+t;for(let e=0;el),s.export(r,"denseBincountConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Bincount_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,weights:a}=t,{size:l,binaryOutput:i}=n;if(1===s.shape.length){let e=r.data.get(s.dataId).values,t=r.data.get(a.dataId).values,n=(0,o.bincountImpl)(e,t,a.dtype,a.shape,l);return r.makeTensorInfo([l],a.dtype,n)}if(2===s.shape.length){let e=r.bufferSync(s),t=r.bufferSync(a),n=(0,o.bincountReduceImpl)(e,t,l,i);return r.makeTensorInfo(n.shape,a.dtype,n.values)}throw Error(`Error in denseBincount: input must be at most rank 2, but got rank${s.shape.length}.`)}let i={kernelName:a.DenseBincount,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Bincount_impl":"ceVxB","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9VHVI":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthToSpace",()=>o),s.export(r,"depthToSpaceConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockSize:o,dataFormat:l}=n;a.util.assert("NHWC"===l,()=>`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${l}`);let i=s.shape[0],u=s.shape[1],p=s.shape[2],c=s.shape[3],d=u*o,f=p*o,m=c/(o*o),h=r.data.get(s.dataId).values,g=new Float32Array(i*d*f*m),x=0;for(let e=0;el),s.export(r,"depthwiseConv2dNativeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:l}=t,{strides:i,pad:u,dilations:p,dimRoundingMode:c}=n;(0,o.assertNotComplex)([s,l],"depthwiseConv2DNative");let d=a.util.computeStrides(s.shape),f=a.util.computeStrides(l.shape),m=p;null==m&&(m=[1,1]),a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(i,m),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${m}'`);let h=a.backend_util.computeConv2DInfo(s.shape,l.shape,i,m,u,c,!0),{filterHeight:g,filterWidth:x,dilationHeight:v,dilationWidth:y,padInfo:b}=h,_=b.left,k=b.top,j=h.outChannels/h.inChannels,I=new(0,a.TensorBuffer)(h.outShape,s.dtype),w=r.data.get(s.dataId).values,T=r.data.get(l.dataId).values,N=I.values;for(let e=0;e=h.inHeight)continue;let a=e*f[0],o=t+r*d[1];for(let e=0;e=h.inWidth)continue;let s=a+e*f[1],l=o+n*h.inChannels,i=t,u=s;for(let e=0;el),s.export(r,"depthwiseConv2dNativeBackpropFilterConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,dilations:u,pad:p,dimRoundingMode:c,filterShape:d}=n;(0,o.assertNotComplex)([s,l],"depthwiseConv2dNativeBackpropFilter");let f=a.backend_util.computeConv2DInfo(s.shape,d,i,u,p,c,!0),{strideHeight:m,strideWidth:h,filterHeight:g,filterWidth:x}=f,v=new(0,a.TensorBuffer)(f.filterShape,"float32"),y=f.padInfo.left,b=f.padInfo.top,_=f.outChannels/f.inChannels,k=r.data.get(s.dataId).values,j=new(0,a.TensorBuffer)(s.shape,s.dtype,k),I=r.data.get(l.dataId).values,w=new(0,a.TensorBuffer)(l.shape,l.dtype,I);for(let e=0;el),s.export(r,"depthwiseConv2dNativeBackpropInputConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:l}=t,{strides:i,dilations:u,pad:p,dimRoundingMode:c,inputShape:d}=n;(0,o.assertNotComplex)([s,l],"depthwiseConv2DNativeBackpropInput");let f=a.util.computeStrides(s.shape),m=a.util.computeStrides(l.shape),h=a.backend_util.computeConv2DInfo(d,l.shape,i,u,p,c,!0),g=new(0,a.TensorBuffer)(h.inShape,"float32"),x=g.values,[v,y,b]=g.strides,_=r.data.get(s.dataId).values,[k,j,I]=f,w=r.data.get(l.dataId).values,[T,N,S]=m,{batchSize:C,filterHeight:E,filterWidth:F,inChannels:A,inHeight:R,inWidth:P,outChannels:D,outHeight:$,outWidth:O,strideHeight:M,strideWidth:W}=h,B=E-1-h.padInfo.top,L=F-1-h.padInfo.left,V=D/A;for(let e=0;eo),s.export(r,"diagConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r}=e,{x:n}=t,s=a.util.sizeFromShape(n.shape),o=r.data.get(n.dataId).values,l=(0,a.buffer)([s,s],n.dtype),i=l.values;for(let e=0;eo);var a=e("@tensorflow/tfjs-core");let o={kernelName:a.Dilation2D,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:r})=>{let{x:n,filter:s}=e,{strides:o,pad:l,dilations:i}=r,u=t.data.get(n.dataId).values,p=n.shape.length,c=t.data.get(s.dataId).values,d=s.shape.length,{batchSize:f,inHeight:m,inWidth:h,inChannels:g,outHeight:x,outWidth:v,padInfo:y,strideHeight:b,strideWidth:_,filterHeight:k,filterWidth:j,dilationHeight:I,dilationWidth:w,outShape:T}=a.backend_util.computeDilation2DInfo(n.shape,s.shape,o,l,"NHWC",i),N=a.util.sizeFromShape(T),S=T.length,C=a.util.getArrayFromDType(n.dtype,N);for(let e=0;e=0&&o=0&&mf&&(f=g)}}}C[a.util.locToIndex([e,t,o,i],S,a.util.computeStrides(T))]=f}}}return{dataId:t.write(a.util.toTypedArray(C,n.dtype),T,n.dtype),shape:T,dtype:n.dtype}}}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bcDl4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dilation2DBackpropFilterConfig",()=>o);var a=e("@tensorflow/tfjs-core");let o={kernelName:a.Dilation2DBackpropFilter,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:r})=>{let{x:n,filter:s,dy:o}=e,{strides:l,pad:i,dilations:u}=r,p=a.util.toNestedArray(n.shape,t.data.get(n.dataId).values),c=a.util.toNestedArray(s.shape,t.data.get(s.dataId).values),{batchSize:d,inHeight:f,inWidth:m,inChannels:h,outHeight:g,outWidth:x,padInfo:v,strideHeight:y,strideWidth:b,filterHeight:_,filterWidth:k,dilationHeight:j,dilationWidth:I,outShape:w}=a.backend_util.computeDilation2DInfo(n.shape,s.shape,l,i,"NHWC",u);a.util.assert(o.rank===w.length,()=>`Error in ${a.Dilation2DBackpropFilter}, dy must have the same rank as output ${w.length}, but got ${o.rank}`);let T=a.util.toNestedArray(w,t.data.get(o.dataId).values),N=a.util.makeZerosNestedTypedArray(s.shape,s.dtype);for(let e=0;e=0&&n=0&&uo&&(o=s,l=t,i=r)}}}N[l][i][a]+=T[e][t][n][a]}}}return{dataId:t.write(a.util.toTypedArray(N,n.dtype),s.shape,s.dtype),shape:s.shape,dtype:s.dtype}}}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8501X":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dilation2DBackpropInputConfig",()=>o);var a=e("@tensorflow/tfjs-core");let o={kernelName:a.Dilation2DBackpropInput,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:r})=>{let{x:n,filter:s,dy:o}=e,{strides:l,pad:i,dilations:u}=r,p=a.util.toNestedArray(n.shape,t.data.get(n.dataId).values),c=a.util.toNestedArray(s.shape,t.data.get(s.dataId).values),{batchSize:d,inHeight:f,inWidth:m,inChannels:h,outHeight:g,outWidth:x,padInfo:v,strideHeight:y,strideWidth:b,filterHeight:_,filterWidth:k,dilationHeight:j,dilationWidth:I,outShape:w}=a.backend_util.computeDilation2DInfo(n.shape,s.shape,l,i,"NHWC",u);a.util.assert(o.rank===w.length,()=>`Error in ${a.Dilation2DBackpropInput}, dy must have the same rank as output ${w.length}, but got ${o.rank}`);let T=a.util.toNestedArray(w,t.data.get(o.dataId).values),N=a.util.makeZerosNestedTypedArray(n.shape,n.dtype);for(let e=0;e=0&&n=0&&uo&&(o=s,l=n,i=u)}}}N[e][l][i][a]+=T[e][t][n][a]}}}return{dataId:t.write(a.util.toTypedArray(N,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],f8VnK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r,attrs:n}=e,{image:s}=t,{canvas:a,options:o}=n,{contextOptions:l,imageOptions:i}=o||{},u=(null==i?void 0:i.alpha)||1,p=(null==l?void 0:l.contextType)||"2d";if("2d"!==p)throw Error(`Context type ${l.contextType} is not supported by the CPU backend.`);let c=a.getContext(p,(null==l?void 0:l.contextAttributes)||{});if(null==c)throw Error(`Could not get the context with ${p} type.`);let[d,f]=s.shape.slice(0,2),m=2===s.shape.length?1:s.shape[2],h=r.data.get(s.dataId).values,g="float32"===s.dtype?255:1,x=new Uint8ClampedArray(f*d*4);for(let e=0;e1)throw Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${n}.`)}else if("int32"===s.dtype&&(n<0||n>255))throw Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${n}.`);1===m?(t[0]=n*g,t[1]=n*g,t[2]=n*g):t[r]=n*g}let r=4*e;x[r+0]=Math.round(t[0]),x[r+1]=Math.round(t[1]),x[r+2]=Math.round(t[2]),x[r+3]=Math.round(t[3])}a.width=f,a.height=d;let v=new ImageData(x,f,d);return c.putImageData(v,0,0),s}s.defineInteropFlag(r),s.export(r,"draw",()=>a),s.export(r,"drawConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Draw,backendName:"cpu",kernelFunc:a}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],glqva:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"einsum",()=>p),s.export(r,"einsumConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./Multiply"),l=e("./Reshape"),i=e("./Sum"),u=e("./Transpose");function p(e){let{inputs:t,backend:r,attrs:n}=e,{equation:s}=n,{allDims:p,summedDims:c,idDims:d}=a.backend_util.decodeEinsumEquation(s,t.length);a.backend_util.checkEinsumDimSizes(p.length,d,t);let{path:f,steps:m}=a.backend_util.getEinsumComputePath(c,d),h=m.length,g=null,x=p.length,v=[];for(let e=0;e=0&&(g=(0,i.sum)({inputs:{x:g},backend:r,attrs:{axis:f[e]-(p.length-x),keepDims:!1}}),v.push(g)),x--)}for(let e of v)e!==g&&r.disposeIntermediateTensorInfo(e);return g}let c={kernelName:a.Einsum,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","./Multiply":"dvGJ0","./Reshape":"gdyYW","./Sum":"jeTUE","./Transpose":"3cgqd","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jeTUE:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sum",()=>d),s.export(r,"sumConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/zeros_impl"),i=e("./Cast"),u=e("./Identity"),p=e("./Reshape"),c=e("./Transpose");function d(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:d}=r,{axis:f,keepDims:m}=s;(0,o.assertNotComplex)(d,"sum");let h=(t="bool"===d.dtype?(0,i.cast)({inputs:{x:d},backend:n,attrs:{dtype:"int32"}}):(0,u.identity)({inputs:{x:d},backend:n})).shape.length,g=a.util.parseAxisParam(f,t.shape),x=a.backend_util.getAxesPermutation(g,h),v=g,y=t;null!=x&&(y=(0,c.transpose)({inputs:{x:t},backend:n,attrs:{perm:x}}),v=a.backend_util.getInnerMostAxes(v.length,h)),a.backend_util.assertAxesAreInnerMostDims("sum",v,y.shape.length);let[b,_]=a.backend_util.computeOutAndReduceShapes(y.shape,v),k=a.backend_util.upcastType(y.dtype,"int32"),j=(0,l.zeros)(n,b,k),I=a.util.sizeFromShape(_),w=n.data.get(j.dataId).values,T=n.data.get(y.dataId).values;for(let e=0;el),s.export(r,"eluGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r}=e,{dy:n,y:s}=t;(0,o.assertNotComplex)([n,s],"eluGrad");let l=new Float32Array(a.util.sizeFromShape(s.shape)),i=r.data.get(s.dataId).values,u=r.data.get(n.dataId).values;for(let e=0;e=0?l[e]=u[e]:l[e]=u[e]*(t+1)}return r.makeTensorInfo(s.shape,"float32",l)}let i={kernelName:a.EluGrad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gqzzC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"erf",()=>f),s.export(r,"erfConfig",()=>m);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_utils");let l=a.backend_util.ERF_P,i=a.backend_util.ERF_A1,u=a.backend_util.ERF_A2,p=a.backend_util.ERF_A3,c=a.backend_util.ERF_A4,d=a.backend_util.ERF_A5,f=(0,o.unaryKernelFunc)(a.Erf,e=>{let t=Math.sign(e),r=Math.abs(e),n=1/(1+l*r);return t*(1-((((d*n+c)*n+p)*n+u)*n+i)*n*Math.exp(-r*r))}),m={kernelName:a.Erf,backendName:"cpu",kernelFunc:f}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gtxdI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expandDims",()=>l),s.export(r,"expandDimsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Reshape");function l(e){let{inputs:t,backend:r,attrs:n}=e,{input:s}=t,{dim:l}=n,i=s.shape.length,u=s.shape.slice(),p=l;return l<0&&(a.util.assert(-(i+1)<=l,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),p=i+l+1),u.splice(p,0,1),(0,o.reshape)({inputs:{x:s},backend:r,attrs:{shape:u}})}let i={kernelName:a.ExpandDims,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Reshape":"gdyYW","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bwwwi:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fft",()=>i),s.export(r,"fftConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/fft_utils"),l=e("./Reshape");function i(e){let{inputs:t,backend:r}=e,{input:n}=t,s=a.util.sizeFromShape(n.shape),i=n.shape[n.shape.length-1],u=(0,l.reshape)({inputs:{x:n},backend:r,attrs:{shape:[s/i,i]}}),p=(0,o.fftBatch)(u,!1,r),c=(0,l.reshape)({inputs:{x:p},backend:r,attrs:{shape:n.shape}});return r.disposeIntermediateTensorInfo(u),r.disposeIntermediateTensorInfo(p),c}let u={kernelName:a.FFT,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../utils/fft_utils":"hsGl3","./Reshape":"gdyYW","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hsGl3:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fftBatch",()=>g),s.export(r,"fftImpl",()=>x);var a=e("@tensorflow/tfjs-core"),o=e("../kernels/Add"),l=e("../kernels/Complex"),i=e("../kernels/Concat"),u=e("../kernels/Identity"),p=e("../kernels/Imag"),c=e("../kernels/Multiply"),d=e("../kernels/Real"),f=e("../kernels/RealDiv"),m=e("../kernels/Slice"),h=e("../kernels/Sub");function g(e,t,r){let n=e.shape,s=n[0],o=n[1],i=r.data.get(e.dataId),u=i.complexTensorInfos.real,p=i.complexTensorInfos.imag,c=[s,o],d=a.util.sizeFromShape(c),f=a.util.getTypedArrayFromDType("float32",d),h=a.util.getTypedArrayFromDType("float32",d);for(let e=0;ei),s.export(r,"div",()=>u),s.export(r,"realDivConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e/t),u=(0,l.binaryKernelFunc)(a.RealDiv,i),p={kernelName:a.RealDiv,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8G2vQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fill",()=>o),s.export(r,"fillConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){var t,r,n;let{backend:s,attrs:o}=e,{shape:l,value:i,dtype:u}=o,p=u||a.util.inferDtype(i),c=a.util.getArrayFromDType(p,a.util.sizeFromShape(l));return t=c,r=i,n=0,t.fill(r),s.makeTensorInfo(l,p,c)}let l={kernelName:a.Fill,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"49ycw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"flipLeftRightConfig",()=>o);var a=e("@tensorflow/tfjs-core");let o={kernelName:a.FlipLeftRight,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{image:n}=e,s=a.util.getTypedArrayFromDType(n.dtype,a.util.sizeFromShape(n.shape)),[o,l,i,u]=n.shape,p=r.data.get(n.dataId).values;for(let e=0;e=0&&op),s.export(r,"fusedConv2DConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../utils/fused_utils"),l=e("./Add"),i=e("./Conv2D"),u=e("./Reshape");function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:a,bias:p,preluActivationWeights:c}=t,{strides:d,pad:f,dataFormat:m,dilations:h,dimRoundingMode:g,activation:x,leakyreluAlpha:v}=n,y=(0,i.conv2D)({inputs:{x:s,filter:a},backend:r,attrs:{strides:d,pad:f,dataFormat:m,dilations:h,dimRoundingMode:g}});if(p){let e=y;if("NCHW"===m&&1===p.shape.length&&1!==p.shape[0]){let e=(0,u.reshape)({inputs:{x:p},backend:r,attrs:{shape:[p.shape[0],1,1]}});y=(0,l.add)({inputs:{a:y,b:e},backend:r}),r.disposeIntermediateTensorInfo(e)}else y=(0,l.add)({inputs:{a:y,b:p},backend:r});r.disposeIntermediateTensorInfo(e)}if(x){let e=y;if("NCHW"===m&&"prelu"===x&&1===c.shape.length&&1!==c.shape[0]){let e=(0,u.reshape)({inputs:{x:c},backend:r,attrs:{shape:[c.shape[0],1,1]}});y=(0,o.applyActivation)(r,y,x,e,v),r.disposeIntermediateTensorInfo(e)}else y=(0,o.applyActivation)(r,y,x,c,v);r.disposeIntermediateTensorInfo(e)}return y}let c={kernelName:a.FusedConv2D,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../utils/fused_utils":"3crDv","./Add":"1JfHj","./Conv2D":"hzyQd","./Reshape":"gdyYW","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1KNlo":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fusedDepthwiseConv2D",()=>u),s.export(r,"fusedDepthwiseConv2DConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/fused_utils"),l=e("./Add"),i=e("./DepthwiseConv2dNative");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:a,bias:u,preluActivationWeights:p}=t,{strides:c,pad:d,dataFormat:f,dilations:m,dimRoundingMode:h,activation:g,leakyreluAlpha:x}=n,v=(0,i.depthwiseConv2dNative)({inputs:{x:s,filter:a},backend:r,attrs:{strides:c,pad:d,dataFormat:f,dilations:m,dimRoundingMode:h}});if(u){let e=v;v=(0,l.add)({inputs:{a:v,b:u},backend:r}),r.disposeIntermediateTensorInfo(e)}if(g){let e=v;v=(0,o.applyActivation)(r,v,g,p,x),r.disposeIntermediateTensorInfo(e)}return v}let p={kernelName:a.FusedDepthwiseConv2D,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/fused_utils":"3crDv","./Add":"1JfHj","./DepthwiseConv2dNative":"hmHEE","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dOdTx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherNd",()=>l),s.export(r,"gatherNdConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./GatherNd_Impl");function l(e){let{inputs:t,backend:r}=e,{params:n,indices:s}=t,l=a.util.sizeFromShape(n.shape),i=s.shape,u=i[i.length-1],[p,c,d,f]=a.backend_util.prepareAndValidate(n,s);if(0===c)return r.makeTensorInfo(p,n.dtype,[]);let m=r.data.get(s.dataId).values,h=r.bufferSync(n),g=(0,o.gatherNdImpl)(m,h,n.dtype,c,u,d,f,n.shape,l);return r.makeTensorInfo(p,n.dtype,g.values)}let i={kernelName:a.GatherNd,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./GatherNd_Impl":"1Ft9I","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dSKbR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherV2",()=>u),s.export(r,"gatherV2Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./GatherV2_impl"),i=e("./Reshape");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,indices:u}=t,{axis:p,batchDims:c}=n;(0,o.assertNotComplex)([s,u],"gatherV2");let d=a.util.parseAxisParam(p,s.shape)[0],f=r.data.get(u.dataId).values,m=s.shape[d];for(let e=0;e=0,()=>`GatherV2: the index value ${t} is not in [0, ${m-1}]`)}let h=c;null==c&&(h=0);let g=a.util.sizeFromShape(u.shape),x=a.backend_util.segment_util.collectGatherOpShapeInfo(s,u,d,h),v=(0,i.reshape)({inputs:{x:s},backend:r,attrs:{shape:[x.batchSize,x.outerSize,x.dimSize,x.sliceSize]}}),y=(0,i.reshape)({inputs:{x:u},backend:r,attrs:{shape:[x.batchSize,g/x.batchSize]}}),b=[x.batchSize,x.outerSize,g/x.batchSize,x.sliceSize],_=r.bufferSync(y),k=r.bufferSync(v),j=(0,l.gatherV2Impl)(k,_,b);return r.disposeIntermediateTensorInfo(v),r.disposeIntermediateTensorInfo(y),r.makeTensorInfo(x.outputShape,j.dtype,j.values)}let p={kernelName:a.GatherV2,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./GatherV2_impl":"7ukZH","./Reshape":"gdyYW","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ceizA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ifft",()=>i),s.export(r,"ifftConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/fft_utils"),l=e("./Reshape");function i(e){let{inputs:t,backend:r}=e,{input:n}=t,s=a.util.sizeFromShape(n.shape),i=n.shape[n.shape.length-1],u=(0,l.reshape)({inputs:{x:n},backend:r,attrs:{shape:[s/i,i]}}),p=(0,o.fftBatch)(u,!0,r),c=(0,l.reshape)({inputs:{x:p},backend:r,attrs:{shape:n.shape}});return r.disposeIntermediateTensorInfo(u),r.disposeIntermediateTensorInfo(p),c}let u={kernelName:a.IFFT,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../utils/fft_utils":"hsGl3","./Reshape":"gdyYW","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],a08wP:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isFinite",()=>o),s.export(r,"isFiniteConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.IsFinite,e=>+!!Number.isFinite(e),"bool"),l={kernelName:a.IsFinite,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"94AkQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isInf",()=>o),s.export(r,"isInfConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.IsInf,e=>+(Math.abs(e)===1/0),"bool"),l={kernelName:a.IsInf,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dpzCA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isNaN",()=>o),s.export(r,"isNaNConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.IsNan,e=>+!!Number.isNaN(e),"bool"),l={kernelName:a.IsNan,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4VJty":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"linSpace",()=>l),s.export(r,"linSpaceConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./LinSpace_impl");function l(e){let{backend:t,attrs:r}=e,{start:n,stop:s,num:a}=r,l=(0,o.linSpaceImpl)(n,s,a);return t.makeTensorInfo([l.length],"float32",l)}let i={kernelName:a.LinSpace,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./LinSpace_impl":"ctjgv","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],a7xiG:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"log1p",()=>o),s.export(r,"log1pConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Log1p,e=>Math.log1p(e)),l={kernelName:a.Log1p,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1NhiJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalAndImpl",()=>i),s.export(r,"logicalAnd",()=>u),s.export(r,"logicalAndConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e&&t),u=(0,l.binaryKernelFunc)(a.LogicalAnd,i,null,"bool"),p={kernelName:a.LogicalAnd,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],NHJ8x:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalNot",()=>o),s.export(r,"logicalNotConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.LogicalNot,e=>+!e,"bool"),l={kernelName:a.LogicalNot,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eTk4U:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalOrImpl",()=>i),s.export(r,"logicalOr",()=>u),s.export(r,"logicalOrConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e||t),u=(0,l.binaryKernelFunc)(a.LogicalOr,i,null,"bool"),p={kernelName:a.LogicalOr,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5HgVT":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lRN",()=>l),s.export(r,"LRNConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{depthRadius:l,bias:i,alpha:u,beta:p}=n;(0,o.assertNotComplex)(s,"LRN");let c=s.shape[3],d=c-1,f=r.data.get(s.dataId).values,m=a.util.sizeFromShape(s.shape),h=new Float32Array(m);for(let e=0;el),s.export(r,"LRNGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,y:l,dy:i}=t,{depthRadius:u,bias:p,alpha:c,beta:d}=n;(0,o.assertNotComplex)(i,"LRNGrad");let f=a.util.sizeFromShape(i.shape),m=i.shape[3],h=r.data.get(i.dataId).values,g=r.data.get(s.dataId).values,x=r.data.get(l.dataId).values,v=new Float32Array(f);for(let e=0;eu),s.export(r,"maxConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Max_impl"),i=e("./Transpose_impl");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{reductionIndices:u,keepDims:p}=n,c=s.shape,d=c.length,f=a.util.parseAxisParam(u,c),m=f,h=a.backend_util.getAxesPermutation(m,d),g=r.data.get(s.dataId).values;if(null!=h){let e=Array(d);for(let t=0;tu),s.export(r,"maxPoolConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils"),i=e("./Identity");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u}=r;(0,o.assertNotComplex)(u,"maxPool");let{filterSize:p,strides:c,pad:d,dimRoundingMode:f}=s;a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(c,1),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${c} and dilations '1'`);let m=a.backend_util.computePool2DInfo(u.shape,p,c,1,d,f);if(1===m.filterWidth&&1===m.filterHeight&&a.util.arraysEqual(m.inShape,m.outShape))t=(0,i.identity)({inputs:{x:u},backend:n});else{let e=n.data.get(u.dataId).values,r=a.util.computeStrides(u.shape),s=(0,l.pool)(e,u.shape,u.dtype,r,m,"max");t=n.makeTensorInfo(m.outShape,u.dtype,s.values)}return t}let p={kernelName:a.MaxPool,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","../utils/pool_utils":"5iT7r","./Identity":"bdLxl","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fLuEK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool3D",()=>i),s.export(r,"maxPool3DConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{filterSize:i,strides:u,pad:p,dimRoundingMode:c,dataFormat:d}=n;(0,o.assertNotComplex)(s,"maxPool3d");let f=a.backend_util.computePool3DInfo(s.shape,i,u,1,p,c,d),m=r.data.get(s.dataId).values,h=(0,l.pool3d)(m,s.shape,s.dtype,a.util.computeStrides(s.shape),f,"max");return r.makeTensorInfo(h.shape,"float32",h.values)}let u={kernelName:a.MaxPool3D,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","../utils/pool_utils":"5iT7r","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"78uii":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool3DGrad",()=>i),s.export(r,"maxPool3DGradConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils");function i(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:i}=t,{filterSize:u,strides:p,pad:c,dimRoundingMode:d}=n;(0,o.assertNotComplex)([s,i],"maxPool3DGrad");let f=a.backend_util.computePool3DInfo(i.shape,u,p,1,c,d),m=r.bufferSync(i),h=(0,l.maxPool3dPositions)(m,f),g=f.strideDepth,x=f.strideHeight,v=f.strideWidth,y=f.dilationDepth,b=f.dilationHeight,_=f.dilationWidth,k=f.effectiveFilterDepth,j=f.effectiveFilterHeight,I=f.effectiveFilterWidth,w=k-1-f.padInfo.front,T=I-1-f.padInfo.left,N=j-1-f.padInfo.top,S=(0,a.buffer)(i.shape,"float32"),C=r.bufferSync(s);for(let e=0;e=f.outDepth)&&Math.floor(n)===n)for(let s=0;s=f.outHeight)&&Math.floor(a)===a)for(let o=0;o=f.outWidth||Math.floor(u)!==u)continue;let p=+(k*j*I-1-h.get(e,n,a,u,t)===r*j*I+s*I+o);0!==p&&(i+=C.get(e,n,a,u,t)*p)}}}S.set(i,e,r,n,s,t)}return r.makeTensorInfo(S.shape,S.dtype,S.values)}let u={kernelName:a.MaxPool3DGrad,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","../utils/pool_utils":"5iT7r","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],b5hfv:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolGrad",()=>i),s.export(r,"maxPoolGradConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils");function i(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:i,output:u}=t;(0,o.assertNotComplex)([i,u],"maxPoolGrad");let{filterSize:p,strides:c,pad:d,dimRoundingMode:f}=n,m=a.backend_util.computePool2DInfo(i.shape,p,c,1,d,f),h=r.data.get(i.dataId).values,g=(0,a.buffer)(m.outShape,i.dtype,(0,l.maxPoolPositions)(h,i.shape,i.dtype,m).values),x=m.strideHeight,v=m.strideWidth,y=m.dilationHeight,b=m.dilationWidth,_=m.effectiveFilterHeight,k=m.effectiveFilterWidth,j=k-1-m.padInfo.left,I=_-1-m.padInfo.top,w=(0,a.buffer)(i.shape,"float32"),T=r.data.get(s.dataId).values,N=(0,a.buffer)(s.shape,"float32",T);for(let e=0;e=m.outHeight)&&Math.floor(n)===n)for(let s=0;s=m.outWidth||Math.floor(l)!==l)continue;let i=+(_*k-1-g.get(e,n,l,t)===r*k+s);0!==i&&(o+=N.get(e,n,l,t)*i)}}w.set(o,e,r,n,t)}return r.makeTensorInfo(w.shape,w.dtype,w.values)}let u={kernelName:a.MaxPoolGrad,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","../utils/pool_utils":"5iT7r","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8bYQt":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolWithArgmaxConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./MaxPoolWithArgmax_impl");let i={kernelName:a.MaxPoolWithArgmax,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{x:n}=e,{filterSize:s,strides:i,pad:u,includeBatchInIndex:p}=t;(0,o.assertNotComplex)(n,"MaxPoolWithArgmax");let c=r.data.get(n.dataId).values,d=a.backend_util.computePool2DInfo(n.shape,s,i,[1,1],u),[f,m]=(0,l.maxPoolWithArgmaxImpl)(c,n.shape,n.dtype,p,d),h=r.write(f,d.outShape,n.dtype),g=r.write(m,d.outShape,n.dtype);return[{dataId:h,shape:d.outShape,dtype:n.dtype},{dataId:g,shape:d.outShape,dtype:"int32"}]}}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./MaxPoolWithArgmax_impl":"5g32u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5g32u":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolWithArgmaxImpl",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("../utils/pool_utils");function l(e,t,r,n,s){let l=a.util.computeStrides(t),i=(0,o.pool)(e,t,r,l,s,"max"),u=(0,o.maxPoolPositions)(e,t,r,s,!0,n);return[i.values,u.values]}},{"@tensorflow/tfjs-core":"biUij","../utils/pool_utils":"5iT7r","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"53jlm":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mean",()=>u),s.export(r,"meanConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("./Cast"),l=e("./RealDiv"),i=e("./Sum");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:u,keepDims:p}=n,c=a.util.parseAxisParam(u,s.shape),d=a.backend_util.computeOutAndReduceShapes(s.shape,c)[1],f=a.util.sizeFromShape(d),m=[],h=r.makeTensorInfo([],"float32",new Float32Array([f]));m.push(h);let g=(0,o.cast)({inputs:{x:s},backend:r,attrs:{dtype:"float32"}});m.push(g);let x=(0,l.div)({inputs:{a:g,b:h},backend:r});m.push(x);let v=(0,i.sum)({inputs:{x:x},backend:r,attrs:{axis:u,keepDims:p}});return m.forEach(e=>r.disposeIntermediateTensorInfo(e)),v}let p={kernelName:a.Mean,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","./Cast":"cMwEt","./RealDiv":"ZONlP","./Sum":"jeTUE","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aBv4l:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"min",()=>u),s.export(r,"minConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape"),i=e("./Transpose");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:u,keepDims:p}=n;(0,o.assertNotComplex)(s,"min");let c=a.util.parseAxisParam(u,s.shape),d=c,f=a.backend_util.getAxesPermutation(d,s.shape.length),m=s;null!=f&&(m=(0,i.transpose)({inputs:{x:s},backend:r,attrs:{perm:f}}),d=a.backend_util.getInnerMostAxes(d.length,s.shape.length)),a.backend_util.assertAxesAreInnerMostDims("min",d,m.shape.length);let[h,g]=a.backend_util.computeOutAndReduceShapes(m.shape,d),x=a.util.sizeFromShape(g),v=a.util.makeZerosTypedArray(a.util.sizeFromShape(h),m.dtype),y=r.data.get(m.dataId).values;for(let e=0;el),s.export(r,"mirrorPadConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{paddings:l,mode:i}=n;(0,o.assertNotComplex)(s,"mirrorPad");let u=l.map((e,t)=>e[0]+s.shape[t]+e[1]),p=l.map(e=>e[0]),c=l.map((e,t)=>e[0]+s.shape[t]),d=+("reflect"!==i),f=r.data.get(s.dataId).values,m=s.shape.length,h=a.util.computeStrides(s.shape),g=a.util.sizeFromShape(u),x=u.length,v=a.util.computeStrides(u),y=a.util.getTypedArrayFromDType(s.dtype,g);for(let e=0;e=c[e]&&(t[e]=(c[e]-1)*2-t[e]+d);t=t.map((e,t)=>e-p[t]);let r=a.util.locToIndex(t,m,h);y[e]=f[r]}return{dataId:r.write(y,u,s.dtype),shape:u,dtype:s.dtype}}let i={kernelName:a.MirrorPad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1szcc":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"modImpl",()=>i),s.export(r,"mod",()=>u),s.export(r,"modConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>{let r=e%t;return e<0&&t<0||e>=0&&t>=0?r:(r+t)%t}),u=(0,l.binaryKernelFunc)(a.Mod,i),p={kernelName:a.Mod,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bYw6t:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"multinomial",()=>u),s.export(r,"multinomialConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("seedrandom"),l=e("../cpu_util"),i=e("./Softmax");function u(e){let{inputs:t,backend:r,attrs:n}=e,{logits:s}=t,{numSamples:u,seed:p,normalized:c}=n;(0,l.assertNotComplex)(s,"multinomial");let d=c?s:(0,i.softmax)({inputs:{logits:s},backend:r,attrs:{dim:-1}}),f=d.shape[0],m=d.shape[1],h=r.data.get(d.dataId).values,g=[f,u],x=a.util.makeZerosTypedArray(a.util.sizeFromShape(g),"int32");for(let e=0;ed),s.export(r,"softmaxConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("./Exp"),l=e("./Max"),i=e("./RealDiv"),u=e("./Reshape"),p=e("./Sub"),c=e("./Sum");function d(e){let{inputs:t,backend:r,attrs:n}=e,{logits:s}=t,{dim:d}=n,f=s.shape.length,m=d;if(-1===m&&(m=f-1),m!==f-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${f} and dim was ${m}`);let h=a.util.parseAxisParam([m],s.shape),g=(0,l.max)({inputs:{x:s},backend:r,attrs:{reductionIndices:h,keepDims:!1}}),x=a.backend_util.expandShapeToKeepDim(g.shape,h),v=(0,u.reshape)({inputs:{x:g},backend:r,attrs:{shape:x}}),y=(0,p.sub)({inputs:{a:s,b:v},backend:r}),b=(0,o.exp)({inputs:{x:y},backend:r}),_=(0,c.sum)({inputs:{x:b},backend:r,attrs:{axis:h,keepDims:!1}}),k=(0,u.reshape)({inputs:{x:_},backend:r,attrs:{shape:x}}),j=(0,i.div)({inputs:{a:b,b:k},backend:r});return r.disposeIntermediateTensorInfo(g),r.disposeIntermediateTensorInfo(v),r.disposeIntermediateTensorInfo(y),r.disposeIntermediateTensorInfo(b),r.disposeIntermediateTensorInfo(_),r.disposeIntermediateTensorInfo(k),j}let f={kernelName:a.Softmax,backendName:"cpu",kernelFunc:d}},{"@tensorflow/tfjs-core":"biUij","./Exp":"d2WVN","./Max":"2jSAF","./RealDiv":"ZONlP","./Reshape":"gdyYW","./Sub":"5EzoO","./Sum":"jeTUE","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hn7XJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV3",()=>i),s.export(r,"nonMaxSuppressionV3Config",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");let l=a.kernel_impls.nonMaxSuppressionV3Impl;function i(e){let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:a}=t,{maxOutputSize:i,iouThreshold:u,scoreThreshold:p}=n;(0,o.assertNotComplex)(s,"NonMaxSuppression");let{selectedIndices:c}=l(r.data.get(s.dataId).values,r.data.get(a.dataId).values,i,u,p);return r.makeTensorInfo([c.length],"int32",new Int32Array(c))}let u={kernelName:a.NonMaxSuppressionV3,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fJHJc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV4",()=>i),s.export(r,"nonMaxSuppressionV4Config",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");let l=a.kernel_impls.nonMaxSuppressionV4Impl;function i(e){let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:a}=t,{maxOutputSize:i,iouThreshold:u,scoreThreshold:p,padToMaxOutputSize:c}=n;(0,o.assertNotComplex)(s,"NonMaxSuppressionPadded");let{selectedIndices:d,validOutputs:f}=l(r.data.get(s.dataId).values,r.data.get(a.dataId).values,i,u,p,c);return[r.makeTensorInfo([d.length],"int32",new Int32Array(d)),r.makeTensorInfo([],"int32",new Int32Array([f]))]}let u={kernelName:a.NonMaxSuppressionV4,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9OSbH":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV5",()=>i),s.export(r,"nonMaxSuppressionV5Config",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");let l=a.kernel_impls.nonMaxSuppressionV5Impl;function i(e){let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:a}=t,{maxOutputSize:i,iouThreshold:u,scoreThreshold:p,softNmsSigma:c}=n;(0,o.assertNotComplex)(s,"NonMaxSuppressionWithScore");let d=r.data.get(s.dataId).values,{selectedIndices:f,selectedScores:m}=l(d,r.data.get(a.dataId).values,i,u,p,c);return[r.makeTensorInfo([f.length],"int32",new Int32Array(f)),r.makeTensorInfo([m.length],"float32",new Float32Array(m))]}let u={kernelName:a.NonMaxSuppressionV5,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iaBfp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"oneHot",()=>l),s.export(r,"oneHotConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{indices:s}=t,{dtype:l,depth:i,onValue:u,offValue:p}=n;(0,o.assertNotComplex)(s,"oneHot");let c=a.util.sizeFromShape(s.shape),d=new Float32Array(c*i);d.fill(p);let f=r.data.get(s.dataId).values;for(let e=0;e=0&&f[e]c),s.export(r,"onesLikeConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("./Complex"),l=e("./Fill"),i=e("./Imag"),u=e("./Real"),p=e("./ZerosLike");function c(e){let{inputs:t,backend:r}=e,{x:n}=t;if("string"===n.dtype)throw Error("onesLike is not supported for string tensors");if("complex64"!==n.dtype)return(0,l.fill)({backend:r,attrs:{shape:n.shape,value:1,dtype:n.dtype}});{let e=(0,u.real)({inputs:{input:n},backend:r}),t=c({inputs:{x:e},backend:r}),s=(0,i.imag)({inputs:{input:n},backend:r}),a=(0,p.zerosLike)({inputs:{x:s},backend:r}),l=(0,o.complex)({inputs:{real:t,imag:a},backend:r});return r.disposeIntermediateTensorInfo(e),r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(a),l}}let d={kernelName:a.OnesLike,backendName:"cpu",kernelFunc:c}},{"@tensorflow/tfjs-core":"biUij","./Complex":"iqjKD","./Fill":"8G2vQ","./Imag":"e6EoH","./Real":"bLoe4","./ZerosLike":"ioFSD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ioFSD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"zerosLike",()=>p),s.export(r,"zerosLikeConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./Complex"),l=e("./Fill"),i=e("./Imag"),u=e("./Real");function p(e){let{inputs:t,backend:r}=e,{x:n}=t;if("string"===n.dtype)throw Error("zerosLike is not supported for string tensors");if("complex64"!==n.dtype)return(0,l.fill)({backend:r,attrs:{shape:n.shape,value:0,dtype:n.dtype}});{let e=(0,u.real)({inputs:{input:n},backend:r}),t=p({inputs:{x:e},backend:r}),s=(0,i.imag)({inputs:{input:n},backend:r}),a=p({inputs:{x:s},backend:r}),l=(0,o.complex)({inputs:{real:t,imag:a},backend:r});return r.disposeIntermediateTensorInfo(e),r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(a),l}}let c={kernelName:a.ZerosLike,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","./Complex":"iqjKD","./Fill":"8G2vQ","./Imag":"e6EoH","./Real":"bLoe4","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],au22V:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pack",()=>i),s.export(r,"packConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./Concat"),l=e("./ExpandDims");function i(e){let{inputs:t,backend:r,attrs:n}=e,{axis:s}=n;if(1===t.length)return(0,l.expandDims)({inputs:{input:t[0]},backend:r,attrs:{dim:s}});let i=t[0].shape,u=t[0].dtype;t.forEach(e=>{a.util.assertShapesMatch(i,e.shape,"All tensors passed to stack must have matching shapes"),a.util.assert(u===e.dtype,()=>"All tensors passed to stack must have matching dtypes")});let p=[],c=t.map(e=>{let t=(0,l.expandDims)({inputs:{input:e},backend:r,attrs:{dim:s}});return p.push(t),t}),d=(0,o.concat)({inputs:c,backend:r,attrs:{axis:s}});return p.forEach(e=>r.disposeIntermediateTensorInfo(e)),d}let u={kernelName:a.Pack,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","./Concat":"hyLXC","./ExpandDims":"gtxdI","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eqxgc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"padV2",()=>l),s.export(r,"padV2Config",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{paddings:l,constantValue:i}=n;(0,o.assertNotComplex)(s,"pad");let u=l.map((e,t)=>e[0]+s.shape[t]+e[1]),p=l.map(e=>e[0]),c=r.data.get(s.dataId).values,d=a.util.sizeFromShape(s.shape),f=s.shape.length,m=a.util.computeStrides(s.shape),h=a.util.sizeFromShape(u),g=u.length,x=a.util.computeStrides(u),v=a.util.getTypedArrayFromDType(s.dtype,h);0!==i&&v.fill(i);for(let e=0;ee+p[t]);v[a.util.locToIndex(t,g,x)]=c[e]}return{dataId:r.write(v,u,s.dtype),shape:u,dtype:s.dtype}}let i={kernelName:a.PadV2,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gJsYY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"powImpl",()=>i),s.export(r,"pow",()=>u),s.export(r,"powConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>Math.pow(e,t)),u=(0,l.binaryKernelFunc)(a.Pow,i),p={kernelName:a.Pow,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5kWLJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedGather",()=>l),s.export(r,"raggedGatherConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./RaggedGather_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{paramsNestedSplits:s,paramsDenseValues:a,indices:l}=t,{outputRaggedRank:i}=n,u=s.map(e=>r.data.get(e.dataId).values),p=s.map(e=>e.shape),c=r.data.get(a.dataId).values,d=r.data.get(l.dataId).values,[f,m,h]=(0,o.raggedGatherImpl)(u,p,c,a.shape,a.dtype,d,l.shape,i),g=f.map(e=>r.makeTensorInfo([e.length],"int32",e)),x=r.makeTensorInfo(h,a.dtype,m);return g.concat([x])}let i={kernelName:a.RaggedGather,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./RaggedGather_impl":"kXBNx","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bkwKj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedRange",()=>l),s.export(r,"raggedRangeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./RaggedRange_impl");function l(e){let{inputs:t,backend:r}=e,{starts:n,limits:s,deltas:a}=t,l=r.data.get(n.dataId).values,i=r.data.get(s.dataId).values,u=r.data.get(a.dataId).values,[p,c]=(0,o.raggedRangeImpl)(l,n.shape,n.dtype,i,s.shape,u,a.shape);return[r.makeTensorInfo([p.length],"int32",p),r.makeTensorInfo([c.length],n.dtype,c)]}let i={kernelName:a.RaggedRange,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./RaggedRange_impl":"56JXs","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hkBd0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedTensorToTensor",()=>l),s.export(r,"raggedTensorToTensorConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./RaggedTensorToTensor_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{shape:s,values:a,defaultValue:l,rowPartitionTensors:i}=t,{rowPartitionTypes:u}=n,p=r.data.get(s.dataId).values,c=r.data.get(a.dataId).values,d=r.data.get(l.dataId).values,f=i.map(e=>r.data.get(e.dataId).values),m=i.map(e=>e.shape),[h,g]=(0,o.raggedTensorToTensorImpl)(p,s.shape,c,a.shape,a.dtype,d,l.shape,f,m,u);return r.makeTensorInfo(h,a.dtype,g)}let i={kernelName:a.RaggedTensorToTensor,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./RaggedTensorToTensor_impl":"bqJDy","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dIyXK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"range",()=>l),s.export(r,"rangeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Range_impl");function l(e){let{backend:t,attrs:r}=e,{start:n,stop:s,dtype:a,step:l}=r,i=(0,o.rangeImpl)(n,s,l,a);return t.makeTensorInfo([i.length],a,i)}let i={kernelName:a.Range,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Range_impl":"egj95","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],d8MTu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reciprocal",()=>o),s.export(r,"reciprocalConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Reciprocal,e=>1/e),l={kernelName:a.Reciprocal,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2yL6g":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeBilinear",()=>l),s.export(r,"resizeBilinearConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s}=t,{alignCorners:l,halfPixelCenters:i,size:u}=n;(0,o.assertNotComplex)(s,"resizeBilinear");let p=a.util.computeStrides(s.shape),[c,d]=u,[f,m,h,g]=s.shape,x=r.data.get(s.dataId).values,v=new Float32Array(a.util.sizeFromShape([f,c,d,g])),y=[l&&c>1?m-1:m,l&&d>1?h-1:h],b=[l&&c>1?c-1:c,l&&d>1?d-1:d],_=0,k=y[0]/b[0],j=y[1]/b[1];for(let e=0;el),s.export(r,"resizeBilinearGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s,dy:l}=t,{alignCorners:i}=n;(0,o.assertNotComplex)([l,s],"resizeBilinearGrad");let u=a.util.computeStrides(s.shape),[p,c,d,f]=s.shape,[,m,h]=l.shape,g=new Float32Array(p*c*d*f),x=[i&&m>1?c-1:c,i&&h>1?d-1:d],v=[i&&m>1?m-1:m,i&&h>1?h-1:h],y=x[0]/v[0],b=x[1]/v[1],_=r.data.get(l.dataId).values,k=0;for(let e=0;el),s.export(r,"resizeNearestNeighborConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s}=t,{alignCorners:l,halfPixelCenters:i,size:u}=n;(0,o.assertNotComplex)(s,"resizeNearestNeighbor");let p=a.util.computeStrides(s.shape),[c,d]=u,[f,m,h,g]=s.shape,x=r.data.get(s.dataId).values,v=new Float32Array(f*c*d*g),y=[l&&c>1?m-1:m,l&&d>1?h-1:h],b=[l&&c>1?c-1:c,l&&d>1?d-1:d],_=y[0]/b[0],k=y[1]/b[1],j=0;for(let e=0;el),s.export(r,"resizeNearestNeighborGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s,dy:l}=t,{alignCorners:i}=n;(0,o.assertNotComplex)([l,s],"resizeNearestNeighborGrad");let u=a.util.computeStrides(s.shape),p=a.util.computeStrides(l.shape),[c,d,f,m]=s.shape,[,h,g]=l.shape,x=new Float32Array(c*d*f*m),v=r.data.get(l.dataId).values,y=[i&&h>1?d-1:d,i&&g>1?f-1:f],b=[i&&h>1?h-1:h,i&&g>1?g-1:g],_=y[0]/b[0],k=y[1]/b[1],j=1/_,I=1/k,w=2*Math.ceil(j)+2,T=2*Math.ceil(I)+2;for(let e=0;e=h)continue;let c=t+u*p[1],m=u*_;if(e===Math.min(d-1,i?Math.round(m):Math.floor(m)))for(let e=0;e=g)continue;let n=c+t*p[2],a=t*k;s===Math.min(f-1,i?Math.round(a):Math.floor(a))&&(l+=v[n+r])}}x[a+r]=l}}}}return r.makeTensorInfo(s.shape,s.dtype,x)}let i={kernelName:a.ResizeNearestNeighborGrad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3pDzx":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse",()=>i),s.export(r,"reverseConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Identity");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{dims:i}=n;(0,o.assertNotComplex)(s,"reverse");let u=s.shape.length,p=a.util.parseAxisParam(i,s.shape);if(0===u)return(0,l.identity)({inputs:{x:s},backend:r});let c=new(0,a.TensorBuffer)(s.shape,s.dtype),d=r.bufferSync(s);for(let e=0;er[e]=s.shape[e]-1-r[e]),c.set(d.get(...r),...t)}return r.makeTensorInfo(c.shape,c.dtype,c.values)}let u={kernelName:a.Reverse,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./Identity":"bdLxl","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iMYaS:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rotateWithOffsetConfig",()=>o);var a=e("@tensorflow/tfjs-core");let o={kernelName:a.RotateWithOffset,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{image:n}=e,{radians:s,fillValue:o,center:l}=t,i=a.util.getTypedArrayFromDType(n.dtype,a.util.sizeFromShape(n.shape)),[u,p,c,d]=n.shape,[f,m]=a.backend_util.getImageCenter(l,p,c),h=Math.sin(s),g=Math.cos(s),x=r.data.get(n.dataId).values;for(let e=0;e=0&&b=0&&_o),s.export(r,"roundConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Round,e=>{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2==0?t:t+1}),l={kernelName:a.Round,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3ihOs":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"scatterNd",()=>l),s.export(r,"scatterNdConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Scatter_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{indices:s,updates:l}=t,{shape:i}=n,{sliceRank:u,numUpdates:p,sliceSize:c,strides:d,outputSize:f}=a.backend_util.calculateShapes(l,s,i),m=r.bufferSync(s),h=r.bufferSync(l),g=(0,o.scatterImpl)(m,h,i,f,c,p,u,d,0,!0);return r.makeTensorInfo(i,g.dtype,g.values)}let i={kernelName:a.ScatterNd,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Scatter_impl":"kduZ3","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5lVnK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"searchSorted",()=>l),s.export(r,"searchSortedConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./SearchSorted_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{sortedSequence:s,values:a}=t,{side:l}=n,i=r.data.get(s.dataId).values,u=r.data.get(a.dataId).values,p=(0,o.searchSortedImpl)(i,u,s.shape[0],s.shape[1],a.shape[1],l);return r.makeTensorInfo(a.shape,"int32",p)}let i={kernelName:a.SearchSorted,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./SearchSorted_impl":"981FY","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"981FY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"searchSortedImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o){let l=a.util.getArrayFromDType("int32",r*s);for(let a=0;al),s.export(r,"selectConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r}=e,{condition:n,t:s,e:l}=t;(0,o.assertNotComplex)([n,s,l],"select");let i=n.shape.length,u=r.data.get(n.dataId).values,p=r.data.get(s.dataId).values,c=r.data.get(l.dataId).values,d=(0,a.upcastType)(s.dtype,l.dtype),f=a.util.makeZerosTypedArray(a.util.sizeFromShape(s.shape),d),m=0,h=0===i||i>1||1===s.shape.length?1:a.util.sizeFromShape(s.shape.slice(1));for(let e=0;eu),s.export(r,"seluConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_utils");let l=a.backend_util.SELU_SCALEALPHA,i=a.backend_util.SELU_SCALE,u=(0,o.unaryKernelFunc)(a.Selu,e=>e>=0?i*e:l*(Math.exp(e)-1)),p={kernelName:a.Selu,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jWrc0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sign",()=>o),s.export(r,"signConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Sign,e=>e<0?-1:+(e>0)),l={kernelName:a.Sign,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],g3CCU:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sin",()=>o),s.export(r,"sinConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Sin,e=>Math.sin(e)),l={kernelName:a.Sin,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8kEME":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sinh",()=>o),s.export(r,"sinhConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Sinh,e=>Math.sinh(e)),l={kernelName:a.Sinh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6OJKi":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softplus",()=>i),s.export(r,"softplusConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_utils");let l=Math.log(11920928955078125e-23)+2,i=(0,o.unaryKernelFunc)(a.Softplus,e=>{let t,r=Math.exp(e);return e-l?e:Math.log(1+r)}),u={kernelName:a.Softplus,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],knIdy:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"spaceToBatchND",()=>p),s.export(r,"spaceToBatchNDConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./PadV2"),i=e("./Reshape"),u=e("./Transpose");function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockShape:p,paddings:c}=n;(0,o.assertNotComplex)([s],"spaceToBatchND");let d=a.util.sizeFromShape(p),f=[[0,0]];f.push(...c);for(let e=1+p.length;el),s.export(r,"sparseFillEmptyRowsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./SparseFillEmptyRows_impl");function l(e){let{inputs:t,backend:r}=e,{indices:n,values:s,denseShape:a,defaultValue:l}=t;if(1!==a.shape.length)throw Error(`Dense shape must be a vector, saw: + ${a.shape}`);if(2!==n.shape.length)throw Error(`Indices must be a matrix, saw: + ${n.shape}`);if(1!==s.shape.length)throw Error(`Values must be a vector, saw: + ${s.shape}`);if(0!==l.shape.length)throw Error(`Default value must be a scalar, saw: + ${l.shape}`);let i=r.data.get(n.dataId).values,u=r.data.get(s.dataId).values,p=r.data.get(a.dataId).values,c=r.data.get(l.dataId).values[0],[d,f,m,h,g]=(0,o.sparseFillEmptyRowsImpl)(i,n.shape,n.dtype,u,s.dtype,p,c);return[r.makeTensorInfo(f,n.dtype,d),r.makeTensorInfo([f[0]],s.dtype,m),r.makeTensorInfo([h.length],"bool",new Uint8Array(h.map(e=>Number(e)))),r.makeTensorInfo([g.length],n.dtype,new Int32Array(g))]}let i={kernelName:a.SparseFillEmptyRows,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./SparseFillEmptyRows_impl":"c6AeG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fvimw:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseReshape",()=>l),s.export(r,"sparseReshapeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./SparseReshape_impl");function l(e){let{inputs:t,backend:r}=e,{inputIndices:n,inputShape:s,newShape:a}=t;if(2!==n.shape.length)throw Error(`Input indices should be a matrix but received shape + ${n.shape}`);if(1!==s.shape.length)throw Error(`Input shape should be a vector but received shape + ${s.shape}`);if(1!==a.shape.length)throw Error(`Target shape should be a vector but received shape ${a.shape}`);let l=Array.from(r.data.get(s.dataId).values),i=r.data.get(n.dataId).values,u=Array.from(r.data.get(a.dataId).values),[p,c,d]=(0,o.sparseReshapeImpl)(i,n.shape,n.dtype,l,u);return[r.makeTensorInfo(c,n.dtype,p),r.makeTensorInfo([d.length],a.dtype,new Int32Array(d))]}let i={kernelName:a.SparseReshape,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./SparseReshape_impl":"5soT4","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jt8fg:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentMean",()=>l),s.export(r,"sparseSegmentMeanConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./SparseSegmentReduction_impl");function l(e){let{inputs:t,backend:r}=e,{data:n,indices:s,segmentIds:a}=t;if(n.shape.length<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.shape.length)throw Error(`Indices should be a vector but received shape + ${s.shape}`);if(1!==a.shape.length)throw Error(`Segment ids should be a vector but received shape + ${a.shape}`);if(s.shape[0]!==a.shape[0])throw Error("segmentIds and indices should have same size.");let l=r.data.get(n.dataId).values,i=r.data.get(s.dataId).values,u=r.data.get(a.dataId).values,[p,c]=(0,o.sparseSegmentReductionImpl)(l,n.shape,n.dtype,i,u,!0);return r.makeTensorInfo(c,n.dtype,p)}let i={kernelName:a.SparseSegmentMean,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./SparseSegmentReduction_impl":"73Ezr","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4W4rq":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentSum",()=>l),s.export(r,"sparseSegmentSumConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./SparseSegmentReduction_impl");function l(e){let{inputs:t,backend:r}=e,{data:n,indices:s,segmentIds:a}=t;if(n.shape.length<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.shape.length)throw Error(`Indices should be a vector but received shape + ${s.shape}`);if(1!==a.shape.length)throw Error(`Segment ids should be a vector but received shape + ${a.shape}`);if(s.shape[0]!==a.shape[0])throw Error("segmentIds and indices should have same size.");let l=r.data.get(n.dataId).values,i=r.data.get(s.dataId).values,u=r.data.get(a.dataId).values,[p,c]=(0,o.sparseSegmentReductionImpl)(l,n.shape,n.dtype,i,u);return r.makeTensorInfo(c,n.dtype,p)}let i={kernelName:a.SparseSegmentSum,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./SparseSegmentReduction_impl":"73Ezr","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gNkA2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseToDense",()=>l),s.export(r,"sparseToDenseConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Scatter_impl");function l(e){let t,{inputs:r,backend:n,attrs:s}=e,{sparseIndices:l,sparseValues:i,defaultValue:u}=r,{outputShape:p}=s,{sliceRank:c,numUpdates:d,sliceSize:f,strides:m,outputSize:h}=a.backend_util.calculateShapes(i,l,p),g=n.bufferSync(l);switch(i.dtype){case"bool":{let e=n.bufferSync(i),r=!!n.data.get(u.dataId).values[0];t=(0,o.scatterImpl)(g,e,p,h,f,d,c,m,r,!1);break}case"float32":{let e=n.bufferSync(i),r=n.data.get(u.dataId).values[0];t=(0,o.scatterImpl)(g,e,p,h,f,d,c,m,r,!1);break}case"int32":{let e=n.bufferSync(i),r=n.data.get(u.dataId).values[0];t=(0,o.scatterImpl)(g,e,p,h,f,d,c,m,r,!1);break}case"string":{let e=n.bufferSync(i),r=a.util.decodeString(n.data.get(u.dataId).values[0]);t=(0,o.scatterImpl)(g,e,p,h,f,d,c,m,r,!1);break}default:throw Error(`Unsupported type ${i.dtype}`)}return n.makeTensorInfo(p,t.dtype,t.values)}let i={kernelName:a.SparseToDense,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Scatter_impl":"kduZ3","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hlKME:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"splitV",()=>l),s.export(r,"splitVConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Slice");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{numOrSizeSplits:l,axis:i}=n,u=a.util.parseAxisParam(i,s.shape)[0],p=a.backend_util.prepareSplitSize(s,l,u),c=Array(s.shape.length).fill(0),d=s.shape.slice();return p.map(e=>{let t=[...d];t[u]=e;let n=(0,o.slice)({inputs:{x:s},backend:r,attrs:{begin:c,size:t}});return c[u]+=e,n})}let i={kernelName:a.SplitV,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Slice":"dHddY","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],csjoO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"squareConfig",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");let l={kernelName:a.Square,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:r}=e;(0,o.assertNotComplex)(r,"square");let n=t.data.get(r.dataId).values,s=new Float32Array(n.length);for(let e=0;eo),s.export(r,"stepConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Step,(e,t)=>isNaN(e)?NaN:e>0?1:t.alpha),l={kernelName:a.Step,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2rqzs":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stridedSlice",()=>p),s.export(r,"stridedSliceConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape"),i=e("./Slice"),u=e("./StridedSlice_impl");function p(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:p}=r,{begin:c,end:d,strides:f,beginMask:m,endMask:h,ellipsisMask:g,newAxisMask:x,shrinkAxisMask:v}=s;(0,o.assertNotComplex)(p,"stridedSlice");let{finalShapeSparse:y,finalShape:b,isIdentity:_,sliceDim0:k,isSimpleSlice:j,begin:I,end:w,strides:T}=a.slice_util.sliceInfo(p.shape,c,d,f,m,h,g,x,v);if(_)t=(0,l.reshape)({inputs:{x:p},backend:n,attrs:{shape:b}});else if(k||j){a.util.assert(p.shape.length>=1,()=>`Input must have rank at least 1, got: ${p.shape.length}`);let e=a.slice_util.computeOutShape(I,w,T),r=(0,i.slice)({inputs:{x:p},backend:n,attrs:{begin:I,size:e}});t=(0,l.reshape)({inputs:{x:r},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(r)}else{let e=n.bufferSync(p),r=(0,u.stridedSliceImpl)(y,e,T,I);t=n.makeTensorInfo(b,r.dtype,r.values)}return t}let c={kernelName:a.StridedSlice,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./Reshape":"gdyYW","./Slice":"dHddY","./StridedSlice_impl":"3XL7y","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"30Jsy":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringNGrams",()=>l),s.export(r,"stringNGramsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./StringNGrams_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{separator:s,nGramWidths:a,leftPad:l,rightPad:i,padWidth:u,preserveShortSequences:p}=n,{data:c,dataSplits:d}=t,f=r.data.get(c.dataId).values,m=r.data.get(d.dataId).values,[h,g]=(0,o.stringNGramsImpl)(f,m,s,a,l,i,u,p);return[r.makeTensorInfo([h.length],"string",h),r.makeTensorInfo(d.shape,"int32",g)]}let i={kernelName:a.StringNGrams,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./StringNGrams_impl":"acuWz","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1Ko5Y":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringSplit",()=>l),s.export(r,"stringSplitConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./StringSplit_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{skipEmpty:s}=n,{input:a,delimiter:l}=t;if("string"!==a.dtype)throw Error("Input must be of datatype string");if(1!==a.shape.length)throw Error(`Input must be a vector, got shape: ${a.shape}`);if(0!==l.shape.length)throw Error(`Delimiter must be a scalar, got shape: ${l.shape}`);let i=r.data.get(a.dataId).values,u=r.data.get(l.dataId).values[0],[p,c,d]=(0,o.stringSplitImpl)(i,u,s),f=c.length;return[r.makeTensorInfo([f,2],"int32",p),r.makeTensorInfo([f],"string",c),r.makeTensorInfo([2],"int32",new Int32Array(d))]}let i={kernelName:a.StringSplit,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./StringSplit_impl":"hVXkV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iHsXF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringToHashBucketFast",()=>l),s.export(r,"stringToHashBucketFastConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./StringToHashBucketFast_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{numBuckets:s}=n,{input:a}=t;if("string"!==a.dtype)throw Error("Input must be of datatype string");if(s<=0)throw Error("Number of buckets must be at least 1");let l=r.data.get(a.dataId).values,i=(0,o.stringToHashBucketFastImpl)(l,s);return r.makeTensorInfo(a.shape,"int32",i)}let i={kernelName:a.StringToHashBucketFast,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./StringToHashBucketFast_impl":"6n7GK","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6VGWn":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tan",()=>o),s.export(r,"tanConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Tan,e=>Math.tan(e)),l={kernelName:a.Tan,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kUHbY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tanh",()=>o),s.export(r,"tanhConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Tanh,e=>Math.tanh(e)),l={kernelName:a.Tanh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],h8wzB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensorScatterUpdate",()=>l),s.export(r,"tensorScatterUpdateConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Scatter_impl");function l(e){let{inputs:t,backend:r}=e,{tensor:n,indices:s,updates:l}=t,{sliceRank:i,numUpdates:u,sliceSize:p,strides:c,outputSize:d}=a.backend_util.calculateShapes(l,s,n.shape),f=r.bufferSync(s),m=r.bufferSync(l),h=r.bufferSync(n),g=(0,o.scatterImpl)(f,m,n.shape,d,p,u,i,c,h,!1);return r.makeTensorInfo(n.shape,g.dtype,g.values)}let i={kernelName:a.TensorScatterUpdate,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Scatter_impl":"kduZ3","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5w8Av":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tile",()=>i),s.export(r,"tileConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Tile_impl");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{reps:a}=n;(0,o.assertNotComplex)(s,"tile");let i=(0,l.tileImpl)(r.bufferSync(s),a);return r.makeTensorInfo(i.shape,i.dtype,i.values)}let u={kernelName:a.Tile,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./Tile_impl":"1lWzm","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fceZ4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"topK",()=>i),s.export(r,"topKConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./TopK_impl");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{k:a,sorted:i}=n;(0,o.assertNotComplex)(s,"topk");let u=r.data.get(s.dataId).values,[p,c]=(0,l.topKImpl)(u,s.shape,s.dtype,a,i);return[r.makeTensorInfo(p.shape,p.dtype,p.values),r.makeTensorInfo(c.shape,c.dtype,c.values)]}let u={kernelName:a.TopK,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./TopK_impl":"kIJEs","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],VkSQG:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transform",()=>o),s.export(r,"transformConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,attrs:r,backend:n}=e,{image:s,transforms:o}=t,{interpolation:l,fillMode:p,fillValue:c,outputShape:d}=r,[f,m,h,g]=s.shape,[x,v]=null!=d?d:[m,h],y=[f,x,v,g],b=a.util.computeStrides(s.shape),_=b[0],k=b[1],j=b[2],I=a.util.computeStrides(y),w=I[0],T=I[1],N=I[2],S=a.util.getTypedArrayFromDType(s.dtype,a.util.sizeFromShape(y));S.fill(c);let C=n.data.get(s.dataId).values,E=n.data.get(o.dataId).values;for(let e=0;ep-1)if(p<=1)c=0;else{let e=2*p;(c-=e*Math.trunc(c/e))>=p&&(c=e-c-1)}return a.util.clamp(0,c,p-1);case"wrap":let d;return n=e,s=t,(d=n)<0?s<=1?d=0:d+=s*(Math.trunc(-d/(s-1))+1):d>s-1&&(s<=1?d=0:d-=s*Math.trunc(d/(s-1))),a.util.clamp(0,d,s-1);case"nearest":return o=e,l=t,a.util.clamp(0,o,l-1);default:return i=0,e}}function u(e,t,r,n,s,a,o,l,i,u,p){return 0<=l&&li),s.export(r,"uniqueConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Unique_impl");function i(e){let{inputs:t,attrs:r,backend:n}=e,{axis:s}=r,{x:a}=t;(0,o.assertNotComplex)(a,"unique");let i=n.data.get(a.dataId).values,{outputValues:u,outputShape:p,indices:c}=(0,l.uniqueImpl)(i,s,a.shape,a.dtype);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([c.length],"int32",c)]}let u={kernelName:a.Unique,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./Unique_impl":"8WaZh","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],a4FH4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unpack",()=>i),s.export(r,"unpackConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./Reshape"),l=e("./Slice");function i(e){let{inputs:t,backend:r,attrs:n}=e,{value:s}=t,{axis:a}=n;a<0&&(a+=s.shape.length);let i=s.shape.length,u=s.shape[a],p=Array(i-1),c=0;for(let e=0;ef),s.export(r,"unsortedSegmentSumConfig",()=>m);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Cast"),i=e("./Equal"),u=e("./ExpandDims"),p=e("./Multiply"),c=e("./Pack"),d=e("./Sum");function f(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,segmentIds:f}=t,{numSegments:m}=n;(0,o.assertNotComplex)(s,"unsortedSegmentSum");let h=s.shape.length,g=f.shape.length,x=[],v=[],y=h-g,b=f;for(let e=0;er.disposeIntermediateTensorInfo(e)),_}let m={kernelName:a.UnsortedSegmentSum,backendName:"cpu",kernelFunc:f}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./Cast":"cMwEt","./Equal":"hGYXP","./ExpandDims":"gtxdI","./Multiply":"dvGJ0","./Pack":"au22V","./Sum":"jeTUE","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lcmzA:[function(e,t,r,n){var s,a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"SupportedModels",()=>eR),a.export(r,"blurBodyPart",()=>eZ),a.export(r,"bodyPixMaskValueToRainbowColor",()=>b),a.export(r,"createSegmenter",()=>eD),a.export(r,"drawBokehEffect",()=>eJ),a.export(r,"drawMask",()=>eX),a.export(r,"drawPixelatedMask",()=>eY),a.export(r,"toBinaryMask",()=>eH),a.export(r,"toColoredMask",()=>eK);var o=e("@tensorflow/tfjs-core"),l=e("@tensorflow/tfjs-converter"),i=e("@mediapipe/selfie_segmentation"),u=function(e,t){return(u=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function p(e,t){function r(){this.constructor=e}u(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var c=function(){return(c=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0&&s[s.length-1])&&(6===i[0]||2===i[0])){o=0;continue}if(3===i[0]&&(!s||i[1]>s[0]&&i[1]=256)throw Error("Mask value must be in range [0, 255] but got "+e);if(!Number.isInteger(e))throw Error("Mask value must be an integer but got "+e)}var y=[[110,64,170],[143,61,178],[178,60,178],[210,62,167],[238,67,149],[255,78,125],[255,94,99],[255,115,75],[255,140,56],[239,167,47],[217,194,49],[194,219,64],[175,240,91],[135,245,87],[96,247,96],[64,243,115],[40,234,141],[28,219,169],[26,199,194],[33,176,213],[47,150,224],[65,125,224],[84,101,214],[99,81,195]];function b(e){if(v(e),er&&(s+=1,n+=Math.pow(e[a].x-t.keypoints[a].position.x,2)+Math.pow(e[a].y-t.keypoints[a].position.y,2));return 0===s?n=1/0:n/=s,n}(g,r[k]);j<_&&(b=k,_=j)}return b}function R(e,t){var r=e[0];return[Math.round((e[1]-1)/t+1),Math.round((r-1)/t+1)]}function P(e,t,r,n,s,a,l,i,u,p,c){for(var d=l[0],f=l[1],m=e.shape,h=m[0],g=m[1],x=t.shape.slice(0,2),v=x[0],y=x[1],b=(0,o.reshape)(t,[v,y,2,T]),_=new Float32Array(c*T*3).fill(0),k=0;k "+p+") {\n numKpt = numKpt + 1;\n curDistSum = curDistSum + dist(x, y, poseX, poseY);\n }\n }\n if (numKpt > 0 && curDistSum / float(numKpt) < minDist) {\n minDist = curDistSum / float(numKpt);\n iMin = i;\n }\n }\n return iMin;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int nearestPose = findNearestPose(coords[0], coords[1]);\n setOutput(float(nearestPose));\n }\n "};return(0,o.backend)().compileAndRun($,[e,b,R])}function D(){return"webgl"===(0,o.getBackend)()}function $(e){return Math.floor(e/2)}[["leftHip","leftShoulder"],["leftElbow","leftShoulder"],["leftElbow","leftWrist"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["rightHip","rightShoulder"],["rightElbow","rightShoulder"],["rightElbow","rightWrist"],["rightHip","rightKnee"],["rightKnee","rightAnkle"],["leftShoulder","rightShoulder"],["leftHip","rightHip"]].map(function(e){var t=e[0],r=e[1];return[N[t],N[r]]});var O=function(){function e(e,t){this.priorityQueue=Array(e),this.numberOfElements=-1,this.getElementValue=t}return e.prototype.enqueue=function(e){this.priorityQueue[++this.numberOfElements]=e,this.swim(this.numberOfElements)},e.prototype.dequeue=function(){var e=this.priorityQueue[0];return this.exchange(0,this.numberOfElements--),this.sink(0),this.priorityQueue[this.numberOfElements+1]=null,e},e.prototype.empty=function(){return -1===this.numberOfElements},e.prototype.size=function(){return this.numberOfElements+1},e.prototype.all=function(){return this.priorityQueue.slice(0,this.numberOfElements+1)},e.prototype.max=function(){return this.priorityQueue[0]},e.prototype.swim=function(e){for(;e>0&&this.less($(e),e);)this.exchange(e,$(e)),e=$(e)},e.prototype.sink=function(e){for(;2*e<=this.numberOfElements;){var t=2*e;if(ta?a:s),x:(o=Math.round(e.x/t),l=n-1,o<0?0:o>l?l:o)}}function V(e,t,r,n,s,a,o,l){void 0===l&&(l=2);for(var i,u,p=n.shape,c=p[0],d=p[1],f=(i=L(t.position,a,c,d),u=o.shape[2]/2,{y:o.get(i.y,i.x,e),x:o.get(i.y,i.x,u+e)}),m=F(t.position,f),h=0;ht){u=!1;break}if(!u)break}return u}(p,c,i,u,1,r)&&l.enqueue({score:c,part:{heatmapY:i,heatmapX:u,id:p}})}return l}(o,0,e),p=l*l;i.length=0;--d){var f=W[d],m=B[d];i[f]&&!i[m]&&(i[m]=V(d,i[f],m,t,r,n,a))}for(d=0;d=.1,function(){return"inputResolution must be a string or number between 0.1 and 2, but was "+e}),e}(e);return[Y(n*a,t),Y(s*a,t)]}function et(e,t,r,n,s){var a=t[0],l=t[1],i=r[0],u=r[1],p=n[0],c=p[0],d=p[1],f=n[1],m=f[0],h=f[1];return void 0===s&&(s=!1),(0,o.tidy)(function(){var t,r,n,p,f,g,x,v,y,b,_,k=o.image.resizeBilinear(e,[i,u],!0);return s&&(k=(0,o.sigmoid)(k)),t=k,r=[a,l],n=[[c,d],[m,h]],p=r[0],f=r[1],x=(g=n[0])[0],v=g[1],b=(y=n[1])[0],_=y[1],(0,o.tidy)(function(){var e=(0,o.expandDims)(t);return(0,o.squeeze)(o.image.cropAndResize(e,[[x/(p+x+v-1),b/(f+b+_-1),(x+p-1)/(p+x+v-1),(b+f-1)/(f+b+_-1)]],[0],[p,f]),[0])})})}function er(e,t){var r=t[0],n=t[1],s=X(e),a=s[0],l=s[1],i=n/r,u=0,p=0,c=0,d=0;return l/a1)throw Error("segmentationThreshold "+t+". Should be in range [0.0, 1.0]");if(r<=0)throw Error("Invalid maxDetections "+r+". Should be > 0");if(n<0||n>1)throw Error("Invalid scoreThreshold "+n+". Should be in range [0.0, 1.0]");if(s<=0)throw Error("Invalid nmsRadius "+s+".")}function ef(e){var t=e.segmentationThreshold,r=e.maxDetections,n=e.scoreThreshold,s=e.nmsRadius,a=e.minKeypointScore,o=e.refineSteps;if(t<0||t>1)throw Error("segmentationThreshold "+t+". Should be in range [0.0, 1.0]");if(r<=0)throw Error("Invalid maxDetections "+r+". Should be > 0");if(n<0||n>1)throw Error("Invalid scoreThreshold "+n+". Should be in range [0.0, 1.0]");if(s<=0)throw Error("Invalid nmsRadius "+s+".");if(a<0||a>1)throw Error("Invalid minKeypointScore "+a+".Should be in range [0.0, 1.0]");if(o<=0||o>20)throw Error("Invalid refineSteps "+o+".Should be in range [1, 20]")}var em=function(){function e(e){this.baseModel=e}return e.prototype.predictForPersonSegmentation=function(e){var t=this.baseModel.predict(e);return{segmentLogits:t.segmentation,heatmapScores:t.heatmapScores,offsets:t.offsets,displacementFwd:t.displacementFwd,displacementBwd:t.displacementBwd}},e.prototype.predictForPersonSegmentationAndPart=function(e){var t=this.baseModel.predict(e);return{segmentLogits:t.segmentation,partHeatmapLogits:t.partHeatmaps,heatmapScores:t.heatmapScores,offsets:t.offsets,displacementFwd:t.displacementFwd,displacementBwd:t.displacementBwd}},e.prototype.predictForMultiPersonInstanceSegmentationAndPart=function(e){var t=this.baseModel.predict(e);return{segmentLogits:t.segmentation,longOffsets:t.longOffsets,heatmapScores:t.heatmapScores,offsets:t.offsets,displacementFwd:t.displacementFwd,displacementBwd:t.displacementBwd,partHeatmaps:t.partHeatmaps}},e.prototype.segmentPersonActivation=function(e,t,r){var n=this;void 0===r&&(r=.5);var s=X(e),a=s[0],l=s[1],i=ee(t,this.baseModel.outputStride,[a,l]),u=er(e,i),p=u.resized,c=u.padding,d=(0,o.tidy)(function(){var e=n.predictForPersonSegmentation(p),t=e.segmentLogits,s=e.heatmapScores,i=e.offsets,u=e.displacementFwd,d=e.displacementBwd,f=p.shape,m=et(t,[a,l],[f[0],f[1]],[[c.top,c.bottom],[c.left,c.right]],!0);return{segmentation:k((0,o.squeeze)(m),r),heatmapScores:s,offsets:i,displacementFwd:u,displacementBwd:d}}),f=d.segmentation,m=d.heatmapScores,h=d.offsets,g=d.displacementFwd,x=d.displacementBwd;return p.dispose(),{segmentation:f,heatmapScores:m,offsets:h,displacementFwd:g,displacementBwd:x,padding:c,internalResolutionHeightAndWidth:i}},e.prototype.segmentPerson=function(e,t){return void 0===t&&(t=ep),d(this,void 0,void 0,function(){var r,n,s,a,o,l,i,u,p,d,m,h,g,x,v,y;return f(this,function(f){switch(f.label){case 0:return ed(t=c(c({},ep),t)),n=(r=this.segmentPersonActivation(e,t.internalResolution,t.segmentationThreshold)).segmentation,s=r.heatmapScores,a=r.offsets,o=r.displacementFwd,l=r.displacementBwd,i=r.padding,u=r.internalResolutionHeightAndWidth,d=(p=n.shape)[0],m=p[1],[4,n.data()];case 1:return h=f.sent(),n.dispose(),[4,en([s,a,o,l])];case 2:return x=(g=f.sent())[0],v=g[1],y=es(y=G(x,v,g[2],g[3],this.baseModel.outputStride,t.maxDetections,t.scoreThreshold,t.nmsRadius),[d,m],u,i,!1),s.dispose(),a.dispose(),o.dispose(),l.dispose(),[2,{height:d,width:m,data:h,allPoses:y}]}})})},e.prototype.segmentMultiPerson=function(e,t){return void 0===t&&(t=ec),d(this,void 0,void 0,function(){var r,n,s,a,l,i,u,p,m,h,g,x,v,y,b,_,j,I,w,T=this;return f(this,function(N){switch(N.label){case 0:return ef(t=c(c({},ec),t)),n=(r=X(e))[0],s=r[1],i=(l=er(e,a=ee(t.internalResolution,this.baseModel.outputStride,[n,s]))).resized,u=l.padding,m=(p=(0,o.tidy)(function(){var e=T.predictForMultiPersonInstanceSegmentationAndPart(i),r=e.segmentLogits,l=e.longOffsets,p=e.heatmapScores,c=e.offsets,d=e.displacementFwd,f=e.displacementBwd,m=et(r,[n,s],a,[[u.top,u.bottom],[u.left,u.right]],!0);return{segmentation:k((0,o.squeeze)(m),t.segmentationThreshold),longOffsets:l,heatmapScoresRaw:p,offsetsRaw:c,displacementFwdRaw:d,displacementBwdRaw:f}})).segmentation,h=p.longOffsets,g=p.heatmapScoresRaw,x=p.offsetsRaw,v=p.displacementFwdRaw,y=p.displacementBwdRaw,[4,en([g,x,v,y])];case 1:return _=(b=N.sent())[0],j=b[1],I=es(I=G(_,j,b[2],b[3],this.baseModel.outputStride,t.maxDetections,t.scoreThreshold,t.nmsRadius),[n,s],a,u,!1),[4,function(e,t,r,n,s,a,l,i,u,p,c,m){var h=l[0],g=l[1];return void 0===u&&(u=.2),void 0===p&&(p=8),void 0===c&&(c=.3),void 0===m&&(m=10),d(this,void 0,void 0,function(){var l,d,x,v,y;return f(this,function(f){switch(f.label){case 0:return l=r.filter(function(e){return e.score>=u}),D()?[4,Promise.all((x=(0,o.tidy)(function(){var r=P(e,t,l,n,s,a,[h,g],i,p,c,m),u=(0,o.engine)().makeTensorFromDataId(r.dataId,r.shape,r.dtype);return l.map(function(e,t){return(0,o.tidy)(function(){return(0,o.cast)((0,o.equal)(u,(0,o.scalar)(t)),"int32")})})})).map(function(e){return e.data()}))]:[3,2];case 1:return d=f.sent(),x.forEach(function(e){return e.dispose()}),[3,5];case 2:return[4,e.data()];case 3:return v=f.sent(),[4,t.data()];case 4:y=f.sent(),d=function(e,t,r,n,s,a,o,l,i,u){var p=o[0],c=o[1];void 0===u&&(u=5);for(var d=r.map(function(e){return new Uint8Array(n*s).fill(0)}),f=l.top,m=l.left,h=S([n,s],[p,c],l),g=h[0],x=h[1],v=R([p,c],a)[0],y=0;y=0&&(d[k][_]=1)}}return d}(v,y,l,n,s,a,[h,g],i,p),f.label=5;case 5:return[2,d.map(function(e,t){return{data:e,pose:l[t],width:s,height:n}})]}})})}(m,h,I,n,s,this.baseModel.outputStride,a,u,t.scoreThreshold,t.refineSteps,t.minKeypointScore,t.maxDetections)];case 2:return w=N.sent(),i.dispose(),m.dispose(),h.dispose(),g.dispose(),x.dispose(),v.dispose(),y.dispose(),[2,w]}})})},e.prototype.segmentPersonPartsActivation=function(e,t,r){var n=this;void 0===r&&(r=.5);var s=X(e),a=s[0],l=s[1],i=ee(t,this.baseModel.outputStride,[a,l]),u=er(e,i),p=u.resized,c=u.padding,d=(0,o.tidy)(function(){var e,t,s,i,u,d=n.predictForPersonSegmentationAndPart(p),f=d.segmentLogits,m=d.partHeatmapLogits,h=d.heatmapScores,g=d.offsets,x=d.displacementFwd,v=d.displacementBwd,y=p.shape,b=y[0],j=y[1],I=et(f,[a,l],[b,j],[[c.top,c.bottom],[c.left,c.right]],!0),w=et(m,[a,l],[b,j],[[c.top,c.bottom],[c.left,c.right]],!0);return{partSegmentation:(e=k((0,o.squeeze)(I),r),s=(t=w.shape)[0],i=t[1],u=t[2],(0,o.tidy)(function(){var t=_(w),r=(0,o.expandDims)((0,o.range)(0,u,1,"int32"),1),n=(0,o.cast)((0,o.matMul)(t,r),"int32"),a=(0,o.reshape)(n,[s,i]),l=(0,o.add)(a,(0,o.scalar)(1,"int32"));return(0,o.sub)((0,o.mul)(l,e),(0,o.scalar)(1,"int32"))})),heatmapScores:h,offsets:g,displacementFwd:x,displacementBwd:v}}),f=d.partSegmentation,m=d.heatmapScores,h=d.offsets,g=d.displacementFwd,x=d.displacementBwd;return p.dispose(),{partSegmentation:f,heatmapScores:m,offsets:h,displacementFwd:g,displacementBwd:x,padding:c,internalResolutionHeightAndWidth:i}},e.prototype.segmentPersonParts=function(e,t){return void 0===t&&(t=ep),d(this,void 0,void 0,function(){var r,n,s,a,o,l,i,u,p,d,m,h,g,x,v,y;return f(this,function(f){switch(f.label){case 0:return ed(t=c(c({},ep),t)),n=(r=this.segmentPersonPartsActivation(e,t.internalResolution,t.segmentationThreshold)).partSegmentation,s=r.heatmapScores,a=r.offsets,o=r.displacementFwd,l=r.displacementBwd,i=r.padding,u=r.internalResolutionHeightAndWidth,d=(p=n.shape)[0],m=p[1],[4,n.data()];case 1:return h=f.sent(),n.dispose(),[4,en([s,a,o,l])];case 2:return x=(g=f.sent())[0],v=g[1],y=es(y=G(x,v,g[2],g[3],this.baseModel.outputStride,t.maxDetections,t.scoreThreshold,t.nmsRadius),[d,m],u,i,!1),s.dispose(),a.dispose(),o.dispose(),l.dispose(),[2,{height:d,width:m,data:h,allPoses:y}]}})})},e.prototype.segmentMultiPersonParts=function(e,t){return void 0===t&&(t=ec),d(this,void 0,void 0,function(){var r,n,s,a,l,i,u,p,m,h,g,x,v,y,b,j,I,w,T,N,C=this;return f(this,function(E){switch(E.label){case 0:return ef(t=c(c({},ec),t)),n=(r=X(e))[0],s=r[1],i=(l=er(e,a=ee(t.internalResolution,this.baseModel.outputStride,[n,s]))).resized,u=l.padding,m=(p=(0,o.tidy)(function(){var e,r,l,p,c=C.predictForMultiPersonInstanceSegmentationAndPart(i),d=c.segmentLogits,f=c.longOffsets,m=c.heatmapScores,h=c.offsets,g=c.displacementFwd,x=c.displacementBwd,v=c.partHeatmaps,y=et(d,[n,s],a,[[u.top,u.bottom],[u.left,u.right]],!0),b=et(v,[n,s],a,[[u.top,u.bottom],[u.left,u.right]],!0);return{segmentation:k((0,o.squeeze)(y),t.segmentationThreshold),longOffsets:f,heatmapScoresRaw:m,offsetsRaw:h,displacementFwdRaw:g,displacementBwdRaw:x,partSegmentation:(r=(e=b.shape)[0],l=e[1],p=e[2],(0,o.tidy)(function(){var e=_(b),t=(0,o.expandDims)((0,o.range)(0,p,1,"int32"),1),n=(0,o.cast)((0,o.matMul)(e,t),"int32");return(0,o.reshape)(n,[r,l])}))}})).segmentation,h=p.longOffsets,g=p.heatmapScoresRaw,x=p.offsetsRaw,v=p.displacementFwdRaw,y=p.displacementBwdRaw,b=p.partSegmentation,[4,en([g,x,v,y])];case 1:return I=(j=E.sent())[0],w=j[1],T=es(T=G(I,w,j[2],j[3],this.baseModel.outputStride,t.maxDetections,t.scoreThreshold,t.nmsRadius),[n,s],a,u,!1),[4,function(e,t,r,n,s,a,l,i,u,p,c,m,h){var g=i[0],x=i[1];return void 0===p&&(p=.2),void 0===c&&(c=8),void 0===m&&(m=.3),void 0===h&&(h=10),d(this,void 0,void 0,function(){var i,d,v,y,b,_;return f(this,function(f){switch(f.label){case 0:return i=n.filter(function(e){return e.score>=p}),D()?[4,Promise.all((v=(0,o.tidy)(function(){var n=P(e,t,i,s,a,l,[g,x],u,c,m,h),p=(0,o.engine)().makeTensorFromDataId(n.dataId,n.shape,n.dtype);return i.map(function(e,t){return(0,o.tidy)(function(){return(0,o.sub)((0,o.mul)((0,o.cast)((0,o.equal)(p,(0,o.scalar)(t)),"int32"),(0,o.add)(r,1)),1)})})})).map(function(e){return e.data()}))]:[3,2];case 1:return d=f.sent(),v.forEach(function(e){return e.dispose()}),[3,6];case 2:return[4,e.data()];case 3:return y=f.sent(),[4,t.data()];case 4:return b=f.sent(),[4,r.data()];case 5:_=f.sent(),d=function(e,t,r,n,s,a,o,l,i,u,p){var c=l[0],d=l[1];void 0===p&&(p=5);for(var f=n.map(function(e){return new Int32Array(s*a).fill(-1)}),m=i.top,h=i.left,g=S([s,a],[c,d],i),x=g[0],v=g[1],y=R([c,d],o)[0],b=0;b=0&&(f[j][k]=r[k])}}return f}(y,b,_,i,s,a,l,[g,x],u,c),f.label=6;case 6:return[2,d.map(function(e,t){return{pose:i[t],data:e,height:s,width:a}})]}})})}(m,h,b,T,n,s,this.baseModel.outputStride,a,u,t.scoreThreshold,t.refineSteps,t.minKeypointScore,t.maxDetections)];case 2:return N=E.sent(),i.dispose(),m.dispose(),h.dispose(),g.dispose(),x.dispose(),v.dispose(),y.dispose(),b.dispose(),[2,N]}})})},e.prototype.dispose=function(){this.baseModel.dispose()},e}(),eh=["left_face","right_face","left_upper_arm_front","left_upper_arm_back","right_upper_arm_front","right_upper_arm_back","left_lower_arm_front","left_lower_arm_back","right_lower_arm_front","right_lower_arm_back","left_hand","right_hand","torso_front","torso_back","left_upper_leg_front","left_upper_leg_back","right_upper_leg_front","right_upper_leg_back","left_lower_leg_front","left_lower_leg_back","right_lower_leg_front","right_lower_leg_back","left_feet","right_feet"],eg=function(){function e(e){this.mask=e}return e.prototype.toCanvasImageSource=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,h(this.mask)]})})},e.prototype.toImageData=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,this.mask]})})},e.prototype.toTensor=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,x(this.mask)]})})},e.prototype.getUnderlyingType=function(){return"imagedata"},e}();function ex(e){if(v(e),255!==e)throw Error("Foreground id must be 255 but got "+e);return"person"}function ev(e){if(v(e),e>=eh.length)throw Error("Invalid body part value "+e);return eh[e]}var ey=function(){function e(e){this.bodyPixModel=e}return e.prototype.segmentPeople=function(e,t){return d(this,void 0,void 0,function(){var r,n,s,a;return f(this,function(o){switch(o.label){case 0:return e instanceof ImageBitmap&&((r=document.createElement("canvas")).getContext("2d").drawImage(e,0,0),e=r),t.segmentBodyParts?t.multiSegmentation?[4,this.bodyPixModel.segmentMultiPersonParts(e,t)]:[3,2]:[3,5];case 1:return s=o.sent(),[3,4];case 2:return[4,this.bodyPixModel.segmentPersonParts(e,t)];case 3:s=[o.sent()],o.label=4;case 4:return n=s.map(function(e){var t=e.data,r=e.width,n=e.height,s=new Uint8ClampedArray(r*n*4).fill(0);return t.forEach(function(e,t){-1===e?(s[4*t]=eh.length,s[4*t+3]=0):(s[4*t]=e,s[4*t+3]=255)}),{maskValueToLabel:ev,mask:new eg(new ImageData(s,r,n))}}),[3,10];case 5:return t.multiSegmentation?[4,this.bodyPixModel.segmentMultiPerson(e,t)]:[3,7];case 6:return a=o.sent(),[3,9];case 7:return[4,this.bodyPixModel.segmentPerson(e,t)];case 8:a=[o.sent()],o.label=9;case 9:n=a.map(function(e){var t=e.data,r=e.width,n=e.height,s=new Uint8ClampedArray(r*n*4).fill(0);return t.forEach(function(e,t){0===e?(s[4*t]=0,s[4*t+3]=0):(s[4*t]=255,s[4*t+3]=255)}),{maskValueToLabel:ex,mask:new eg(new ImageData(s,r,n))}}),o.label=10;case 10:return[2,n]}})})},e.prototype.dispose=function(){this.bodyPixModel.dispose()},e.prototype.reset=function(){},e}(),eb={runtime:"mediapipe",modelType:"general"},e_=function(){function e(e){this.mask=e}return e.prototype.toCanvasImageSource=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,this.mask]})})},e.prototype.toImageData=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,g(this.mask)]})})},e.prototype.toTensor=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,x(this.mask)]})})},e.prototype.getUnderlyingType=function(){return"canvasimagesource"},e}();function ek(e){return v(e),"person"}var ej=function(){function e(e){var t,r,n=this;this.selfieMode=!1,t=+(this.selfieSegmentationSolution=new(0,i.SelfieSegmentation)({locateFile:null!=(r=e.locateFile)?r:function(t,r){return e.solutionPath?e.solutionPath.replace(/\/+$/,"")+"/"+t:r+"/"+t}}),"landscape"===e.modelType),this.selfieSegmentationSolution.setOptions({modelSelection:t,selfieMode:this.selfieMode}),this.selfieSegmentationSolution.onResults(function(e){n.segmentation=[{maskValueToLabel:ek,mask:new e_(e.segmentationMask)}]})}return e.prototype.segmentPeople=function(e,t){return d(this,void 0,void 0,function(){var r,n;return f(this,function(s){switch(s.label){case 0:return t&&t.flipHorizontal&&t.flipHorizontal!==this.selfieMode&&(this.selfieMode=t.flipHorizontal,this.selfieSegmentationSolution.setOptions({selfieMode:this.selfieMode})),e instanceof o.Tensor?(n=ImageData.bind,[4,o.browser.toPixels(e)]):[3,2];case 1:return r=new(n.apply(ImageData,[void 0,s.sent(),e.shape[1],e.shape[0]])),[3,3];case 2:r=e,s.label=3;case 3:return e=r,[4,this.selfieSegmentationSolution.send({image:e})];case 4:return s.sent(),[2,this.segmentation]}})})},e.prototype.dispose=function(){this.selfieSegmentationSolution.close()},e.prototype.reset=function(){this.selfieSegmentationSolution.reset(),this.segmentation=null,this.selfieMode=!1},e.prototype.initialize=function(){return this.selfieSegmentationSolution.initialize()},e}();function eI(e){return e instanceof o.Tensor?{height:e.shape[0],width:e.shape[1]}:{height:e.height,width:e.width}}function ew(e,t){o.util.assert(0!==e.width,function(){return t+" width cannot be 0."}),o.util.assert(0!==e.height,function(){return t+" height cannot be 0."})}var eT={runtime:"tfjs",modelType:"general",modelUrl:"https://tfhub.dev/mediapipe/tfjs-model/selfie_segmentation/general/1"},eN={flipHorizontal:!1},eS={outputTensorSize:{width:256,height:256},keepAspectRatio:!1,borderMode:"zero",outputTensorFloatRange:[0,1]},eC={outputTensorSize:{width:256,height:144},keepAspectRatio:!1,borderMode:"zero",outputTensorFloatRange:[0,1]},eE={activation:"none"},eF=function(){function e(e){this.mask=e}return e.prototype.toCanvasImageSource=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,h(this.mask)]})})},e.prototype.toImageData=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,g(this.mask)]})})},e.prototype.toTensor=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,this.mask]})})},e.prototype.getUnderlyingType=function(){return"tensor"},e}();function eA(e){return v(e),"person"}var eR,eP=function(){function e(e,t){this.modelType=e,this.model=t}return e.prototype.segmentPeople=function(e,t){return d(this,void 0,void 0,function(){var r=this;return f(this,function(n){return t=function(e){if(null==e)return c({},eN);var t=c({},e);return null==t.flipHorizontal&&(t.flipHorizontal=eN.flipHorizontal),t}(t),null==e?(this.reset(),[2,[]]):[2,[{maskValueToLabel:eA,mask:new eF((0,o.tidy)(function(){var t,n,s,a,l,i,u,p,c,d,f,m,h,g,x,v,y,b,_,k,j,I,w=(x=(t="general"===r.modelType?eS:eC).outputTensorSize,v=t.keepAspectRatio,y=t.borderMode,b=t.outputTensorFloatRange,j=function(e,t,r){if(void 0===r&&(r=!1),!r)return{top:0,left:0,right:0,bottom:0};var n=t.height,s=t.width;ew(t,"targetSize"),ew(e,"roi");var a,o,l=n/s,i=e.height/e.width,u=0,p=0;return l>i?(a=e.width,o=e.width*l,p=(1-i/l)/2):(a=e.height/l,o=e.height,u=(1-l/i)/2),e.width=a,e.height=o,{top:p,left:u,right:u,bottom:p}}((n=_=eI(e),k={xCenter:.5*n.width,yCenter:.5*n.height,width:n.width,height:n.height,rotation:0}),x,v),s=_.width,a=_.height,l=k.width,i=k.height,u=1,p=Math.cos(k.rotation),c=Math.sin(k.rotation),d=k.xCenter,f=k.yCenter,m=1/s,h=1/a,(g=Array(16))[0]=l*p*u*m,g[1]=-i*c*m,g[2]=0,g[3]=(-.5*l*p*u+.5*i*c+d)*m,g[4]=l*c*u*h,g[5]=i*p*h,g[6]=0,g[7]=(-.5*i*p-.5*l*c*u+f)*h,g[8]=0,g[9]=0,g[10]=l*m,g[11]=0,g[12]=0,g[13]=0,g[14]=0,g[15]=1,I=function(e){if(16!==e.length)throw Error("Array length must be 16 but got "+e.length);return[[e[0],e[1],e[2],e[3]],[e[4],e[5],e[6],e[7]],[e[8],e[9],e[10],e[11]],[e[12],e[13],e[14],e[15]]]}(g),{imageTensor:(0,o.tidy)(function(){var t,r=e instanceof o.Tensor?e:o.browser.fromPixels(e),n=(0,o.tensor2d)((ew(x,"inputResolution"),[1/x.width*I[0][0]*_.width,1/x.height*I[0][1]*_.width,I[0][3]*_.width,1/x.width*I[1][0]*_.height,1/x.height*I[1][1]*_.height,I[1][3]*_.height,0,0]),[1,8]),s=o.image.transform((0,o.expandDims)((0,o.cast)(r,"float32")),n,"bilinear","zero"===y?"constant":"nearest",0,[x.height,x.width]);return null!=b?(t=function(e,t,r,n){!1;var s=(n-r)/255;return{scale:s,offset:r-e*s}}(0,0,b[0],b[1]),(0,o.tidy)(function(){return(0,o.add)((0,o.mul)(s,t.scale),t.offset)})):s}),padding:j,transformationMatrix:I}).imageTensor,T=(0,o.slice)(r.model.predict(w),[0,0,0,1],-1),N=eI(e),S=(0,o.tidy)(function(){var e=(0,o.squeeze)(T,[0]),t=e.shape[2];if(1===t){var r=e;switch(eE.activation){case"none":break;case"sigmoid":r=(0,o.sigmoid)(r);break;case"softmax":throw Error("Softmax activation requires two channels.");default:throw Error("Activation not supported ("+eE.activation+")")}var n=N?o.image.resizeBilinear(r,[N.height,N.width]):r;return(0,o.squeeze)(n,[2])}throw Error("Unsupported number of tensor channels "+t)}),C=(0,o.expandDims)(S,2),E=(0,o.pad)(C,[[0,0],[0,0],[0,1]]);return(0,o.mirrorPad)(E,[[0,0],[0,0],[0,2]],"symmetric")}))}]]})})},e.prototype.dispose=function(){this.model.dispose()},e.prototype.reset=function(){},e}();function eD(e,t){return d(this,void 0,void 0,function(){var r,n;return f(this,function(s){switch(e){case eR.MediaPipeSelfieSegmentation:if(r=void 0,null!=(n=t)){if("tfjs"===n.runtime)return[2,function(e){return d(this,void 0,void 0,function(){var t,r,n;return f(this,function(s){switch(s.label){case 0:return r="string"==typeof(t=function(e){if(null==e)return c({},eT);var t=c({},e);if(t.runtime="tfjs",null==t.modelType&&(t.modelType=eT.modelType),"general"!==t.modelType&&"landscape"!==t.modelType)throw Error("Model type must be one of general or landscape, but got "+t.modelType);return null==t.modelUrl&&("general"===t.modelType?t.modelUrl="https://tfhub.dev/mediapipe/tfjs-model/selfie_segmentation/general/1":t.modelUrl="https://tfhub.dev/mediapipe/tfjs-model/selfie_segmentation/landscape/1"),t}(e)).modelUrl&&t.modelUrl.indexOf("https://tfhub.dev")>-1,[4,(0,l.loadGraphModel)(t.modelUrl,{fromTFHub:r})];case 1:return n=s.sent(),[2,new eP(t.modelType,n)]}})})}(n)];if("mediapipe"===n.runtime)return[2,function(e){return d(this,void 0,void 0,function(){var t;return f(this,function(r){switch(r.label){case 0:return[4,(t=new ej(function(e){if(null==e)return c({},eb);var t=c({},e);return t.runtime="mediapipe",null==t.modelType&&(t.modelType=eb.modelType),t}(e))).initialize()];case 1:return r.sent(),[2,t]}})})}(n)];r=n.runtime}throw Error("Expect modelConfig.runtime to be either 'tfjs' or 'mediapipe', but got "+r);case eR.BodyPix:return[2,function(e){return d(this,void 0,void 0,function(){return f(this,function(t){return[2,(function(e){return void 0===e&&(e=ea),d(this,void 0,void 0,function(){return f(this,function(t){return"ResNet50"===(e=function(e){if(null==(e=e||ea).architecture&&(e.architecture="MobileNetV1"),0>eo.indexOf(e.architecture))throw Error("Invalid architecture "+e.architecture+". Should be one of "+eo);if(null==e.outputStride&&(e.outputStride=16),0>el[e.architecture].indexOf(e.outputStride))throw Error("Invalid outputStride "+e.outputStride+". Should be one of "+el[e.architecture]+" for architecture "+e.architecture+".");if(null==e.multiplier&&(e.multiplier=1),0>ei[e.architecture].indexOf(e.multiplier))throw Error("Invalid multiplier "+e.multiplier+". Should be one of "+ei[e.architecture]+" for architecture "+e.architecture+".");if(null==e.quantBytes&&(e.quantBytes=4),0>eu.indexOf(e.quantBytes))throw Error("Invalid quantBytes "+e.quantBytes+". Should be one of "+eu+" for architecture "+e.architecture+".");return e}(e)).architecture?[2,function(e){return d(this,void 0,void 0,function(){var t,r,n;return f(this,function(s){switch(s.label){case 0:var a;if(t=e.outputStride,r=e.quantBytes,null==o)throw Error("Cannot find TensorFlow.js. If you are using a + \ No newline at end of file diff --git a/docs/document/advanced/built-in.html b/docs/document/advanced/built-in.html index fed630ee3..e3e3faf88 100644 --- a/docs/document/advanced/built-in.html +++ b/docs/document/advanced/built-in.html @@ -206,7 +206,7 @@ art.on('ready', () => { art.plugins.add(myPlugin); }); - + \ No newline at end of file diff --git a/docs/document/advanced/class.html b/docs/document/advanced/class.html index 1d045a4fa..81413648e 100644 --- a/docs/document/advanced/class.html +++ b/docs/document/advanced/class.html @@ -31,7 +31,7 @@ }); console.info([...Artplayer.instances]);

version ​

返回播放器的版本信息

▶ Run Code
js
console.info(Artplayer.version);

env ​

返回播放器的环境变量

▶ Run Code
js
console.info(Artplayer.env);

build ​

返回播放器的打包时间

▶ Run Code
js
console.info(Artplayer.build);

config ​

返回视频的默认配置

▶ Run Code
js
console.info(Artplayer.config);

utils ​

返回播放器的工具函数集合

▶ Run Code
js
console.info(Artplayer.utils);

全部工具函数请参考以下地址:

artplayer/types/utils.d.ts

scheme ​

返回播放器选项的校验方案

▶ Run Code
js
console.info(Artplayer.scheme);

Emitter ​

返回事件分发器的构造函数

▶ Run Code
js
console.info(Artplayer.Emitter);

validator ​

返回选项的校验函数

▶ Run Code
js
console.info(Artplayer.validator);

kindOf ​

返回类型检测的函数工具

▶ Run Code
js
console.info(Artplayer.kindOf);

html ​

返回播放器所需的 html 字符串

▶ Run Code
js
console.info(Artplayer.html);

option ​

返回播放器的默认选项

▶ Run Code
js
console.info(Artplayer.option);
- + \ No newline at end of file diff --git a/docs/document/advanced/event.html b/docs/document/advanced/event.html index 43ed805c5..65ea7bf40 100644 --- a/docs/document/advanced/event.html +++ b/docs/document/advanced/event.html @@ -385,7 +385,7 @@ art.on('keydown', (event) => { console.log(event.code); });

video:canplay ​

浏览器可以播放媒体文件了,但估计没有足够的数据来支撑播放到结束,不必停下来进一步缓冲内容

video:canplaythrough ​

浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束

video:complete ​

OfflineAudioContext 渲染完成

video:durationchange ​

duration 属性的值改变时触发

video:emptied ​

媒体内容变为空;例如,当这个 media 已经加载完成(或者部分加载完成),则发送此事件,并调用 load() 方法重新加载它

video:ended ​

视频停止播放,因为 media 已经到达结束点

video:error ​

获取媒体数据时出错,或者资源类型不是受支持的媒体格式

video:loadeddata ​

media 中的首帧已经完成加载

video:loadedmetadata ​

已加载元数据

video:pause ​

播放已暂停

video:play ​

播放已开始

video:playing ​

由于缺乏数据而暂停或延迟后,播放准备开始

video:progress ​

在浏览器加载资源时周期性触发

video:ratechange ​

播放速率发生变化

video:seeked ​

跳帧(seek)操作完成

video:seeking ​

跳帧(seek)操作开始

video:stalled ​

用户代理(user agent)正在尝试获取媒体数据,但数据意外未出现

video:suspend ​

媒体数据加载已暂停

video:timeupdate ​

currentTime 属性指定的时间发生变化

video:volumechange ​

音量发生变化

video:waiting ​

由于暂时缺少数据,播放已停止

- + \ No newline at end of file diff --git a/docs/document/advanced/global.html b/docs/document/advanced/global.html index e01ecf8f1..dd9ae54a8 100644 --- a/docs/document/advanced/global.html +++ b/docs/document/advanced/global.html @@ -240,7 +240,7 @@ url: '/assets/sample/video.mp4', miniProgressBar: true, }); - + \ No newline at end of file diff --git a/docs/document/advanced/plugin.html b/docs/document/advanced/plugin.html index ff8e3f4d4..6396d0d7e 100644 --- a/docs/document/advanced/plugin.html +++ b/docs/document/advanced/plugin.html @@ -122,7 +122,7 @@ }) ], }); - + \ No newline at end of file diff --git a/docs/document/advanced/property.html b/docs/document/advanced/property.html index 045df7663..ba28dc92e 100644 --- a/docs/document/advanced/property.html +++ b/docs/document/advanced/property.html @@ -427,7 +427,7 @@ art.on('ready', () => { art.subtitleOffset = 1; }); - + \ No newline at end of file diff --git a/docs/document/assets/en_index.md.C5Q5CphE.js b/docs/document/assets/en_index.md.kTZkfRT-.js similarity index 97% rename from docs/document/assets/en_index.md.C5Q5CphE.js rename to docs/document/assets/en_index.md.kTZkfRT-.js index 0b5ff2ce7..6644fe0db 100644 --- a/docs/document/assets/en_index.md.C5Q5CphE.js +++ b/docs/document/assets/en_index.md.kTZkfRT-.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,o as n,ak as l}from"./chunks/framework.CIzAx-5p.js";const c=JSON.parse('{"title":"Installation and Usage","description":"","frontmatter":{},"headers":[],"relativePath":"en/index.md","filePath":"en/index.md","lastUpdated":1718551600000}'),p={name:"en/index.md"};function e(t,s,h,k,r,E){return n(),a("div",null,s[0]||(s[0]=[l(`

Installation and Usage ​

Installation ​

bash
npm install artplayer
bash
yarn add artplayer
bash
pnpm add artplayer
html
<script src="path/to/artplayer.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
bash
https://unpkg.com/artplayer/dist/artplayer.js

Usage ​

html
<html>
+import{_ as i,c as a,o as n,ak as l}from"./chunks/framework.CIzAx-5p.js";const c=JSON.parse('{"title":"Installation and Usage","description":"","frontmatter":{},"headers":[],"relativePath":"en/index.md","filePath":"en/index.md","lastUpdated":1718551600000}'),p={name:"en/index.md"};function e(t,s,h,k,r,E){return n(),a("div",null,s[0]||(s[0]=[l(`

Installation and Usage ​

Installation ​

bash
npm install artplayer
bash
yarn add artplayer
bash
pnpm add artplayer
html
<script src="path/to/artplayer.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
bash
https://unpkg.com/artplayer/dist/artplayer.js

Usage ​

html
<html>
     <head>
         <title>ArtPlayer Demo</title>
         <meta charset="UTF-8" />
@@ -19,7 +19,7 @@ import{_ as i,c as a,o as n,ak as l}from"./chunks/framework.CIzAx-5p.js";const c
           });
         </script>
     </body>
-</html>

Warning

The player's size depends on the size of the container container, so your container container must have a size.

You can see more examples of use at the following link

/packages/artplayer-template

Vue.js ​

vue
<template>
+</html>

Warning

The player's size depends on the size of the container container, so your container container must have a size.

You can see more examples of use at the following link

/packages/artplayer-template

Vue.js ​

vue
<template>
   <div ref="artRef"></div>
 </template>
 
@@ -83,7 +83,7 @@ import{_ as i,c as a,o as n,ak as l}from"./chunks/framework.CIzAx-5p.js";const c
     },
   },
 };
-</script>

Artplayer Not Responsive:

Modifying option directly in Vue.js will not change the player

React.js ​

jsx
import { useEffect, useRef } from 'react';
+</script>

Artplayer Not Responsive:

Modifying option directly in Vue.js will not change the player

React.js ​

jsx
import { useEffect, useRef } from 'react';
 import Artplayer from 'artplayer';
 
 export default function Player({ option, getInstance, ...rest }) {
@@ -171,4 +171,4 @@ import{_ as i,c as a,o as n,ak as l}from"./chunks/framework.CIzAx-5p.js";const c
 
 option.volume = 0.5;
 
-const art8 = new Artplayer(option);

Ancient Browsers ​

The production build of artplayer.js is only compatible with the latest major version of Chrome: last 1 Chrome version

For ancient browsers, you can use the artplayer.legacy.js file, which is compatible up to: IE 11

js
import Artplayer from 'artplayer/dist/artplayer.legacy.js';
bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.legacy.js
bash
https://unpkg.com/artplayer/dist/artplayer.legacy.js

If you need to support even older browsers, please modify the following configuration and then build it yourself:

Build configuration: scripts/build.js

Refer to documentation: browserslist

`,41)]))}const g=i(p,[["render",e]]);export{c as __pageData,g as default}; +const art8 = new Artplayer(option);

Ancient Browsers ​

The production build of artplayer.js is only compatible with the latest major version of Chrome: last 1 Chrome version

For ancient browsers, you can use the artplayer.legacy.js file, which is compatible up to: IE 11

js
import Artplayer from 'artplayer/dist/artplayer.legacy.js';
bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.legacy.js
bash
https://unpkg.com/artplayer/dist/artplayer.legacy.js

If you need to support even older browsers, please modify the following configuration and then build it yourself:

Build configuration: scripts/build.js

Refer to documentation: browserslist

`,41)]))}const g=i(p,[["render",e]]);export{c as __pageData,g as default}; diff --git a/docs/document/assets/en_index.md.C5Q5CphE.lean.js b/docs/document/assets/en_index.md.kTZkfRT-.lean.js similarity index 100% rename from docs/document/assets/en_index.md.C5Q5CphE.lean.js rename to docs/document/assets/en_index.md.kTZkfRT-.lean.js diff --git a/docs/document/assets/en_start_i18n.md.DdodGftR.js b/docs/document/assets/en_start_i18n.md.tulf_fkW.js similarity index 98% rename from docs/document/assets/en_start_i18n.md.DdodGftR.js rename to docs/document/assets/en_start_i18n.md.tulf_fkW.js index 6af128a71..cfdd72132 100644 --- a/docs/document/assets/en_start_i18n.md.DdodGftR.js +++ b/docs/document/assets/en_start_i18n.md.tulf_fkW.js @@ -2,7 +2,7 @@ import{_ as a,c as i,o as n,ak as l}from"./chunks/framework.CIzAx-5p.js";const g container: '.artplayer-app', url: '/assets/sample/video.mp4', lang: 'zh-cn', // or 'en' -});

Importing Languages ​

Language files before packaging are located in: artplayer/src/i18n/*.js. You are welcome to add your language. Packaged language files are located at: artplayer/dist/i18n/*.js

js
import id from 'artplayer/dist/i18n/id.js';
+});

Importing Languages ​

Language files before packaging are located in: artplayer/src/i18n/*.js. You are welcome to add your language. Packaged language files are located at: artplayer/dist/i18n/*.js

js
import id from 'artplayer/dist/i18n/id.js';
 import zhTw from 'artplayer/dist/i18n/zh-tw.js';
 
 var art = new Artplayer({
diff --git a/docs/document/assets/en_start_i18n.md.DdodGftR.lean.js b/docs/document/assets/en_start_i18n.md.tulf_fkW.lean.js
similarity index 100%
rename from docs/document/assets/en_start_i18n.md.DdodGftR.lean.js
rename to docs/document/assets/en_start_i18n.md.tulf_fkW.lean.js
diff --git a/docs/document/assets/index.md.D3g3xAoX.js b/docs/document/assets/index.md.C6LGAVu8.js
similarity index 97%
rename from docs/document/assets/index.md.D3g3xAoX.js
rename to docs/document/assets/index.md.C6LGAVu8.js
index 47529b36d..ffe17a75a 100644
--- a/docs/document/assets/index.md.D3g3xAoX.js
+++ b/docs/document/assets/index.md.C6LGAVu8.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,o as n,ak as l}from"./chunks/framework.CIzAx-5p.js";const c=JSON.parse('{"title":"安装使用","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1718551600000}'),p={name:"index.md"};function e(t,s,h,k,r,E){return n(),a("div",null,s[0]||(s[0]=[l(`

安装使用 ​

安装 ​

bash
npm install artplayer
bash
yarn add artplayer
bash
pnpm add artplayer
html
<script src="path/to/artplayer.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
bash
https://unpkg.com/artplayer/dist/artplayer.js

使用 ​

html
<html>
+import{_ as i,c as a,o as n,ak as l}from"./chunks/framework.CIzAx-5p.js";const c=JSON.parse('{"title":"安装使用","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1718551600000}'),p={name:"index.md"};function e(t,s,h,k,r,E){return n(),a("div",null,s[0]||(s[0]=[l(`

安装使用 ​

安装 ​

bash
npm install artplayer
bash
yarn add artplayer
bash
pnpm add artplayer
html
<script src="path/to/artplayer.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
bash
https://unpkg.com/artplayer/dist/artplayer.js

使用 ​

html
<html>
     <head>
         <title>ArtPlayer Demo</title>
         <meta charset="UTF-8" />
@@ -19,7 +19,7 @@ import{_ as i,c as a,o as n,ak as l}from"./chunks/framework.CIzAx-5p.js";const c
           });
         </script>
     </body>
-</html>

提示

播放器的尺寸依赖于容器 container 的尺寸,所以你的容器 container 必须是有尺寸的

以下链接可以看到更多的使用例子

/packages/artplayer-template

Vue.js ​

vue
<template>
+</html>

提示

播放器的尺寸依赖于容器 container 的尺寸,所以你的容器 container 必须是有尺寸的

以下链接可以看到更多的使用例子

/packages/artplayer-template

Vue.js ​

vue
<template>
   <div ref="artRef"></div>
 </template>
 
@@ -83,7 +83,7 @@ import{_ as i,c as a,o as n,ak as l}from"./chunks/framework.CIzAx-5p.js";const c
     },
   },
 };
-</script>

Artplayer 非响应式:

在 Vue.js 里直接修改 option 是不会改变播放器的

React.js ​

jsx
import { useEffect, useRef } from 'react';
+</script>

Artplayer 非响应式:

在 Vue.js 里直接修改 option 是不会改变播放器的

React.js ​

jsx
import { useEffect, useRef } from 'react';
 import Artplayer from 'artplayer';
 
 export default function Player({ option, getInstance, ...rest }) {
@@ -171,4 +171,4 @@ import{_ as i,c as a,o as n,ak as l}from"./chunks/framework.CIzAx-5p.js";const c
 
 option.volume = 0.5;
 
-const art8 = new Artplayer(option);

古老的浏览器 ​

生产构建的 artplayer.js 只兼容最新一个主版本的 Chrome:last 1 Chrome version

对于古老的浏览器,可以使用 artplayer.legacy.js 文件,可以兼容到:IE 11

js
import Artplayer from 'artplayer/dist/artplayer.legacy.js';
bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.legacy.js
bash
https://unpkg.com/artplayer/dist/artplayer.legacy.js

假如你要兼容更古老的浏览器时,请修改以下配置然后自行构建:

构建配置:scripts/build.js

参考文档:browserslist

`,41)]))}const g=i(p,[["render",e]]);export{c as __pageData,g as default}; +const art8 = new Artplayer(option);

古老的浏览器 ​

生产构建的 artplayer.js 只兼容最新一个主版本的 Chrome:last 1 Chrome version

对于古老的浏览器,可以使用 artplayer.legacy.js 文件,可以兼容到:IE 11

js
import Artplayer from 'artplayer/dist/artplayer.legacy.js';
bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.legacy.js
bash
https://unpkg.com/artplayer/dist/artplayer.legacy.js

假如你要兼容更古老的浏览器时,请修改以下配置然后自行构建:

构建配置:scripts/build.js

参考文档:browserslist

`,41)]))}const g=i(p,[["render",e]]);export{c as __pageData,g as default}; diff --git a/docs/document/assets/index.md.D3g3xAoX.lean.js b/docs/document/assets/index.md.C6LGAVu8.lean.js similarity index 100% rename from docs/document/assets/index.md.D3g3xAoX.lean.js rename to docs/document/assets/index.md.C6LGAVu8.lean.js diff --git a/docs/document/assets/plugin_danmuku.md.DbxWAnMR.js b/docs/document/assets/plugin_danmuku.md.D3fHuMpT.js similarity index 99% rename from docs/document/assets/plugin_danmuku.md.DbxWAnMR.js rename to docs/document/assets/plugin_danmuku.md.D3fHuMpT.js index 38649a5e9..11ef866d1 100644 --- a/docs/document/assets/plugin_danmuku.md.DbxWAnMR.js +++ b/docs/document/assets/plugin_danmuku.md.D3fHuMpT.js @@ -1,4 +1,4 @@ -import{_ as n,c as l,o as p,ak as s,j as i}from"./chunks/framework.CIzAx-5p.js";const y=JSON.parse('{"title":"弹幕库","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/danmuku.md","filePath":"plugin/danmuku.md","lastUpdated":1734270991000}'),h={name:"plugin/danmuku.md"};function e(k,a,t,r,E,d){return p(),l("div",null,a[0]||(a[0]=[s(`

弹幕库 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-danmuku
bash
yarn add artplayer-plugin-danmuku
bash
pnpm add artplayer-plugin-danmuku
html
<script src="path/to/artplayer-plugin-danmuku.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js
bash
https://unpkg.com/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js

弹幕结构 ​

每一个弹幕是一个对象,多个弹幕组成的数组就是弹幕库,通常只需要text就可以发送一个弹幕,其余都是非必要参数

js
{
+import{_ as n,c as l,o as p,ak as s,j as i}from"./chunks/framework.CIzAx-5p.js";const y=JSON.parse('{"title":"弹幕库","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/danmuku.md","filePath":"plugin/danmuku.md","lastUpdated":1734270991000}'),h={name:"plugin/danmuku.md"};function e(k,a,t,r,E,d){return p(),l("div",null,a[0]||(a[0]=[s(`

弹幕库 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-danmuku
bash
yarn add artplayer-plugin-danmuku
bash
pnpm add artplayer-plugin-danmuku
html
<script src="path/to/artplayer-plugin-danmuku.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js
bash
https://unpkg.com/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js

弹幕结构 ​

每一个弹幕是一个对象,多个弹幕组成的数组就是弹幕库,通常只需要text就可以发送一个弹幕,其余都是非必要参数

js
{
     text: '', // 弹幕文本
     time: 10, // 弹幕时间, 默认为当前播放器时间
     mode: 0, // 弹幕模式: 0: 滚动(默认),1: 顶部,2: 底部
diff --git a/docs/document/assets/plugin_danmuku.md.DbxWAnMR.lean.js b/docs/document/assets/plugin_danmuku.md.D3fHuMpT.lean.js
similarity index 100%
rename from docs/document/assets/plugin_danmuku.md.DbxWAnMR.lean.js
rename to docs/document/assets/plugin_danmuku.md.D3fHuMpT.lean.js
diff --git a/docs/document/assets/start_i18n.md.pF9oCBr8.js b/docs/document/assets/start_i18n.md.CITlB1C5.js
similarity index 98%
rename from docs/document/assets/start_i18n.md.pF9oCBr8.js
rename to docs/document/assets/start_i18n.md.CITlB1C5.js
index 2ac32a2ce..59602b6d4 100644
--- a/docs/document/assets/start_i18n.md.pF9oCBr8.js
+++ b/docs/document/assets/start_i18n.md.CITlB1C5.js
@@ -2,7 +2,7 @@ import{_ as a,c as i,o as n,ak as l}from"./chunks/framework.CIzAx-5p.js";const c
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     lang: 'zh-cn', // or 'en'
-});

导入语言 ​

打包前的语言文件存放于: artplayer/src/i18n/*.js, 欢迎来添加你的语言

打包后的语言文件存放于: artplayer/dist/i18n/*.js

js
import id from 'artplayer/dist/i18n/id.js';
+});

导入语言 ​

打包前的语言文件存放于: artplayer/src/i18n/*.js, 欢迎来添加你的语言

打包后的语言文件存放于: artplayer/dist/i18n/*.js

js
import id from 'artplayer/dist/i18n/id.js';
 import zhTw from 'artplayer/dist/i18n/zh-tw.js';
 
 var art = new Artplayer({
diff --git a/docs/document/assets/start_i18n.md.pF9oCBr8.lean.js b/docs/document/assets/start_i18n.md.CITlB1C5.lean.js
similarity index 100%
rename from docs/document/assets/start_i18n.md.pF9oCBr8.lean.js
rename to docs/document/assets/start_i18n.md.CITlB1C5.lean.js
diff --git a/docs/document/component/contextmenu.html b/docs/document/component/contextmenu.html
index 96ea99731..d8b362e10 100644
--- a/docs/document/component/contextmenu.html
+++ b/docs/document/component/contextmenu.html
@@ -106,7 +106,7 @@
         })
     }, 3000);
 });
- + \ No newline at end of file diff --git a/docs/document/component/controls.html b/docs/document/component/controls.html index 4e87fa446..dd07a64fc 100644 --- a/docs/document/component/controls.html +++ b/docs/document/component/controls.html @@ -153,7 +153,7 @@ }); }, 3000); });
- + \ No newline at end of file diff --git a/docs/document/component/layers.html b/docs/document/component/layers.html index d6c682a8f..db604dc40 100644 --- a/docs/document/component/layers.html +++ b/docs/document/component/layers.html @@ -125,7 +125,7 @@ }); }, 3000); }); - + \ No newline at end of file diff --git a/docs/document/component/setting.html b/docs/document/component/setting.html index daed0c15c..4aec4c7b9 100644 --- a/docs/document/component/setting.html +++ b/docs/document/component/setting.html @@ -245,7 +245,7 @@ }); }, 3000); }); - + \ No newline at end of file diff --git a/docs/document/en/advanced/built-in.html b/docs/document/en/advanced/built-in.html index 8d0151702..7ddd9ff89 100644 --- a/docs/document/en/advanced/built-in.html +++ b/docs/document/en/advanced/built-in.html @@ -206,7 +206,7 @@ art.on('ready', () => { art.plugins.add(myPlugin); }); - + \ No newline at end of file diff --git a/docs/document/en/advanced/class.html b/docs/document/en/advanced/class.html index 21f9293c8..2be099dfa 100644 --- a/docs/document/en/advanced/class.html +++ b/docs/document/en/advanced/class.html @@ -31,7 +31,7 @@ }); console.info([...Artplayer.instances]);

version ​

Returns the version information of the player.

▶ Run Code
js
console.info(Artplayer.version);

env ​

Returns the environment variables of the player.

▶ Run Code
js
console.info(Artplayer.env);

build ​

Returns the build time of the player

▶ Run Code
js
console.info(Artplayer.build);

config ​

Returns the default configuration of the video

▶ Run Code
js
console.info(Artplayer.config);

utils ​

Returns a collection of utility functions for the player

▶ Run Code
js
console.info(Artplayer.utils);

For the full list of utility functions, please refer to the following address:

artplayer/types/utils.d.ts

scheme ​

Returns the validation scheme for the player options

▶ Run Code
js
console.info(Artplayer.scheme);

Emitter ​

Returns the constructor for the event dispatcher

▶ Run Code
js
console.info(Artplayer.Emitter);

validator ​

Returns the validation function for options

▶ Run Code
js
console.info(Artplayer.validator);

kindOf ​

Returns the function tool for type checking

▶ Run Code
js
console.info(Artplayer.kindOf);

html ​

Returns the html string required for the player

▶ Run Code
js
console.info(Artplayer.html);

option ​

Returns the player's default options

▶ Run Code
js
console.info(Artplayer.option);
- + \ No newline at end of file diff --git a/docs/document/en/advanced/event.html b/docs/document/en/advanced/event.html index 6b2635e7b..a28cef702 100644 --- a/docs/document/en/advanced/event.html +++ b/docs/document/en/advanced/event.html @@ -385,7 +385,7 @@ art.on('keydown', (event) => { console.log(event.code); });

video:canplay ​

The browser can play the media file, but estimates there is not enough data to play through to the end without having to stop for further buffering

video:canplaythrough ​

The browser estimates it can play the media through to the end without stopping for content buffering

video:complete ​

OfflineAudioContext rendering is complete

video:durationchange ​

Triggered when the value of the duration property changes

video:emptied ​

The media content becomes empty; for example, when this media has been completely loaded (or partially loaded), this event is sent and the load() method is called to reload it

video:ended ​

The video has stopped because the media reached the end point

video:error ​

An error occurred while fetching media data, or the resource type is not a supported media format

video:loadeddata ​

The first frame of the media has finished loading

video:loadedmetadata ​

Metadata has been loaded

video:pause ​

Playback has been paused

video:play ​

Playback has started

video:playing ​

Playback is ready to start following a pause or delay due to lack of data

video:progress ​

Periodically triggered while the browser is loading resources

video:ratechange ​

The playback rate has changed

video:seeked ​

A seek (frame skipping) operation has completed

video:seeking ​

A seek (frame skipping) operation has started

video:stalled ​

The user agent is trying to fetch media data, but the data unexpectedly has not appeared

video:suspend ​

Media data loading has been suspended

video:timeupdate ​

The time specified by the currentTime attribute has changed

video:volumechange ​

Volume changed

video:waiting ​

Playback has stopped due to temporarily missing data

- + \ No newline at end of file diff --git a/docs/document/en/advanced/global.html b/docs/document/en/advanced/global.html index b25ae9938..1948447ea 100644 --- a/docs/document/en/advanced/global.html +++ b/docs/document/en/advanced/global.html @@ -245,7 +245,7 @@ url: '/assets/sample/video.mp4', miniProgressBar: true, }); - + \ No newline at end of file diff --git a/docs/document/en/advanced/plugin.html b/docs/document/en/advanced/plugin.html index 13504e808..aa5d64108 100644 --- a/docs/document/en/advanced/plugin.html +++ b/docs/document/en/advanced/plugin.html @@ -122,7 +122,7 @@ }) ], }); - + \ No newline at end of file diff --git a/docs/document/en/advanced/property.html b/docs/document/en/advanced/property.html index f6367512a..3a2a03066 100644 --- a/docs/document/en/advanced/property.html +++ b/docs/document/en/advanced/property.html @@ -428,7 +428,7 @@ art.on('ready', () => { art.subtitleOffset = 1; }); - + \ No newline at end of file diff --git a/docs/document/en/component/contextmenu.html b/docs/document/en/component/contextmenu.html index 11d82b84d..d58624aa4 100644 --- a/docs/document/en/component/contextmenu.html +++ b/docs/document/en/component/contextmenu.html @@ -106,7 +106,7 @@ }) }, 3000); }); - + \ No newline at end of file diff --git a/docs/document/en/component/controls.html b/docs/document/en/component/controls.html index 68aca30fb..074bbf294 100644 --- a/docs/document/en/component/controls.html +++ b/docs/document/en/component/controls.html @@ -153,7 +153,7 @@ }); }, 3000); }); - + \ No newline at end of file diff --git a/docs/document/en/component/layers.html b/docs/document/en/component/layers.html index 009b0964a..be5c77e3d 100644 --- a/docs/document/en/component/layers.html +++ b/docs/document/en/component/layers.html @@ -125,7 +125,7 @@ }); }, 3000); }); - + \ No newline at end of file diff --git a/docs/document/en/component/setting.html b/docs/document/en/component/setting.html index 70557c803..4819784e0 100644 --- a/docs/document/en/component/setting.html +++ b/docs/document/en/component/setting.html @@ -245,7 +245,7 @@ }); }, 3000); }); - + \ No newline at end of file diff --git a/docs/document/en/index.html b/docs/document/en/index.html index 4802fd9d4..b392cf181 100644 --- a/docs/document/en/index.html +++ b/docs/document/en/index.html @@ -13,7 +13,7 @@ - + @@ -23,7 +23,7 @@ -
Skip to content

Installation and Usage ​

Installation ​

bash
npm install artplayer
bash
yarn add artplayer
bash
pnpm add artplayer
html
<script src="path/to/artplayer.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
bash
https://unpkg.com/artplayer/dist/artplayer.js

Usage ​

html
<html>
+    
Skip to content

Installation and Usage ​

Installation ​

bash
npm install artplayer
bash
yarn add artplayer
bash
pnpm add artplayer
html
<script src="path/to/artplayer.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
bash
https://unpkg.com/artplayer/dist/artplayer.js

Usage ​

html
<html>
     <head>
         <title>ArtPlayer Demo</title>
         <meta charset="UTF-8" />
@@ -44,7 +44,7 @@
           });
         </script>
     </body>
-</html>

Warning

The player's size depends on the size of the container container, so your container container must have a size.

You can see more examples of use at the following link

/packages/artplayer-template

Vue.js ​

vue
<template>
+</html>

Warning

The player's size depends on the size of the container container, so your container container must have a size.

You can see more examples of use at the following link

/packages/artplayer-template

Vue.js ​

vue
<template>
   <div ref="artRef"></div>
 </template>
 
@@ -108,7 +108,7 @@
     },
   },
 };
-</script>

Artplayer Not Responsive:

Modifying option directly in Vue.js will not change the player

React.js ​

jsx
import { useEffect, useRef } from 'react';
+</script>

Artplayer Not Responsive:

Modifying option directly in Vue.js will not change the player

React.js ​

jsx
import { useEffect, useRef } from 'react';
 import Artplayer from 'artplayer';
 
 export default function Player({ option, getInstance, ...rest }) {
@@ -196,8 +196,8 @@
 
 option.volume = 0.5;
 
-const art8 = new Artplayer(option);

Ancient Browsers ​

The production build of artplayer.js is only compatible with the latest major version of Chrome: last 1 Chrome version

For ancient browsers, you can use the artplayer.legacy.js file, which is compatible up to: IE 11

js
import Artplayer from 'artplayer/dist/artplayer.legacy.js';
bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.legacy.js
bash
https://unpkg.com/artplayer/dist/artplayer.legacy.js

If you need to support even older browsers, please modify the following configuration and then build it yourself:

Build configuration: scripts/build.js

Refer to documentation: browserslist

- +const art8 = new Artplayer(option);

Ancient Browsers ​

The production build of artplayer.js is only compatible with the latest major version of Chrome: last 1 Chrome version

For ancient browsers, you can use the artplayer.legacy.js file, which is compatible up to: IE 11

js
import Artplayer from 'artplayer/dist/artplayer.legacy.js';
bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.legacy.js
bash
https://unpkg.com/artplayer/dist/artplayer.legacy.js

If you need to support even older browsers, please modify the following configuration and then build it yourself:

Build configuration: scripts/build.js

Refer to documentation: browserslist

+ \ No newline at end of file diff --git a/docs/document/en/start/i18n.html b/docs/document/en/start/i18n.html index 78f108db8..fd4c5a8de 100644 --- a/docs/document/en/start/i18n.html +++ b/docs/document/en/start/i18n.html @@ -13,7 +13,7 @@ - + @@ -27,7 +27,7 @@ container: '.artplayer-app', url: '/assets/sample/video.mp4', lang: 'zh-cn', // or 'en' -});

Importing Languages ​

Language files before packaging are located in: artplayer/src/i18n/*.js. You are welcome to add your language. Packaged language files are located at: artplayer/dist/i18n/*.js

js
import id from 'artplayer/dist/i18n/id.js';
+});

Importing Languages ​

Language files before packaging are located in: artplayer/src/i18n/*.js. You are welcome to add your language. Packaged language files are located at: artplayer/dist/i18n/*.js

js
import id from 'artplayer/dist/i18n/id.js';
 import zhTw from 'artplayer/dist/i18n/zh-tw.js';
 
 var art = new Artplayer({
@@ -75,7 +75,7 @@
         },
     },
 });
- + \ No newline at end of file diff --git a/docs/document/en/start/option.html b/docs/document/en/start/option.html index c6b805455..84a5b3571 100644 --- a/docs/document/en/start/option.html +++ b/docs/document/en/start/option.html @@ -411,7 +411,7 @@ url: '/assets/sample/video.mp4', proxy: () => document.createElement('video') }); - + \ No newline at end of file diff --git a/docs/document/hashmap.json b/docs/document/hashmap.json index 33fc31b9d..05a4b1339 100644 --- a/docs/document/hashmap.json +++ b/docs/document/hashmap.json @@ -1 +1 @@ -{"advanced_built-in.md":"xIN6yJEQ","advanced_class.md":"eY3DVSC3","advanced_event.md":"c-TsYEyx","advanced_global.md":"BrPgVIjS","advanced_plugin.md":"BXZAPwSl","advanced_property.md":"Bv9cWBio","component_contextmenu.md":"-d4adzZb","component_controls.md":"DZNfg7M_","component_layers.md":"BYX-1Wvu","component_setting.md":"B_SkzqZZ","en_advanced_built-in.md":"TNSAz5Xl","en_advanced_class.md":"g5hMOwKP","en_advanced_event.md":"rzb3kj1q","en_advanced_global.md":"CeJCRiyy","en_advanced_plugin.md":"BS5dhI7P","en_advanced_property.md":"DT7zAMKq","en_component_contextmenu.md":"CSeB35ob","en_component_controls.md":"CamUOgKQ","en_component_layers.md":"BtuRSWO9","en_component_setting.md":"DHxmIQKF","en_index.md":"C5Q5CphE","en_start_i18n.md":"DdodGftR","en_start_option.md":"WkjoTmIK","index.md":"D3g3xAoX","plugin_danmuku.md":"DbxWAnMR","start_i18n.md":"pF9oCBr8","start_option.md":"VVl3BaRC"} +{"advanced_built-in.md":"xIN6yJEQ","advanced_class.md":"eY3DVSC3","advanced_event.md":"c-TsYEyx","advanced_global.md":"BrPgVIjS","advanced_plugin.md":"BXZAPwSl","advanced_property.md":"Bv9cWBio","component_contextmenu.md":"-d4adzZb","component_controls.md":"DZNfg7M_","component_layers.md":"BYX-1Wvu","component_setting.md":"B_SkzqZZ","en_advanced_built-in.md":"TNSAz5Xl","en_advanced_class.md":"g5hMOwKP","en_advanced_event.md":"rzb3kj1q","en_advanced_global.md":"CeJCRiyy","en_advanced_plugin.md":"BS5dhI7P","en_advanced_property.md":"DT7zAMKq","en_component_contextmenu.md":"CSeB35ob","en_component_controls.md":"CamUOgKQ","en_component_layers.md":"BtuRSWO9","en_component_setting.md":"DHxmIQKF","en_index.md":"kTZkfRT-","en_start_i18n.md":"tulf_fkW","en_start_option.md":"WkjoTmIK","index.md":"C6LGAVu8","plugin_danmuku.md":"D3fHuMpT","start_i18n.md":"CITlB1C5","start_option.md":"VVl3BaRC"} diff --git a/docs/document/index.html b/docs/document/index.html index 0f1a75d99..e5fbdf971 100644 --- a/docs/document/index.html +++ b/docs/document/index.html @@ -13,7 +13,7 @@ - + @@ -23,7 +23,7 @@ -
Skip to content

安装使用 ​

安装 ​

bash
npm install artplayer
bash
yarn add artplayer
bash
pnpm add artplayer
html
<script src="path/to/artplayer.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
bash
https://unpkg.com/artplayer/dist/artplayer.js

使用 ​

html
<html>
+    
Skip to content

安装使用 ​

安装 ​

bash
npm install artplayer
bash
yarn add artplayer
bash
pnpm add artplayer
html
<script src="path/to/artplayer.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
bash
https://unpkg.com/artplayer/dist/artplayer.js

使用 ​

html
<html>
     <head>
         <title>ArtPlayer Demo</title>
         <meta charset="UTF-8" />
@@ -44,7 +44,7 @@
           });
         </script>
     </body>
-</html>

提示

播放器的尺寸依赖于容器 container 的尺寸,所以你的容器 container 必须是有尺寸的

以下链接可以看到更多的使用例子

/packages/artplayer-template

Vue.js ​

vue
<template>
+</html>

提示

播放器的尺寸依赖于容器 container 的尺寸,所以你的容器 container 必须是有尺寸的

以下链接可以看到更多的使用例子

/packages/artplayer-template

Vue.js ​

vue
<template>
   <div ref="artRef"></div>
 </template>
 
@@ -108,7 +108,7 @@
     },
   },
 };
-</script>

Artplayer 非响应式:

在 Vue.js 里直接修改 option 是不会改变播放器的

React.js ​

jsx
import { useEffect, useRef } from 'react';
+</script>

Artplayer 非响应式:

在 Vue.js 里直接修改 option 是不会改变播放器的

React.js ​

jsx
import { useEffect, useRef } from 'react';
 import Artplayer from 'artplayer';
 
 export default function Player({ option, getInstance, ...rest }) {
@@ -196,8 +196,8 @@
 
 option.volume = 0.5;
 
-const art8 = new Artplayer(option);

古老的浏览器 ​

生产构建的 artplayer.js 只兼容最新一个主版本的 Chrome:last 1 Chrome version

对于古老的浏览器,可以使用 artplayer.legacy.js 文件,可以兼容到:IE 11

js
import Artplayer from 'artplayer/dist/artplayer.legacy.js';
bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.legacy.js
bash
https://unpkg.com/artplayer/dist/artplayer.legacy.js

假如你要兼容更古老的浏览器时,请修改以下配置然后自行构建:

构建配置:scripts/build.js

参考文档:browserslist

- +const art8 = new Artplayer(option);

古老的浏览器 ​

生产构建的 artplayer.js 只兼容最新一个主版本的 Chrome:last 1 Chrome version

对于古老的浏览器,可以使用 artplayer.legacy.js 文件,可以兼容到:IE 11

js
import Artplayer from 'artplayer/dist/artplayer.legacy.js';
bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.legacy.js
bash
https://unpkg.com/artplayer/dist/artplayer.legacy.js

假如你要兼容更古老的浏览器时,请修改以下配置然后自行构建:

构建配置:scripts/build.js

参考文档:browserslist

+ \ No newline at end of file diff --git a/docs/document/plugin/danmuku.html b/docs/document/plugin/danmuku.html index 12b1f86fd..0948adc9d 100644 --- a/docs/document/plugin/danmuku.html +++ b/docs/document/plugin/danmuku.html @@ -13,7 +13,7 @@ - + @@ -23,7 +23,7 @@ -
Skip to content

弹幕库 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-danmuku
bash
yarn add artplayer-plugin-danmuku
bash
pnpm add artplayer-plugin-danmuku
html
<script src="path/to/artplayer-plugin-danmuku.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js
bash
https://unpkg.com/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js

弹幕结构 ​

每一个弹幕是一个对象,多个弹幕组成的数组就是弹幕库,通常只需要text就可以发送一个弹幕,其余都是非必要参数

js
{
+    
Skip to content

弹幕库 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-danmuku
bash
yarn add artplayer-plugin-danmuku
bash
pnpm add artplayer-plugin-danmuku
html
<script src="path/to/artplayer-plugin-danmuku.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js
bash
https://unpkg.com/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js

弹幕结构 ​

每一个弹幕是一个对象,多个弹幕组成的数组就是弹幕库,通常只需要text就可以发送一个弹幕,其余都是非必要参数

js
{
     text: '', // 弹幕文本
     time: 10, // 弹幕时间, 默认为当前播放器时间
     mode: 0, // 弹幕模式: 0: 滚动(默认),1: 顶部,2: 底部
@@ -367,7 +367,7 @@
 art.on('artplayerPluginDanmuku:destroy', () => {
     console.info('弹幕销毁');
 });
- + \ No newline at end of file diff --git a/docs/document/start/i18n.html b/docs/document/start/i18n.html index 952194e35..73e641b5c 100644 --- a/docs/document/start/i18n.html +++ b/docs/document/start/i18n.html @@ -13,7 +13,7 @@ - + @@ -27,7 +27,7 @@ container: '.artplayer-app', url: '/assets/sample/video.mp4', lang: 'zh-cn', // or 'en' -});

导入语言 ​

打包前的语言文件存放于: artplayer/src/i18n/*.js, 欢迎来添加你的语言

打包后的语言文件存放于: artplayer/dist/i18n/*.js

js
import id from 'artplayer/dist/i18n/id.js';
+});

导入语言 ​

打包前的语言文件存放于: artplayer/src/i18n/*.js, 欢迎来添加你的语言

打包后的语言文件存放于: artplayer/dist/i18n/*.js

js
import id from 'artplayer/dist/i18n/id.js';
 import zhTw from 'artplayer/dist/i18n/zh-tw.js';
 
 var art = new Artplayer({
@@ -75,7 +75,7 @@
         },
     },
 });
- + \ No newline at end of file diff --git a/docs/document/start/option.html b/docs/document/start/option.html index bc463757c..b21d203d0 100644 --- a/docs/document/start/option.html +++ b/docs/document/start/option.html @@ -411,7 +411,7 @@ url: '/assets/sample/video.mp4', proxy: () => document.createElement('video') }); - + \ No newline at end of file diff --git a/docs/uncompiled/artplayer/index.js b/docs/uncompiled/artplayer/index.js index 119243021..2d506c5bd 100644 --- a/docs/uncompiled/artplayer/index.js +++ b/docs/uncompiled/artplayer/index.js @@ -160,7 +160,7 @@ }); } } -})({"eFv8l":[function(require,module,exports,__globalThis) { +})({"jHWOm":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _indexLess = require("bundle-text:./style/index.less"); @@ -254,13 +254,10 @@ class Artplayer extends (0, _emitterDefault.default) { return instances; } static get version() { - return "5.2.3"; + return '"5.2.3"'; } static get env() { - return "development"; - } - static get build() { - return "2025-04-20 10:44:27"; + return '"development"'; } static get config() { return 0, _configDefault.default; @@ -429,10 +426,10 @@ if (_utils.isBrowser) { }, 100); } -},{"bundle-text:./style/index.less":"SvnDa","option-validator":"2tbdu","./utils/emitter":"elSLF","./utils":"jmgNb","./scheme":"gL38d","./config":"2ZnKD","./template":"bDTDS","./i18n":"k0CtI","./player":"35XKf","./control":"faO0X","./contextmenu":"5npaZ","./info":"6vVKE","./subtitle":"4exyO","./events":"dz5ul","./hotkey":"1nFqF","./layer":"fvy8V","./loading":"h8KPY","./notice":"cr1XY","./mask":"llnR4","./icons":"gP6M7","./setting":"e5Aaq","./storage":"feFxw","./plugins":"h1hfO","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"SvnDa":[function(require,module,exports,__globalThis) { +},{"bundle-text:./style/index.less":"bFGMG","option-validator":"9hUEm","./utils/emitter":"2qvfs","./utils":"gGxPm","./scheme":"8YPbR","./config":"1dlGA","./template":"5JwMQ","./i18n":"3Jf1s","./player":"iA4EC","./control":"cNVpy","./contextmenu":"dx7Zz","./info":"gvEup","./subtitle":"hxr0l","./events":"dQzlM","./hotkey":"drylQ","./layer":"7Oas9","./loading":"glZdQ","./notice":"jZEIz","./mask":"iGxU6","./icons":"avFu3","./setting":"7ATN8","./storage":"grHII","./plugins":"6P64r","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"bFGMG":[function(require,module,exports,__globalThis) { module.exports = ".art-video-player {\n --art-theme: red;\n --art-font-color: #fff;\n --art-background-color: #000;\n --art-text-shadow-color: #00000080;\n --art-transition-duration: .2s;\n --art-padding: 10px;\n --art-border-radius: 3px;\n --art-progress-height: 6px;\n --art-progress-color: #ffffff40;\n --art-hover-color: #ffffff40;\n --art-loaded-color: #ffffff40;\n --art-state-size: 80px;\n --art-state-opacity: .8;\n --art-bottom-height: 100px;\n --art-bottom-offset: 20px;\n --art-bottom-gap: 5px;\n --art-highlight-width: 8px;\n --art-highlight-color: #ffffff80;\n --art-control-height: 46px;\n --art-control-opacity: .75;\n --art-control-icon-size: 36px;\n --art-control-icon-scale: 1.1;\n --art-volume-height: 120px;\n --art-volume-handle-size: 14px;\n --art-lock-size: 36px;\n --art-indicator-scale: 0;\n --art-indicator-size: 16px;\n --art-fullscreen-web-index: 9999;\n --art-settings-icon-size: 24px;\n --art-settings-max-height: 300px;\n --art-selector-max-height: 300px;\n --art-contextmenus-min-width: 250px;\n --art-subtitle-font-size: 20px;\n --art-subtitle-gap: 5px;\n --art-subtitle-bottom: 15px;\n --art-subtitle-border: #000;\n --art-widget-background: #000000d9;\n --art-tip-background: #000000b3;\n --art-scrollbar-size: 4px;\n --art-scrollbar-background: #ffffff40;\n --art-scrollbar-background-hover: #ffffff80;\n --art-mini-progress-height: 2px;\n}\n\n.art-bg-cover {\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n}\n\n.art-bottom-gradient {\n background-image: linear-gradient(to top, #000, #0006, #0000);\n background-position: bottom;\n background-repeat: repeat-x;\n}\n\n.art-backdrop-filter {\n backdrop-filter: saturate(180%) blur(20px);\n background-color: #000000bf !important;\n}\n\n.art-truncate {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.art-video-player {\n zoom: 1;\n text-align: left;\n user-select: none;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n color: var(--art-font-color);\n background-color: var(--art-background-color);\n text-shadow: 0 0 2px var(--art-text-shadow-color);\n -webkit-tap-highlight-color: #0000;\n -ms-touch-action: manipulation;\n touch-action: manipulation;\n -ms-high-contrast-adjust: none;\n direction: ltr;\n outline: 0;\n margin: 0 auto;\n padding: 0;\n font-family: PingFang SC, Helvetica Neue, Microsoft YaHei, Roboto, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.3;\n position: relative;\n}\n\n.art-video-player *, .art-video-player :before, .art-video-player :after {\n box-sizing: border-box;\n}\n\n.art-video-player ::-webkit-scrollbar {\n width: var(--art-scrollbar-size);\n height: var(--art-scrollbar-size);\n}\n\n.art-video-player ::-webkit-scrollbar-thumb {\n background-color: var(--art-scrollbar-background);\n}\n\n.art-video-player ::-webkit-scrollbar-thumb:hover {\n background-color: var(--art-scrollbar-background-hover);\n}\n\n.art-video-player img {\n vertical-align: top;\n max-width: 100%;\n}\n\n.art-video-player svg {\n fill: var(--art-font-color);\n}\n\n.art-video-player a {\n color: var(--art-font-color);\n text-decoration: none;\n}\n\n.art-icon {\n justify-content: center;\n align-items: center;\n line-height: 1;\n display: flex;\n}\n\n.art-video-player.art-backdrop .art-contextmenus, .art-video-player.art-backdrop .art-info, .art-video-player.art-backdrop .art-settings, .art-video-player.art-backdrop .art-layer-auto-playback, .art-video-player.art-backdrop .art-selector-list, .art-video-player.art-backdrop .art-volume-inner {\n backdrop-filter: saturate(180%) blur(20px);\n background-color: #000000bf !important;\n}\n\n.art-video {\n z-index: 10;\n cursor: pointer;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.art-poster {\n z-index: 11;\n pointer-events: none;\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-subtitle {\n z-index: 20;\n text-align: center;\n pointer-events: none;\n justify-content: center;\n align-items: center;\n gap: var(--art-subtitle-gap);\n width: 100%;\n bottom: var(--art-subtitle-bottom);\n font-size: var(--art-subtitle-font-size);\n transition: bottom var(--art-transition-duration) ease;\n text-shadow: var(--art-subtitle-border) 1px 0 1px, var(--art-subtitle-border) 0 1px 1px, var(--art-subtitle-border) -1px 0 1px, var(--art-subtitle-border) 0 -1px 1px, var(--art-subtitle-border) 1px 1px 1px, var(--art-subtitle-border) -1px -1px 1px, var(--art-subtitle-border) 1px -1px 1px, var(--art-subtitle-border) -1px 1px 1px;\n flex-direction: column;\n padding: 0 5%;\n display: none;\n position: absolute;\n}\n\n.art-video-player.art-subtitle-show .art-subtitle {\n display: flex;\n}\n\n.art-video-player.art-control-show .art-subtitle {\n bottom: calc(var(--art-control-height) + var(--art-subtitle-bottom));\n}\n\n.art-danmuku {\n z-index: 30;\n pointer-events: none;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n overflow: hidden;\n}\n\n.art-video-player .art-layers {\n z-index: 40;\n pointer-events: none;\n width: 100%;\n height: 100%;\n display: none;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-layers .art-layer {\n pointer-events: auto;\n}\n\n.art-video-player.art-layer-show .art-layers {\n display: flex;\n}\n\n.art-video-player .art-mask {\n z-index: 50;\n pointer-events: none;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n display: flex;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-mask .art-state {\n opacity: 0;\n width: var(--art-state-size);\n height: var(--art-state-size);\n transition: all var(--art-transition-duration) ease;\n justify-content: center;\n align-items: center;\n display: flex;\n transform: scale(2);\n}\n\n.art-video-player.art-mask-show .art-state {\n cursor: pointer;\n pointer-events: auto;\n opacity: var(--art-state-opacity);\n transform: scale(1);\n}\n\n.art-video-player.art-loading-show .art-state {\n display: none;\n}\n\n.art-video-player .art-loading {\n z-index: 70;\n pointer-events: none;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n display: none;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player.art-loading-show .art-loading {\n display: flex;\n}\n\n.art-video-player .art-bottom {\n z-index: 60;\n opacity: 0;\n pointer-events: none;\n width: 100%;\n height: 100%;\n padding: 0 var(--art-padding);\n transition: all var(--art-transition-duration) ease;\n background-size: 100% var(--art-bottom-height);\n background-image: linear-gradient(to top, #000, #0006, #0000);\n background-position: bottom;\n background-repeat: repeat-x;\n flex-direction: column;\n justify-content: flex-end;\n display: flex;\n position: absolute;\n inset: 0;\n overflow: hidden;\n}\n\n.art-video-player .art-bottom .art-controls, .art-video-player .art-bottom .art-progress {\n transform: translateY(var(--art-bottom-offset));\n transition: transform var(--art-transition-duration) ease;\n}\n\n.art-video-player.art-control-show .art-bottom, .art-video-player.art-hover .art-bottom {\n opacity: 1;\n}\n\n.art-video-player.art-control-show .art-bottom .art-controls, .art-video-player.art-hover .art-bottom .art-controls, .art-video-player.art-control-show .art-bottom .art-progress, .art-video-player.art-hover .art-bottom .art-progress {\n transform: translateY(0);\n}\n\n.art-bottom .art-progress {\n z-index: 0;\n pointer-events: auto;\n padding-bottom: var(--art-bottom-gap);\n position: relative;\n}\n\n.art-bottom .art-progress .art-control-progress {\n cursor: pointer;\n height: var(--art-progress-height);\n justify-content: center;\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner {\n width: 100%;\n height: 50%;\n transition: height var(--art-transition-duration) ease;\n background-color: var(--art-progress-color);\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover {\n z-index: 0;\n background-color: var(--art-hover-color);\n width: 0%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded {\n z-index: 10;\n background-color: var(--art-loaded-color);\n width: 0%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played {\n z-index: 20;\n background-color: var(--art-theme);\n width: 0%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight {\n z-index: 30;\n pointer-events: none;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span {\n z-index: 0;\n pointer-events: auto;\n width: 100%;\n height: 100%;\n transform: translateX(calc(var(--art-highlight-width) / -2));\n background-color: var(--art-highlight-color);\n position: absolute;\n inset: 0 auto 0 0;\n width: var(--art-highlight-width) !important;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator {\n z-index: 40;\n width: var(--art-indicator-size);\n height: var(--art-indicator-size);\n transform: scale(var(--art-indicator-scale));\n margin-left: calc(var(--art-indicator-size) / -2);\n transition: transform var(--art-transition-duration) ease;\n border-radius: 50%;\n justify-content: center;\n align-items: center;\n display: flex;\n position: absolute;\n left: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon {\n pointer-events: none;\n width: 100%;\n height: 100%;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover {\n transform: scale(1.2) !important;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active {\n transform: scale(1) !important;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip {\n z-index: 50;\n border-radius: var(--art-border-radius);\n white-space: nowrap;\n background-color: var(--art-tip-background);\n padding: 3px 5px;\n font-size: 12px;\n line-height: 1;\n display: none;\n position: absolute;\n top: -25px;\n left: 0;\n}\n\n.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner {\n height: 100%;\n}\n\n.art-bottom .art-progress .art-control-thumbnails {\n bottom: calc(var(--art-bottom-gap) + 10px);\n border-radius: var(--art-border-radius);\n pointer-events: none;\n background-color: var(--art-widget-background);\n display: none;\n position: absolute;\n left: 0;\n box-shadow: 0 1px 3px #0003, 0 1px 2px -1px #0003;\n}\n\n.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator {\n transform: scale(1);\n}\n\n.art-controls {\n z-index: 10;\n pointer-events: auto;\n height: var(--art-control-height);\n justify-content: space-between;\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-controls .art-controls-left, .art-controls .art-controls-right {\n height: 100%;\n display: flex;\n}\n\n.art-controls .art-controls-center {\n flex: 1;\n justify-content: center;\n align-items: center;\n height: 100%;\n padding: 0 10px;\n display: none;\n}\n\n.art-controls .art-controls-right {\n justify-content: flex-end;\n}\n\n.art-controls .art-control {\n cursor: pointer;\n white-space: nowrap;\n opacity: var(--art-control-opacity);\n min-height: var(--art-control-height);\n min-width: var(--art-control-height);\n transition: opacity var(--art-transition-duration) ease;\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-controls .art-control .art-icon {\n height: var(--art-control-icon-size);\n width: var(--art-control-icon-size);\n transform: scale(var(--art-control-icon-scale));\n transition: transform var(--art-transition-duration) ease;\n}\n\n.art-controls .art-control .art-icon:active {\n transform: scale(calc(var(--art-control-icon-scale) * .8));\n}\n\n.art-controls .art-control:hover {\n opacity: 1;\n}\n\n.art-control-volume {\n position: relative;\n}\n\n.art-control-volume .art-volume-panel {\n text-align: center;\n cursor: default;\n opacity: 0;\n pointer-events: none;\n left: 0;\n right: 0;\n bottom: var(--art-control-height);\n width: var(--art-control-height);\n height: var(--art-volume-height);\n transition: all var(--art-transition-duration) ease;\n justify-content: center;\n align-items: center;\n padding: 0 5px;\n font-size: 12px;\n display: flex;\n position: absolute;\n transform: translateY(10px);\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner {\n border-radius: var(--art-border-radius);\n background-color: var(--art-widget-background);\n flex-direction: column;\n align-items: center;\n gap: 10px;\n width: 100%;\n height: 100%;\n padding: 10px 0 12px;\n display: flex;\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider {\n cursor: pointer;\n flex: 1;\n justify-content: center;\n width: 100%;\n display: flex;\n position: relative;\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle {\n border-radius: var(--art-border-radius);\n background-color: #ffffff40;\n justify-content: center;\n width: 2px;\n display: flex;\n position: relative;\n overflow: hidden;\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded {\n z-index: 0;\n background-color: var(--art-theme);\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator {\n width: var(--art-volume-handle-size);\n height: var(--art-volume-handle-size);\n margin-top: calc(var(--art-volume-handle-size) / -2);\n background-color: var(--art-theme);\n transition: transform var(--art-transition-duration) ease;\n border-radius: 100%;\n flex-shrink: 0;\n position: absolute;\n transform: scale(1);\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator {\n transform: scale(.9);\n}\n\n.art-control-volume:hover .art-volume-panel {\n opacity: 1;\n pointer-events: auto;\n transform: translateY(0);\n}\n\n.art-video-player .art-notice {\n z-index: 80;\n width: 100%;\n height: auto;\n padding: var(--art-padding);\n pointer-events: none;\n display: none;\n position: absolute;\n inset: 0 0 auto;\n}\n\n.art-video-player .art-notice .art-notice-inner {\n border-radius: var(--art-border-radius);\n background-color: var(--art-tip-background);\n padding: 5px;\n line-height: 1;\n display: inline-flex;\n}\n\n.art-video-player.art-notice-show .art-notice {\n display: flex;\n}\n\n.art-video-player .art-contextmenus {\n z-index: 120;\n border-radius: var(--art-border-radius);\n background-color: var(--art-widget-background);\n min-width: var(--art-contextmenus-min-width);\n flex-direction: column;\n padding: 5px 0;\n font-size: 12px;\n display: none;\n position: absolute;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu {\n cursor: pointer;\n border-bottom: 1px solid #ffffff1a;\n padding: 10px 15px;\n display: flex;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu span {\n padding: 0 8px;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu span:hover, .art-video-player .art-contextmenus .art-contextmenu span.art-current {\n color: var(--art-theme);\n}\n\n.art-video-player .art-contextmenus .art-contextmenu:hover {\n background-color: #ffffff1a;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu:last-child {\n border-bottom: none;\n}\n\n.art-video-player.art-contextmenu-show .art-contextmenus {\n display: flex;\n}\n\n.art-video-player .art-settings {\n z-index: 90;\n border-radius: var(--art-border-radius);\n max-height: var(--art-settings-max-height);\n left: auto;\n right: var(--art-padding);\n bottom: var(--art-control-height);\n transition: all var(--art-transition-duration) ease;\n background-color: var(--art-widget-background);\n flex-direction: column;\n display: none;\n position: absolute;\n overflow: hidden auto;\n}\n\n.art-video-player .art-settings .art-setting-panel {\n flex-direction: column;\n display: none;\n}\n\n.art-video-player .art-settings .art-setting-panel.art-current {\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item {\n cursor: pointer;\n transition: background-color var(--art-transition-duration) ease;\n justify-content: space-between;\n align-items: center;\n padding: 0 5px;\n display: flex;\n overflow: hidden;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item:hover {\n background-color: #ffffff1a;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current {\n color: var(--art-theme);\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check {\n visibility: hidden;\n height: 15px;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check {\n visibility: visible;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left {\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n gap: 5px;\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon {\n height: var(--art-settings-icon-size);\n width: var(--art-settings-icon-size);\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right {\n justify-content: center;\n align-items: center;\n gap: 5px;\n font-size: 12px;\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip {\n white-space: nowrap;\n color: #ffffff80;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon {\n justify-content: center;\n align-items: center;\n min-width: 32px;\n height: 24px;\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range {\n appearance: none;\n background-color: #fff3;\n outline: none;\n width: 80px;\n height: 3px;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item-back {\n border-bottom: 1px solid #ffffff1a;\n}\n\n.art-video-player.art-setting-show .art-settings {\n display: flex;\n}\n\n.art-video-player .art-info {\n left: var(--art-padding);\n top: var(--art-padding);\n z-index: 100;\n border-radius: var(--art-border-radius);\n background-color: var(--art-widget-background);\n padding: 10px;\n font-size: 12px;\n display: none;\n position: absolute;\n}\n\n.art-video-player .art-info .art-info-panel {\n flex-direction: column;\n gap: 5px;\n display: flex;\n}\n\n.art-video-player .art-info .art-info-panel .art-info-item {\n align-items: center;\n gap: 5px;\n display: flex;\n}\n\n.art-video-player .art-info .art-info-panel .art-info-item .art-info-title {\n text-align: right;\n width: 100px;\n}\n\n.art-video-player .art-info .art-info-panel .art-info-item .art-info-content {\n text-overflow: ellipsis;\n white-space: nowrap;\n user-select: all;\n width: 250px;\n overflow: hidden;\n}\n\n.art-video-player .art-info .art-info-close {\n cursor: pointer;\n position: absolute;\n top: 5px;\n right: 5px;\n}\n\n.art-video-player.art-info-show .art-info {\n display: flex;\n}\n\n.art-hide-cursor * {\n cursor: none !important;\n}\n\n.art-video-player[data-aspect-ratio] {\n overflow: hidden;\n}\n\n.art-video-player[data-aspect-ratio] .art-video {\n object-fit: fill;\n box-sizing: content-box;\n}\n\n.art-fullscreen {\n --art-progress-height: 8px;\n --art-indicator-size: 20px;\n --art-control-height: 60px;\n --art-control-icon-scale: 1.3;\n}\n\n.art-fullscreen-web {\n --art-progress-height: 8px;\n --art-indicator-size: 20px;\n --art-control-height: 60px;\n --art-control-icon-scale: 1.3;\n z-index: var(--art-fullscreen-web-index);\n width: 100%;\n height: 100%;\n position: fixed;\n inset: 0;\n}\n\n.art-mini-popup {\n z-index: 9999;\n border-radius: var(--art-border-radius);\n cursor: move;\n user-select: none;\n background: #000;\n width: 320px;\n height: 180px;\n transition: opacity .2s;\n position: fixed;\n overflow: hidden;\n box-shadow: 0 0 5px #00000080;\n}\n\n.art-mini-popup svg {\n fill: #fff;\n}\n\n.art-mini-popup .art-video {\n pointer-events: none;\n}\n\n.art-mini-popup .art-mini-close {\n z-index: 20;\n cursor: pointer;\n opacity: 0;\n transition: opacity .2s;\n position: absolute;\n top: 10px;\n right: 10px;\n}\n\n.art-mini-popup .art-mini-state {\n z-index: 30;\n pointer-events: none;\n opacity: 0;\n background-color: #00000040;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n transition: opacity .2s;\n display: flex;\n position: absolute;\n inset: 0;\n}\n\n.art-mini-popup .art-mini-state .art-icon {\n opacity: .75;\n cursor: pointer;\n pointer-events: auto;\n transition: transform .2s;\n transform: scale(3);\n}\n\n.art-mini-popup .art-mini-state .art-icon:active {\n transform: scale(2.5);\n}\n\n.art-mini-popup.art-mini-droging {\n opacity: .9;\n}\n\n.art-mini-popup:hover .art-mini-close, .art-mini-popup:hover .art-mini-state {\n opacity: 1;\n}\n\n.art-video-player[data-flip=\"horizontal\"] .art-video {\n transform: scaleX(-1);\n}\n\n.art-video-player[data-flip=\"vertical\"] .art-video {\n transform: scaleY(-1);\n}\n\n.art-video-player .art-layer-lock {\n height: var(--art-lock-size);\n width: var(--art-lock-size);\n top: 50%;\n left: var(--art-padding);\n background-color: var(--art-tip-background);\n border-radius: 50%;\n justify-content: center;\n align-items: center;\n display: none;\n position: absolute;\n transform: translateY(-50%);\n}\n\n.art-video-player .art-layer-auto-playback {\n border-radius: var(--art-border-radius);\n left: var(--art-padding);\n bottom: calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);\n background-color: var(--art-widget-background);\n align-items: center;\n gap: 10px;\n padding: 10px;\n line-height: 1;\n display: none;\n position: absolute;\n}\n\n.art-video-player .art-layer-auto-playback .art-auto-playback-close {\n cursor: pointer;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-video-player .art-layer-auto-playback .art-auto-playback-close svg {\n width: 15px;\n height: 15px;\n fill: var(--art-theme);\n}\n\n.art-video-player .art-layer-auto-playback .art-auto-playback-jump {\n color: var(--art-theme);\n cursor: pointer;\n}\n\n.art-video-player.art-lock .art-subtitle {\n bottom: var(--art-subtitle-bottom) !important;\n}\n\n.art-video-player.art-mini-progress-bar .art-bottom, .art-video-player.art-lock .art-bottom {\n opacity: 1;\n background-image: none;\n padding: 0;\n}\n\n.art-video-player.art-mini-progress-bar .art-bottom .art-controls, .art-video-player.art-lock .art-bottom .art-controls, .art-video-player.art-mini-progress-bar .art-bottom .art-progress, .art-video-player.art-lock .art-bottom .art-progress {\n transform: translateY(calc(var(--art-control-height) + var(--art-bottom-gap) + var(--art-progress-height) / 4));\n}\n\n.art-video-player.art-mini-progress-bar .art-bottom .art-progress-indicator, .art-video-player.art-lock .art-bottom .art-progress-indicator {\n display: none !important;\n}\n\n.art-video-player.art-control-show .art-layer-lock {\n display: flex;\n}\n\n.art-control-selector {\n justify-content: center;\n display: flex;\n position: relative;\n}\n\n.art-control-selector .art-selector-list {\n text-align: center;\n border-radius: var(--art-border-radius);\n opacity: 0;\n pointer-events: none;\n bottom: var(--art-control-height);\n max-height: var(--art-selector-max-height);\n background-color: var(--art-widget-background);\n transition: all var(--art-transition-duration) ease;\n flex-direction: column;\n align-items: center;\n display: flex;\n position: absolute;\n overflow: hidden auto;\n transform: translateY(10px);\n}\n\n.art-control-selector .art-selector-list .art-selector-item {\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n width: 100%;\n padding: 10px 15px;\n line-height: 1;\n display: flex;\n}\n\n.art-control-selector .art-selector-list .art-selector-item:hover {\n background-color: #ffffff1a;\n}\n\n.art-control-selector .art-selector-list .art-selector-item:hover, .art-control-selector .art-selector-list .art-selector-item.art-current {\n color: var(--art-theme);\n}\n\n.art-control-selector:hover .art-selector-list {\n opacity: 1;\n pointer-events: auto;\n transform: translateY(0);\n}\n\n[class*=\"hint--\"] {\n font-style: normal;\n display: inline-block;\n position: relative;\n}\n\n[class*=\"hint--\"]:before, [class*=\"hint--\"]:after {\n visibility: hidden;\n opacity: 0;\n z-index: 1000000;\n pointer-events: none;\n transition: all .3s;\n position: absolute;\n transform: translate3d(0, 0, 0);\n}\n\n[class*=\"hint--\"]:hover:before, [class*=\"hint--\"]:hover:after {\n visibility: visible;\n opacity: 1;\n transition-delay: .1s;\n}\n\n[class*=\"hint--\"]:before {\n content: \"\";\n z-index: 1000001;\n background: none;\n border: 6px solid #0000;\n position: absolute;\n}\n\n[class*=\"hint--\"]:after {\n color: #fff;\n white-space: nowrap;\n background: #000;\n padding: 8px 10px;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-size: 12px;\n line-height: 12px;\n}\n\n[class*=\"hint--\"][aria-label]:after {\n content: attr(aria-label);\n}\n\n[class*=\"hint--\"][data-hint]:after {\n content: attr(data-hint);\n}\n\n[aria-label=\"\"]:before, [aria-label=\"\"]:after, [data-hint=\"\"]:before, [data-hint=\"\"]:after {\n display: none !important;\n}\n\n.hint--top-left:before, .hint--top-right:before, .hint--top:before {\n border-top-color: #000;\n}\n\n.hint--bottom-left:before, .hint--bottom-right:before, .hint--bottom:before {\n border-bottom-color: #000;\n}\n\n.hint--left:before {\n border-left-color: #000;\n}\n\n.hint--right:before {\n border-right-color: #000;\n}\n\n.hint--top:before {\n margin-bottom: -11px;\n}\n\n.hint--top:before, .hint--top:after {\n bottom: 100%;\n left: 50%;\n}\n\n.hint--top:before {\n left: calc(50% - 6px);\n}\n\n.hint--top:after {\n transform: translateX(-50%);\n}\n\n.hint--top:hover:before {\n transform: translateY(-8px);\n}\n\n.hint--top:hover:after {\n transform: translateX(-50%)translateY(-8px);\n}\n\n.hint--bottom:before {\n margin-top: -11px;\n}\n\n.hint--bottom:before, .hint--bottom:after {\n top: 100%;\n left: 50%;\n}\n\n.hint--bottom:before {\n left: calc(50% - 6px);\n}\n\n.hint--bottom:after {\n transform: translateX(-50%);\n}\n\n.hint--bottom:hover:before {\n transform: translateY(8px);\n}\n\n.hint--bottom:hover:after {\n transform: translateX(-50%)translateY(8px);\n}\n\n.hint--right:before {\n margin-bottom: -6px;\n margin-left: -11px;\n}\n\n.hint--right:after {\n margin-bottom: -14px;\n}\n\n.hint--right:before, .hint--right:after {\n bottom: 50%;\n left: 100%;\n}\n\n.hint--right:hover:before, .hint--right:hover:after {\n transform: translateX(8px);\n}\n\n.hint--left:before {\n margin-bottom: -6px;\n margin-right: -11px;\n}\n\n.hint--left:after {\n margin-bottom: -14px;\n}\n\n.hint--left:before, .hint--left:after {\n bottom: 50%;\n right: 100%;\n}\n\n.hint--left:hover:before, .hint--left:hover:after {\n transform: translateX(-8px);\n}\n\n.hint--top-left:before {\n margin-bottom: -11px;\n}\n\n.hint--top-left:before, .hint--top-left:after {\n bottom: 100%;\n left: 50%;\n}\n\n.hint--top-left:before {\n left: calc(50% - 6px);\n}\n\n.hint--top-left:after {\n margin-left: 12px;\n transform: translateX(-100%);\n}\n\n.hint--top-left:hover:before {\n transform: translateY(-8px);\n}\n\n.hint--top-left:hover:after {\n transform: translateX(-100%)translateY(-8px);\n}\n\n.hint--top-right:before {\n margin-bottom: -11px;\n}\n\n.hint--top-right:before, .hint--top-right:after {\n bottom: 100%;\n left: 50%;\n}\n\n.hint--top-right:before {\n left: calc(50% - 6px);\n}\n\n.hint--top-right:after {\n margin-left: -12px;\n transform: translateX(0);\n}\n\n.hint--top-right:hover:before, .hint--top-right:hover:after {\n transform: translateY(-8px);\n}\n\n.hint--bottom-left:before {\n margin-top: -11px;\n}\n\n.hint--bottom-left:before, .hint--bottom-left:after {\n top: 100%;\n left: 50%;\n}\n\n.hint--bottom-left:before {\n left: calc(50% - 6px);\n}\n\n.hint--bottom-left:after {\n margin-left: 12px;\n transform: translateX(-100%);\n}\n\n.hint--bottom-left:hover:before {\n transform: translateY(8px);\n}\n\n.hint--bottom-left:hover:after {\n transform: translateX(-100%)translateY(8px);\n}\n\n.hint--bottom-right:before {\n margin-top: -11px;\n}\n\n.hint--bottom-right:before, .hint--bottom-right:after {\n top: 100%;\n left: 50%;\n}\n\n.hint--bottom-right:before {\n left: calc(50% - 6px);\n}\n\n.hint--bottom-right:after {\n margin-left: -12px;\n transform: translateX(0);\n}\n\n.hint--bottom-right:hover:before, .hint--bottom-right:hover:after {\n transform: translateY(8px);\n}\n\n.hint--small:after, .hint--medium:after, .hint--large:after {\n white-space: normal;\n word-wrap: break-word;\n line-height: 1.4em;\n}\n\n.hint--small:after {\n width: 80px;\n}\n\n.hint--medium:after {\n width: 150px;\n}\n\n.hint--large:after {\n width: 300px;\n}\n\n[class*=\"hint--\"]:after {\n text-shadow: 0 -1px #000;\n box-shadow: 4px 4px 8px #0000004d;\n}\n\n.hint--error:after {\n text-shadow: 0 -1px #592726;\n background-color: #b34e4d;\n}\n\n.hint--error.hint--top-left:before, .hint--error.hint--top-right:before, .hint--error.hint--top:before {\n border-top-color: #b34e4d;\n}\n\n.hint--error.hint--bottom-left:before, .hint--error.hint--bottom-right:before, .hint--error.hint--bottom:before {\n border-bottom-color: #b34e4d;\n}\n\n.hint--error.hint--left:before {\n border-left-color: #b34e4d;\n}\n\n.hint--error.hint--right:before {\n border-right-color: #b34e4d;\n}\n\n.hint--warning:after {\n text-shadow: 0 -1px #6c5328;\n background-color: #c09854;\n}\n\n.hint--warning.hint--top-left:before, .hint--warning.hint--top-right:before, .hint--warning.hint--top:before {\n border-top-color: #c09854;\n}\n\n.hint--warning.hint--bottom-left:before, .hint--warning.hint--bottom-right:before, .hint--warning.hint--bottom:before {\n border-bottom-color: #c09854;\n}\n\n.hint--warning.hint--left:before {\n border-left-color: #c09854;\n}\n\n.hint--warning.hint--right:before {\n border-right-color: #c09854;\n}\n\n.hint--info:after {\n text-shadow: 0 -1px #1a3c4d;\n background-color: #3986ac;\n}\n\n.hint--info.hint--top-left:before, .hint--info.hint--top-right:before, .hint--info.hint--top:before {\n border-top-color: #3986ac;\n}\n\n.hint--info.hint--bottom-left:before, .hint--info.hint--bottom-right:before, .hint--info.hint--bottom:before {\n border-bottom-color: #3986ac;\n}\n\n.hint--info.hint--left:before {\n border-left-color: #3986ac;\n}\n\n.hint--info.hint--right:before {\n border-right-color: #3986ac;\n}\n\n.hint--success:after {\n text-shadow: 0 -1px #1a321a;\n background-color: #458746;\n}\n\n.hint--success.hint--top-left:before, .hint--success.hint--top-right:before, .hint--success.hint--top:before {\n border-top-color: #458746;\n}\n\n.hint--success.hint--bottom-left:before, .hint--success.hint--bottom-right:before, .hint--success.hint--bottom:before {\n border-bottom-color: #458746;\n}\n\n.hint--success.hint--left:before {\n border-left-color: #458746;\n}\n\n.hint--success.hint--right:before {\n border-right-color: #458746;\n}\n\n.hint--always:after, .hint--always:before {\n opacity: 1;\n visibility: visible;\n}\n\n.hint--always.hint--top:before {\n transform: translateY(-8px);\n}\n\n.hint--always.hint--top:after {\n transform: translateX(-50%)translateY(-8px);\n}\n\n.hint--always.hint--top-left:before {\n transform: translateY(-8px);\n}\n\n.hint--always.hint--top-left:after {\n transform: translateX(-100%)translateY(-8px);\n}\n\n.hint--always.hint--top-right:before, .hint--always.hint--top-right:after {\n transform: translateY(-8px);\n}\n\n.hint--always.hint--bottom:before {\n transform: translateY(8px);\n}\n\n.hint--always.hint--bottom:after {\n transform: translateX(-50%)translateY(8px);\n}\n\n.hint--always.hint--bottom-left:before {\n transform: translateY(8px);\n}\n\n.hint--always.hint--bottom-left:after {\n transform: translateX(-100%)translateY(8px);\n}\n\n.hint--always.hint--bottom-right:before, .hint--always.hint--bottom-right:after {\n transform: translateY(8px);\n}\n\n.hint--always.hint--left:before, .hint--always.hint--left:after {\n transform: translateX(-8px);\n}\n\n.hint--always.hint--right:before, .hint--always.hint--right:after {\n transform: translateX(8px);\n}\n\n.hint--rounded:after {\n border-radius: 4px;\n}\n\n.hint--no-animate:before, .hint--no-animate:after {\n transition-duration: 0s;\n}\n\n.hint--bounce:before, .hint--bounce:after {\n -webkit-transition: opacity .3s, visibility .3s, -webkit-transform .3s cubic-bezier(.71, 1.7, .77, 1.24);\n -moz-transition: opacity .3s, visibility .3s, -moz-transform .3s cubic-bezier(.71, 1.7, .77, 1.24);\n transition: opacity .3s, visibility .3s, transform .3s cubic-bezier(.71, 1.7, .77, 1.24);\n}\n\n.hint--no-shadow:before, .hint--no-shadow:after {\n text-shadow: initial;\n box-shadow: initial;\n}\n\n.hint--no-arrow:before {\n display: none;\n}\n\n.art-video-player.art-mobile {\n --art-bottom-gap: 10px;\n --art-control-height: 38px;\n --art-control-icon-scale: 1;\n --art-state-size: 60px;\n --art-settings-max-height: 180px;\n --art-selector-max-height: 180px;\n --art-indicator-scale: 1;\n --art-control-opacity: 1;\n}\n\n.art-video-player.art-mobile .art-controls-left {\n margin-left: calc(var(--art-padding) / -1);\n}\n\n.art-video-player.art-mobile .art-controls-right {\n margin-right: calc(var(--art-padding) / -1);\n}\n"; -},{}],"2tbdu":[function(require,module,exports,__globalThis) { +},{}],"9hUEm":[function(require,module,exports,__globalThis) { !function(r, t) { module.exports = t(); }(this, function() { @@ -575,7 +572,7 @@ module.exports = ".art-video-player {\n --art-theme: red;\n --art-font-color: return f.kindOf = c, f; }); -},{}],"elSLF":[function(require,module,exports,__globalThis) { +},{}],"2qvfs":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); class Emitter { @@ -615,7 +612,7 @@ class Emitter { } exports.default = Emitter; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"5dUr6":[function(require,module,exports,__globalThis) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"8oCsH":[function(require,module,exports,__globalThis) { exports.interopDefault = function(a) { return a && a.__esModule ? a : { default: a @@ -645,7 +642,7 @@ exports.export = function(dest, destName, get) { }); }; -},{}],"jmgNb":[function(require,module,exports,__globalThis) { +},{}],"gGxPm":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _dom = require("./dom"); @@ -665,7 +662,7 @@ parcelHelpers.exportAll(_format, exports); var _compatibility = require("./compatibility"); parcelHelpers.exportAll(_compatibility, exports); -},{"./dom":"dNynC","./error":"622b3","./subtitle":"bGuws","./file":"luB4T","./property":"91nLd","./time":"f9kBR","./format":"eWip5","./compatibility":"gotDS","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"dNynC":[function(require,module,exports,__globalThis) { +},{"./dom":"1aVnA","./error":"29G01","./subtitle":"9DUE6","./file":"l9MZw","./property":"84aB7","./time":"94hvW","./format":"lbsB4","./compatibility":"gWwQj","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"1aVnA":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "query", ()=>query); @@ -816,7 +813,7 @@ function loadImg(url, scale) { }); } -},{"./compatibility":"gotDS","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"gotDS":[function(require,module,exports,__globalThis) { +},{"./compatibility":"gWwQj","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"gWwQj":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "userAgent", ()=>userAgent); @@ -838,7 +835,7 @@ const isIOS13 = isIOS || userAgent.includes('Macintosh') && navigator.maxTouchPo const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent) || isIOS13; const isBrowser = typeof window !== 'undefined'; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"622b3":[function(require,module,exports,__globalThis) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"29G01":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "ArtPlayerError", ()=>ArtPlayerError); @@ -855,7 +852,7 @@ function errorHandle(condition, msg) { return condition; } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"bGuws":[function(require,module,exports,__globalThis) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"9DUE6":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "srtToVtt", ()=>srtToVtt); @@ -904,7 +901,7 @@ function assToVtt(ass) { }).filter((line)=>line.trim()).join('\n\n'); } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"luB4T":[function(require,module,exports,__globalThis) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"l9MZw":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "getExt", ()=>getExt); @@ -924,7 +921,7 @@ function download(url, name) { document.body.removeChild(elink); } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"91nLd":[function(require,module,exports,__globalThis) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"84aB7":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "def", ()=>def); @@ -953,7 +950,7 @@ function mergeDeep(...objects) { }, {}); } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"f9kBR":[function(require,module,exports,__globalThis) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"94hvW":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "sleep", ()=>sleep); @@ -986,7 +983,7 @@ function throttle(func, duration) { }; } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"eWip5":[function(require,module,exports,__globalThis) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"lbsB4":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "clamp", ()=>clamp); @@ -1036,7 +1033,7 @@ function unescape(str) { return str.replace(reg, (tag)=>map[tag] || tag); } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"gL38d":[function(require,module,exports,__globalThis) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"8YPbR":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "ComponentOption", ()=>ComponentOption); @@ -1167,7 +1164,7 @@ exports.default = { customType: o }; -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"2ZnKD":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"1dlGA":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); exports.default = { @@ -1258,7 +1255,7 @@ exports.default = { ] }; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"bDTDS":[function(require,module,exports,__globalThis) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"5JwMQ":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("./utils"); @@ -1309,7 +1306,7 @@ class Template {
Player version:
-
${"5.2.3"}
+
${'__APP_VERSION__'}
Video url:
@@ -1387,7 +1384,7 @@ class Template { } exports.default = Template; -},{"./utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"k0CtI":[function(require,module,exports,__globalThis) { +},{"./utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"3Jf1s":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -1416,7 +1413,7 @@ class I18n { } exports.default = I18n; -},{"../utils":"jmgNb","./zh-cn":"4PBSu","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"4PBSu":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","./zh-cn":"5Zwl9","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"5Zwl9":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); const zhCn = { @@ -1460,7 +1457,7 @@ const zhCn = { exports.default = zhCn; if (typeof window !== 'undefined') window['artplayer-i18n-zh-cn'] = zhCn; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"35XKf":[function(require,module,exports,__globalThis) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"iA4EC":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _urlMix = require("./urlMix"); @@ -1574,7 +1571,7 @@ class Player { } exports.default = Player; -},{"./urlMix":"aIS34","./attrMix":"jDj6f","./playMix":"agXpy","./pauseMix":"zMuGC","./toggleMix":"fvNrm","./seekMix":"3CiN1","./volumeMix":"1LKRL","./currentTimeMix":"bjUCm","./durationMix":"l8grT","./switchMix":"bIvi5","./playbackRateMix":"3EFen","./aspectRatioMix":"8ucW5","./screenshotMix":"12WvT","./fullscreenMix":"gNUzM","./fullscreenWebMix":"f2xmf","./pipMix":"i5i0P","./loadedMix":"8X9EY","./playedMix":"1ziBX","./playingMix":"9898W","./autoSizeMix":"b1yGg","./rectMix":"eKKgI","./flipMix":"ad3ay","./miniMix":"hUF3v","./posterMix":"6j7ij","./autoHeightMix":"8Mzuu","./cssVarMix":"fypct","./themeMix":"dv3lF","./typeMix":"2FCQH","./stateMix":"iG6Jk","./subtitleOffsetMix":"lTNEf","./airplayMix":"bIjnH","./qualityMix":"ke1N4","./thumbnailsMix":"fuLsO","./optionInit":"9Us4p","./eventInit":"4hZCW","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"aIS34":[function(require,module,exports,__globalThis) { +},{"./urlMix":"esLaT","./attrMix":"bI9nt","./playMix":"lsQBb","./pauseMix":"j7SoA","./toggleMix":"gt5Qh","./seekMix":"aOXnw","./volumeMix":"fIzu0","./currentTimeMix":"1nPI2","./durationMix":"gKWyP","./switchMix":"fhErJ","./playbackRateMix":"b6rDz","./aspectRatioMix":"3f0n5","./screenshotMix":"kwHom","./fullscreenMix":"bdfra","./fullscreenWebMix":"3ug77","./pipMix":"iz9Aq","./loadedMix":"lmx0A","./playedMix":"CTEqN","./playingMix":"jMFse","./autoSizeMix":"cbo97","./rectMix":"iR6EQ","./flipMix":"9KwcF","./miniMix":"5xcsH","./posterMix":"iVqmF","./autoHeightMix":"5MwjN","./cssVarMix":"awlhX","./themeMix":"61Zjc","./typeMix":"gtfHf","./stateMix":"ls3ui","./subtitleOffsetMix":"exULR","./airplayMix":"2xawd","./qualityMix":"2gM0L","./thumbnailsMix":"1gQEa","./optionInit":"2TEf9","./eventInit":"8E0KF","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"esLaT":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>urlMix); @@ -1612,7 +1609,7 @@ function urlMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"jDj6f":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"bI9nt":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>attrMix); @@ -1627,7 +1624,7 @@ function attrMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"agXpy":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"lsQBb":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>playMix); @@ -1648,7 +1645,7 @@ function playMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"zMuGC":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"j7SoA":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>pauseMix); @@ -1665,7 +1662,7 @@ function pauseMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"fvNrm":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"gt5Qh":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>toggleMix); @@ -1679,7 +1676,7 @@ function toggleMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"3CiN1":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"aOXnw":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>seekMix); @@ -1705,7 +1702,7 @@ function seekMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"1LKRL":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"fIzu0":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>volumeMix); @@ -1729,7 +1726,7 @@ function volumeMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"bjUCm":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"1nPI2":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>currentTimeMix); @@ -1746,7 +1743,7 @@ function currentTimeMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"l8grT":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"gKWyP":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>durationMix); @@ -1761,7 +1758,7 @@ function durationMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"bIvi5":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"fhErJ":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>switchMix); @@ -1802,7 +1799,7 @@ function switchMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"3EFen":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"b6rDz":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>playbackRateMix); @@ -1823,7 +1820,7 @@ function playbackRateMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"8ucW5":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"3f0n5":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>aspectRatioMix); @@ -1863,7 +1860,7 @@ function aspectRatioMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"12WvT":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"kwHom":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>screenshotMix); @@ -1910,7 +1907,7 @@ function screenshotMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"gNUzM":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"bdfra":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>fullscreenMix); @@ -1974,7 +1971,7 @@ function fullscreenMix(art) { }); } -},{"../libs/screenfull":"eQous","../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"eQous":[function(require,module,exports,__globalThis) { +},{"../libs/screenfull":"7G3Ks","../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"7G3Ks":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); const methodMap = [ @@ -2102,7 +2099,7 @@ if (!nativeAPI) screenfull = { }; exports.default = screenfull; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"f2xmf":[function(require,module,exports,__globalThis) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"3ug77":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>fullscreenWebMix); @@ -2137,7 +2134,7 @@ function fullscreenWebMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"i5i0P":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"iz9Aq":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>pipMix); @@ -2202,7 +2199,7 @@ function pipMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"8X9EY":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"lmx0A":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>seekMix); @@ -2219,7 +2216,7 @@ function seekMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"1ziBX":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"CTEqN":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>playedMix); @@ -2230,7 +2227,7 @@ function playedMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"9898W":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"jMFse":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>playingMix); @@ -2245,7 +2242,7 @@ function playingMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"b1yGg":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"cbo97":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>resizeMix); @@ -2275,7 +2272,7 @@ function resizeMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"eKKgI":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"iR6EQ":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>rectMix); @@ -2314,7 +2311,7 @@ function rectMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"ad3ay":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"9KwcF":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>flipMix); @@ -2335,7 +2332,7 @@ function flipMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"hUF3v":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"5xcsH":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>miniMix); @@ -2446,7 +2443,7 @@ function miniMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"6j7ij":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"iVqmF":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>posterMix); @@ -2468,7 +2465,7 @@ function posterMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"8Mzuu":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"5MwjN":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>autoHeightMix); @@ -2486,7 +2483,7 @@ function autoHeightMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"fypct":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"awlhX":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>cssVarMix); @@ -2501,7 +2498,7 @@ function cssVarMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"dv3lF":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"61Zjc":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>themeMix); @@ -2517,7 +2514,7 @@ function themeMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"2FCQH":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"gtfHf":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>typeMix); @@ -2533,7 +2530,7 @@ function typeMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"iG6Jk":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"ls3ui":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>stateMix); @@ -2556,7 +2553,7 @@ function stateMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"lTNEf":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"exULR":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>subtitleOffsetMix); @@ -2586,7 +2583,7 @@ function subtitleOffsetMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"bIjnH":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"2xawd":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>airplayMix); @@ -2615,7 +2612,7 @@ function airplayMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"ke1N4":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"2gM0L":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>qualityMix); @@ -2644,7 +2641,7 @@ function qualityMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"fuLsO":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"1gQEa":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>thumbnailsMix); @@ -2723,7 +2720,7 @@ function thumbnailsMix(art) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"9Us4p":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"2TEf9":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>attrInit); @@ -2746,7 +2743,7 @@ function attrInit(art) { art.url = option.url; } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"4hZCW":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"8E0KF":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>eventInit); @@ -2859,7 +2856,7 @@ function eventInit(art) { }); } -},{"../config":"2ZnKD","../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"faO0X":[function(require,module,exports,__globalThis) { +},{"../config":"1dlGA","../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"cNVpy":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _component = require("../utils/component"); @@ -3048,7 +3045,7 @@ class Control extends (0, _componentDefault.default) { } exports.default = Control; -},{"../utils/component":"bgug2","./fullscreen":"bHDMy","./fullscreenWeb":"8HUSd","./pip":"5nd2H","./playAndPause":"gt2F0","./progress":"aHyb0","./time":"hL9ry","./volume":"3G9Wa","./setting":"jQ9Bw","./screenshot":"aA6wc","./airplay":"iKTFA","../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"bgug2":[function(require,module,exports,__globalThis) { +},{"../utils/component":"1wQH1","./fullscreen":"hZAUt","./fullscreenWeb":"hI1SN","./pip":"ka0Xr","./playAndPause":"jeo77","./progress":"7uH4F","./time":"4MZ6S","./volume":"eP3Jv","./setting":"d5chS","./screenshot":"2XZ2T","./airplay":"lTlrf","../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"1wQH1":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _dom = require("./dom"); @@ -3139,7 +3136,7 @@ class Component { } exports.default = Component; -},{"./dom":"dNynC","./error":"622b3","option-validator":"2tbdu","../scheme":"gL38d","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"bHDMy":[function(require,module,exports,__globalThis) { +},{"./dom":"1aVnA","./error":"29G01","option-validator":"9hUEm","../scheme":"8YPbR","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"hZAUt":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>fullscreen); @@ -3171,7 +3168,7 @@ function fullscreen(option) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"8HUSd":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"hI1SN":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>fullscreenWeb); @@ -3203,7 +3200,7 @@ function fullscreenWeb(option) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"5nd2H":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"ka0Xr":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>pip); @@ -3225,7 +3222,7 @@ function pip(option) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"gt2F0":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"jeo77":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>playAndPause); @@ -3265,7 +3262,7 @@ function playAndPause(option) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"aHyb0":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"7uH4F":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "getPosFromEvent", ()=>getPosFromEvent); @@ -3425,7 +3422,7 @@ function progress(options) { }; } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"hL9ry":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"4MZ6S":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>time); @@ -3456,7 +3453,7 @@ function time(option) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"3G9Wa":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"eP3Jv":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>volume); @@ -3524,7 +3521,7 @@ function volume(option) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"jQ9Bw":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"d5chS":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>setting); @@ -3547,7 +3544,7 @@ function setting(option) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"aA6wc":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"2XZ2T":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>screenshot); @@ -3566,7 +3563,7 @@ function screenshot(option) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"iKTFA":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"lTlrf":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>pip); @@ -3583,7 +3580,7 @@ function pip(option) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"5npaZ":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"dx7Zz":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -3662,7 +3659,7 @@ class Contextmenu extends (0, _componentDefault.default) { } exports.default = Contextmenu; -},{"../utils":"jmgNb","../utils/component":"bgug2","./playbackRate":"eoKzP","./aspectRatio":"7ejUt","./flip":"dAW0A","./info":"1jWhq","./version":"dapbx","./close":"9E5SI","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"eoKzP":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","../utils/component":"1wQH1","./playbackRate":"dI4ur","./aspectRatio":"iS5RH","./flip":"cqZI9","./info":"hbkKl","./version":"b5I2V","./close":"2Iw6R","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"dI4ur":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>playbackRate); @@ -3693,7 +3690,7 @@ function playbackRate(option) { }; } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"7ejUt":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"iS5RH":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>aspectRatio); @@ -3724,7 +3721,7 @@ function aspectRatio(option) { }; } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"dAW0A":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"cqZI9":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>flip); @@ -3755,7 +3752,7 @@ function flip(option) { }; } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"1jWhq":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"hbkKl":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>info); @@ -3770,18 +3767,18 @@ function info(option) { }); } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"dapbx":[function(require,module,exports,__globalThis) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"b5I2V":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>version); function version(option) { return { ...option, - html: `ArtPlayer ${"5.2.3"}` + html: `ArtPlayer ${'__APP_VERSION__'}` }; } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"9E5SI":[function(require,module,exports,__globalThis) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"2Iw6R":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>close); @@ -3795,7 +3792,7 @@ function close(option) { }); } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"6vVKE":[function(require,module,exports,__globalThis) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"gvEup":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("./utils"); @@ -3829,7 +3826,7 @@ class Info extends (0, _componentDefault.default) { } exports.default = Info; -},{"./utils":"jmgNb","./utils/component":"bgug2","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"4exyO":[function(require,module,exports,__globalThis) { +},{"./utils":"gGxPm","./utils/component":"1wQH1","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"hxr0l":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("./utils"); @@ -3965,7 +3962,7 @@ class Subtitle extends (0, _componentDefault.default) { } exports.default = Subtitle; -},{"./utils":"jmgNb","./utils/component":"bgug2","option-validator":"2tbdu","./scheme":"gL38d","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"dz5ul":[function(require,module,exports,__globalThis) { +},{"./utils":"gGxPm","./utils/component":"1wQH1","option-validator":"9hUEm","./scheme":"8YPbR","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"dQzlM":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _clickInit = require("./clickInit"); @@ -4025,7 +4022,7 @@ class Events { } exports.default = Events; -},{"./clickInit":"3fsfH","./hoverInit":"jr1ic","./moveInit":"jnUlq","./resizeInit":"2r19L","./gestureInit":"2IPOb","./viewInit":"fmrIX","./documentInit":"bIWxm","./updateInit":"4Xp2q","./restoreInit":"9tEoR","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"3fsfH":[function(require,module,exports,__globalThis) { +},{"./clickInit":"jci0Q","./hoverInit":"hY9ON","./moveInit":"cJ7iV","./resizeInit":"15qnS","./gestureInit":"55SCY","./viewInit":"lGG7W","./documentInit":"2w8KX","./updateInit":"2iqzD","./restoreInit":"fg193","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"jci0Q":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>clickInit); @@ -4073,7 +4070,7 @@ function clickInit(art, events) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"jr1ic":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"hY9ON":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>hoverInit); @@ -4089,7 +4086,7 @@ function hoverInit(art, events) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"jnUlq":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"cJ7iV":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>moveInit); @@ -4100,7 +4097,7 @@ function moveInit(art, events) { }); } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"2r19L":[function(require,module,exports,__globalThis) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"15qnS":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>resizeInit); @@ -4121,7 +4118,7 @@ function resizeInit(art, events) { if (screen && screen.orientation && screen.orientation.onchange) events.proxy(screen.orientation, 'change', ()=>resizeFn()); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"2IPOb":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"55SCY":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>gestureInit); @@ -4210,7 +4207,7 @@ function gestureInit(art, events) { } } -},{"../utils":"jmgNb","../control/progress":"aHyb0","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"fmrIX":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","../control/progress":"7uH4F","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"lGG7W":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>viewInit); @@ -4226,7 +4223,7 @@ function viewInit(art, events) { }); } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"bIWxm":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"2w8KX":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>documentInit); @@ -4239,7 +4236,7 @@ function documentInit(art, events) { }); } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"4Xp2q":[function(require,module,exports,__globalThis) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"2iqzD":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>updateInit); @@ -4256,7 +4253,7 @@ function updateInit(art) { } } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"9tEoR":[function(require,module,exports,__globalThis) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"fg193":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>restoreInit); @@ -4264,7 +4261,7 @@ function restoreInit(art, events) { // } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"1nFqF":[function(require,module,exports,__globalThis) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"drylQ":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("./utils"); @@ -4327,7 +4324,7 @@ class Hotkey { } exports.default = Hotkey; -},{"./utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"fvy8V":[function(require,module,exports,__globalThis) { +},{"./utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"7Oas9":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _component = require("./utils/component"); @@ -4343,7 +4340,7 @@ class Layer extends (0, _componentDefault.default) { } exports.default = Layer; -},{"./utils/component":"bgug2","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"h8KPY":[function(require,module,exports,__globalThis) { +},{"./utils/component":"1wQH1","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"glZdQ":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("./utils"); @@ -4358,7 +4355,7 @@ class Loading extends (0, _componentDefault.default) { } exports.default = Loading; -},{"./utils":"jmgNb","./utils/component":"bgug2","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"cr1XY":[function(require,module,exports,__globalThis) { +},{"./utils":"gGxPm","./utils/component":"1wQH1","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"jZEIz":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("./utils"); @@ -4382,7 +4379,7 @@ class Notice { } exports.default = Notice; -},{"./utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"llnR4":[function(require,module,exports,__globalThis) { +},{"./utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"iGxU6":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("./utils"); @@ -4405,7 +4402,7 @@ class Mask extends (0, _componentDefault.default) { } exports.default = Mask; -},{"./utils":"jmgNb","./utils/component":"bgug2","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"gP6M7":[function(require,module,exports,__globalThis) { +},{"./utils":"gGxPm","./utils/component":"1wQH1","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"avFu3":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -4502,88 +4499,88 @@ class Icons { } exports.default = Icons; -},{"../utils":"jmgNb","bundle-text:./loading.svg":"kQAWs","bundle-text:./state.svg":"fv62Y","bundle-text:./check.svg":"hpwmG","bundle-text:./play.svg":"ez3XI","bundle-text:./pause.svg":"cXb2s","bundle-text:./volume.svg":"9ziFm","bundle-text:./volume-close.svg":"gHdy5","bundle-text:./screenshot.svg":"7uQ3x","bundle-text:./setting.svg":"23jGe","bundle-text:./arrow-left.svg":"2m0J3","bundle-text:./arrow-right.svg":"d9iPY","bundle-text:./playback-rate.svg":"iFVXO","bundle-text:./aspect-ratio.svg":"4qJAN","bundle-text:./config.svg":"6iK2N","bundle-text:./pip.svg":"f0XBL","bundle-text:./lock.svg":"kCaVg","bundle-text:./unlock.svg":"lWIPo","bundle-text:./fullscreen-off.svg":"a6qSz","bundle-text:./fullscreen-on.svg":"2cUeR","bundle-text:./fullscreen-web-off.svg":"9P4Tw","bundle-text:./fullscreen-web-on.svg":"lv7bb","bundle-text:./switch-on.svg":"iaKl1","bundle-text:./switch-off.svg":"47VYR","bundle-text:./flip.svg":"kQBsA","bundle-text:./error.svg":"gHC6Z","bundle-text:./close.svg":"dSIbz","bundle-text:./airplay.svg":"2G32R","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"kQAWs":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","bundle-text:./loading.svg":"a8tLL","bundle-text:./state.svg":"3saNl","bundle-text:./check.svg":"aiplG","bundle-text:./play.svg":"beYr7","bundle-text:./pause.svg":"J3in3","bundle-text:./volume.svg":"ukTSv","bundle-text:./volume-close.svg":"6JUKA","bundle-text:./screenshot.svg":"8LOBK","bundle-text:./setting.svg":"8Yj97","bundle-text:./arrow-left.svg":"lcTQw","bundle-text:./arrow-right.svg":"gFlrD","bundle-text:./playback-rate.svg":"j3gVX","bundle-text:./aspect-ratio.svg":"jEt3d","bundle-text:./config.svg":"e5yY6","bundle-text:./pip.svg":"bf3DE","bundle-text:./lock.svg":"KAFOJ","bundle-text:./unlock.svg":"gxaqy","bundle-text:./fullscreen-off.svg":"abDO6","bundle-text:./fullscreen-on.svg":"053Ce","bundle-text:./fullscreen-web-off.svg":"6YHfk","bundle-text:./fullscreen-web-on.svg":"iUjB4","bundle-text:./switch-on.svg":"90Mh0","bundle-text:./switch-off.svg":"5Q8fg","bundle-text:./flip.svg":"k6eqp","bundle-text:./error.svg":"85f9B","bundle-text:./close.svg":"5K1Ys","bundle-text:./airplay.svg":"gtvwT","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"a8tLL":[function(require,module,exports,__globalThis) { module.exports = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n"; -},{}],"fv62Y":[function(require,module,exports,__globalThis) { +},{}],"3saNl":[function(require,module,exports,__globalThis) { module.exports = "\n\n\n"; -},{}],"hpwmG":[function(require,module,exports,__globalThis) { +},{}],"aiplG":[function(require,module,exports,__globalThis) { module.exports = "\n\n"; -},{}],"ez3XI":[function(require,module,exports,__globalThis) { +},{}],"beYr7":[function(require,module,exports,__globalThis) { module.exports = "\n \n"; -},{}],"cXb2s":[function(require,module,exports,__globalThis) { +},{}],"J3in3":[function(require,module,exports,__globalThis) { module.exports = "\n \n"; -},{}],"9ziFm":[function(require,module,exports,__globalThis) { +},{}],"ukTSv":[function(require,module,exports,__globalThis) { module.exports = "\n \n \n"; -},{}],"gHdy5":[function(require,module,exports,__globalThis) { +},{}],"6JUKA":[function(require,module,exports,__globalThis) { module.exports = "\n \n \n"; -},{}],"7uQ3x":[function(require,module,exports,__globalThis) { +},{}],"8LOBK":[function(require,module,exports,__globalThis) { module.exports = "\n\t\n\n"; -},{}],"23jGe":[function(require,module,exports,__globalThis) { +},{}],"8Yj97":[function(require,module,exports,__globalThis) { module.exports = "\n \n \n"; -},{}],"2m0J3":[function(require,module,exports,__globalThis) { +},{}],"lcTQw":[function(require,module,exports,__globalThis) { module.exports = "\n \n"; -},{}],"d9iPY":[function(require,module,exports,__globalThis) { +},{}],"gFlrD":[function(require,module,exports,__globalThis) { module.exports = "\n \n"; -},{}],"iFVXO":[function(require,module,exports,__globalThis) { +},{}],"j3gVX":[function(require,module,exports,__globalThis) { module.exports = ""; -},{}],"4qJAN":[function(require,module,exports,__globalThis) { +},{}],"jEt3d":[function(require,module,exports,__globalThis) { module.exports = ""; -},{}],"6iK2N":[function(require,module,exports,__globalThis) { +},{}],"e5yY6":[function(require,module,exports,__globalThis) { module.exports = ""; -},{}],"f0XBL":[function(require,module,exports,__globalThis) { +},{}],"bf3DE":[function(require,module,exports,__globalThis) { module.exports = "\n \n"; -},{}],"kCaVg":[function(require,module,exports,__globalThis) { +},{}],"KAFOJ":[function(require,module,exports,__globalThis) { module.exports = "\n\n\n\n"; -},{}],"lWIPo":[function(require,module,exports,__globalThis) { +},{}],"gxaqy":[function(require,module,exports,__globalThis) { module.exports = "\n\n\n"; -},{}],"a6qSz":[function(require,module,exports,__globalThis) { +},{}],"abDO6":[function(require,module,exports,__globalThis) { module.exports = "\n\n\n\n"; -},{}],"2cUeR":[function(require,module,exports,__globalThis) { +},{}],"053Ce":[function(require,module,exports,__globalThis) { module.exports = "\n\n\n\n"; -},{}],"9P4Tw":[function(require,module,exports,__globalThis) { +},{}],"6YHfk":[function(require,module,exports,__globalThis) { module.exports = "\n\n\n\n"; -},{}],"lv7bb":[function(require,module,exports,__globalThis) { +},{}],"iUjB4":[function(require,module,exports,__globalThis) { module.exports = "\n\n\n\n"; -},{}],"iaKl1":[function(require,module,exports,__globalThis) { +},{}],"90Mh0":[function(require,module,exports,__globalThis) { module.exports = "\n\n\n \n"; -},{}],"47VYR":[function(require,module,exports,__globalThis) { +},{}],"5Q8fg":[function(require,module,exports,__globalThis) { module.exports = "\n\n\n \n"; -},{}],"kQBsA":[function(require,module,exports,__globalThis) { +},{}],"k6eqp":[function(require,module,exports,__globalThis) { module.exports = "\n\n\n\n\n"; -},{}],"gHC6Z":[function(require,module,exports,__globalThis) { +},{}],"85f9B":[function(require,module,exports,__globalThis) { module.exports = "\n\n\n\n\n"; -},{}],"dSIbz":[function(require,module,exports,__globalThis) { +},{}],"5K1Ys":[function(require,module,exports,__globalThis) { module.exports = "\n\n\n\n\n"; -},{}],"2G32R":[function(require,module,exports,__globalThis) { +},{}],"gtvwT":[function(require,module,exports,__globalThis) { module.exports = "\n \n \n \n \n"; -},{}],"e5Aaq":[function(require,module,exports,__globalThis) { +},{}],"7ATN8":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _flip = require("./flip"); @@ -4993,7 +4990,7 @@ class Setting extends (0, _componentDefault.default) { } exports.default = Setting; -},{"./flip":"7rVpZ","./aspectRatio":"9hfUt","./playbackRate":"8RIYy","./subtitleOffset":"aVPfi","../utils/component":"bgug2","../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"7rVpZ":[function(require,module,exports,__globalThis) { +},{"./flip":"dj3LV","./aspectRatio":"g3wkQ","./playbackRate":"33vMI","./subtitleOffset":"82BM5","../utils/component":"1wQH1","../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"dj3LV":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>flip); @@ -5032,7 +5029,7 @@ function flip(art) { }; } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"9hfUt":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"g3wkQ":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>aspectRatio); @@ -5070,7 +5067,7 @@ function aspectRatio(art) { }; } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"8RIYy":[function(require,module,exports,__globalThis) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"33vMI":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>playbackRate); @@ -5108,7 +5105,7 @@ function playbackRate(art) { }; } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"aVPfi":[function(require,module,exports,__globalThis) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"82BM5":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>subtitleOffset); @@ -5139,7 +5136,7 @@ function subtitleOffset(art) { }; } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"feFxw":[function(require,module,exports,__globalThis) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"grHII":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); class Storage { @@ -5188,7 +5185,7 @@ class Storage { } exports.default = Storage; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"h1hfO":[function(require,module,exports,__globalThis) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"6P64r":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -5231,7 +5228,7 @@ class Plugins { } exports.default = Plugins; -},{"../utils":"jmgNb","./miniProgressBar":"dMA6v","./autoOrientation":"aROGj","./autoPlayback":"kQ2fc","./fastForward":"fgbhT","./lock":"j2mDF","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"dMA6v":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","./miniProgressBar":"bMAvE","./autoOrientation":"kQuMm","./autoPlayback":"5JFuz","./fastForward":"ae4vU","./lock":"aMHP0","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"bMAvE":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>miniProgressBar); @@ -5246,7 +5243,7 @@ function miniProgressBar(art) { }; } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"aROGj":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"kQuMm":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>autoOrientation); @@ -5297,7 +5294,7 @@ function autoOrientation(art) { }; } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"kQ2fc":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"5JFuz":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>autoPlayback); @@ -5370,7 +5367,7 @@ function autoPlayback(art) { }; } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"fgbhT":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"ae4vU":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>fastForward); @@ -5407,7 +5404,7 @@ function fastForward(art) { }; } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"j2mDF":[function(require,module,exports,__globalThis) { +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"aMHP0":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>lock); @@ -5460,6 +5457,6 @@ function lock(art) { }; } -},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}]},["eFv8l"], "eFv8l", "parcelRequire4dc0", {}) +},{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}]},["jHWOm"], "jHWOm", "parcelRequire4dc0", {}) //# sourceMappingURL=index.js.map diff --git a/docs/uncompiled/artplayer/index.js.map b/docs/uncompiled/artplayer/index.js.map index 332ab1a87..d58f231f4 100644 --- a/docs/uncompiled/artplayer/index.js.map +++ b/docs/uncompiled/artplayer/index.js.map @@ -1 +1 @@ -{"mappings":"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","sources":["packages/artplayer/src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-36399c71fd65785e.js","node_modules/option-validator/dist/option-validator.js","packages/artplayer/src/utils/emitter.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js","packages/artplayer/src/utils/index.js","packages/artplayer/src/utils/dom.js","packages/artplayer/src/utils/compatibility.js","packages/artplayer/src/utils/error.js","packages/artplayer/src/utils/subtitle.js","packages/artplayer/src/utils/file.js","packages/artplayer/src/utils/property.js","packages/artplayer/src/utils/time.js","packages/artplayer/src/utils/format.js","packages/artplayer/src/scheme/index.js","packages/artplayer/src/config/index.js","packages/artplayer/src/template.js","packages/artplayer/src/i18n/index.js","packages/artplayer/src/i18n/zh-cn.js","packages/artplayer/src/player/index.js","packages/artplayer/src/player/urlMix.js","packages/artplayer/src/player/attrMix.js","packages/artplayer/src/player/playMix.js","packages/artplayer/src/player/pauseMix.js","packages/artplayer/src/player/toggleMix.js","packages/artplayer/src/player/seekMix.js","packages/artplayer/src/player/volumeMix.js","packages/artplayer/src/player/currentTimeMix.js","packages/artplayer/src/player/durationMix.js","packages/artplayer/src/player/switchMix.js","packages/artplayer/src/player/playbackRateMix.js","packages/artplayer/src/player/aspectRatioMix.js","packages/artplayer/src/player/screenshotMix.js","packages/artplayer/src/player/fullscreenMix.js","packages/artplayer/src/libs/screenfull.js","packages/artplayer/src/player/fullscreenWebMix.js","packages/artplayer/src/player/pipMix.js","packages/artplayer/src/player/loadedMix.js","packages/artplayer/src/player/playedMix.js","packages/artplayer/src/player/playingMix.js","packages/artplayer/src/player/autoSizeMix.js","packages/artplayer/src/player/rectMix.js","packages/artplayer/src/player/flipMix.js","packages/artplayer/src/player/miniMix.js","packages/artplayer/src/player/posterMix.js","packages/artplayer/src/player/autoHeightMix.js","packages/artplayer/src/player/cssVarMix.js","packages/artplayer/src/player/themeMix.js","packages/artplayer/src/player/typeMix.js","packages/artplayer/src/player/stateMix.js","packages/artplayer/src/player/subtitleOffsetMix.js","packages/artplayer/src/player/airplayMix.js","packages/artplayer/src/player/qualityMix.js","packages/artplayer/src/player/thumbnailsMix.js","packages/artplayer/src/player/optionInit.js","packages/artplayer/src/player/eventInit.js","packages/artplayer/src/control/index.js","packages/artplayer/src/utils/component.js","packages/artplayer/src/control/fullscreen.js","packages/artplayer/src/control/fullscreenWeb.js","packages/artplayer/src/control/pip.js","packages/artplayer/src/control/playAndPause.js","packages/artplayer/src/control/progress.js","packages/artplayer/src/control/time.js","packages/artplayer/src/control/volume.js","packages/artplayer/src/control/setting.js","packages/artplayer/src/control/screenshot.js","packages/artplayer/src/control/airplay.js","packages/artplayer/src/contextmenu/index.js","packages/artplayer/src/contextmenu/playbackRate.js","packages/artplayer/src/contextmenu/aspectRatio.js","packages/artplayer/src/contextmenu/flip.js","packages/artplayer/src/contextmenu/info.js","packages/artplayer/src/contextmenu/version.js","packages/artplayer/src/contextmenu/close.js","packages/artplayer/src/info.js","packages/artplayer/src/subtitle.js","packages/artplayer/src/events/index.js","packages/artplayer/src/events/clickInit.js","packages/artplayer/src/events/hoverInit.js","packages/artplayer/src/events/moveInit.js","packages/artplayer/src/events/resizeInit.js","packages/artplayer/src/events/gestureInit.js","packages/artplayer/src/events/viewInit.js","packages/artplayer/src/events/documentInit.js","packages/artplayer/src/events/updateInit.js","packages/artplayer/src/events/restoreInit.js","packages/artplayer/src/hotkey.js","packages/artplayer/src/layer.js","packages/artplayer/src/loading.js","packages/artplayer/src/notice.js","packages/artplayer/src/mask.js","packages/artplayer/src/icons/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-cc1465de590716c3.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-7354687a49315faa.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-16dba6b497e57200.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-f488ca9613523a89.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-944df7462f092344.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-905e2a3a5bf8821e.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-7ca6634310de48a5.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-ead51c22e001d3e4.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-5f406cb67e8ce068.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-4c8d4bdd32e5eb21.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-4e595cc5186a564d.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-c0889fbdfa73dc08.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-48946af7015cb1ff.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-424af5bfda438aed.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-7214ee73e4711a3f.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-d30b61330c0a5e8f.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-aea71df79a337dd1.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-446c9535ee37c4cf.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-3e81c0d117284ebb.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-6be8b022bb1f1d0e.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-5ac93b92a83bb1c2.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-bcccb383a7b6e33b.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-472cc0769143224b.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-714e675b41750899.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-bfedbb03557d8834.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-900fbd1165be66ff.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-925c7dcd24de3b97.js","packages/artplayer/src/setting/index.js","packages/artplayer/src/setting/flip.js","packages/artplayer/src/setting/aspectRatio.js","packages/artplayer/src/setting/playbackRate.js","packages/artplayer/src/setting/subtitleOffset.js","packages/artplayer/src/storage.js","packages/artplayer/src/plugins/index.js","packages/artplayer/src/plugins/miniProgressBar.js","packages/artplayer/src/plugins/autoOrientation.js","packages/artplayer/src/plugins/autoPlayback.js","packages/artplayer/src/plugins/fastForward.js","packages/artplayer/src/plugins/lock.js"],"sourcesContent":["import style from 'bundle-text:./style/index.less';\nimport validator from 'option-validator';\nimport Emitter from './utils/emitter';\nimport * as utils from './utils';\nimport scheme from './scheme';\nimport config from './config';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Control from './control';\nimport Contextmenu from './contextmenu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layer from './layer';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\nimport Icons from './icons';\nimport Setting from './setting';\nimport Storage from './storage';\nimport Plugins from './plugins';\n\nlet id = 0;\nconst instances = [];\nexport default class Artplayer extends Emitter {\n constructor(option, readyCallback) {\n super();\n\n this.id = ++id;\n\n const mergeOption = utils.mergeDeep(Artplayer.option, option);\n mergeOption.container = option.container;\n\n this.option = validator(mergeOption, scheme);\n\n this.isLock = false;\n this.isReady = false;\n this.isFocus = false;\n this.isInput = false;\n this.isRotate = false;\n this.isDestroy = false;\n\n this.template = new Template(this);\n this.events = new Events(this);\n this.storage = new Storage(this);\n this.icons = new Icons(this);\n this.i18n = new I18n(this);\n this.notice = new Notice(this);\n this.player = new Player(this);\n this.layers = new Layer(this);\n this.controls = new Control(this);\n this.contextmenu = new Contextmenu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n this.setting = new Setting(this);\n this.plugins = new Plugins(this);\n\n if (typeof readyCallback === 'function') {\n this.on('ready', () => readyCallback.call(this, this));\n }\n\n if (Artplayer.DEBUG) {\n const log = (msg) => console.log(`[ART.${this.id}] -> ${msg}`);\n log('Version@' + Artplayer.version);\n log('Env@' + Artplayer.env);\n log('Build@' + Artplayer.build);\n for (let index = 0; index < config.events.length; index++) {\n this.on('video:' + config.events[index], (event) => log('Event@' + event.type));\n }\n }\n\n instances.push(this);\n }\n\n static get instances() {\n return instances;\n }\n\n static get version() {\n return process.env.APP_VER;\n }\n\n static get env() {\n return process.env.NODE_ENV;\n }\n\n static get build() {\n return process.env.BUILD_DATE;\n }\n\n static get config() {\n return config;\n }\n\n static get utils() {\n return utils;\n }\n\n static get scheme() {\n return scheme;\n }\n\n static get Emitter() {\n return Emitter;\n }\n\n static get validator() {\n return validator;\n }\n\n static get kindOf() {\n return validator.kindOf;\n }\n\n static get html() {\n return Template.html;\n }\n\n static get option() {\n return {\n id: '',\n container: '#artplayer',\n url: '',\n poster: '',\n type: '',\n theme: '#f00',\n volume: 0.7,\n isLive: false,\n muted: false,\n autoplay: false,\n autoSize: false,\n autoMini: false,\n loop: false,\n flip: false,\n playbackRate: false,\n aspectRatio: false,\n screenshot: false,\n setting: false,\n hotkey: true,\n pip: false,\n mutex: true,\n backdrop: true,\n fullscreen: false,\n fullscreenWeb: false,\n subtitleOffset: false,\n miniProgressBar: false,\n useSSR: false,\n playsInline: true,\n lock: false,\n gesture: true,\n fastForward: false,\n autoPlayback: false,\n autoOrientation: false,\n airplay: false,\n proxy: undefined,\n layers: [],\n contextmenu: [],\n controls: [],\n settings: [],\n quality: [],\n highlight: [],\n plugins: [],\n thumbnails: {\n url: '',\n number: 60,\n column: 10,\n width: 0,\n height: 0,\n scale: 1,\n },\n subtitle: {\n url: '',\n type: '',\n style: {},\n name: '',\n escape: true,\n encoding: 'utf-8',\n onVttLoad: (vtt) => vtt,\n },\n moreVideoAttr: {\n controls: false,\n preload: utils.isSafari ? 'auto' : 'metadata',\n },\n i18n: {},\n icons: {},\n cssVar: {},\n customType: {},\n lang: navigator?.language.toLowerCase(),\n };\n }\n\n get proxy() {\n return this.events.proxy;\n }\n\n get query() {\n return this.template.query;\n }\n\n get video() {\n return this.template.$video;\n }\n\n destroy(removeHtml = true) {\n this.events.destroy();\n this.template.destroy(removeHtml);\n instances.splice(instances.indexOf(this), 1);\n this.isDestroy = true;\n this.emit('destroy');\n }\n}\n\nArtplayer.STYLE = style;\nArtplayer.DEBUG = false;\nArtplayer.CONTEXTMENU = true;\nArtplayer.NOTICE_TIME = 2000;\nArtplayer.SETTING_WIDTH = 250;\nArtplayer.SETTING_ITEM_WIDTH = 200;\nArtplayer.SETTING_ITEM_HEIGHT = 35;\nArtplayer.RESIZE_TIME = 200;\nArtplayer.SCROLL_TIME = 200;\nArtplayer.SCROLL_GAP = 50;\nArtplayer.AUTO_PLAYBACK_MAX = 10;\nArtplayer.AUTO_PLAYBACK_MIN = 5;\nArtplayer.AUTO_PLAYBACK_TIMEOUT = 3000;\nArtplayer.RECONNECT_TIME_MAX = 5;\nArtplayer.RECONNECT_SLEEP_TIME = 1000;\nArtplayer.CONTROL_HIDE_TIME = 3000;\nArtplayer.DBCLICK_TIME = 300;\nArtplayer.DBCLICK_FULLSCREEN = true;\nArtplayer.MOBILE_DBCLICK_PLAY = true;\nArtplayer.MOBILE_CLICK_PLAY = false;\nArtplayer.AUTO_ORIENTATION_TIME = 200;\nArtplayer.INFO_LOOP_TIME = 1000;\nArtplayer.FAST_FORWARD_VALUE = 3;\nArtplayer.FAST_FORWARD_TIME = 1000;\nArtplayer.TOUCH_MOVE_RATIO = 0.5;\nArtplayer.VOLUME_STEP = 0.1;\nArtplayer.SEEK_STEP = 5;\nArtplayer.PLAYBACK_RATE = [0.5, 0.75, 1, 1.25, 1.5, 2];\nArtplayer.ASPECT_RATIO = ['default', '4:3', '16:9'];\nArtplayer.FLIP = ['normal', 'horizontal', 'vertical'];\nArtplayer.FULLSCREEN_WEB_IN_BODY = false;\nArtplayer.LOG_VERSION = true;\nArtplayer.USE_RAF = false;\n\nif (utils.isBrowser) {\n window['Artplayer'] = Artplayer;\n\n utils.setStyleText('artplayer-style', style);\n\n setTimeout(() => {\n if (Artplayer.LOG_VERSION) {\n console.log(\n `%c ArtPlayer %c ${Artplayer.version} %c https://artplayer.org`,\n 'color: #fff; background: #5f5f5f',\n 'color: #fff; background: #4bc729',\n '',\n );\n }\n }, 100);\n}\n","module.exports = \"028e47e77afa80d5\";","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):r.optionValidator=t()}(this,function(){\"use strict\";function e(r){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&\"function\"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?\"symbol\":typeof r})(r)}var n=Object.prototype.toString,c=function(r){if(void 0===r)return\"undefined\";if(null===r)return\"null\";var t=e(r);if(\"boolean\"===t)return\"boolean\";if(\"string\"===t)return\"string\";if(\"number\"===t)return\"number\";if(\"symbol\"===t)return\"symbol\";if(\"function\"===t)return function(r){return\"GeneratorFunction\"===o(r)}(r)?\"generatorfunction\":\"function\";if(function(r){return Array.isArray?Array.isArray(r):r instanceof Array}(r))return\"array\";if(function(r){if(r.constructor&&\"function\"==typeof r.constructor.isBuffer)return r.constructor.isBuffer(r);return!1}(r))return\"buffer\";if(function(r){try{if(\"number\"==typeof r.length&&\"function\"==typeof r.callee)return!0}catch(r){if(-1!==r.message.indexOf(\"callee\"))return!0}return!1}(r))return\"arguments\";if(function(r){return r instanceof Date||\"function\"==typeof r.toDateString&&\"function\"==typeof r.getDate&&\"function\"==typeof r.setDate}(r))return\"date\";if(function(r){return r instanceof Error||\"string\"==typeof r.message&&r.constructor&&\"number\"==typeof r.constructor.stackTraceLimit}(r))return\"error\";if(function(r){return r instanceof RegExp||\"string\"==typeof r.flags&&\"boolean\"==typeof r.ignoreCase&&\"boolean\"==typeof r.multiline&&\"boolean\"==typeof r.global}(r))return\"regexp\";switch(o(r)){case\"Symbol\":return\"symbol\";case\"Promise\":return\"promise\";case\"WeakMap\":return\"weakmap\";case\"WeakSet\":return\"weakset\";case\"Map\":return\"map\";case\"Set\":return\"set\";case\"Int8Array\":return\"int8array\";case\"Uint8Array\":return\"uint8array\";case\"Uint8ClampedArray\":return\"uint8clampedarray\";case\"Int16Array\":return\"int16array\";case\"Uint16Array\":return\"uint16array\";case\"Int32Array\":return\"int32array\";case\"Uint32Array\":return\"uint32array\";case\"Float32Array\":return\"float32array\";case\"Float64Array\":return\"float64array\"}if(function(r){return\"function\"==typeof r.throw&&\"function\"==typeof r.return&&\"function\"==typeof r.next}(r))return\"generator\";switch(t=n.call(r)){case\"[object Object]\":return\"object\";case\"[object Map Iterator]\":return\"mapiterator\";case\"[object Set Iterator]\":return\"setiterator\";case\"[object String Iterator]\":return\"stringiterator\";case\"[object Array Iterator]\":return\"arrayiterator\"}return t.slice(8,-1).toLowerCase().replace(/\\s/g,\"\")};function o(r){return r.constructor?r.constructor.name:null}function f(r,t){var e=2 item !== target);\n}\n\nexport function inverseClass(target, className) {\n sublings(target).forEach((item) => removeClass(item, className));\n addClass(target, className);\n}\n\nexport function tooltip(target, msg, pos = 'top') {\n if (isMobile) return;\n target.setAttribute('aria-label', msg);\n addClass(target, 'hint--rounded');\n addClass(target, `hint--${pos}`);\n}\n\nexport function isInViewport(el, offset = 0) {\n const rect = el.getBoundingClientRect();\n const windowHeight = window.innerHeight || document.documentElement.clientHeight;\n const windowWidth = window.innerWidth || document.documentElement.clientWidth;\n const vertInView = rect.top - offset <= windowHeight && rect.top + rect.height + offset >= 0;\n const horInView = rect.left - offset <= windowWidth + offset && rect.left + rect.width + offset >= 0;\n return vertInView && horInView;\n}\n\nexport function includeFromEvent(event, target) {\n return event.composedPath && event.composedPath().indexOf(target) > -1;\n}\n\nexport function replaceElement(newChild, oldChild) {\n oldChild.parentNode.replaceChild(newChild, oldChild);\n return newChild;\n}\n\nexport function createElement(tag) {\n return document.createElement(tag);\n}\n\nexport function getIcon(key = '', html = '') {\n const icon = createElement('i');\n addClass(icon, 'art-icon');\n addClass(icon, `art-icon-${key}`);\n append(icon, html);\n return icon;\n}\n\nexport function setStyleText(id, style) {\n let $style = document.getElementById(id);\n if (!$style) {\n $style = document.createElement('style');\n $style.id = id;\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', () => {\n document.head.appendChild($style);\n });\n } else {\n (document.head || document.documentElement).appendChild($style);\n }\n }\n $style.textContent = style;\n}\n\nexport function supportsFlex() {\n const div = document.createElement('div');\n div.style.display = 'flex';\n return div.style.display === 'flex';\n}\n\nexport function getRect(el) {\n return el.getBoundingClientRect();\n}\n\nexport function loadImg(url, scale) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n\n img.onload = function () {\n if (!scale || scale === 1) {\n resolve(img);\n } else {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n canvas.width = img.width * scale;\n canvas.height = img.height * scale;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n\n canvas.toBlob((blob) => {\n const blobUrl = URL.createObjectURL(blob);\n const scaledImg = new Image();\n\n scaledImg.onload = function () {\n resolve(scaledImg);\n };\n\n scaledImg.onerror = function () {\n URL.revokeObjectURL(blobUrl);\n reject(new Error(`Image load failed: ${url}`));\n };\n\n scaledImg.src = blobUrl;\n });\n }\n };\n\n img.onerror = function () {\n reject(new Error(`Image load failed: ${url}`));\n };\n\n img.src = url;\n });\n}\n","export const userAgent = typeof navigator !== 'undefined' ? navigator.userAgent : '';\nexport const isSafari = /^((?!chrome|android).)*safari/i.test(userAgent);\nexport const isWechat = /MicroMessenger/i.test(userAgent);\nexport const isIE = /MSIE|Trident/i.test(userAgent);\nexport const isAndroid = /android/i.test(userAgent);\nexport const isIOS = /iPad|iPhone|iPod/i.test(userAgent) && !window.MSStream;\nexport const isIOS13 = isIOS || (userAgent.includes('Macintosh') && navigator.maxTouchPoints >= 1);\nexport const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent) || isIOS13;\nexport const isBrowser = typeof window !== 'undefined';\n","export class ArtPlayerError extends Error {\n constructor(message, context) {\n super(message);\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, context || this.constructor);\n }\n this.name = 'ArtPlayerError';\n }\n}\n\nexport function errorHandle(condition, msg) {\n if (!condition) {\n throw new ArtPlayerError(msg);\n }\n return condition;\n}\n","function fixSrt(srt) {\n return srt.replace(/(\\d\\d:\\d\\d:\\d\\d)[,.](\\d+)/g, (_, $1, $2) => {\n let ms = $2.slice(0, 3);\n if ($2.length === 1) {\n ms = $2 + '00';\n }\n if ($2.length === 2) {\n ms = $2 + '0';\n }\n return `${$1},${ms}`;\n });\n}\n\nexport function srtToVtt(srtText) {\n return 'WEBVTT \\r\\n\\r\\n'.concat(\n fixSrt(srtText)\n .replace(/\\{\\\\([ibu])\\}/g, '')\n .replace(/\\{\\\\([ibu])1\\}/g, '<$1>')\n .replace(/\\{([ibu])\\}/g, '<$1>')\n .replace(/\\{\\/([ibu])\\}/g, '')\n .replace(/(\\d\\d:\\d\\d:\\d\\d),(\\d\\d\\d)/g, '$1.$2')\n .replace(/{[\\s\\S]*?}/g, '')\n .concat('\\r\\n\\r\\n'),\n );\n}\n\nexport function vttToBlob(vttText) {\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt',\n }),\n );\n}\n\nexport function assToVtt(ass) {\n const reAss = new RegExp(\n 'Dialogue:\\\\s\\\\d,' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '([^,]*),' +\n '([^,]*),' +\n '(?:[^,]*,){4}' +\n '([\\\\s\\\\S]*)$',\n 'i',\n );\n\n function fixTime(time = '') {\n return time\n .split(/[:.]/)\n .map((item, index, arr) => {\n if (index === arr.length - 1) {\n if (item.length === 1) {\n return `.${item}00`;\n }\n\n if (item.length === 2) {\n return `.${item}0`;\n }\n } else if (item.length === 1) {\n return (index === 0 ? '0' : ':0') + item;\n }\n\n return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`;\n })\n .join('');\n }\n\n return (\n 'WEBVTT' +\n '\\n' +\n '\\n' +\n ass\n .split(/\\r?\\n/)\n .map((line) => {\n const m = line.match(reAss);\n if (!m) return null;\n return {\n start: fixTime(m[1].trim()),\n end: fixTime(m[2].trim()),\n text: m[5]\n .replace(/{[\\s\\S]*?}/g, '')\n .replace(/(\\\\N)/g, '\\n')\n .trim()\n .split(/\\r?\\n/)\n .map((item) => item.trim())\n .join('\\n'),\n };\n })\n .filter((line) => line)\n .map((line, index) => {\n if (line) {\n return index + 1 + '\\n' + `${line.start} --> ${line.end}` + '\\n' + `${line.text}`;\n }\n return '';\n })\n .filter((line) => line.trim())\n .join('\\n\\n')\n );\n}\n","export function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n if (url.includes('#')) {\n return getExt(url.split('#')[0]);\n }\n\n return url.trim().toLowerCase().split('.').pop();\n}\n\nexport function download(url, name) {\n const elink = document.createElement('a');\n elink.style.display = 'none';\n elink.href = url;\n elink.download = name;\n document.body.appendChild(elink);\n elink.click();\n document.body.removeChild(elink);\n}\n","export const def = Object.defineProperty;\n\nconst { hasOwnProperty } = Object.prototype;\nexport function has(obj, name) {\n return hasOwnProperty.call(obj, name);\n}\n\nexport function get(obj, name) {\n return Object.getOwnPropertyDescriptor(obj, name);\n}\n\nexport function mergeDeep(...objects) {\n const isObject = (item) => item && typeof item === 'object' && !Array.isArray(item);\n return objects.reduce((prev, obj) => {\n Object.keys(obj).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n","export function sleep(ms = 0) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function debounce(func, duration) {\n let timeout;\n\n return function (...args) {\n const effect = () => {\n timeout = null;\n return func.apply(this, args);\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(effect, duration);\n };\n}\n\nexport function throttle(func, duration) {\n let shouldWait = false;\n\n return function (...args) {\n if (!shouldWait) {\n func.apply(this, args);\n shouldWait = true;\n\n setTimeout(function () {\n shouldWait = false;\n }, duration);\n }\n };\n}\n","export function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nexport function secondToTime(second) {\n if (!second) return '00:00';\n const add0 = (num) => (num < 10 ? `0${num}` : String(num));\n const hour = Math.floor(second / 3600);\n const min = Math.floor((second - hour * 3600) / 60);\n const sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');\n}\n\nexport function escape(str) {\n return str.replace(\n /[&<>'\"]/g,\n (tag) =>\n ({\n '&': '&',\n '<': '<',\n '>': '>',\n \"'\": ''',\n '\"': '"',\n })[tag] || tag,\n );\n}\n\nexport function unescape(str) {\n const map = {\n '&': '&',\n '<': '<',\n '>': '>',\n ''': \"'\",\n '"': '\"',\n };\n const reg = new RegExp(`(${Object.keys(map).join('|')})`, 'g');\n return str.replace(reg, (tag) => map[tag] || tag);\n}\n","import { errorHandle } from '../utils';\n\nconst a = 'array';\nconst b = 'boolean';\nconst s = 'string';\nconst n = 'number';\nconst o = 'object';\nconst f = 'function';\n\nfunction validElement(value, type, paths) {\n return errorHandle(\n type === s || type === n || value instanceof Element,\n `${paths.join('.')} require '${s}' or 'Element' type`,\n );\n}\n\nexport const ComponentOption = {\n html: validElement,\n disable: `?${b}`,\n name: `?${s}`,\n index: `?${n}`,\n style: `?${o}`,\n click: `?${f}`,\n mounted: `?${f}`,\n tooltip: `?${s}|${n}`,\n width: `?${n}`,\n selector: `?${a}`,\n onSelect: `?${f}`,\n switch: `?${b}`,\n onSwitch: `?${f}`,\n range: `?${a}`,\n onRange: `?${f}`,\n onChange: `?${f}`,\n};\n\nexport default {\n id: s,\n container: validElement,\n url: s,\n poster: s,\n type: s,\n theme: s,\n lang: s,\n volume: n,\n isLive: b,\n muted: b,\n autoplay: b,\n autoSize: b,\n autoMini: b,\n loop: b,\n flip: b,\n playbackRate: b,\n aspectRatio: b,\n screenshot: b,\n setting: b,\n hotkey: b,\n pip: b,\n mutex: b,\n backdrop: b,\n fullscreen: b,\n fullscreenWeb: b,\n subtitleOffset: b,\n miniProgressBar: b,\n useSSR: b,\n playsInline: b,\n lock: b,\n gesture: b,\n fastForward: b,\n autoPlayback: b,\n autoOrientation: b,\n airplay: b,\n proxy: `?${f}`,\n plugins: [f],\n layers: [ComponentOption],\n contextmenu: [ComponentOption],\n settings: [ComponentOption],\n controls: [\n {\n ...ComponentOption,\n position: (value, _, paths) => {\n const position = ['top', 'left', 'right'];\n return errorHandle(\n position.includes(value),\n `${paths.join('.')} only accept ${position.toString()} as parameters`,\n );\n },\n },\n ],\n quality: [\n {\n default: `?${b}`,\n html: s,\n url: s,\n },\n ],\n highlight: [\n {\n time: n,\n text: s,\n },\n ],\n thumbnails: {\n url: s,\n number: n,\n column: n,\n width: n,\n height: n,\n scale: n,\n },\n subtitle: {\n url: s,\n name: s,\n type: s,\n style: o,\n escape: b,\n encoding: s,\n onVttLoad: f,\n },\n moreVideoAttr: o,\n i18n: o,\n icons: o,\n cssVar: o,\n customType: o,\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume',\n ],\n methods: ['addTextTrack', 'canPlayType', 'load', 'play', 'pause'],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n ],\n prototypes: [\n 'width',\n 'height',\n 'videoWidth',\n 'videoHeight',\n 'poster',\n 'webkitDecodedFrameCount',\n 'webkitDroppedFrameCount',\n 'playsInline',\n 'webkitSupportsFullscreen',\n 'webkitDisplayingFullscreen',\n 'onenterpictureinpicture',\n 'onleavepictureinpicture',\n 'disablePictureInPicture',\n 'cancelVideoFrameCallback',\n 'requestVideoFrameCallback',\n 'getVideoPlaybackQuality',\n 'requestPictureInPicture',\n 'webkitEnterFullScreen',\n 'webkitEnterFullscreen',\n 'webkitExitFullScreen',\n 'webkitExitFullscreen',\n ],\n};\n","import { supportsFlex, errorHandle, query, addClass, isMobile, replaceElement } from './utils';\n\nexport default class Template {\n constructor(art) {\n this.art = art;\n const { option, constructor } = art;\n\n if (option.container instanceof Element) {\n this.$container = option.container;\n } else {\n this.$container = query(option.container);\n errorHandle(this.$container, `No container element found by ${option.container}`);\n }\n\n errorHandle(supportsFlex(), 'The current browser does not support flex layout');\n\n const type = this.$container.tagName.toLowerCase();\n errorHandle(type === 'div', `Unsupported container element type, only support 'div' but got '${type}'`);\n\n errorHandle(\n constructor.instances.every((ins) => ins.template.$container !== this.$container),\n 'Cannot mount multiple instances on the same dom element',\n );\n\n this.query = this.query.bind(this);\n this.$container.dataset.artId = art.id;\n this.init();\n }\n\n static get html() {\n return `\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Player version:
\n
${process.env.APP_VER}
\n
\n
\n
Video url:
\n
\n
\n
\n
Video volume:
\n
\n
\n
\n
Video time:
\n
\n
\n
\n
Video duration:
\n
\n
\n
\n
Video resolution:
\n
\n x \n
\n
\n
\n
[x]
\n
\n
\n
\n `;\n }\n\n query(className) {\n return query(className, this.$container);\n }\n\n init() {\n const { option } = this.art;\n\n if (!option.useSSR) {\n this.$container.innerHTML = Template.html;\n }\n\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n this.$track = this.query('track');\n this.$poster = this.query('.art-poster');\n this.$subtitle = this.query('.art-subtitle');\n this.$danmuku = this.query('.art-danmuku');\n this.$bottom = this.query('.art-bottom');\n this.$progress = this.query('.art-progress');\n this.$controls = this.query('.art-controls');\n this.$controlsLeft = this.query('.art-controls-left');\n this.$controlsCenter = this.query('.art-controls-center');\n this.$controlsRight = this.query('.art-controls-right');\n this.$layer = this.query('.art-layers');\n this.$loading = this.query('.art-loading');\n this.$notice = this.query('.art-notice');\n this.$noticeInner = this.query('.art-notice-inner');\n this.$mask = this.query('.art-mask');\n this.$state = this.query('.art-state');\n this.$setting = this.query('.art-settings');\n this.$info = this.query('.art-info');\n this.$infoPanel = this.query('.art-info-panel');\n this.$infoClose = this.query('.art-info-close');\n this.$contextmenu = this.query('.art-contextmenus');\n\n if (option.proxy) {\n const video = option.proxy.call(this.art, this.art);\n errorHandle(\n video instanceof HTMLVideoElement || video instanceof HTMLCanvasElement,\n `Function 'option.proxy' needs to return 'HTMLVideoElement' or 'HTMLCanvasElement'`,\n );\n replaceElement(video, this.$video);\n video.className = 'art-video';\n this.$video = video;\n }\n\n if (option.backdrop) {\n addClass(this.$player, 'art-backdrop');\n }\n\n if (isMobile) {\n addClass(this.$player, 'art-mobile');\n }\n }\n\n destroy(removeHtml) {\n this.$video.src = '';\n if (removeHtml) {\n this.$container.innerHTML = '';\n } else {\n addClass(this.$player, 'art-destroy');\n }\n }\n}\n","import { mergeDeep } from '../utils';\nimport zhCn from './zh-cn';\n\nexport default class I18n {\n constructor(art) {\n this.art = art;\n\n this.languages = {\n 'zh-cn': zhCn,\n };\n\n this.language = {};\n\n this.update(art.option.i18n);\n }\n\n init() {\n const lang = this.art.option.lang.toLowerCase();\n this.language = this.languages[lang] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n\n update(value) {\n this.languages = mergeDeep(this.languages, value);\n this.init();\n }\n}\n","const zhCn = {\n 'Video Info': '统计信息',\n Close: '关闭',\n 'Video Load Failed': '加载失败',\n Volume: '音量',\n Play: '播放',\n Pause: '暂停',\n Rate: '速度',\n Mute: '静音',\n 'Video Flip': '画面翻转',\n Horizontal: '水平',\n Vertical: '垂直',\n Reconnect: '重新连接',\n 'Show Setting': '显示设置',\n 'Hide Setting': '隐藏设置',\n Screenshot: '截图',\n 'Play Speed': '播放速度',\n 'Aspect Ratio': '画面比例',\n Default: '默认',\n Normal: '正常',\n Open: '打开',\n 'Switch Video': '切换',\n 'Switch Subtitle': '切换字幕',\n Fullscreen: '全屏',\n 'Exit Fullscreen': '退出全屏',\n 'Web Fullscreen': '网页全屏',\n 'Exit Web Fullscreen': '退出网页全屏',\n 'Mini Player': '迷你播放器',\n 'PIP Mode': '开启画中画',\n 'Exit PIP Mode': '退出画中画',\n 'PIP Not Supported': '不支持画中画',\n 'Fullscreen Not Supported': '不支持全屏',\n 'Subtitle Offset': '字幕偏移',\n 'Last Seen': '上次看到',\n 'Jump Play': '跳转播放',\n AirPlay: '隔空播放',\n 'AirPlay Not Available': '隔空播放不可用',\n};\n\nexport default zhCn;\n\nif (typeof window !== 'undefined') {\n window['artplayer-i18n-zh-cn'] = zhCn;\n}\n","import urlMix from './urlMix';\nimport attrMix from './attrMix';\nimport playMix from './playMix';\nimport pauseMix from './pauseMix';\nimport toggleMix from './toggleMix';\nimport seekMix from './seekMix';\nimport volumeMix from './volumeMix';\nimport currentTimeMix from './currentTimeMix';\nimport durationMix from './durationMix';\nimport switchMix from './switchMix';\nimport playbackRateMix from './playbackRateMix';\nimport aspectRatioMix from './aspectRatioMix';\nimport screenshotMix from './screenshotMix';\nimport fullscreenMix from './fullscreenMix';\nimport fullscreenWebMix from './fullscreenWebMix';\nimport pipMix from './pipMix';\nimport loadedMix from './loadedMix';\nimport playedMix from './playedMix';\nimport playingMix from './playingMix';\nimport autoSizeMix from './autoSizeMix';\nimport rectMix from './rectMix';\nimport flipMix from './flipMix';\nimport miniMix from './miniMix';\nimport posterMix from './posterMix';\nimport autoHeightMix from './autoHeightMix';\nimport cssVarMix from './cssVarMix';\nimport themeMix from './themeMix';\nimport typeMix from './typeMix';\nimport stateMix from './stateMix';\nimport subtitleOffsetMix from './subtitleOffsetMix';\nimport airplayMix from './airplayMix';\nimport qualityMix from './qualityMix';\nimport thumbnailsMix from './thumbnailsMix';\nimport optionInit from './optionInit';\nimport eventInit from './eventInit';\n\nexport default class Player {\n constructor(art) {\n urlMix(art);\n attrMix(art);\n playMix(art);\n pauseMix(art);\n toggleMix(art);\n seekMix(art);\n volumeMix(art);\n currentTimeMix(art);\n durationMix(art);\n switchMix(art);\n playbackRateMix(art);\n aspectRatioMix(art);\n screenshotMix(art);\n fullscreenMix(art);\n fullscreenWebMix(art);\n pipMix(art);\n loadedMix(art);\n playedMix(art);\n playingMix(art);\n autoSizeMix(art);\n rectMix(art);\n flipMix(art);\n miniMix(art);\n posterMix(art);\n autoHeightMix(art);\n cssVarMix(art);\n themeMix(art);\n typeMix(art);\n stateMix(art);\n subtitleOffsetMix(art);\n airplayMix(art);\n qualityMix(art);\n thumbnailsMix(art);\n eventInit(art);\n optionInit(art);\n }\n}\n","import { getExt, def, sleep } from '../utils';\n\nexport default function urlMix(art) {\n const {\n option,\n template: { $video },\n } = art;\n\n def(art, 'url', {\n get() {\n return $video.src;\n },\n async set(newUrl) {\n if (newUrl) {\n const oldUrl = art.url;\n const typeName = option.type || getExt(newUrl);\n const typeCallback = option.customType[typeName];\n\n if (typeName && typeCallback) {\n await sleep();\n art.loading.show = true;\n typeCallback.call(art, $video, newUrl, art);\n } else {\n URL.revokeObjectURL(oldUrl);\n $video.src = newUrl;\n }\n\n if (oldUrl !== art.url) {\n art.option.url = newUrl;\n if (art.isReady && oldUrl) {\n art.once('video:canplay', () => {\n art.emit('restart', newUrl);\n });\n }\n }\n } else {\n await sleep();\n art.loading.show = true;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function attrMix(art) {\n const {\n template: { $video },\n } = art;\n\n def(art, 'attr', {\n value(key, value) {\n if (value === undefined) return $video[key];\n $video[key] = value;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function playMix(art) {\n const {\n i18n,\n notice,\n option,\n constructor: { instances },\n template: { $video },\n } = art;\n\n def(art, 'play', {\n value: async function () {\n const result = await $video.play();\n notice.show = i18n.get('Play');\n art.emit('play');\n\n if (option.mutex) {\n for (let index = 0; index < instances.length; index++) {\n const instance = instances[index];\n if (instance !== art) {\n instance.pause();\n }\n }\n }\n\n return result;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function pauseMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art;\n\n def(art, 'pause', {\n value() {\n const result = $video.pause();\n notice.show = i18n.get('Pause');\n art.emit('pause');\n return result;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function toggleMix(art) {\n def(art, 'toggle', {\n value() {\n if (art.playing) {\n return art.pause();\n } else {\n return art.play();\n }\n },\n });\n}\n","import { secondToTime, def } from '../utils';\n\nexport default function seekMix(art) {\n const { notice } = art;\n\n def(art, 'seek', {\n set(time) {\n art.currentTime = time;\n if (art.duration) {\n notice.show = `${secondToTime(art.currentTime)} / ${secondToTime(art.duration)}`;\n }\n art.emit('seek', art.currentTime);\n },\n });\n\n def(art, 'forward', {\n set(time) {\n art.seek = art.currentTime + time;\n },\n });\n\n def(art, 'backward', {\n set(time) {\n art.seek = art.currentTime - time;\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function volumeMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n storage,\n } = art;\n\n def(art, 'volume', {\n get: () => $video.volume || 0,\n set: (percentage) => {\n $video.volume = clamp(percentage, 0, 1);\n notice.show = `${i18n.get('Volume')}: ${parseInt($video.volume * 100, 10)}`;\n if ($video.volume !== 0) {\n storage.set('volume', $video.volume);\n }\n },\n });\n\n def(art, 'muted', {\n get: () => $video.muted,\n set: (muted) => {\n $video.muted = muted;\n art.emit('muted', muted);\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function currentTimeMix(art) {\n const { $video } = art.template;\n\n def(art, 'currentTime', {\n get: () => $video.currentTime || 0,\n set: (time) => {\n time = parseFloat(time);\n if (Number.isNaN(time)) return;\n $video.currentTime = clamp(time, 0, art.duration);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function durationMix(art) {\n def(art, 'duration', {\n get: () => {\n const { duration } = art.template.$video;\n if (duration === Infinity) return 0;\n return duration || 0;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function switchMix(art) {\n function switchUrl(url, currentTime) {\n return new Promise((resolve, reject) => {\n if (url === art.url) return;\n const { playing, aspectRatio, playbackRate } = art;\n\n art.pause();\n art.url = url;\n art.notice.show = '';\n\n art.once('video:error', reject);\n\n art.once('video:loadedmetadata', () => {\n art.currentTime = currentTime;\n });\n\n art.once('video:canplay', async () => {\n art.playbackRate = playbackRate;\n art.aspectRatio = aspectRatio;\n\n if (playing) {\n await art.play();\n }\n\n art.notice.show = '';\n\n resolve();\n });\n });\n }\n\n def(art, 'switchQuality', {\n value: (url) => {\n return switchUrl(url, art.currentTime);\n },\n });\n\n def(art, 'switchUrl', {\n value: (url) => {\n return switchUrl(url, 0);\n },\n });\n\n def(art, 'switch', {\n set: art.switchUrl,\n });\n}\n","import { def } from '../utils';\n\nexport default function playbackRateMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art;\n\n def(art, 'playbackRate', {\n get() {\n return $video.playbackRate;\n },\n set(rate) {\n if (rate) {\n if (rate === $video.playbackRate) return;\n $video.playbackRate = rate;\n notice.show = `${i18n.get('Rate')}: ${rate === 1.0 ? i18n.get('Normal') : `${rate}x`}`;\n } else {\n art.playbackRate = 1;\n }\n },\n });\n}\n","import { setStyle, def } from '../utils';\n\nexport default function aspectRatioMix(art) {\n const {\n i18n,\n notice,\n template: { $video, $player },\n } = art;\n\n def(art, 'aspectRatio', {\n get() {\n return $player.dataset.aspectRatio || 'default';\n },\n set(ratio) {\n if (!ratio) ratio = 'default';\n if (ratio === 'default') {\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'margin', null);\n delete $player.dataset.aspectRatio;\n } else {\n const ratioArray = ratio.split(':').map(Number);\n const { clientWidth, clientHeight } = $player;\n const playerRatio = clientWidth / clientHeight;\n const setupRatio = ratioArray[0] / ratioArray[1];\n\n if (playerRatio > setupRatio) {\n setStyle($video, 'width', `${setupRatio * clientHeight}px`);\n setStyle($video, 'height', '100%');\n setStyle($video, 'margin', '0 auto');\n } else {\n setStyle($video, 'width', '100%');\n setStyle($video, 'height', `${clientWidth / setupRatio}px`);\n setStyle($video, 'margin', 'auto 0');\n }\n\n $player.dataset.aspectRatio = ratio;\n }\n\n notice.show = `${i18n.get('Aspect Ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`;\n art.emit('aspectRatio', ratio);\n },\n });\n}\n","import { secondToTime, download, def, createElement } from '../utils';\n\nexport default function screenshotMix(art) {\n const {\n notice,\n template: { $video },\n } = art;\n\n const $canvas = createElement('canvas');\n\n def(art, 'getDataURL', {\n value: () =>\n new Promise((resolve, reject) => {\n try {\n $canvas.width = $video.videoWidth;\n $canvas.height = $video.videoHeight;\n $canvas.getContext('2d').drawImage($video, 0, 0);\n resolve($canvas.toDataURL('image/png'));\n } catch (err) {\n notice.show = err;\n reject(err);\n }\n }),\n });\n\n def(art, 'getBlobUrl', {\n value: () =>\n new Promise((resolve, reject) => {\n try {\n $canvas.width = $video.videoWidth;\n $canvas.height = $video.videoHeight;\n $canvas.getContext('2d').drawImage($video, 0, 0);\n $canvas.toBlob((blob) => {\n resolve(URL.createObjectURL(blob));\n });\n } catch (err) {\n notice.show = err;\n reject(err);\n }\n }),\n });\n\n def(art, 'screenshot', {\n value: async (name) => {\n const dataUri = await art.getDataURL();\n const fileName = name || `artplayer_${secondToTime($video.currentTime)}`;\n download(dataUri, `${fileName}.png`);\n art.emit('screenshot', dataUri);\n return dataUri;\n },\n });\n}\n","import screenfull from '../libs/screenfull';\nimport { addClass, removeClass, def, get } from '../utils';\n\nexport default function fullscreenMix(art) {\n const {\n i18n,\n notice,\n template: { $video, $player },\n } = art;\n\n const nativeScreenfull = (art) => {\n screenfull.on('change', () => {\n art.emit('fullscreen', screenfull.isFullscreen);\n\n if (screenfull.isFullscreen) {\n art.state = 'fullscreen';\n addClass($player, 'art-fullscreen');\n } else {\n removeClass($player, 'art-fullscreen');\n }\n\n art.emit('resize');\n });\n\n screenfull.on('error', (event) => {\n art.emit('fullscreenError', event);\n });\n\n def(art, 'fullscreen', {\n get() {\n return screenfull.isFullscreen;\n },\n async set(value) {\n if (value) {\n await screenfull.request($player);\n } else {\n await screenfull.exit();\n }\n },\n });\n };\n\n const webkitScreenfull = (art) => {\n art.proxy(document, 'webkitfullscreenchange', () => {\n art.emit('fullscreen', art.fullscreen);\n art.emit('resize');\n });\n\n def(art, 'fullscreen', {\n get() {\n return document.fullscreenElement === $video;\n },\n set(value) {\n if (value) {\n art.state = 'fullscreen';\n $video.webkitEnterFullscreen();\n } else {\n $video.webkitExitFullscreen();\n }\n },\n });\n };\n\n art.once('video:loadedmetadata', () => {\n if (screenfull.isEnabled) {\n nativeScreenfull(art);\n } else if ($video.webkitSupportsFullscreen) {\n webkitScreenfull(art);\n } else {\n def(art, 'fullscreen', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('Fullscreen Not Supported');\n },\n });\n }\n\n // Asynchronous setting\n def(art, 'fullscreen', get(art, 'fullscreen'));\n });\n}\n","const methodMap = [\n [\n 'requestFullscreen',\n 'exitFullscreen',\n 'fullscreenElement',\n 'fullscreenEnabled',\n 'fullscreenchange',\n 'fullscreenerror',\n ],\n // New WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitFullscreenEnabled',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror',\n ],\n // Old WebKit\n [\n 'webkitRequestFullScreen',\n 'webkitCancelFullScreen',\n 'webkitCurrentFullScreenElement',\n 'webkitCancelFullScreen',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror',\n ],\n [\n 'mozRequestFullScreen',\n 'mozCancelFullScreen',\n 'mozFullScreenElement',\n 'mozFullScreenEnabled',\n 'mozfullscreenchange',\n 'mozfullscreenerror',\n ],\n [\n 'msRequestFullscreen',\n 'msExitFullscreen',\n 'msFullscreenElement',\n 'msFullscreenEnabled',\n 'MSFullscreenChange',\n 'MSFullscreenError',\n ],\n];\n\nconst nativeAPI = (() => {\n if (typeof document === 'undefined') {\n return false;\n }\n\n const unprefixedMethods = methodMap[0];\n const returnValue = {};\n\n for (const methodList of methodMap) {\n const exitFullscreenMethod = methodList[1];\n if (exitFullscreenMethod in document) {\n for (const [index, method] of methodList.entries()) {\n returnValue[unprefixedMethods[index]] = method;\n }\n\n return returnValue;\n }\n }\n\n return false;\n})();\n\nconst eventNameMap = {\n change: nativeAPI.fullscreenchange,\n error: nativeAPI.fullscreenerror,\n};\n\nlet screenfull = {\n request(element = document.documentElement, options) {\n return new Promise((resolve, reject) => {\n const onFullScreenEntered = () => {\n screenfull.off('change', onFullScreenEntered);\n resolve();\n };\n\n screenfull.on('change', onFullScreenEntered);\n\n const returnPromise = element[nativeAPI.requestFullscreen](options);\n\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenEntered).catch(reject);\n }\n });\n },\n exit() {\n return new Promise((resolve, reject) => {\n if (!screenfull.isFullscreen) {\n resolve();\n return;\n }\n\n const onFullScreenExit = () => {\n screenfull.off('change', onFullScreenExit);\n resolve();\n };\n\n screenfull.on('change', onFullScreenExit);\n\n const returnPromise = document[nativeAPI.exitFullscreen]();\n\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenExit).catch(reject);\n }\n });\n },\n toggle(element, options) {\n return screenfull.isFullscreen ? screenfull.exit() : screenfull.request(element, options);\n },\n onchange(callback) {\n screenfull.on('change', callback);\n },\n onerror(callback) {\n screenfull.on('error', callback);\n },\n on(event, callback) {\n const eventName = eventNameMap[event];\n if (eventName) {\n document.addEventListener(eventName, callback, false);\n }\n },\n off(event, callback) {\n const eventName = eventNameMap[event];\n if (eventName) {\n document.removeEventListener(eventName, callback, false);\n }\n },\n raw: nativeAPI,\n};\n\nObject.defineProperties(screenfull, {\n isFullscreen: {\n get: () => Boolean(document[nativeAPI.fullscreenElement]),\n },\n element: {\n enumerable: true,\n get: () => document[nativeAPI.fullscreenElement],\n },\n isEnabled: {\n enumerable: true,\n get: () => Boolean(document[nativeAPI.fullscreenEnabled]),\n },\n});\n\nif (!nativeAPI) {\n screenfull = { isEnabled: false };\n}\n\nexport default screenfull;\n","import { addClass, removeClass, hasClass, def, append, setStyle } from '../utils';\n\nexport default function fullscreenWebMix(art) {\n const {\n constructor,\n template: { $container, $player },\n } = art;\n\n let cssText = '';\n def(art, 'fullscreenWeb', {\n get() {\n return hasClass($player, 'art-fullscreen-web');\n },\n set(value) {\n if (value) {\n cssText = $player.style.cssText;\n if (constructor.FULLSCREEN_WEB_IN_BODY) {\n append(document.body, $player);\n }\n art.state = 'fullscreenWeb';\n setStyle($player, 'width', '100%');\n setStyle($player, 'height', '100%');\n addClass($player, 'art-fullscreen-web');\n art.emit('fullscreenWeb', true);\n } else {\n if (constructor.FULLSCREEN_WEB_IN_BODY) {\n append($container, $player);\n }\n if (cssText) {\n $player.style.cssText = cssText;\n cssText = '';\n }\n removeClass($player, 'art-fullscreen-web');\n art.emit('fullscreenWeb', false);\n }\n\n art.emit('resize');\n },\n });\n}\n","import { def } from '../utils';\n\nfunction nativePip(art) {\n const {\n template: { $video },\n proxy,\n notice,\n } = art;\n\n $video.disablePictureInPicture = false;\n\n def(art, 'pip', {\n get() {\n return document.pictureInPictureElement;\n },\n set(value) {\n if (value) {\n art.state = 'pip';\n $video.requestPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n } else {\n document.exitPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n },\n });\n\n proxy($video, 'enterpictureinpicture', () => {\n art.emit('pip', true);\n });\n\n proxy($video, 'leavepictureinpicture', () => {\n art.emit('pip', false);\n });\n}\n\nfunction webkitPip(art) {\n const { $video } = art.template;\n\n $video.webkitSetPresentationMode('inline');\n\n def(art, 'pip', {\n get() {\n return $video.webkitPresentationMode === 'picture-in-picture';\n },\n set(value) {\n if (value) {\n art.state = 'pip';\n $video.webkitSetPresentationMode('picture-in-picture');\n art.emit('pip', true);\n } else {\n $video.webkitSetPresentationMode('inline');\n art.emit('pip', false);\n }\n },\n });\n}\n\nexport default function pipMix(art) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art;\n if (document.pictureInPictureEnabled) {\n nativePip(art);\n } else if ($video.webkitSupportsPresentationMode) {\n webkitPip(art);\n } else {\n def(art, 'pip', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('PIP Not Supported');\n },\n });\n }\n}\n","import { def } from '../utils';\n\nexport default function seekMix(art) {\n const { $video } = art.template;\n\n def(art, 'loaded', {\n get: () => art.loadedTime / $video.duration,\n });\n\n def(art, 'loadedTime', {\n get: () => {\n return $video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function playedMix(art) {\n def(art, 'played', {\n get: () => art.currentTime / art.duration,\n });\n}\n","import { def } from '../utils';\n\nexport default function playingMix(art) {\n const { $video } = art.template;\n def(art, 'playing', {\n get: () => {\n if (typeof $video.playing === 'boolean') return $video.playing;\n return !!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2);\n },\n });\n}\n","import { setStyle, def, getRect } from '../utils';\n\nexport default function resizeMix(art) {\n const { $container, $player, $video } = art.template;\n\n def(art, 'autoSize', {\n value() {\n const { videoWidth, videoHeight } = $video;\n const { width, height } = getRect($container);\n const videoRatio = videoWidth / videoHeight;\n const containerRatio = width / height;\n if (containerRatio > videoRatio) {\n const percentage = ((height * videoRatio) / width) * 100;\n setStyle($player, 'width', `${percentage}%`);\n setStyle($player, 'height', '100%');\n } else {\n const percentage = (width / videoRatio / height) * 100;\n setStyle($player, 'width', '100%');\n setStyle($player, 'height', `${percentage}%`);\n }\n art.emit('autoSize', {\n width: art.width,\n height: art.height,\n });\n },\n });\n}\n","import { def, getRect } from '../utils';\n\nexport default function rectMix(art) {\n def(art, 'rect', {\n get: () => {\n return getRect(art.template.$player);\n },\n });\n\n const keys = ['bottom', 'height', 'left', 'right', 'top', 'width'];\n for (let index = 0; index < keys.length; index++) {\n const key = keys[index];\n def(art, key, {\n get: () => {\n return art.rect[key];\n },\n });\n }\n\n def(art, 'x', {\n get: () => {\n return art.left + window.pageXOffset;\n },\n });\n\n def(art, 'y', {\n get: () => {\n return art.top + window.pageYOffset;\n },\n });\n}\n","import { def, capitalize } from '../utils';\n\nexport default function flipMix(art) {\n const {\n template: { $player },\n i18n,\n notice,\n } = art;\n\n def(art, 'flip', {\n get() {\n return $player.dataset.flip || 'normal';\n },\n set(flip) {\n if (!flip) flip = 'normal';\n if (flip === 'normal') {\n delete $player.dataset.flip;\n } else {\n $player.dataset.flip = flip;\n }\n\n notice.show = `${i18n.get('Video Flip')}: ${i18n.get(capitalize(flip))}`;\n art.emit('flip', flip);\n },\n });\n}\n","import { append, setStyle, addClass, removeClass, hasClass, def, isInViewport, createElement, getRect } from '../utils';\n\nexport default function miniMix(art) {\n const {\n icons,\n proxy,\n storage,\n template: { $player, $video },\n } = art;\n\n let isDroging = false;\n let lastPageX = 0;\n let lastPageY = 0;\n\n function hideMini() {\n const { $mini } = art.template;\n if ($mini) {\n removeClass($player, 'art-mini');\n setStyle($mini, 'display', 'none');\n $player.prepend($video);\n art.emit('mini', false);\n }\n }\n\n function initState($play, $pause) {\n if (art.playing) {\n setStyle($play, 'display', `none`);\n setStyle($pause, 'display', `flex`);\n } else {\n setStyle($play, 'display', `flex`);\n setStyle($pause, 'display', `none`);\n }\n }\n\n function createMini() {\n const { $mini } = art.template;\n if ($mini) {\n append($mini, $video);\n return setStyle($mini, 'display', 'flex');\n } else {\n const $mini = createElement('div');\n addClass($mini, 'art-mini-popup');\n append(document.body, $mini);\n art.template.$mini = $mini;\n append($mini, $video);\n\n const $close = append($mini, `
`);\n append($close, icons.close);\n proxy($close, 'click', hideMini);\n\n const $state = append($mini, `
`);\n const $play = append($state, icons.play);\n const $pause = append($state, icons.pause);\n proxy($play, 'click', () => art.play());\n proxy($pause, 'click', () => art.pause());\n initState($play, $pause);\n art.on('video:playing', () => initState($play, $pause));\n art.on('video:pause', () => initState($play, $pause));\n art.on('video:timeupdate', () => initState($play, $pause));\n\n proxy($mini, 'mousedown', (event) => {\n isDroging = event.button === 0;\n lastPageX = event.pageX;\n lastPageY = event.pageY;\n });\n\n art.on('document:mousemove', (event) => {\n if (isDroging) {\n addClass($mini, 'art-mini-droging');\n const x = event.pageX - lastPageX;\n const y = event.pageY - lastPageY;\n setStyle($mini, 'transform', `translate(${x}px, ${y}px)`);\n }\n });\n\n art.on('document:mouseup', () => {\n if (isDroging) {\n isDroging = false;\n removeClass($mini, 'art-mini-droging');\n const rect = getRect($mini);\n storage.set('left', rect.left);\n storage.set('top', rect.top);\n setStyle($mini, 'left', `${rect.left}px`);\n setStyle($mini, 'top', `${rect.top}px`);\n setStyle($mini, 'transform', null);\n }\n });\n\n return $mini;\n }\n }\n\n function initMini() {\n const { $mini } = art.template;\n const rect = getRect($mini);\n const top = window.innerHeight - rect.height - 50;\n const left = window.innerWidth - rect.width - 50;\n storage.set('top', top);\n storage.set('left', left);\n setStyle($mini, 'top', `${top}px`);\n setStyle($mini, 'left', `${left}px`);\n }\n\n def(art, 'mini', {\n get() {\n return hasClass($player, 'art-mini');\n },\n set(value) {\n if (value) {\n art.state = 'mini';\n addClass($player, 'art-mini');\n const $mini = createMini();\n const top = storage.get('top');\n const left = storage.get('left');\n if (top && left) {\n setStyle($mini, 'top', `${top}px`);\n setStyle($mini, 'left', `${left}px`);\n if (!isInViewport($mini)) {\n initMini();\n }\n } else {\n initMini();\n }\n art.emit('mini', true);\n } else {\n hideMini();\n }\n },\n });\n}\n","import { def, setStyle } from '../utils';\n\nexport default function posterMix(art) {\n const {\n template: { $poster },\n } = art;\n\n def(art, 'poster', {\n get: () => {\n try {\n return $poster.style['backgroundImage'].match(/\"(.*)\"/)[1];\n // eslint-disable-next-line no-unused-vars\n } catch (error) {\n return '';\n }\n },\n set(url) {\n setStyle($poster, 'backgroundImage', `url(${url})`);\n },\n });\n}\n","import { setStyle, def } from '../utils';\n\nexport default function autoHeightMix(art) {\n const {\n template: { $container, $video },\n } = art;\n\n def(art, 'autoHeight', {\n value() {\n const { clientWidth } = $container;\n const { videoHeight, videoWidth } = $video;\n const height = videoHeight * (clientWidth / videoWidth);\n setStyle($container, 'height', height + 'px');\n art.emit('autoHeight', height);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function cssVarMix(art) {\n const { $player } = art.template;\n\n def(art, 'cssVar', {\n value(key, value) {\n if (value) {\n return $player.style.setProperty(key, value);\n } else {\n return getComputedStyle($player).getPropertyValue(key);\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function themeMix(art) {\n def(art, 'theme', {\n get() {\n return art.cssVar('--art-theme');\n },\n set(theme) {\n art.cssVar('--art-theme', theme);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function typeMix(art) {\n def(art, 'type', {\n get() {\n return art.option.type;\n },\n set(type) {\n art.option.type = type;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function stateMix(art) {\n const states = ['mini', 'pip', 'fullscreen', 'fullscreenWeb'];\n def(art, 'state', {\n get: () => states.find((name) => art[name]) || 'standard',\n set(name) {\n for (let index = 0; index < states.length; index++) {\n const prop = states[index];\n if (prop !== name && art[prop]) {\n art[prop] = false;\n }\n }\n },\n });\n}\n","import { def, clamp } from '../utils';\n\nexport default function subtitleOffsetMix(art) {\n const { notice, i18n, template } = art;\n\n def(art, 'subtitleOffset', {\n get() {\n return template.$track?.offset || 0;\n },\n set(value) {\n const { cues } = art.subtitle;\n if (!template.$track || cues.length === 0) return;\n const offset = clamp(value, -10, 10);\n template.$track.offset = offset;\n for (let index = 0; index < cues.length; index++) {\n const cue = cues[index];\n cue.originalStartTime = cue.originalStartTime ?? cue.startTime;\n cue.originalEndTime = cue.originalEndTime ?? cue.endTime;\n cue.startTime = clamp(cue.originalStartTime + offset, 0, art.duration);\n cue.endTime = clamp(cue.originalEndTime + offset, 0, art.duration);\n }\n art.subtitle.update();\n notice.show = `${i18n.get('Subtitle Offset')}: ${value}s`;\n art.emit('subtitleOffset', value);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function airplayMix(art) {\n const {\n i18n,\n notice,\n proxy,\n template: { $video },\n } = art;\n\n let available = true;\n\n if (window.WebKitPlaybackTargetAvailabilityEvent && $video.webkitShowPlaybackTargetPicker) {\n proxy($video, 'webkitplaybacktargetavailabilitychanged', (event) => {\n switch (event.availability) {\n case 'available':\n available = true;\n break;\n case 'not-available':\n available = false;\n break;\n }\n });\n } else {\n available = false;\n }\n\n def(art, 'airplay', {\n value() {\n if (available) {\n $video.webkitShowPlaybackTargetPicker();\n art.emit('airplay');\n } else {\n notice.show = i18n.get('AirPlay Not Available');\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function qualityMix(art) {\n def(art, 'quality', {\n set(quality) {\n const { controls, notice, i18n } = art;\n const qualityDefault = quality.find((item) => item.default) || quality[0];\n controls.update({\n name: 'quality',\n position: 'right',\n index: 10,\n style: {\n marginRight: '10px',\n },\n html: qualityDefault?.html || '',\n selector: quality,\n async onSelect(item) {\n await art.switchQuality(item.url);\n notice.show = `${i18n.get('Switch Video')}: ${item.html}`;\n return item.html;\n },\n });\n },\n });\n}\n","import { def, setStyle, isMobile, loadImg } from '../utils';\n\nexport default function thumbnailsMix(art) {\n const {\n events,\n option,\n template: { $progress, $video },\n } = art;\n\n let timer = null;\n let image = null;\n let loading = false;\n let isLoad = false;\n let isHover = false;\n\n function reset() {\n clearTimeout(timer);\n timer = null;\n image = null;\n loading = false;\n isLoad = false;\n }\n\n function showThumbnails(posWidth) {\n const $thumbnails = art.controls?.thumbnails;\n if (!$thumbnails) return;\n\n const { number, column, width, height, scale } = option.thumbnails;\n const width2 = width * scale || image.naturalWidth / column;\n const height2 = height * scale || width2 / ($video.videoWidth / $video.videoHeight);\n const perWidth = $progress.clientWidth / number;\n const perIndex = Math.floor(posWidth / perWidth);\n const yIndex = Math.ceil(perIndex / column) - 1;\n const xIndex = perIndex % column || column - 1;\n setStyle($thumbnails, 'backgroundImage', `url(${image.src})`);\n setStyle($thumbnails, 'height', `${height2}px`);\n setStyle($thumbnails, 'width', `${width2}px`);\n setStyle($thumbnails, 'backgroundPosition', `-${xIndex * width2}px -${yIndex * height2}px`);\n if (posWidth <= width2 / 2) {\n setStyle($thumbnails, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width2 / 2) {\n setStyle($thumbnails, 'left', `${$progress.clientWidth - width2}px`);\n } else {\n setStyle($thumbnails, 'left', `${posWidth - width2 / 2}px`);\n }\n }\n\n events.hover(\n $progress,\n () => {\n isHover = true;\n },\n () => {\n isHover = false;\n },\n );\n\n art.on('setBar', async (type, percentage, event) => {\n const $thumbnails = art.controls?.thumbnails;\n const { url, scale } = option.thumbnails;\n if (!$thumbnails || !url) return;\n\n const isMobileDroging = type === 'played' && event && isMobile;\n\n if (type === 'hover' || isMobileDroging) {\n if (!loading) {\n loading = true;\n image = await loadImg(url, scale);\n isLoad = true;\n }\n\n if (!isLoad || !isHover) return;\n\n const width = $progress.clientWidth * percentage;\n setStyle($thumbnails, 'display', 'flex');\n\n if (width > 0 && width < $progress.clientWidth) {\n showThumbnails(width);\n } else {\n if (!isMobile) {\n setStyle($thumbnails, 'display', 'none');\n }\n }\n\n if (isMobileDroging) {\n clearTimeout(timer);\n timer = setTimeout(() => {\n setStyle($thumbnails, 'display', 'none');\n }, 500);\n }\n }\n });\n\n def(art, 'thumbnails', {\n get() {\n return art.option.thumbnails;\n },\n set(thumbnails) {\n if (thumbnails.url && !art.option.isLive) {\n art.option.thumbnails = thumbnails;\n reset();\n }\n },\n });\n}\n","import { clamp, setStyle } from '../utils';\n\nexport default function attrInit(art) {\n const {\n option,\n storage,\n template: { $video, $poster },\n } = art;\n\n for (const key in option.moreVideoAttr) {\n art.attr(key, option.moreVideoAttr[key]);\n }\n\n if (option.muted) {\n art.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n const volumeStorage = storage.get('volume');\n if (typeof volumeStorage === 'number') {\n $video.volume = clamp(volumeStorage, 0, 1);\n }\n\n if (option.poster) {\n setStyle($poster, 'backgroundImage', `url(${option.poster})`);\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n if (option.playsInline) {\n $video.playsInline = true;\n $video['webkit-playsinline'] = true;\n }\n\n if (option.theme) {\n option.cssVar['--art-theme'] = option.theme;\n }\n\n for (const key in option.cssVar) {\n art.cssVar(key, option.cssVar[key]);\n }\n\n art.url = option.url;\n}\n","import config from '../config';\nimport { sleep, addClass, setStyle, isMobile } from '../utils';\n\nexport default function eventInit(art) {\n const {\n i18n,\n notice,\n option,\n constructor,\n proxy,\n template: { $player, $video, $poster },\n } = art;\n\n let reconnectTime = 0;\n\n for (let index = 0; index < config.events.length; index++) {\n proxy($video, config.events[index], (event) => {\n art.emit(`video:${event.type}`, event);\n });\n }\n\n // art.on('video:abort', () => {\n\n // });\n\n art.on('video:canplay', () => {\n reconnectTime = 0;\n art.loading.show = false;\n });\n\n art.once('video:canplay', () => {\n art.loading.show = false;\n art.controls.show = true;\n art.mask.show = true;\n art.isReady = true;\n art.emit('ready');\n });\n\n // art.on('video:canplaythrough', () => {\n\n // });\n\n // art.on('video:durationchange', () => {\n\n // });\n\n // art.on('video:emptied', () => {\n\n // });\n\n art.on('video:ended', () => {\n if (option.loop) {\n art.seek = 0;\n art.play();\n art.controls.show = false;\n art.mask.show = false;\n } else {\n art.controls.show = true;\n art.mask.show = true;\n }\n });\n\n art.on('video:error', async (error) => {\n if (reconnectTime < constructor.RECONNECT_TIME_MAX) {\n await sleep(constructor.RECONNECT_SLEEP_TIME);\n reconnectTime += 1;\n art.url = option.url;\n notice.show = `${i18n.get('Reconnect')}: ${reconnectTime}`;\n art.emit('error', error, reconnectTime);\n } else {\n art.mask.show = true;\n art.loading.show = false;\n art.controls.show = true;\n addClass($player, 'art-error');\n await sleep(constructor.RECONNECT_SLEEP_TIME);\n notice.show = i18n.get('Video Load Failed');\n }\n });\n\n // art.on('video:loadeddata', () => {\n\n // });\n\n art.on('video:loadedmetadata', () => {\n art.emit('resize');\n if (isMobile) {\n art.loading.show = false;\n art.controls.show = true;\n art.mask.show = true;\n }\n });\n\n art.on('video:loadstart', () => {\n art.loading.show = true;\n art.mask.show = false;\n art.controls.show = true;\n });\n\n art.on('video:pause', () => {\n art.controls.show = true;\n art.mask.show = true;\n });\n\n art.on('video:play', () => {\n art.mask.show = false;\n setStyle($poster, 'display', 'none');\n });\n\n art.on('video:playing', () => {\n art.mask.show = false;\n });\n\n art.on('video:progress', () => {\n if (art.playing) {\n art.loading.show = false;\n }\n });\n\n // art.on('video:ratechange', () => {\n\n // });\n\n art.on('video:seeked', () => {\n art.loading.show = false;\n art.mask.show = true;\n });\n\n art.on('video:seeking', () => {\n art.loading.show = true;\n art.mask.show = false;\n });\n\n // art.on('video:stalled', () => {\n\n // });\n\n // art.on('video:suspend', () => {\n\n // });\n\n art.on('video:timeupdate', () => {\n art.mask.show = false;\n });\n\n // art.on('video:volumechange', () => {\n\n // });\n\n art.on('video:waiting', () => {\n art.loading.show = true;\n art.mask.show = false;\n });\n}\n","import Component from '../utils/component';\nimport fullscreen from './fullscreen';\nimport fullscreenWeb from './fullscreenWeb';\nimport pip from './pip';\nimport playAndPause from './playAndPause';\nimport progress from './progress';\nimport time from './time';\nimport volume from './volume';\nimport setting from './setting';\nimport screenshot from './screenshot';\nimport airplay from './airplay';\nimport {\n def,\n sleep,\n append,\n addClass,\n isMobile,\n removeClass,\n errorHandle,\n inverseClass,\n createElement,\n includeFromEvent,\n} from '../utils';\n\nexport default class Control extends Component {\n constructor(art) {\n super(art);\n\n this.isHover = false;\n this.name = 'control';\n this.timer = Date.now();\n\n const { constructor } = art;\n const { $player, $bottom } = this.art.template;\n\n art.on('mousemove', () => {\n if (!isMobile) {\n this.show = true;\n }\n });\n\n art.on('click', () => {\n if (isMobile) {\n this.toggle();\n } else {\n this.show = true;\n }\n });\n\n art.on('document:mousemove', (event) => {\n this.isHover = includeFromEvent(event, $bottom);\n });\n\n art.on('video:timeupdate', () => {\n if (\n !art.setting.show &&\n !this.isHover &&\n !art.isInput &&\n art.playing &&\n this.show &&\n Date.now() - this.timer >= constructor.CONTROL_HIDE_TIME\n ) {\n this.show = false;\n }\n });\n\n art.on('control', (state) => {\n if (state) {\n removeClass($player, 'art-hide-cursor');\n addClass($player, 'art-hover');\n this.timer = Date.now();\n } else {\n addClass($player, 'art-hide-cursor');\n removeClass($player, 'art-hover');\n }\n });\n\n this.init();\n }\n\n init() {\n const { option } = this.art;\n\n if (!option.isLive) {\n this.add(\n progress({\n name: 'progress',\n position: 'top',\n index: 10,\n }),\n );\n }\n\n this.add({\n name: 'thumbnails',\n position: 'top',\n index: 20,\n });\n\n this.add(\n playAndPause({\n name: 'playAndPause',\n position: 'left',\n index: 10,\n }),\n );\n\n this.add(\n volume({\n name: 'volume',\n position: 'left',\n index: 20,\n }),\n );\n\n if (!option.isLive) {\n this.add(\n time({\n name: 'time',\n position: 'left',\n index: 30,\n }),\n );\n }\n\n if (option.quality.length) {\n sleep().then(() => {\n this.art.quality = option.quality;\n });\n }\n\n if (option.screenshot && !isMobile) {\n this.add(\n screenshot({\n name: 'screenshot',\n position: 'right',\n index: 20,\n }),\n );\n }\n\n if (option.setting) {\n this.add(\n setting({\n name: 'setting',\n position: 'right',\n index: 30,\n }),\n );\n }\n\n if (option.pip) {\n this.add(\n pip({\n name: 'pip',\n position: 'right',\n index: 40,\n }),\n );\n }\n\n if (option.airplay && window.WebKitPlaybackTargetAvailabilityEvent) {\n this.add(\n airplay({\n name: 'airplay',\n position: 'right',\n index: 50,\n }),\n );\n }\n\n if (option.fullscreenWeb) {\n this.add(\n fullscreenWeb({\n name: 'fullscreenWeb',\n position: 'right',\n index: 60,\n }),\n );\n }\n\n if (option.fullscreen) {\n this.add(\n fullscreen({\n name: 'fullscreen',\n position: 'right',\n index: 70,\n }),\n );\n }\n\n for (let index = 0; index < option.controls.length; index++) {\n this.add(option.controls[index]);\n }\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n const { $progress, $controlsLeft, $controlsRight } = this.art.template;\n\n switch (option.position) {\n case 'top':\n this.$parent = $progress;\n break;\n case 'left':\n this.$parent = $controlsLeft;\n break;\n case 'right':\n this.$parent = $controlsRight;\n break;\n default:\n errorHandle(false, `Control option.position must one of 'top', 'left', 'right'`);\n break;\n }\n\n super.add(option);\n }\n\n check(target) {\n target.$control_value.innerHTML = target.html;\n for (let index = 0; index < target.$control_option.length; index++) {\n const item = target.$control_option[index];\n item.default = item === target;\n if (item.default) {\n inverseClass(item.$control_item, 'art-current');\n }\n }\n }\n\n selector(option, $ref, events) {\n const { proxy } = this.art.events;\n\n addClass($ref, 'art-control-selector');\n const $value = createElement('div');\n addClass($value, 'art-selector-value');\n append($value, option.html);\n $ref.innerText = '';\n append($ref, $value);\n\n const $list = createElement('div');\n addClass($list, 'art-selector-list');\n append($ref, $list);\n\n for (let index = 0; index < option.selector.length; index++) {\n const item = option.selector[index];\n const $item = createElement('div');\n addClass($item, 'art-selector-item');\n if (item.default) addClass($item, 'art-current');\n $item.dataset.index = index;\n $item.dataset.value = item.value;\n $item.innerHTML = item.html;\n append($list, $item);\n\n def(item, '$control_option', {\n get: () => option.selector,\n });\n\n def(item, '$control_item', {\n get: () => $item,\n });\n\n def(item, '$control_value', {\n get: () => $value,\n });\n }\n\n const event = proxy($list, 'click', async (event) => {\n const path = event.composedPath() || [];\n const item = option.selector.find(\n (item) => item.$control_item === path.find(($item) => item.$control_item === $item),\n );\n this.check(item);\n if (option.onSelect) {\n $value.innerHTML = await option.onSelect.call(this.art, item, item.$control_item, event);\n }\n });\n\n events.push(event);\n }\n}\n","import { remove, append, tooltip, hasClass, addClass, setStyles, removeClass, createElement } from './dom';\nimport { errorHandle } from './error';\nimport validator from 'option-validator';\nimport { ComponentOption } from '../scheme';\n\nexport default class Component {\n constructor(art) {\n this.id = 0;\n this.art = art;\n this.cache = new Map();\n this.add = this.add.bind(this);\n this.remove = this.remove.bind(this);\n this.update = this.update.bind(this);\n }\n\n get show() {\n return hasClass(this.art.template.$player, `art-${this.name}-show`);\n }\n\n set show(value) {\n const { $player } = this.art.template;\n const className = `art-${this.name}-show`;\n if (value) {\n addClass($player, className);\n } else {\n removeClass($player, className);\n }\n this.art.emit(this.name, value);\n }\n\n toggle() {\n this.show = !this.show;\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n option.html = option.html || '';\n validator(option, ComponentOption);\n if (!this.$parent || !this.name || option.disable) return;\n const name = option.name || `${this.name}${this.id}`;\n const item = this.cache.get(name);\n errorHandle(!item, `Can't add an existing [${name}] to the [${this.name}]`);\n\n this.id += 1;\n const $ref = createElement('div');\n addClass($ref, `art-${this.name}`);\n addClass($ref, `art-${this.name}-${name}`);\n\n const childs = Array.from(this.$parent.children);\n $ref.dataset.index = option.index || this.id;\n const nextChild = childs.find((item) => Number(item.dataset.index) >= Number($ref.dataset.index));\n if (nextChild) {\n nextChild.insertAdjacentElement('beforebegin', $ref);\n } else {\n append(this.$parent, $ref);\n }\n\n if (option.html) {\n append($ref, option.html);\n }\n\n if (option.style) {\n setStyles($ref, option.style);\n }\n\n if (option.tooltip) {\n tooltip($ref, option.tooltip);\n }\n\n const events = [];\n if (option.click) {\n const destroyEvent = this.art.events.proxy($ref, 'click', (event) => {\n event.preventDefault();\n option.click.call(this.art, this, event);\n });\n events.push(destroyEvent);\n }\n\n if (option.selector && ['left', 'right'].includes(option.position)) {\n this.selector(option, $ref, events);\n }\n\n this[name] = $ref;\n this.cache.set(name, { $ref, events, option });\n\n if (option.mounted) {\n option.mounted.call(this.art, $ref);\n }\n\n return $ref;\n }\n\n remove(name) {\n const item = this.cache.get(name);\n errorHandle(item, `Can't find [${name}] from the [${this.name}]`);\n\n if (item.option.beforeUnmount) {\n item.option.beforeUnmount.call(this.art, item.$ref);\n }\n\n for (let index = 0; index < item.events.length; index++) {\n this.art.events.remove(item.events[index]);\n }\n\n this.cache.delete(name);\n delete this[name];\n remove(item.$ref);\n }\n\n update(option) {\n const item = this.cache.get(option.name);\n if (item) {\n option = Object.assign(item.option, option);\n this.remove(option.name);\n }\n return this.add(option);\n }\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function fullscreen(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Fullscreen'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art;\n\n const $fullscreenOn = append($control, icons.fullscreenOn);\n const $fullscreenOff = append($control, icons.fullscreenOff);\n setStyle($fullscreenOff, 'display', 'none');\n\n proxy($control, 'click', () => {\n art.fullscreen = !art.fullscreen;\n });\n\n art.on('fullscreen', (state) => {\n if (state) {\n tooltip($control, i18n.get('Exit Fullscreen'));\n setStyle($fullscreenOn, 'display', 'none');\n setStyle($fullscreenOff, 'display', 'inline-flex');\n } else {\n tooltip($control, i18n.get('Fullscreen'));\n setStyle($fullscreenOn, 'display', 'inline-flex');\n setStyle($fullscreenOff, 'display', 'none');\n }\n });\n },\n });\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function fullscreenWeb(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Web Fullscreen'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art;\n\n const $fullscreenWebOn = append($control, icons.fullscreenWebOn);\n const $fullscreenWebOff = append($control, icons.fullscreenWebOff);\n setStyle($fullscreenWebOff, 'display', 'none');\n\n proxy($control, 'click', () => {\n art.fullscreenWeb = !art.fullscreenWeb;\n });\n\n art.on('fullscreenWeb', (value) => {\n if (value) {\n tooltip($control, i18n.get('Exit Web Fullscreen'));\n setStyle($fullscreenWebOn, 'display', 'none');\n setStyle($fullscreenWebOff, 'display', 'inline-flex');\n } else {\n tooltip($control, i18n.get('Web Fullscreen'));\n setStyle($fullscreenWebOn, 'display', 'inline-flex');\n setStyle($fullscreenWebOff, 'display', 'none');\n }\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function pip(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('PIP Mode'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art;\n\n append($control, icons.pip);\n\n proxy($control, 'click', () => {\n art.pip = !art.pip;\n });\n\n art.on('pip', (value) => {\n tooltip($control, i18n.get(value ? 'Exit PIP Mode' : 'PIP Mode'));\n });\n },\n });\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function playAndPause(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const { proxy, icons, i18n } = art;\n\n const $play = append($control, icons.play);\n const $pause = append($control, icons.pause);\n tooltip($play, i18n.get('Play'));\n tooltip($pause, i18n.get('Pause'));\n\n proxy($play, 'click', () => {\n art.play();\n });\n\n proxy($pause, 'click', () => {\n art.pause();\n });\n\n function showPlay() {\n setStyle($play, 'display', 'flex');\n setStyle($pause, 'display', 'none');\n }\n\n function showPause() {\n setStyle($play, 'display', 'none');\n setStyle($pause, 'display', 'flex');\n }\n\n if (art.playing) {\n showPause();\n } else {\n showPlay();\n }\n\n art.on('video:playing', () => {\n showPause();\n });\n\n art.on('video:pause', () => {\n showPlay();\n });\n },\n });\n}\n","import { query, clamp, append, setStyle, secondToTime, includeFromEvent, isMobile, getRect } from '../utils';\n\nexport function getPosFromEvent(art, event) {\n const { $progress } = art.template;\n const { left } = getRect($progress);\n const eventLeft = isMobile ? event.touches[0].clientX : event.clientX;\n const width = clamp(eventLeft - left, 0, $progress.clientWidth);\n const second = (width / $progress.clientWidth) * art.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / $progress.clientWidth, 0, 1);\n return { second, time, width, percentage };\n}\n\nexport function setCurrentTime(art, event) {\n if (art.isRotate) {\n const percentage = event.touches[0].clientY / art.height;\n const second = percentage * art.duration;\n art.emit('setBar', 'played', percentage, event);\n art.seek = second;\n } else {\n const { second, percentage } = getPosFromEvent(art, event);\n art.emit('setBar', 'played', percentage, event);\n art.seek = second;\n }\n}\n\nexport default function progress(options) {\n return (art) => {\n const { icons, option, proxy } = art;\n\n return {\n ...options,\n html: `\n
\n
\n
\n
\n
\n
\n
\n
\n `,\n mounted: ($control) => {\n let tipTimer = null;\n let isDroging = false;\n\n const $hover = query('.art-progress-hover', $control);\n const $loaded = query('.art-progress-loaded', $control);\n const $played = query('.art-progress-played', $control);\n const $highlight = query('.art-progress-highlight', $control);\n const $indicator = query('.art-progress-indicator', $control);\n const $tip = query('.art-progress-tip', $control);\n\n if (icons.indicator) {\n append($indicator, icons.indicator);\n } else {\n setStyle($indicator, 'backgroundColor', 'var(--art-theme)');\n }\n\n function showHighlight(event) {\n const { width } = getPosFromEvent(art, event);\n const { text } = event.target.dataset;\n $tip.innerText = text;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function showTime(event, touch) {\n const { width, time } = touch || getPosFromEvent(art, event);\n $tip.innerText = time;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function updateHighlight() {\n $highlight.innerText = '';\n for (let index = 0; index < option.highlight.length; index++) {\n const item = option.highlight[index];\n const left = (clamp(item.time, 0, art.duration) / art.duration) * 100;\n const html = ``;\n append($highlight, html);\n }\n }\n\n function setBar(type, percentage, event) {\n const isMobileDroging = type === 'played' && event && isMobile;\n\n if (type === 'loaded') {\n setStyle($loaded, 'width', `${percentage * 100}%`);\n }\n\n if (type === 'hover') {\n setStyle($hover, 'width', `${percentage * 100}%`);\n }\n\n if (type === 'played') {\n setStyle($played, 'width', `${percentage * 100}%`);\n setStyle($indicator, 'left', `${percentage * 100}%`);\n }\n\n if (isMobileDroging) {\n setStyle($tip, 'display', 'flex');\n const width = $control.clientWidth * percentage;\n const time = secondToTime(percentage * art.duration);\n showTime(event, { width, time });\n clearTimeout(tipTimer);\n tipTimer = setTimeout(() => {\n setStyle($tip, 'display', 'none');\n }, 500);\n }\n }\n\n art.on('setBar', setBar);\n art.on('video:loadedmetadata', updateHighlight);\n\n if (art.constructor.USE_RAF) {\n art.on('raf', () => {\n art.emit('setBar', 'played', art.played);\n art.emit('setBar', 'loaded', art.loaded);\n });\n } else {\n art.on('video:timeupdate', () => {\n art.emit('setBar', 'played', art.played);\n });\n\n art.on('video:progress', () => {\n art.emit('setBar', 'loaded', art.loaded);\n });\n\n art.on('video:ended', () => {\n art.emit('setBar', 'played', 1);\n });\n }\n\n art.emit('setBar', 'loaded', art.loaded || 0);\n\n if (!isMobile) {\n proxy($control, 'click', (event) => {\n if (event.target !== $indicator) {\n setCurrentTime(art, event);\n }\n });\n\n proxy($control, 'mousemove', (event) => {\n const { percentage } = getPosFromEvent(art, event);\n art.emit('setBar', 'hover', percentage, event);\n setStyle($tip, 'display', 'flex');\n if (includeFromEvent(event, $highlight)) {\n showHighlight(event);\n } else {\n showTime(event);\n }\n });\n\n proxy($control, 'mouseleave', (event) => {\n setStyle($tip, 'display', 'none');\n art.emit('setBar', 'hover', 0, event);\n });\n\n proxy($control, 'mousedown', (event) => {\n isDroging = event.button === 0;\n });\n\n art.on('document:mousemove', (event) => {\n if (isDroging) {\n const { second, percentage } = getPosFromEvent(art, event);\n art.emit('setBar', 'played', percentage, event);\n art.seek = second;\n }\n });\n\n art.on('document:mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n }\n },\n };\n };\n}\n","import { secondToTime, isMobile } from '../utils';\n\nexport default function time(option) {\n return (art) => ({\n ...option,\n style: isMobile\n ? {\n fontSize: '12px',\n padding: '0 5px',\n }\n : {\n cursor: 'auto',\n padding: '0 10px',\n },\n mounted: ($control) => {\n function getTime() {\n const newTime = `${secondToTime(art.currentTime)} / ${secondToTime(art.duration)}`;\n if (newTime !== $control.innerText) {\n $control.innerText = newTime;\n }\n }\n\n getTime();\n\n const events = ['video:loadedmetadata', 'video:timeupdate', 'video:progress'];\n for (let index = 0; index < events.length; index++) {\n art.on(events[index], getTime);\n }\n },\n });\n}\n","import { append, setStyle, isMobile, getRect } from '../utils';\n\nexport default function volume(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const { proxy, icons } = art;\n\n const $volume = append($control, icons.volume);\n const $close = append($control, icons.volumeClose);\n const $panel = append($control, '
');\n const $inner = append($panel, '
');\n const $value = append($inner, `
`);\n const $slider = append($inner, `
`);\n const $handle = append($slider, `
`);\n const $loaded = append($handle, `
`);\n const $indicator = append($slider, `
`);\n\n function getVolumeFromEvent(event) {\n const { top, height } = getRect($slider);\n return 1 - (event.clientY - top) / height;\n }\n\n function update() {\n if (art.muted || art.volume === 0) {\n setStyle($volume, 'display', 'none');\n setStyle($close, 'display', 'flex');\n setStyle($indicator, 'top', '100%');\n setStyle($loaded, 'top', '100%');\n $value.innerText = 0;\n } else {\n const percentage = art.volume * 100;\n setStyle($volume, 'display', 'flex');\n setStyle($close, 'display', 'none');\n setStyle($indicator, 'top', `${100 - percentage}%`);\n setStyle($loaded, 'top', `${100 - percentage}%`);\n $value.innerText = Math.floor(percentage);\n }\n }\n\n update();\n art.on('video:volumechange', update);\n\n proxy($volume, 'click', () => {\n art.muted = true;\n });\n\n proxy($close, 'click', () => {\n art.muted = false;\n });\n\n if (isMobile) {\n setStyle($panel, 'display', 'none');\n } else {\n let isDroging = false;\n\n proxy($slider, 'mousedown', (event) => {\n isDroging = event.button === 0;\n art.volume = getVolumeFromEvent(event);\n });\n\n art.on('document:mousemove', (event) => {\n if (isDroging) {\n art.muted = false;\n art.volume = getVolumeFromEvent(event);\n }\n });\n\n art.on('document:mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n }\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function setting(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Show Setting'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art;\n\n append($control, icons.setting);\n\n proxy($control, 'click', () => {\n art.setting.toggle();\n art.setting.resize();\n });\n\n art.on('setting', (value) => {\n tooltip($control, i18n.get(value ? 'Hide Setting' : 'Show Setting'));\n });\n },\n });\n}\n","import { append } from '../utils';\n\nexport default function screenshot(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Screenshot'),\n mounted: ($control) => {\n const { proxy, icons } = art;\n\n append($control, icons.screenshot);\n proxy($control, 'click', () => {\n art.screenshot();\n });\n },\n });\n}\n","import { append } from '../utils';\n\nexport default function pip(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('AirPlay'),\n mounted: ($control) => {\n const { proxy, icons } = art;\n append($control, icons.airplay);\n proxy($control, 'click', () => art.airplay());\n },\n });\n}\n","import { setStyles, includeFromEvent, isMobile, getRect } from '../utils';\nimport Component from '../utils/component';\nimport playbackRate from './playbackRate';\nimport aspectRatio from './aspectRatio';\nimport flip from './flip';\nimport info from './info';\nimport version from './version';\nimport close from './close';\n\nexport default class Contextmenu extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'contextmenu';\n this.$parent = art.template.$contextmenu;\n\n if (!isMobile) {\n this.init();\n }\n }\n\n init() {\n const {\n option,\n proxy,\n template: { $player, $contextmenu },\n } = this.art;\n\n if (option.playbackRate) {\n this.add(\n playbackRate({\n name: 'playbackRate',\n index: 10,\n }),\n );\n }\n\n if (option.aspectRatio) {\n this.add(\n aspectRatio({\n name: 'aspectRatio',\n index: 20,\n }),\n );\n }\n\n if (option.flip) {\n this.add(\n flip({\n name: 'flip',\n index: 30,\n }),\n );\n }\n\n this.add(\n info({\n name: 'info',\n index: 40,\n }),\n );\n\n this.add(\n version({\n name: 'version',\n index: 50,\n }),\n );\n\n this.add(\n close({\n name: 'close',\n index: 60,\n }),\n );\n\n for (let index = 0; index < option.contextmenu.length; index++) {\n this.add(option.contextmenu[index]);\n }\n\n proxy($player, 'contextmenu', (event) => {\n if (!this.art.constructor.CONTEXTMENU) return;\n event.preventDefault();\n\n this.show = true;\n\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = getRect($player);\n const { height: mHeight, width: mWidth } = getRect($contextmenu);\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight;\n }\n\n setStyles($contextmenu, {\n top: `${menuTop}px`,\n left: `${menuLeft}px`,\n });\n });\n\n proxy($player, 'click', (event) => {\n if (!includeFromEvent(event, $contextmenu)) {\n this.show = false;\n }\n });\n\n this.art.on('blur', () => {\n this.show = false;\n });\n }\n}\n","import { inverseClass, query, queryAll } from '../utils';\n\nexport default function playbackRate(option) {\n return (art) => {\n const {\n i18n,\n constructor: { PLAYBACK_RATE },\n } = art;\n\n const html = PLAYBACK_RATE.map(\n (item) => `${item === 1 ? i18n.get('Normal') : item.toFixed(1)}`,\n ).join('');\n\n return {\n ...option,\n html: `${i18n.get('Play Speed')}: ${html}`,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset;\n if (value) {\n art.playbackRate = Number(value);\n contextmenu.show = false;\n }\n },\n mounted: ($panel) => {\n const $default = query('[data-value=\"1\"]', $panel);\n if ($default) inverseClass($default, 'art-current');\n art.on('video:ratechange', () => {\n const $current = queryAll('span', $panel).find(\n (item) => Number(item.dataset.value) === art.playbackRate,\n );\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, query, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return (art) => {\n const {\n i18n,\n constructor: { ASPECT_RATIO },\n } = art;\n\n const html = ASPECT_RATIO.map(\n (item) => `${item === 'default' ? i18n.get('Default') : item}`,\n ).join('');\n\n return {\n ...option,\n html: `${i18n.get('Aspect Ratio')}: ${html}`,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset;\n if (value) {\n art.aspectRatio = value;\n contextmenu.show = false;\n }\n },\n mounted: ($panel) => {\n const $default = query('[data-value=\"default\"]', $panel);\n if ($default) {\n inverseClass($default, 'art-current');\n }\n art.on('aspectRatio', (value) => {\n const $current = queryAll('span', $panel).find((item) => item.dataset.value === value);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, query, queryAll, capitalize } from '../utils';\n\nexport default function flip(option) {\n return (art) => {\n const {\n i18n,\n constructor: { FLIP },\n } = art;\n\n const html = FLIP.map((item) => `${i18n.get(capitalize(item))}`).join('');\n\n return {\n ...option,\n html: `${i18n.get('Video Flip')}: ${html}`,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset;\n if (value) {\n art.flip = value.toLowerCase();\n contextmenu.show = false;\n }\n },\n mounted: ($panel) => {\n const $default = query('[data-value=\"normal\"]', $panel);\n if ($default) {\n inverseClass($default, 'art-current');\n }\n art.on('flip', (value) => {\n const $current = queryAll('span', $panel).find((item) => item.dataset.value === value);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","export default function info(option) {\n return (art) => ({\n ...option,\n html: art.i18n.get('Video Info'),\n click: (contextmenu) => {\n art.info.show = true;\n contextmenu.show = false;\n },\n });\n}\n","export default function version(option) {\n return {\n ...option,\n html: `ArtPlayer ${process.env.APP_VER}`,\n };\n}\n","export default function close(option) {\n return (art) => ({\n ...option,\n html: art.i18n.get('Close'),\n click: (contextmenu) => {\n contextmenu.show = false;\n },\n });\n}\n","import { queryAll, isMobile } from './utils';\nimport Component from './utils/component';\n\nexport default class Info extends Component {\n constructor(art) {\n super(art);\n this.name = 'info';\n\n if (!isMobile) {\n this.init();\n }\n }\n\n init() {\n const {\n proxy,\n constructor,\n template: { $infoPanel, $infoClose, $video },\n } = this.art;\n\n proxy($infoClose, 'click', () => {\n this.show = false;\n });\n\n let timer = null;\n const $types = queryAll('[data-video]', $infoPanel) || [];\n this.art.on('destroy', () => clearTimeout(timer));\n\n function loop() {\n for (let index = 0; index < $types.length; index++) {\n const item = $types[index];\n const value = $video[item.dataset.video];\n const innerText = typeof value === 'number' ? value.toFixed(2) : value;\n if (item.innerText !== innerText) {\n item.innerText = innerText;\n }\n }\n timer = setTimeout(loop, constructor.INFO_LOOP_TIME);\n }\n\n loop();\n }\n}\n","import {\n setStyle,\n setStyles,\n srtToVtt,\n vttToBlob,\n getExt,\n assToVtt,\n escape,\n remove,\n append,\n createElement,\n} from './utils';\nimport Component from './utils/component';\nimport validator from 'option-validator';\nimport scheme from './scheme';\n\nexport default class Subtitle extends Component {\n constructor(art) {\n super(art);\n this.name = 'subtitle';\n this.option = null;\n this.destroyEvent = () => null;\n this.init(art.option.subtitle);\n\n let lastState = false;\n art.on('video:timeupdate', () => {\n if (!this.url) return;\n const state = this.art.template.$video.webkitDisplayingFullscreen;\n if (typeof state !== 'boolean') return;\n if (state !== lastState) {\n lastState = state;\n this.createTrack(state ? 'subtitles' : 'metadata', this.url);\n }\n });\n }\n\n get url() {\n return this.art.template.$track.src;\n }\n\n set url(url) {\n this.switch(url);\n }\n\n get textTrack() {\n return this.art.template.$video?.textTracks?.[0];\n }\n\n get activeCues() {\n if (!this.textTrack) return [];\n return Array.from(this.textTrack.activeCues);\n }\n\n get cues() {\n if (!this.textTrack) return [];\n return Array.from(this.textTrack.cues);\n }\n\n style(key, value) {\n const { $subtitle } = this.art.template;\n if (typeof key === 'object') {\n return setStyles($subtitle, key);\n }\n return setStyle($subtitle, key, value);\n }\n\n update() {\n const {\n option: { subtitle },\n template: { $subtitle },\n } = this.art;\n\n $subtitle.innerHTML = '';\n if (!this.activeCues.length) return;\n\n this.art.emit('subtitleBeforeUpdate', this.activeCues);\n $subtitle.innerHTML = this.activeCues\n .map((cue, index) =>\n cue.text\n .split(/\\r?\\n/)\n .filter((line) => line.trim())\n .map(\n (line) =>\n `
\n ${subtitle.escape ? escape(line) : line}\n
`,\n )\n .join(''),\n )\n .join('');\n this.art.emit('subtitleAfterUpdate', this.activeCues);\n }\n\n async switch(url, newOption = {}) {\n const { i18n, notice, option } = this.art;\n const subtitleOption = { ...option.subtitle, ...newOption, url };\n const subUrl = await this.init(subtitleOption);\n if (newOption.name) {\n notice.show = `${i18n.get('Switch Subtitle')}: ${newOption.name}`;\n }\n return subUrl;\n }\n\n createTrack(kind, url) {\n const { template, proxy, option } = this.art;\n const { $video, $track } = template;\n\n const $newTrack = createElement('track');\n $newTrack.default = true;\n $newTrack.kind = kind;\n $newTrack.src = url;\n $newTrack.label = option.subtitle.name || 'Artplayer';\n $newTrack.track.mode = 'hidden';\n $newTrack.onload = () => {\n this.art.emit('subtitleLoad', this.cues, this.option);\n };\n\n this.art.events.remove(this.destroyEvent);\n $track.onload = null;\n remove($track);\n append($video, $newTrack);\n template.$track = $newTrack;\n this.destroyEvent = proxy(this.textTrack, 'cuechange', () => this.update());\n }\n\n async init(subtitleOption) {\n const {\n notice,\n template: { $subtitle },\n } = this.art;\n\n if (!this.textTrack) return null;\n validator(subtitleOption, scheme.subtitle);\n if (!subtitleOption.url) return;\n this.option = subtitleOption;\n this.style(subtitleOption.style);\n\n return fetch(subtitleOption.url)\n .then((response) => response.arrayBuffer())\n .then((buffer) => {\n const decoder = new TextDecoder(subtitleOption.encoding);\n const text = decoder.decode(buffer);\n switch (subtitleOption.type || getExt(subtitleOption.url)) {\n case 'srt': {\n const vtt = srtToVtt(text);\n const vttNew = subtitleOption.onVttLoad(vtt);\n return vttToBlob(vttNew);\n }\n case 'ass': {\n const vtt = assToVtt(text);\n const vttNew = subtitleOption.onVttLoad(vtt);\n return vttToBlob(vttNew);\n }\n case 'vtt': {\n const vttNew = subtitleOption.onVttLoad(text);\n return vttToBlob(vttNew);\n }\n default:\n return subtitleOption.url;\n }\n })\n .then((subUrl) => {\n $subtitle.innerHTML = '';\n if (this.url === subUrl) return subUrl;\n URL.revokeObjectURL(this.url);\n this.createTrack('metadata', subUrl);\n return subUrl;\n })\n .catch((err) => {\n $subtitle.innerHTML = '';\n notice.show = err;\n throw err;\n });\n }\n}\n","import clickInit from './clickInit';\nimport hoverInit from './hoverInit';\nimport moveInit from './moveInit';\nimport resizeInit from './resizeInit';\nimport gestureInit from './gestureInit';\nimport viewInit from './viewInit';\nimport documentInit from './documentInit';\nimport updateInit from './updateInit';\nimport restoreInit from './restoreInit';\n\nexport default class Events {\n constructor(art) {\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n this.hover = this.hover.bind(this);\n\n clickInit(art, this);\n hoverInit(art, this);\n moveInit(art, this);\n resizeInit(art, this);\n gestureInit(art, this);\n viewInit(art, this);\n documentInit(art, this);\n updateInit(art, this);\n restoreInit(art, this);\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n return name.map((item) => this.proxy(target, item, callback, option));\n }\n\n target.addEventListener(name, callback, option);\n const destroy = () => target.removeEventListener(name, callback, option);\n this.destroyEvents.push(destroy);\n return destroy;\n }\n\n hover(target, mouseenter, mouseleave) {\n if (mouseenter) {\n this.proxy(target, 'mouseenter', mouseenter);\n }\n if (mouseleave) {\n this.proxy(target, 'mouseleave', mouseleave);\n }\n }\n\n remove(destroyEvent) {\n const index = this.destroyEvents.indexOf(destroyEvent);\n if (index > -1) {\n destroyEvent();\n this.destroyEvents.splice(index, 1);\n }\n }\n\n destroy() {\n for (let index = 0; index < this.destroyEvents.length; index++) {\n this.destroyEvents[index]();\n }\n }\n}\n","import { includeFromEvent, isMobile } from '../utils';\n\nexport default function clickInit(art, events) {\n const {\n constructor,\n template: { $player, $video },\n } = art;\n\n events.proxy(document, ['click', 'contextmenu'], (event) => {\n if (includeFromEvent(event, $player)) {\n art.isInput = event.target.tagName === 'INPUT';\n art.isFocus = true;\n art.emit('focus', event);\n } else {\n art.isInput = false;\n art.isFocus = false;\n art.emit('blur', event);\n }\n });\n\n let clickTimes = [];\n events.proxy($video, 'click', (event) => {\n const now = Date.now();\n clickTimes.push(now);\n const { MOBILE_CLICK_PLAY, DBCLICK_TIME, MOBILE_DBCLICK_PLAY, DBCLICK_FULLSCREEN } = constructor;\n\n const clicks = clickTimes.filter((t) => now - t <= DBCLICK_TIME);\n switch (clicks.length) {\n case 1:\n art.emit('click', event);\n\n if (isMobile) {\n if (!art.isLock && MOBILE_CLICK_PLAY) {\n art.toggle();\n }\n } else {\n art.toggle();\n }\n clickTimes = clicks;\n break;\n case 2:\n art.emit('dblclick', event);\n\n if (isMobile) {\n if (!art.isLock && MOBILE_DBCLICK_PLAY) {\n art.toggle();\n }\n } else {\n if (DBCLICK_FULLSCREEN) {\n art.fullscreen = !art.fullscreen;\n }\n }\n clickTimes = [];\n break;\n default:\n clickTimes = [];\n }\n });\n}\n","import { addClass, removeClass } from '../utils';\n\nexport default function hoverInit(art, events) {\n const { $player } = art.template;\n\n events.hover(\n $player,\n (event) => {\n addClass($player, 'art-hover');\n art.emit('hover', true, event);\n },\n (event) => {\n removeClass($player, 'art-hover');\n art.emit('hover', false, event);\n },\n );\n}\n","export default function moveInit(art, events) {\n const { $player } = art.template;\n\n events.proxy($player, 'mousemove', (event) => {\n art.emit('mousemove', event);\n });\n}\n","import { debounce } from '../utils';\n\nexport default function resizeInit(art, events) {\n const { option, constructor } = art;\n\n art.on('resize', () => {\n const { aspectRatio, notice } = art;\n if (art.state === 'standard' && option.autoSize) {\n art.autoSize();\n }\n art.aspectRatio = aspectRatio;\n notice.show = '';\n });\n\n const resizeFn = debounce(() => art.emit('resize'), constructor.RESIZE_TIME);\n events.proxy(window, ['orientationchange', 'resize'], () => resizeFn());\n if (screen && screen.orientation && screen.orientation.onchange) {\n events.proxy(screen.orientation, 'change', () => resizeFn());\n }\n}\n","import { clamp, secondToTime, isMobile } from '../utils';\nimport { setCurrentTime } from '../control/progress';\n\nfunction GetSlideAngle(dx, dy) {\n return (Math.atan2(dy, dx) * 180) / Math.PI;\n}\n\nfunction GetSlideDirection(startX, startY, endX, endY) {\n var dy = startY - endY;\n var dx = endX - startX;\n var result = 0;\n\n if (Math.abs(dx) < 2 && Math.abs(dy) < 2) {\n return result;\n }\n\n var angle = GetSlideAngle(dx, dy);\n if (angle >= -45 && angle < 45) {\n result = 4;\n } else if (angle >= 45 && angle < 135) {\n result = 1;\n } else if (angle >= -135 && angle < -45) {\n result = 2;\n } else if ((angle >= 135 && angle <= 180) || (angle >= -180 && angle < -135)) {\n result = 3;\n }\n\n return result;\n}\n\nexport default function gestureInit(art, events) {\n if (isMobile && !art.option.isLive) {\n const { $video, $progress } = art.template;\n\n let touchTarget = null;\n let isDroging = false;\n let startX = 0;\n let startY = 0;\n let startTime = 0;\n\n const onTouchStart = (event) => {\n if (event.touches.length === 1 && !art.isLock) {\n if (touchTarget === $progress) {\n setCurrentTime(art, event);\n }\n\n isDroging = true;\n const { pageX, pageY } = event.touches[0];\n startX = pageX;\n startY = pageY;\n startTime = art.currentTime;\n }\n };\n\n const onTouchMove = (event) => {\n if (event.touches.length === 1 && isDroging && art.duration) {\n const { pageX, pageY } = event.touches[0];\n const direction = GetSlideDirection(startX, startY, pageX, pageY);\n const isHorizontal = [3, 4].includes(direction);\n const isVertical = [1, 2].includes(direction);\n const isLegal = (isHorizontal && !art.isRotate) || (isVertical && art.isRotate);\n if (isLegal) {\n const ratioX = clamp((pageX - startX) / art.width, -1, 1);\n const ratioY = clamp((pageY - startY) / art.height, -1, 1);\n const ratio = art.isRotate ? ratioY : ratioX;\n const TOUCH_MOVE_RATIO = touchTarget === $video ? art.constructor.TOUCH_MOVE_RATIO : 1;\n const currentTime = clamp(startTime + art.duration * ratio * TOUCH_MOVE_RATIO, 0, art.duration);\n art.seek = currentTime;\n art.emit('setBar', 'played', clamp(currentTime / art.duration, 0, 1), event);\n art.notice.show = `${secondToTime(currentTime)} / ${secondToTime(art.duration)}`;\n }\n }\n };\n\n const onTouchEnd = () => {\n if (isDroging) {\n startX = 0;\n startY = 0;\n startTime = 0;\n isDroging = false;\n touchTarget = null;\n }\n };\n\n if (art.option.gesture) {\n events.proxy($video, 'touchstart', (event) => {\n touchTarget = $video;\n onTouchStart(event);\n });\n events.proxy($video, 'touchmove', onTouchMove);\n }\n\n events.proxy($progress, 'touchstart', (event) => {\n touchTarget = $progress;\n onTouchStart(event);\n });\n\n events.proxy($progress, 'touchmove', onTouchMove);\n events.proxy(document, 'touchend', onTouchEnd);\n }\n}\n","import { throttle, isInViewport } from '../utils';\n\nexport default function viewInit(art, events) {\n const {\n option,\n constructor,\n template: { $container },\n } = art;\n\n const scrollFn = throttle(() => {\n art.emit('view', isInViewport($container, constructor.SCROLL_GAP));\n }, constructor.SCROLL_TIME);\n\n events.proxy(window, 'scroll', () => scrollFn());\n\n art.on('view', (state) => {\n if (option.autoMini) {\n art.mini = !state;\n }\n });\n}\n","export default function documentInit(art, events) {\n events.proxy(document, 'mousemove', (event) => {\n art.emit('document:mousemove', event);\n });\n\n events.proxy(document, 'mouseup', (event) => {\n art.emit('document:mouseup', event);\n });\n}\n","export default function updateInit(art) {\n if (art.constructor.USE_RAF) {\n let timer = null;\n\n (function update() {\n if (art.playing) {\n art.emit('raf');\n }\n\n if (!art.isDestroy) {\n timer = requestAnimationFrame(update);\n }\n })();\n\n art.on('destroy', () => {\n cancelAnimationFrame(timer);\n });\n }\n}\n","export default function restoreInit(art, events) {\n //\n}\n","import { isMobile } from './utils';\n\nexport default class Hotkey {\n constructor(art) {\n this.art = art;\n this.keys = {};\n\n if (art.option.hotkey && !isMobile) {\n this.init();\n }\n }\n\n init() {\n const { proxy, constructor } = this.art;\n\n this.add('Escape', () => {\n if (this.art.fullscreenWeb) {\n this.art.fullscreenWeb = false;\n }\n });\n\n this.add('Space', () => {\n this.art.toggle();\n });\n\n this.add('ArrowLeft', () => {\n this.art.backward = constructor.SEEK_STEP;\n });\n\n this.add('ArrowUp', () => {\n this.art.volume += constructor.VOLUME_STEP;\n });\n\n this.add('ArrowRight', () => {\n this.art.forward = constructor.SEEK_STEP;\n });\n\n this.add('ArrowDown', () => {\n this.art.volume -= constructor.VOLUME_STEP;\n });\n\n proxy(document, 'keydown', (event) => {\n if (this.art.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (\n tag !== 'INPUT' &&\n tag !== 'TEXTAREA' &&\n editable !== '' &&\n editable !== 'true' &&\n !event.altKey &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.shiftKey\n ) {\n const events = this.keys[event.code];\n if (events) {\n event.preventDefault();\n for (let index = 0; index < events.length; index++) {\n events[index].call(this.art, event);\n }\n this.art.emit('hotkey', event);\n }\n }\n }\n this.art.emit('keydown', event);\n });\n }\n\n add(key, event) {\n if (this.keys[key]) {\n this.keys[key].push(event);\n } else {\n this.keys[key] = [event];\n }\n return this;\n }\n\n remove(key, event) {\n if (this.keys[key]) {\n const index = this.keys[key].indexOf(event);\n if (index !== -1) {\n this.keys[key].splice(index, 1);\n }\n }\n return this;\n }\n}\n","import Component from './utils/component';\n\nexport default class Layer extends Component {\n constructor(art) {\n super(art);\n\n const {\n option,\n template: { $layer },\n } = art;\n\n this.name = 'layer';\n this.$parent = $layer;\n\n for (let index = 0; index < option.layers.length; index++) {\n this.add(option.layers[index]);\n }\n }\n}\n","import { append } from './utils';\nimport Component from './utils/component';\n\nexport default class Loading extends Component {\n constructor(art) {\n super(art);\n this.name = 'loading';\n append(art.template.$loading, art.icons.loading);\n }\n}\n","import { addClass, removeClass } from './utils';\n\nexport default class Notice {\n constructor(art) {\n this.art = art;\n this.timer = null;\n }\n\n set show(msg) {\n const {\n constructor,\n template: { $player, $noticeInner },\n } = this.art;\n\n if (msg) {\n $noticeInner.innerText = msg instanceof Error ? msg.message.trim() : msg;\n addClass($player, 'art-notice-show');\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n $noticeInner.innerText = '';\n removeClass($player, 'art-notice-show');\n }, constructor.NOTICE_TIME);\n } else {\n removeClass($player, 'art-notice-show');\n }\n }\n}\n","import { append, setStyle } from './utils';\nimport Component from './utils/component';\n\nexport default class Mask extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'mask';\n const { template, icons, events } = art;\n\n const $state = append(template.$state, icons.state);\n const $error = append(template.$state, icons.error);\n\n setStyle($error, 'display', 'none');\n\n art.on('destroy', () => {\n setStyle($state, 'display', 'none');\n setStyle($error, 'display', null);\n });\n\n events.proxy(template.$state, 'click', () => art.play());\n }\n}\n","import { def, getIcon } from '../utils';\nimport loading from 'bundle-text:./loading.svg';\nimport state from 'bundle-text:./state.svg';\nimport check from 'bundle-text:./check.svg';\nimport play from 'bundle-text:./play.svg';\nimport pause from 'bundle-text:./pause.svg';\nimport volume from 'bundle-text:./volume.svg';\nimport volumeClose from 'bundle-text:./volume-close.svg';\nimport screenshot from 'bundle-text:./screenshot.svg';\nimport setting from 'bundle-text:./setting.svg';\nimport arrowLeft from 'bundle-text:./arrow-left.svg';\nimport arrowRight from 'bundle-text:./arrow-right.svg';\nimport playbackRate from 'bundle-text:./playback-rate.svg';\nimport aspectRatio from 'bundle-text:./aspect-ratio.svg';\nimport config from 'bundle-text:./config.svg';\nimport pip from 'bundle-text:./pip.svg';\nimport lock from 'bundle-text:./lock.svg';\nimport unlock from 'bundle-text:./unlock.svg';\nimport fullscreenOff from 'bundle-text:./fullscreen-off.svg';\nimport fullscreenOn from 'bundle-text:./fullscreen-on.svg';\nimport fullscreenWebOff from 'bundle-text:./fullscreen-web-off.svg';\nimport fullscreenWebOn from 'bundle-text:./fullscreen-web-on.svg';\nimport switchOn from 'bundle-text:./switch-on.svg';\nimport switchOff from 'bundle-text:./switch-off.svg';\nimport flip from 'bundle-text:./flip.svg';\nimport error from 'bundle-text:./error.svg';\nimport close from 'bundle-text:./close.svg';\nimport airplay from 'bundle-text:./airplay.svg';\n\nexport default class Icons {\n constructor(art) {\n const icons = {\n loading,\n state,\n play,\n pause,\n check,\n volume,\n volumeClose,\n screenshot,\n setting,\n pip,\n arrowLeft,\n arrowRight,\n playbackRate,\n aspectRatio,\n config,\n lock,\n flip,\n unlock,\n fullscreenOff,\n fullscreenOn,\n fullscreenWebOff,\n fullscreenWebOn,\n switchOn,\n switchOff,\n error,\n close,\n airplay,\n ...art.option.icons,\n };\n\n for (const key in icons) {\n def(this, key, {\n get: () => getIcon(key, icons[key]),\n });\n }\n }\n}\n","module.exports = \"48351807f9d17b85\";","module.exports = \"b521bd87173f07f8\";","module.exports = \"7d4d567c33bb525d\";","module.exports = \"d9cf5218ba4119f7\";","module.exports = \"1b6f706023152499\";","module.exports = \"ccea5e85f0721ac8\";","module.exports = \"7b07ee0d42ef7999\";","module.exports = \"d10cbdd15b9c3ccc\";","module.exports = \"ce7e5747dbeebf9c\";","module.exports = \"31d0f450fd3142ae\";","module.exports = \"607a9d3122cadc95\";","module.exports = \"3f2a5aef9e446414\";","module.exports = \"a3c2d6619a4bebaf\";","module.exports = \"5daee943371cdae2\";","module.exports = \"e49c27bbc31901ab\";","module.exports = \"0fd94c9b6ccce96e\";","module.exports = \"721f903406a7a9bd\";","module.exports = \"133f4e7286a8c946\";","module.exports = \"3ad4b0d674115f9f\";","module.exports = \"66f3df095ff2cfc9\";","module.exports = \"6a9b55926d7ffbd8\";","module.exports = \"ed05d01f0639f8dd\";","module.exports = \"42b075eebf138ccb\";","module.exports = \"c9dbc85ae2682806\";","module.exports = \"4e1fab3a25abda1e\";","module.exports = \"ef31f094274e03ea\";","module.exports = \"6f41eca9c8b9cda2\";","import flip from './flip';\nimport aspectRatio from './aspectRatio';\nimport playbackRate from './playbackRate';\nimport subtitleOffset from './subtitleOffset';\nimport Component from '../utils/component';\nimport {\n def,\n has,\n remove,\n append,\n getRect,\n addClass,\n setStyle,\n isMobile,\n errorHandle,\n inverseClass,\n createElement,\n replaceElement,\n includeFromEvent,\n} from '../utils';\n\nexport default class Setting extends Component {\n constructor(art) {\n super(art);\n\n const {\n option,\n controls,\n template: { $setting },\n } = art;\n\n this.name = 'setting';\n this.$parent = $setting;\n\n this.id = 0;\n this.active = null;\n this.cache = new Map();\n this.option = [...this.builtin, ...option.settings];\n\n if (option.setting) {\n this.format();\n this.render();\n\n art.on('blur', () => {\n if (this.show) {\n this.show = false;\n this.render();\n }\n });\n\n art.on('focus', (event) => {\n const isControl = includeFromEvent(event, controls.setting);\n const isSetting = includeFromEvent(event, this.$parent);\n if (this.show && !isControl && !isSetting) {\n this.show = false;\n this.render();\n }\n });\n\n art.on('resize', () => this.resize());\n }\n }\n\n get builtin() {\n const result = [];\n const { option } = this.art;\n\n if (option.playbackRate) {\n result.push(playbackRate(this.art));\n }\n\n if (option.aspectRatio) {\n result.push(aspectRatio(this.art));\n }\n\n if (option.flip) {\n result.push(flip(this.art));\n }\n\n if (option.subtitleOffset) {\n result.push(subtitleOffset(this.art));\n }\n\n return result;\n }\n\n traverse(callback, option = this.option) {\n for (let index = 0; index < option.length; index++) {\n const item = option[index];\n callback(item);\n if (item.selector?.length) {\n this.traverse.call(this, callback, item.selector);\n }\n }\n }\n\n check(target) {\n target.$parent.tooltip = target.html;\n this.traverse((item) => {\n item.default = item === target;\n if (item.default && item.$item) {\n inverseClass(item.$item, 'art-current');\n }\n }, target.$option);\n this.render(target.$parents);\n }\n\n format(option = this.option, parent, parents, names = []) {\n for (let index = 0; index < option.length; index++) {\n const item = option[index];\n\n if (item?.name) {\n errorHandle(!names.includes(item.name), `The [${item.name}] is already exist in [setting]`);\n names.push(item.name);\n } else {\n item.name = `setting-${this.id++}`;\n }\n\n if (!item.$formatted) {\n def(item, '$parent', {\n get: () => parent,\n });\n\n def(item, '$parents', {\n get: () => parents,\n });\n\n def(item, '$option', {\n get: () => option,\n });\n\n const $events = [];\n def(item, '$events', {\n get: () => $events,\n });\n\n def(item, '$formatted', {\n get: () => true,\n });\n }\n\n this.format(item.selector || [], item, option, names);\n }\n\n this.option = option;\n }\n\n find(name = '') {\n let result = null;\n this.traverse((item) => {\n if (item.name === name) {\n result = item;\n }\n });\n return result;\n }\n\n resize() {\n const {\n controls,\n constructor: { SETTING_WIDTH, SETTING_ITEM_HEIGHT },\n template: { $player, $setting },\n } = this.art;\n\n if (controls.setting && this.show) {\n const settingWidth = this.active[0]?.$parent?.width || SETTING_WIDTH;\n const { left: controlLeft, width: controlWidth } = getRect(controls.setting);\n const { left: playerLeft, width: playerWidth } = getRect($player);\n const settingLeft = controlLeft - playerLeft + controlWidth / 2 - settingWidth / 2;\n\n const settingHeight =\n this.active === this.option\n ? this.active.length * SETTING_ITEM_HEIGHT\n : (this.active.length + 1) * SETTING_ITEM_HEIGHT;\n\n setStyle($setting, 'height', `${settingHeight}px`);\n setStyle($setting, 'width', `${settingWidth}px`);\n\n if (this.art.isRotate || isMobile) return;\n\n if (settingLeft + settingWidth > playerWidth) {\n setStyle($setting, 'left', null);\n setStyle($setting, 'right', null);\n } else {\n setStyle($setting, 'left', `${settingLeft}px`);\n setStyle($setting, 'right', 'auto');\n }\n }\n }\n\n inactivate(item) {\n for (let index = 0; index < item.$events.length; index++) {\n this.art.events.remove(item.$events[index]);\n }\n item.$events.length = 0;\n }\n\n remove(name) {\n const item = this.find(name);\n errorHandle(item, `Can't find [${name}] in the [setting]`);\n const index = item.$option.indexOf(item);\n item.$option.splice(index, 1);\n this.inactivate(item);\n if (item.$item) remove(item.$item);\n this.render();\n }\n\n update(target) {\n const item = this.find(target.name);\n\n if (item) {\n this.inactivate(item);\n Object.assign(item, target);\n this.format();\n this.creatItem(item, true);\n this.render();\n return item;\n } else {\n return this.add(target);\n }\n }\n\n add(item, option = this.option) {\n option.push(item);\n this.format();\n this.creatItem(item);\n this.render();\n return item;\n }\n\n creatHeader(item) {\n if (!this.cache.has(item.$option)) return;\n const $panel = this.cache.get(item.$option);\n\n const {\n proxy,\n icons: { arrowLeft },\n constructor: { SETTING_ITEM_HEIGHT },\n } = this.art;\n\n const $item = createElement('div');\n setStyle($item, 'height', `${SETTING_ITEM_HEIGHT}px`);\n addClass($item, 'art-setting-item');\n addClass($item, 'art-setting-item-back');\n const $left = append($item, '
');\n const $icon = createElement('div');\n addClass($icon, 'art-setting-item-left-icon');\n append($icon, arrowLeft);\n append($left, $icon);\n append($left, item.$parent.html);\n const event = proxy($item, 'click', () => this.render(item.$parents));\n item.$parent.$events.push(event);\n append($panel, $item);\n }\n\n creatItem(item, isUpdate = false) {\n if (!this.cache.has(item.$option)) return;\n const $panel = this.cache.get(item.$option);\n const oldItem = item.$item;\n\n let type = 'selector';\n\n if (has(item, 'switch')) {\n type = 'switch';\n }\n\n if (has(item, 'range')) {\n type = 'range';\n }\n\n if (has(item, 'onClick')) {\n type = 'button';\n }\n\n const { icons, proxy, constructor } = this.art;\n\n const $item = createElement('div');\n addClass($item, 'art-setting-item');\n setStyle($item, 'height', `${constructor.SETTING_ITEM_HEIGHT}px`);\n\n $item.dataset.name = item.name || '';\n $item.dataset.value = item.value || '';\n\n const $left = append($item, '
');\n const $right = append($item, '
');\n\n const $icon = createElement('div');\n addClass($icon, 'art-setting-item-left-icon');\n\n switch (type) {\n case 'button':\n case 'switch':\n case 'range':\n append($icon, item.icon || icons.config);\n break;\n case 'selector':\n if (item.selector?.length) {\n append($icon, item.icon || icons.config);\n } else {\n append($icon, icons.check);\n }\n break;\n default:\n break;\n }\n\n append($left, $icon);\n\n def(item, '$icon', {\n configurable: true,\n get: () => $icon,\n });\n\n def(item, 'icon', {\n configurable: true,\n get() {\n return $icon.innerHTML;\n },\n set(value) {\n $icon.innerHTML = '';\n append($icon, value);\n },\n });\n\n const $html = createElement('div');\n addClass($html, 'art-setting-item-left-text');\n append($html, item.html || '');\n append($left, $html);\n\n def(item, '$html', {\n configurable: true,\n get: () => $html,\n });\n\n def(item, 'html', {\n configurable: true,\n get() {\n return $html.innerHTML;\n },\n set(value) {\n $html.innerHTML = '';\n append($html, value);\n },\n });\n\n const $tooltip = createElement('div');\n addClass($tooltip, 'art-setting-item-right-tooltip');\n append($tooltip, item.tooltip || '');\n append($right, $tooltip);\n\n def(item, '$tooltip', {\n configurable: true,\n get: () => $tooltip,\n });\n\n def(item, 'tooltip', {\n configurable: true,\n get() {\n return $tooltip.innerHTML;\n },\n set(value) {\n $tooltip.innerHTML = '';\n append($tooltip, value);\n },\n });\n\n switch (type) {\n case 'switch': {\n const $switch = createElement('div');\n addClass($switch, 'art-setting-item-right-icon');\n const $switchOn = append($switch, icons.switchOn);\n const $switchOff = append($switch, icons.switchOff);\n setStyle(item.switch ? $switchOff : $switchOn, 'display', 'none');\n append($right, $switch);\n\n def(item, '$switch', {\n configurable: true,\n get: () => $switch,\n });\n\n let $switchValue = item.switch;\n def(item, 'switch', {\n configurable: true,\n get: () => $switchValue,\n set(value) {\n $switchValue = value;\n if (value) {\n setStyle($switchOff, 'display', 'none');\n setStyle($switchOn, 'display', null);\n } else {\n setStyle($switchOff, 'display', null);\n setStyle($switchOn, 'display', 'none');\n }\n },\n });\n break;\n }\n case 'range':\n {\n const $state = createElement('div');\n addClass($state, 'art-setting-item-right-icon');\n const $range = append($state, '');\n $range.value = item.range[0];\n $range.min = item.range[1];\n $range.max = item.range[2];\n $range.step = item.range[3];\n addClass($range, 'art-setting-range');\n append($right, $state);\n\n def(item, '$range', {\n configurable: true,\n get: () => $range,\n });\n\n let $rangeValue = [...item.range];\n def(item, 'range', {\n configurable: true,\n get: () => $rangeValue,\n set(value) {\n $rangeValue = [...value];\n $range.value = value[0];\n $range.min = value[1];\n $range.max = value[2];\n $range.step = value[3];\n },\n });\n }\n break;\n case 'selector':\n if (item.selector?.length) {\n const $state = createElement('div');\n addClass($state, 'art-setting-item-right-icon');\n append($state, icons.arrowRight);\n append($right, $state);\n }\n break;\n default:\n break;\n }\n\n switch (type) {\n case 'switch': {\n if (item.onSwitch) {\n const event = proxy($item, 'click', async (event) => {\n item.switch = await item.onSwitch.call(this.art, item, $item, event);\n });\n item.$events.push(event);\n }\n break;\n }\n case 'range': {\n if (item.$range) {\n if (item.onRange) {\n const event = proxy(item.$range, 'change', async (event) => {\n item.range[0] = item.$range.valueAsNumber;\n item.tooltip = await item.onRange.call(this.art, item, $item, event);\n });\n item.$events.push(event);\n }\n\n if (item.onChange) {\n const event = proxy(item.$range, 'input', async (event) => {\n item.range[0] = item.$range.valueAsNumber;\n item.tooltip = await item.onChange.call(this.art, item, $item, event);\n });\n item.$events.push(event);\n }\n }\n break;\n }\n case 'selector':\n {\n const event = proxy($item, 'click', async (event) => {\n if (item.selector?.length) {\n this.render(item.selector);\n } else {\n this.check(item);\n if (item.$parent.onSelect) {\n item.$parent.tooltip = await item.$parent.onSelect.call(this.art, item, $item, event);\n }\n }\n });\n\n item.$events.push(event);\n\n if (item.default) {\n addClass($item, 'art-current');\n }\n }\n break;\n case 'button':\n {\n if (item.onClick) {\n const event = proxy($item, 'click', async (event) => {\n item.tooltip = await item.onClick.call(this.art, item, $item, event);\n });\n item.$events.push(event);\n }\n }\n break;\n default:\n break;\n }\n\n def(item, '$item', {\n configurable: true,\n get: () => $item,\n });\n\n if (isUpdate) {\n replaceElement($item, oldItem);\n } else {\n append($panel, $item);\n }\n\n if (item.mounted) {\n setTimeout(() => item.mounted.call(this.art, item.$item, item), 0);\n }\n }\n\n render(option = this.option) {\n this.active = option;\n if (this.cache.has(option)) {\n const $panel = this.cache.get(option);\n inverseClass($panel, 'art-current');\n } else {\n const $panel = createElement('div');\n this.cache.set(option, $panel);\n addClass($panel, 'art-setting-panel');\n append(this.$parent, $panel);\n inverseClass($panel, 'art-current');\n\n if (option[0]?.$parent) {\n this.creatHeader(option[0]);\n }\n\n for (let index = 0; index < option.length; index++) {\n this.creatItem(option[index]);\n }\n }\n this.resize();\n }\n}\n","import { capitalize } from '../utils';\n\nexport default function flip(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, FLIP },\n } = art;\n\n function getI18n(value) {\n return i18n.get(capitalize(value));\n }\n\n function update() {\n const target = art.setting.find(`flip-${art.flip}`);\n art.setting.check(target);\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n name: 'flip',\n html: i18n.get('Video Flip'),\n tooltip: getI18n(art.flip),\n icon: icons.flip,\n selector: FLIP.map((item) => {\n return {\n value: item,\n name: `flip-${item}`,\n default: item === art.flip,\n html: getI18n(item),\n };\n }),\n onSelect(item) {\n art.flip = item.value;\n return item.html;\n },\n mounted: () => {\n update();\n art.on('flip', () => update());\n },\n };\n}\n","export default function aspectRatio(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, ASPECT_RATIO },\n } = art;\n\n function getI18n(value) {\n return value === 'default' ? i18n.get('Default') : value;\n }\n\n function update() {\n const target = art.setting.find(`aspect-ratio-${art.aspectRatio}`);\n art.setting.check(target);\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n name: 'aspect-ratio',\n html: i18n.get('Aspect Ratio'),\n icon: icons.aspectRatio,\n tooltip: getI18n(art.aspectRatio),\n selector: ASPECT_RATIO.map((item) => {\n return {\n value: item,\n name: `aspect-ratio-${item}`,\n default: item === art.aspectRatio,\n html: getI18n(item),\n };\n }),\n onSelect(item) {\n art.aspectRatio = item.value;\n return item.html;\n },\n mounted: () => {\n update();\n art.on('aspectRatio', () => update());\n },\n };\n}\n","export default function playbackRate(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, PLAYBACK_RATE },\n } = art;\n\n function getI18n(value) {\n return value === 1.0 ? i18n.get('Normal') : value.toFixed(1);\n }\n\n function update() {\n const target = art.setting.find(`playback-rate-${art.playbackRate}`);\n art.setting.check(target);\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n name: 'playback-rate',\n html: i18n.get('Play Speed'),\n tooltip: getI18n(art.playbackRate),\n icon: icons.playbackRate,\n selector: PLAYBACK_RATE.map((item) => {\n return {\n value: item,\n name: `playback-rate-${item}`,\n default: item === art.playbackRate,\n html: getI18n(item),\n };\n }),\n onSelect(item) {\n art.playbackRate = item.value;\n return item.html;\n },\n mounted: () => {\n update();\n art.on('video:ratechange', () => update());\n },\n };\n}\n","export default function subtitleOffset(art) {\n const { i18n, icons, constructor } = art;\n\n return {\n width: constructor.SETTING_ITEM_WIDTH,\n name: 'subtitle-offset',\n html: i18n.get('Subtitle Offset'),\n icon: icons.subtitle,\n tooltip: '0s',\n range: [0, -10, 10, 0.1],\n onChange(item) {\n art.subtitleOffset = item.range[0];\n return item.range[0] + 's';\n },\n mounted: (_, item) => {\n art.on('subtitleOffset', (value) => {\n item.$range.value = value;\n item.tooltip = value + 's';\n });\n },\n };\n}\n","export default class Storage {\n constructor() {\n this.name = 'artplayer_settings';\n this.settings = {};\n }\n\n get(key) {\n try {\n const storage = JSON.parse(window.localStorage.getItem(this.name)) || {};\n return key ? storage[key] : storage;\n // eslint-disable-next-line no-unused-vars\n } catch (error) {\n return key ? this.settings[key] : this.settings;\n }\n }\n\n set(key, value) {\n try {\n const storage = Object.assign({}, this.get(), {\n [key]: value,\n });\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n // eslint-disable-next-line no-unused-vars\n } catch (error) {\n this.settings[key] = value;\n }\n }\n\n del(key) {\n try {\n const storage = this.get();\n delete storage[key];\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n // eslint-disable-next-line no-unused-vars\n } catch (error) {\n delete this.settings[key];\n }\n }\n\n clear() {\n try {\n window.localStorage.removeItem(this.name);\n // eslint-disable-next-line no-unused-vars\n } catch (error) {\n this.settings = {};\n }\n }\n}\n","import { errorHandle, isMobile, has, def } from '../utils';\nimport miniProgressBar from './miniProgressBar';\nimport autoOrientation from './autoOrientation';\nimport autoPlayback from './autoPlayback';\nimport fastForward from './fastForward';\nimport lock from './lock';\n\nexport default class Plugins {\n constructor(art) {\n this.art = art;\n this.id = 0;\n\n const { option } = art;\n\n if (option.miniProgressBar && !option.isLive) {\n this.add(miniProgressBar);\n }\n\n if (option.lock && isMobile) {\n this.add(lock);\n }\n\n if (option.autoPlayback && !option.isLive) {\n this.add(autoPlayback);\n }\n\n if (option.autoOrientation && isMobile) {\n this.add(autoOrientation);\n }\n\n if (option.fastForward && isMobile && !option.isLive) {\n this.add(fastForward);\n }\n\n for (let index = 0; index < option.plugins.length; index++) {\n this.add(option.plugins[index]);\n }\n }\n\n add(plugin) {\n this.id += 1;\n const result = plugin.call(this.art, this.art);\n if (result instanceof Promise) {\n return result.then((res) => this.next(plugin, res));\n } else {\n return this.next(plugin, result);\n }\n }\n\n next(plugin, result) {\n const pluginName = (result && result.name) || plugin.name || `plugin${this.id}`;\n errorHandle(!has(this, pluginName), `Cannot add a plugin that already has the same name: ${pluginName}`);\n def(this, pluginName, {\n value: result,\n });\n return this;\n }\n}\n","import { addClass, removeClass } from '../utils';\n\nexport default function miniProgressBar(art) {\n art.on('control', (state) => {\n if (state) {\n removeClass(art.template.$player, 'art-mini-progress-bar');\n } else {\n addClass(art.template.$player, 'art-mini-progress-bar');\n }\n });\n\n return { name: 'mini-progress-bar' };\n}\n","import { setStyle, addClass, removeClass, hasClass } from '../utils';\n\nexport default function autoOrientation(art) {\n const {\n constructor,\n template: { $player, $video },\n } = art;\n\n art.on('fullscreenWeb', (state) => {\n if (state) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth: viewWidth, clientHeight: viewHeight } = document.documentElement;\n if (\n (videoWidth > videoHeight && viewWidth < viewHeight) ||\n (videoWidth < videoHeight && viewWidth > viewHeight)\n ) {\n // There is a conflict with the fullscreen event, and it is changed to asynchronous execution\n setTimeout(() => {\n setStyle($player, 'width', `${viewHeight}px`);\n setStyle($player, 'height', `${viewWidth}px`);\n setStyle($player, 'transform-origin', '0 0');\n setStyle($player, 'transform', `rotate(90deg) translate(0, -${viewWidth}px)`);\n addClass($player, 'art-auto-orientation');\n art.isRotate = true;\n art.emit('resize');\n }, constructor.AUTO_ORIENTATION_TIME);\n }\n } else {\n if (hasClass($player, 'art-auto-orientation')) {\n removeClass($player, 'art-auto-orientation');\n art.isRotate = false;\n art.emit('resize');\n }\n }\n });\n\n art.on('fullscreen', async (state) => {\n if (!screen?.orientation?.lock) return;\n\n const lastOrientation = screen.orientation.type;\n if (state) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth: viewWidth, clientHeight: viewHeight } = document.documentElement;\n if (\n (videoWidth > videoHeight && viewWidth < viewHeight) ||\n (videoWidth < videoHeight && viewWidth > viewHeight)\n ) {\n const oppositeOrientation = lastOrientation.startsWith('portrait') ? 'landscape' : 'portrait';\n await screen.orientation.lock(oppositeOrientation);\n addClass($player, 'art-auto-orientation-fullscreen');\n }\n } else {\n if (hasClass($player, 'art-auto-orientation-fullscreen')) {\n await screen.orientation.lock(lastOrientation);\n removeClass($player, 'art-auto-orientation-fullscreen');\n }\n }\n });\n\n return {\n name: 'autoOrientation',\n get state() {\n return hasClass($player, 'art-auto-orientation');\n },\n };\n}\n","import { secondToTime, setStyle, query, append } from '../utils';\n\nexport default function autoPlayback(art) {\n const {\n i18n,\n icons,\n storage,\n constructor,\n proxy,\n template: { $poster },\n } = art;\n\n const $autoPlayback = art.layers.add({\n name: 'auto-playback',\n html: `\n
\n
\n
\n `,\n });\n\n const $last = query('.art-auto-playback-last', $autoPlayback);\n const $jump = query('.art-auto-playback-jump', $autoPlayback);\n const $close = query('.art-auto-playback-close', $autoPlayback);\n append($close, icons.close);\n\n let timer = null;\n\n art.on('video:timeupdate', () => {\n if (art.playing) {\n const times = storage.get('times') || {};\n const keys = Object.keys(times);\n if (keys.length > constructor.AUTO_PLAYBACK_MAX) {\n delete times[keys[0]];\n }\n times[art.option.id || art.option.url] = art.currentTime;\n storage.set('times', times);\n }\n });\n\n function init() {\n const times = storage.get('times') || {};\n const currentTime = times[art.option.id || art.option.url];\n\n clearTimeout(timer);\n setStyle($autoPlayback, 'display', 'none');\n\n if (currentTime && currentTime >= constructor.AUTO_PLAYBACK_MIN) {\n setStyle($autoPlayback, 'display', 'flex');\n\n $last.innerText = `${i18n.get('Last Seen')} ${secondToTime(currentTime)}`;\n $jump.innerText = i18n.get('Jump Play');\n\n proxy($close, 'click', () => {\n setStyle($autoPlayback, 'display', 'none');\n });\n\n proxy($jump, 'click', () => {\n art.seek = currentTime;\n art.play();\n setStyle($poster, 'display', 'none');\n setStyle($autoPlayback, 'display', 'none');\n });\n\n art.once('video:timeupdate', () => {\n timer = setTimeout(() => {\n setStyle($autoPlayback, 'display', 'none');\n }, constructor.AUTO_PLAYBACK_TIMEOUT);\n });\n }\n }\n\n art.on('ready', init);\n art.on('restart', init);\n\n return {\n name: 'auto-playback',\n get times() {\n return storage.get('times') || {};\n },\n clear() {\n return storage.del('times');\n },\n delete(id) {\n const times = storage.get('times') || {};\n delete times[id];\n storage.set('times', times);\n return times;\n },\n };\n}\n","import { hasClass, addClass, removeClass } from '../utils';\n\nexport default function fastForward(art) {\n const {\n constructor,\n proxy,\n template: { $player, $video },\n } = art;\n\n let timer = null;\n let isPress = false;\n let lastPlaybackRate = 1;\n\n const onStart = (event) => {\n if (event.touches.length === 1 && art.playing && !art.isLock) {\n timer = setTimeout(() => {\n isPress = true;\n lastPlaybackRate = art.playbackRate;\n art.playbackRate = constructor.FAST_FORWARD_VALUE;\n addClass($player, 'art-fast-forward');\n }, constructor.FAST_FORWARD_TIME);\n }\n };\n\n const onStop = () => {\n clearTimeout(timer);\n if (isPress) {\n isPress = false;\n art.playbackRate = lastPlaybackRate;\n removeClass($player, 'art-fast-forward');\n }\n };\n\n proxy($video, 'touchstart', onStart);\n proxy(document, 'touchmove', onStop);\n proxy(document, 'touchend', onStop);\n\n return {\n name: 'fastForward',\n get state() {\n return hasClass($player, 'art-fast-forward');\n },\n };\n}\n","import { append, setStyle, hasClass, addClass, removeClass } from '../utils';\n\nexport default function lock(art) {\n const {\n layers,\n icons,\n template: { $player },\n } = art;\n\n function getState() {\n return hasClass($player, 'art-lock');\n }\n\n function setLock() {\n addClass($player, 'art-lock');\n art.isLock = true;\n art.emit('lock', true);\n }\n\n function setUnlock() {\n removeClass($player, 'art-lock');\n art.isLock = false;\n art.emit('lock', false);\n }\n\n layers.add({\n name: 'lock',\n mounted($el) {\n const $lock = append($el, icons.lock);\n const $unlock = append($el, icons.unlock);\n setStyle($lock, 'display', 'none');\n\n art.on('lock', (state) => {\n if (state) {\n setStyle($lock, 'display', 'inline-flex');\n setStyle($unlock, 'display', 'none');\n } else {\n setStyle($lock, 'display', 'none');\n setStyle($unlock, 'display', 'inline-flex');\n }\n });\n },\n click() {\n if (getState()) {\n setUnlock();\n } else {\n setLock();\n }\n },\n });\n\n return {\n name: 'lock',\n get state() {\n return getState();\n },\n set state(value) {\n if (value) {\n setLock();\n } else {\n setUnlock();\n }\n },\n };\n}\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"} \ No newline at end of file +{"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAI,KAAK;AACT,MAAM,YAAY,EAAE;AACL,MAAM,kBAAkB,CAAA,GAAA,uBAAO,AAAD;IACzC,YAAY,MAAM,EAAE,aAAa,CAAE;QAC/B,KAAK;QAEL,IAAI,CAAC,EAAE,GAAG,EAAE;QAEZ,MAAM,cAAc,OAAM,SAAS,CAAC,UAAU,MAAM,EAAE;QACtD,YAAY,SAAS,GAAG,OAAO,SAAS;QAExC,IAAI,CAAC,MAAM,GAAG,CAAA,GAAA,+BAAS,AAAD,EAAE,aAAa,CAAA,GAAA,sBAAM,AAAD;QAE1C,IAAI,CAAC,MAAM,GAAG;QACd,IAAI,CAAC,OAAO,GAAG;QACf,IAAI,CAAC,OAAO,GAAG;QACf,IAAI,CAAC,OAAO,GAAG;QACf,IAAI,CAAC,QAAQ,GAAG;QAChB,IAAI,CAAC,SAAS,GAAG;QAEjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA,GAAA,wBAAQ,AAAD,EAAE,IAAI;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA,GAAA,sBAAM,AAAD,EAAE,IAAI;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA,GAAA,uBAAO,AAAD,EAAE,IAAI;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA,GAAA,qBAAK,AAAD,EAAE,IAAI;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA,GAAA,oBAAI,AAAD,EAAE,IAAI;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA,GAAA,sBAAM,AAAD,EAAE,IAAI;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA,GAAA,sBAAM,AAAD,EAAE,IAAI;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA,GAAA,qBAAK,AAAD,EAAE,IAAI;QAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA,GAAA,uBAAO,AAAD,EAAE,IAAI;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA,GAAA,2BAAW,AAAD,EAAE,IAAI;QACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA,GAAA,wBAAQ,AAAD,EAAE,IAAI;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA,GAAA,oBAAI,AAAD,EAAE,IAAI;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA,GAAA,uBAAO,AAAD,EAAE,IAAI;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA,GAAA,sBAAM,AAAD,EAAE,IAAI;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA,GAAA,oBAAI,AAAD,EAAE,IAAI;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA,GAAA,uBAAO,AAAD,EAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA,GAAA,uBAAO,AAAD,EAAE,IAAI;QAE/B,IAAI,OAAO,kBAAkB,YACzB,IAAI,CAAC,EAAE,CAAC,SAAS,IAAM,cAAc,IAAI,CAAC,IAAI,EAAE,IAAI;QAGxD,IAAI,UAAU,KAAK,EAAE;YACjB,MAAM,MAAM,CAAC,MAAQ,QAAQ,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK;YAC7D,IAAI,aAAa,UAAU,OAAO;YAClC,IAAI,SAAS,UAAU,GAAG;YAC1B,IAAI,WAAW,UAAU,KAAK;YAC9B,IAAK,IAAI,QAAQ,GAAG,QAAQ,CAAA,GAAA,sBAAM,AAAD,EAAE,MAAM,CAAC,MAAM,EAAE,QAC9C,IAAI,CAAC,EAAE,CAAC,WAAW,CAAA,GAAA,sBAAM,AAAD,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,QAAU,IAAI,WAAW,MAAM,IAAI;QAErF;QAEA,UAAU,IAAI,CAAC,IAAI;IACvB;IAEA,WAAW,YAAY;QACnB,OAAO;IACX;IAEA,WAAW,UAAU;QACjB,OAAO;IACX;IAEA,WAAW,MAAM;QACb,OAAO;IACX;IAEA,WAAW,SAAS;QAChB,OAAO,GAAA,sBAAM;IACjB;IAEA,WAAW,QAAQ;QACf,OAAO;IACX;IAEA,WAAW,SAAS;QAChB,OAAO,GAAA,sBAAM;IACjB;IAEA,WAAW,UAAU;QACjB,OAAO,GAAA,uBAAO;IAClB;IAEA,WAAW,YAAY;QACnB,OAAO,GAAA,+BAAS;IACpB;IAEA,WAAW,SAAS;QAChB,OAAO,CAAA,GAAA,+BAAS,AAAD,EAAE,MAAM;IAC3B;IAEA,WAAW,OAAO;QACd,OAAO,CAAA,GAAA,wBAAQ,AAAD,EAAE,IAAI;IACxB;IAEA,WAAW,SAAS;QAChB,OAAO;YACH,IAAI;YACJ,WAAW;YACX,KAAK;YACL,QAAQ;YACR,MAAM;YACN,OAAO;YACP,QAAQ;YACR,QAAQ;YACR,OAAO;YACP,UAAU;YACV,UAAU;YACV,UAAU;YACV,MAAM;YACN,MAAM;YACN,cAAc;YACd,aAAa;YACb,YAAY;YACZ,SAAS;YACT,QAAQ;YACR,KAAK;YACL,OAAO;YACP,UAAU;YACV,YAAY;YACZ,eAAe;YACf,gBAAgB;YAChB,iBAAiB;YACjB,QAAQ;YACR,aAAa;YACb,MAAM;YACN,SAAS;YACT,aAAa;YACb,cAAc;YACd,iBAAiB;YACjB,SAAS;YACT,OAAO;YACP,QAAQ,EAAE;YACV,aAAa,EAAE;YACf,UAAU,EAAE;YACZ,UAAU,EAAE;YACZ,SAAS,EAAE;YACX,WAAW,EAAE;YACb,SAAS,EAAE;YACX,YAAY;gBACR,KAAK;gBACL,QAAQ;gBACR,QAAQ;gBACR,OAAO;gBACP,QAAQ;gBACR,OAAO;YACX;YACA,UAAU;gBACN,KAAK;gBACL,MAAM;gBACN,OAAO,CAAC;gBACR,MAAM;gBACN,QAAQ;gBACR,UAAU;gBACV,WAAW,CAAC,MAAQ;YACxB;YACA,eAAe;gBACX,UAAU;gBACV,SAAS,OAAM,QAAQ,GAAG,SAAS;YACvC;YACA,MAAM,CAAC;YACP,OAAO,CAAC;YACR,QAAQ,CAAC;YACT,YAAY,CAAC;YACb,MAAM,WAAW,SAAS;QAC9B;IACJ;IAEA,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK;IAC5B;IAEA,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK;IAC9B;IAEA,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM;IAC/B;IAEA,QAAQ,aAAa,IAAI,EAAE;QACvB,IAAI,CAAC,MAAM,CAAC,OAAO;QACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QACtB,UAAU,MAAM,CAAC,UAAU,OAAO,CAAC,IAAI,GAAG;QAC1C,IAAI,CAAC,SAAS,GAAG;QACjB,IAAI,CAAC,IAAI,CAAC;IACd;AACJ;kBAzLqB;AA2LrB,UAAU,KAAK,GAAG,CAAA,GAAA,yBAAK,AAAD;AACtB,UAAU,KAAK,GAAG;AAClB,UAAU,WAAW,GAAG;AACxB,UAAU,WAAW,GAAG;AACxB,UAAU,aAAa,GAAG;AAC1B,UAAU,kBAAkB,GAAG;AAC/B,UAAU,mBAAmB,GAAG;AAChC,UAAU,WAAW,GAAG;AACxB,UAAU,WAAW,GAAG;AACxB,UAAU,UAAU,GAAG;AACvB,UAAU,iBAAiB,GAAG;AAC9B,UAAU,iBAAiB,GAAG;AAC9B,UAAU,qBAAqB,GAAG;AAClC,UAAU,kBAAkB,GAAG;AAC/B,UAAU,oBAAoB,GAAG;AACjC,UAAU,iBAAiB,GAAG;AAC9B,UAAU,YAAY,GAAG;AACzB,UAAU,kBAAkB,GAAG;AAC/B,UAAU,mBAAmB,GAAG;AAChC,UAAU,iBAAiB,GAAG;AAC9B,UAAU,qBAAqB,GAAG;AAClC,UAAU,cAAc,GAAG;AAC3B,UAAU,kBAAkB,GAAG;AAC/B,UAAU,iBAAiB,GAAG;AAC9B,UAAU,gBAAgB,GAAG;AAC7B,UAAU,WAAW,GAAG;AACxB,UAAU,SAAS,GAAG;AACtB,UAAU,aAAa,GAAG;IAAC;IAAK;IAAM;IAAG;IAAM;IAAK;CAAE;AACtD,UAAU,YAAY,GAAG;IAAC;IAAW;IAAO;CAAO;AACnD,UAAU,IAAI,GAAG;IAAC;IAAU;IAAc;CAAW;AACrD,UAAU,sBAAsB,GAAG;AACnC,UAAU,WAAW,GAAG;AACxB,UAAU,OAAO,GAAG;AAEpB,IAAI,OAAM,SAAS,EAAE;IACjB,MAAM,CAAC,YAAY,GAAG;IAEtB,OAAM,YAAY,CAAC,mBAAmB,CAAA,GAAA,yBAAK,AAAD;IAE1C,WAAW;QACP,IAAI,UAAU,WAAW,EACrB,QAAQ,GAAG,CACP,CAAC,gBAAgB,EAAE,UAAU,OAAO,CAAC,yBAAyB,CAAC,EAC/D,oCACA,oCACA;IAGZ,GAAG;AACP;;;ACtQA,OAAO,OAAO,GAAG;;;ACAjB,CAAC,SAAS,CAAC,EAAC,CAAC;IAAuD,OAAO,OAAO,GAAC;AAAyE,EAAE,IAAI,EAAC;IAAW;IAAa,SAAS,EAAE,CAAC;QAAE,OAAM,AAAC,CAAA,IAAE,cAAY,OAAO,UAAQ,YAAU,OAAO,OAAO,QAAQ,GAAC,SAAS,CAAC;YAAE,OAAO,OAAO;QAAC,IAAE,SAAS,CAAC;YAAE,OAAO,KAAG,cAAY,OAAO,UAAQ,EAAE,WAAW,KAAG,UAAQ,MAAI,OAAO,SAAS,GAAC,WAAS,OAAO;QAAC,CAAA,EAAG;IAAE;IAAC,IAAI,IAAE,OAAO,SAAS,CAAC,QAAQ,EAAC,IAAE,SAAS,CAAC;QAAE,IAAG,KAAK,MAAI,GAAE,OAAM;QAAY,IAAG,SAAO,GAAE,OAAM;QAAO,IAAI,IAAE,EAAE;QAAG,IAAG,cAAY,GAAE,OAAM;QAAU,IAAG,aAAW,GAAE,OAAM;QAAS,IAAG,aAAW,GAAE,OAAM;QAAS,IAAG,aAAW,GAAE,OAAM;QAAS,IAAG,eAAa,GAAE,OAAO,SAAS,CAAC;YAAE,OAAM,wBAAsB,EAAE;QAAE,EAAE,KAAG,sBAAoB;QAAW,IAAG,SAAS,CAAC;YAAE,OAAO,MAAM,OAAO,GAAC,MAAM,OAAO,CAAC,KAAG,aAAa;QAAK,EAAE,IAAG,OAAM;QAAQ,IAAG,SAAS,CAAC;YAAE,IAAG,EAAE,WAAW,IAAE,cAAY,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC;YAAG,OAAM,CAAC;QAAC,EAAE,IAAG,OAAM;QAAS,IAAG,SAAS,CAAC;YAAE,IAAG;gBAAC,IAAG,YAAU,OAAO,EAAE,MAAM,IAAE,cAAY,OAAO,EAAE,MAAM,EAAC,OAAM,CAAC;YAAC,EAAC,OAAM,GAAE;gBAAC,IAAG,OAAK,EAAE,OAAO,CAAC,OAAO,CAAC,WAAU,OAAM,CAAC;YAAC;YAAC,OAAM,CAAC;QAAC,EAAE,IAAG,OAAM;QAAY,IAAG,SAAS,CAAC;YAAE,OAAO,aAAa,QAAM,cAAY,OAAO,EAAE,YAAY,IAAE,cAAY,OAAO,EAAE,OAAO,IAAE,cAAY,OAAO,EAAE,OAAO;QAAA,EAAE,IAAG,OAAM;QAAO,IAAG,SAAS,CAAC;YAAE,OAAO,aAAa,SAAO,YAAU,OAAO,EAAE,OAAO,IAAE,EAAE,WAAW,IAAE,YAAU,OAAO,EAAE,WAAW,CAAC,eAAe;QAAA,EAAE,IAAG,OAAM;QAAQ,IAAG,SAAS,CAAC;YAAE,OAAO,aAAa,UAAQ,YAAU,OAAO,EAAE,KAAK,IAAE,aAAW,OAAO,EAAE,UAAU,IAAE,aAAW,OAAO,EAAE,SAAS,IAAE,aAAW,OAAO,EAAE,MAAM;QAAA,EAAE,IAAG,OAAM;QAAS,OAAO,EAAE;YAAI,KAAI;gBAAS,OAAM;YAAS,KAAI;gBAAU,OAAM;YAAU,KAAI;gBAAU,OAAM;YAAU,KAAI;gBAAU,OAAM;YAAU,KAAI;gBAAM,OAAM;YAAM,KAAI;gBAAM,OAAM;YAAM,KAAI;gBAAY,OAAM;YAAY,KAAI;gBAAa,OAAM;YAAa,KAAI;gBAAoB,OAAM;YAAoB,KAAI;gBAAa,OAAM;YAAa,KAAI;gBAAc,OAAM;YAAc,KAAI;gBAAa,OAAM;YAAa,KAAI;gBAAc,OAAM;YAAc,KAAI;gBAAe,OAAM;YAAe,KAAI;gBAAe,OAAM;QAAc;QAAC,IAAG,SAAS,CAAC;YAAE,OAAM,cAAY,OAAO,EAAE,KAAK,IAAE,cAAY,OAAO,EAAE,MAAM,IAAE,cAAY,OAAO,EAAE,IAAI;QAAA,EAAE,IAAG,OAAM;QAAY,OAAO,IAAE,EAAE,IAAI,CAAC;YAAI,KAAI;gBAAkB,OAAM;YAAS,KAAI;gBAAwB,OAAM;YAAc,KAAI;gBAAwB,OAAM;YAAc,KAAI;gBAA2B,OAAM;YAAiB,KAAI;gBAA0B,OAAM;QAAe;QAAC,OAAO,EAAE,KAAK,CAAC,GAAE,IAAI,WAAW,GAAG,OAAO,CAAC,OAAM;IAAG;IAAE,SAAS,EAAE,CAAC;QAAE,OAAO,EAAE,WAAW,GAAC,EAAE,WAAW,CAAC,IAAI,GAAC;IAAI;IAAC,SAAS,EAAE,CAAC,EAAC,CAAC;QAAE,IAAI,IAAE,IAAE,UAAU,MAAM,IAAE,KAAK,MAAI,SAAS,CAAC,EAAE,GAAC,SAAS,CAAC,EAAE,GAAC;YAAC;SAAS;QAAC,OAAO,EAAE,GAAE,GAAE,IAAG,EAAE,GAAE,GAAE,IAAG,SAAS,CAAC,EAAC,CAAC,EAAC,CAAC;YAAE,IAAI,IAAE,EAAE,IAAG,IAAE,EAAE;YAAG,IAAG,aAAW,GAAE;gBAAC,IAAG,aAAW,GAAE,MAAM,IAAI,MAAM,kBAAkB,MAAM,CAAC,EAAE,IAAI,CAAC,MAAK,sCAAsC,MAAM,CAAC,GAAE;gBAAM,OAAO,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;oBAAE,IAAI,IAAE,CAAC,CAAC,EAAE,EAAC,IAAE,CAAC,CAAC,EAAE,EAAC,IAAE,EAAE,KAAK;oBAAG,EAAE,IAAI,CAAC,IAAG,EAAE,GAAE,GAAE,IAAG,EAAE,GAAE,GAAE,IAAG,EAAE,GAAE,GAAE;gBAAE;YAAE;YAAC,IAAG,YAAU,GAAE;gBAAC,IAAG,YAAU,GAAE,MAAM,IAAI,MAAM,kBAAkB,MAAM,CAAC,EAAE,IAAI,CAAC,MAAK,qCAAqC,MAAM,CAAC,GAAE;gBAAM,EAAE,OAAO,CAAC,SAAS,CAAC,EAAC,CAAC;oBAAE,IAAI,IAAE,CAAC,CAAC,EAAE,EAAC,IAAE,CAAC,CAAC,EAAE,IAAE,CAAC,CAAC,EAAE,EAAC,IAAE,EAAE,KAAK;oBAAG,EAAE,IAAI,CAAC,IAAG,EAAE,GAAE,GAAE,IAAG,EAAE,GAAE,GAAE,IAAG,EAAE,GAAE,GAAE;gBAAE;YAAE;QAAC,EAAE,GAAE,GAAE,IAAG;IAAC;IAAC,SAAS,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC;QAAE,IAAG,aAAW,EAAE,IAAG;YAAC,IAAI,IAAE,EAAE;YAAG,IAAG,QAAM,CAAC,CAAC,EAAE,IAAG,CAAA,IAAE,EAAE,KAAK,CAAC,KAAG,YAAW,GAAG,CAAE,CAAA,KAAG,EAAE,OAAO,CAAC,OAAK,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC;gBAAE,OAAO,EAAE,WAAW,GAAG,IAAI;YAAE,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC;gBAAE,OAAO,MAAI;YAAC,KAAG,EAAE,WAAW,GAAG,IAAI,OAAK,CAAA,GAAG,MAAM,IAAI,MAAM,kBAAkB,MAAM,CAAC,EAAE,IAAI,CAAC,MAAK,eAAe,MAAM,CAAC,GAAE,qBAAqB,MAAM,CAAC,GAAE;QAAK;IAAC;IAAC,SAAS,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC;QAAE,IAAG,eAAa,EAAE,IAAG;YAAC,IAAI,IAAE,EAAE,GAAE,EAAE,IAAG;YAAG,IAAG,CAAC,MAAI,GAAE;gBAAC,IAAI,IAAE,EAAE;gBAAG,MAAK,aAAW,IAAE,IAAI,MAAM,KAAG,YAAU,IAAE,IAAE,IAAI,MAAM,sCAAsC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAK,8CAA8C,MAAM,CAAC,GAAE;YAAK;QAAC;IAAC;IAAC,OAAO,EAAE,MAAM,GAAC,GAAE;AAAC;;;;;ACA70H,MAAM;IACjB,GAAG,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE;QACd,MAAM,IAAI,IAAI,CAAC,CAAC,IAAK,CAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAA,CAAC,CAAC,KAAK,IAAK,CAAA,CAAC,CAAC,KAAK,GAAG,EAAE,AAAD,CAAC,EAAG,IAAI,CAAC;YAAE;YAAI;QAAI;QAC3C,OAAO,IAAI;IACf;IAEA,KAAK,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE;QAChB,MAAM,OAAO,IAAI;QACjB,SAAS,SAAS,GAAG,IAAI;YACrB,KAAK,GAAG,CAAC,MAAM;YACf,GAAG,KAAK,CAAC,KAAK;QAClB;QACA,SAAS,CAAC,GAAG;QACb,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,UAAU;IACnC;IAEA,KAAK,IAAI,EAAE,GAAG,IAAI,EAAE;QAChB,MAAM,SAAS,AAAC,CAAA,AAAC,CAAA,IAAI,CAAC,CAAC,IAAK,CAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA,CAAC,CAAE,CAAC,KAAK,IAAI,EAAE,AAAD,EAAG,KAAK;QAC5D,IAAK,IAAI,IAAI,GAAG,IAAI,OAAO,MAAM,EAAE,KAAK,EACpC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE;QAEtC,OAAO,IAAI;IACf;IAEA,IAAI,IAAI,EAAE,QAAQ,EAAE;QAChB,MAAM,IAAI,IAAI,CAAC,CAAC,IAAK,CAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QAC/B,MAAM,OAAO,CAAC,CAAC,KAAK;QACpB,MAAM,aAAa,EAAE;QACrB,IAAI,QAAQ,UAAU;YAClB,IAAK,IAAI,IAAI,GAAG,MAAM,KAAK,MAAM,EAAE,IAAI,KAAK,KAAK,EAC7C,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,YAAY,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU,WAAW,IAAI,CAAC,IAAI,CAAC,EAAE;QAEzF;QACA,IAAI,WAAW,MAAM,EACjB,CAAC,CAAC,KAAK,GAAG;aAEV,OAAO,CAAC,CAAC,KAAK;QAElB,OAAO,IAAI;IACf;AACJ;kBAzCqB;;;ACArB,QAAQ,cAAc,GAAG,SAAU,CAAC;IAClC,OAAO,KAAK,EAAE,UAAU,GAAG,IAAI;QAAC,SAAS;IAAC;AAC5C;AAEA,QAAQ,iBAAiB,GAAG,SAAU,CAAC;IACrC,OAAO,cAAc,CAAC,GAAG,cAAc;QAAC,OAAO;IAAI;AACrD;AAEA,QAAQ,SAAS,GAAG,SAAU,MAAM,EAAE,IAAI;IACxC,OAAO,IAAI,CAAC,QAAQ,OAAO,CAAC,SAAU,GAAG;QACvC,IACE,QAAQ,aACR,QAAQ,gBACR,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,MAE3C;QAGF,OAAO,cAAc,CAAC,MAAM,KAAK;YAC/B,YAAY;YACZ,KAAK;gBACH,OAAO,MAAM,CAAC,IAAI;YACpB;QACF;IACF;IAEA,OAAO;AACT;AAEA,QAAQ,MAAM,GAAG,SAAU,IAAI,EAAE,QAAQ,EAAE,GAAG;IAC5C,OAAO,cAAc,CAAC,MAAM,UAAU;QACpC,YAAY;QACZ,KAAK;IACP;AACF;;;;;AClCA;AAAA,wBAAA;AACA;AAAA,wBAAA;AACA;AAAA,wBAAA;AACA;AAAA,wBAAA;AACA;AAAA,wBAAA;AACA;AAAA,wBAAA;AACA;AAAA,wBAAA;AACA;AAAA,wBAAA;;;;;ACLA,2CAAgB;AAIhB,8CAAgB;AAIhB,8CAAgB;AAIhB,iDAAgB;AAIhB,8CAAgB;AAIhB,4CAAgB;AAShB,4CAAgB;AAIhB,8CAAgB;AAKhB,+CAAgB;AAOhB,8CAAgB;AAKhB,8CAAgB;AAIhB,kDAAgB;AAKhB,6CAAgB;AAOhB,kDAAgB;AAShB,sDAAgB;AAIhB,oDAAgB;AAKhB,mDAAgB;AAIhB,6CAAgB;AAQhB,kDAAgB;AAgBhB,kDAAgB;AAMhB,6CAAgB;AAIhB,6CAAgB;AA5HhB;AAEO,SAAS,MAAM,QAAQ,EAAE,SAAS,QAAQ;IAC7C,OAAO,OAAO,aAAa,CAAC;AAChC;AAEO,SAAS,SAAS,QAAQ,EAAE,SAAS,QAAQ;IAChD,OAAO,MAAM,IAAI,CAAC,OAAO,gBAAgB,CAAC;AAC9C;AAEO,SAAS,SAAS,MAAM,EAAE,SAAS;IACtC,OAAO,OAAO,SAAS,CAAC,GAAG,CAAC;AAChC;AAEO,SAAS,YAAY,MAAM,EAAE,SAAS;IACzC,OAAO,OAAO,SAAS,CAAC,MAAM,CAAC;AACnC;AAEO,SAAS,SAAS,MAAM,EAAE,SAAS;IACtC,OAAO,OAAO,SAAS,CAAC,QAAQ,CAAC;AACrC;AAEO,SAAS,OAAO,MAAM,EAAE,KAAK;IAChC,IAAI,iBAAiB,SACjB,OAAO,WAAW,CAAC;SAEnB,OAAO,kBAAkB,CAAC,aAAa,OAAO;IAElD,OAAO,OAAO,gBAAgB,IAAI,OAAO,SAAS;AACtD;AAEO,SAAS,OAAO,KAAK;IACxB,OAAO,MAAM,UAAU,CAAC,WAAW,CAAC;AACxC;AAEO,SAAS,SAAS,OAAO,EAAE,GAAG,EAAE,KAAK;IACxC,QAAQ,KAAK,CAAC,IAAI,GAAG;IACrB,OAAO;AACX;AAEO,SAAS,UAAU,OAAO,EAAE,MAAM;IACrC,IAAK,MAAM,OAAO,OACd,SAAS,SAAS,KAAK,MAAM,CAAC,IAAI;IAEtC,OAAO;AACX;AAEO,SAAS,SAAS,OAAO,EAAE,GAAG,EAAE,aAAa,IAAI;IACpD,MAAM,QAAQ,OAAO,gBAAgB,CAAC,SAAS,MAAM,gBAAgB,CAAC;IACtE,OAAO,aAAa,WAAW,SAAS;AAC5C;AAEO,SAAS,SAAS,MAAM;IAC3B,OAAO,MAAM,IAAI,CAAC,OAAO,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,OAAS,SAAS;AAC/E;AAEO,SAAS,aAAa,MAAM,EAAE,SAAS;IAC1C,SAAS,QAAQ,OAAO,CAAC,CAAC,OAAS,YAAY,MAAM;IACrD,SAAS,QAAQ;AACrB;AAEO,SAAS,QAAQ,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK;IAC5C,IAAI,GAAA,uBAAQ,EAAE;IACd,OAAO,YAAY,CAAC,cAAc;IAClC,SAAS,QAAQ;IACjB,SAAS,QAAQ,CAAC,MAAM,EAAE,KAAK;AACnC;AAEO,SAAS,aAAa,EAAE,EAAE,SAAS,CAAC;IACvC,MAAM,OAAO,GAAG,qBAAqB;IACrC,MAAM,eAAe,OAAO,WAAW,IAAI,SAAS,eAAe,CAAC,YAAY;IAChF,MAAM,cAAc,OAAO,UAAU,IAAI,SAAS,eAAe,CAAC,WAAW;IAC7E,MAAM,aAAa,KAAK,GAAG,GAAG,UAAU,gBAAgB,KAAK,GAAG,GAAG,KAAK,MAAM,GAAG,UAAU;IAC3F,MAAM,YAAY,KAAK,IAAI,GAAG,UAAU,cAAc,UAAU,KAAK,IAAI,GAAG,KAAK,KAAK,GAAG,UAAU;IACnG,OAAO,cAAc;AACzB;AAEO,SAAS,iBAAiB,KAAK,EAAE,MAAM;IAC1C,OAAO,MAAM,YAAY,IAAI,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU;AACxE;AAEO,SAAS,eAAe,QAAQ,EAAE,QAAQ;IAC7C,SAAS,UAAU,CAAC,YAAY,CAAC,UAAU;IAC3C,OAAO;AACX;AAEO,SAAS,cAAc,GAAG;IAC7B,OAAO,SAAS,aAAa,CAAC;AAClC;AAEO,SAAS,QAAQ,MAAM,EAAE,EAAE,OAAO,EAAE;IACvC,MAAM,OAAO,cAAc;IAC3B,SAAS,MAAM;IACf,SAAS,MAAM,CAAC,SAAS,EAAE,KAAK;IAChC,OAAO,MAAM;IACb,OAAO;AACX;AAEO,SAAS,aAAa,EAAE,EAAE,KAAK;IAClC,IAAI,SAAS,SAAS,cAAc,CAAC;IACrC,IAAI,CAAC,QAAQ;QACT,SAAS,SAAS,aAAa,CAAC;QAChC,OAAO,EAAE,GAAG;QACZ,IAAI,SAAS,UAAU,KAAK,WACxB,SAAS,gBAAgB,CAAC,oBAAoB;YAC1C,SAAS,IAAI,CAAC,WAAW,CAAC;QAC9B;aAEA,AAAC,CAAA,SAAS,IAAI,IAAI,SAAS,eAAe,AAAD,EAAG,WAAW,CAAC;IAEhE;IACA,OAAO,WAAW,GAAG;AACzB;AAEO,SAAS;IACZ,MAAM,MAAM,SAAS,aAAa,CAAC;IACnC,IAAI,KAAK,CAAC,OAAO,GAAG;IACpB,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK;AACjC;AAEO,SAAS,QAAQ,EAAE;IACtB,OAAO,GAAG,qBAAqB;AACnC;AAEO,SAAS,QAAQ,GAAG,EAAE,KAAK;IAC9B,OAAO,IAAI,QAAQ,CAAC,SAAS;QACzB,MAAM,MAAM,IAAI;QAEhB,IAAI,MAAM,GAAG;YACT,IAAI,CAAC,SAAS,UAAU,GACpB,QAAQ;iBACL;gBACH,MAAM,SAAS,SAAS,aAAa,CAAC;gBACtC,MAAM,MAAM,OAAO,UAAU,CAAC;gBAC9B,OAAO,KAAK,GAAG,IAAI,KAAK,GAAG;gBAC3B,OAAO,MAAM,GAAG,IAAI,MAAM,GAAG;gBAC7B,IAAI,SAAS,CAAC,KAAK,GAAG,GAAG,OAAO,KAAK,EAAE,OAAO,MAAM;gBAEpD,OAAO,MAAM,CAAC,CAAC;oBACX,MAAM,UAAU,IAAI,eAAe,CAAC;oBACpC,MAAM,YAAY,IAAI;oBAEtB,UAAU,MAAM,GAAG;wBACf,QAAQ;oBACZ;oBAEA,UAAU,OAAO,GAAG;wBAChB,IAAI,eAAe,CAAC;wBACpB,OAAO,IAAI,MAAM,CAAC,mBAAmB,EAAE,KAAK;oBAChD;oBAEA,UAAU,GAAG,GAAG;gBACpB;YACJ;QACJ;QAEA,IAAI,OAAO,GAAG;YACV,OAAO,IAAI,MAAM,CAAC,mBAAmB,EAAE,KAAK;QAChD;QAEA,IAAI,GAAG,GAAG;IACd;AACJ;;;;;+CClKa;8CACA;8CACA;0CACA;+CACA;2CACA;6CACA;8CACA;+CACA;AARN,MAAM,YAAY,OAAO,cAAc,cAAc,UAAU,SAAS,GAAG;AAC3E,MAAM,WAAW,iCAAiC,IAAI,CAAC;AACvD,MAAM,WAAW,kBAAkB,IAAI,CAAC;AACxC,MAAM,OAAO,gBAAgB,IAAI,CAAC;AAClC,MAAM,YAAY,WAAW,IAAI,CAAC;AAClC,MAAM,QAAQ,oBAAoB,IAAI,CAAC,cAAc,CAAC,OAAO,QAAQ;AACrE,MAAM,UAAU,SAAU,UAAU,QAAQ,CAAC,gBAAgB,UAAU,cAAc,IAAI;AACzF,MAAM,WAAW,iEAAiE,IAAI,CAAC,cAAc;AACrG,MAAM,YAAY,OAAO,WAAW;;;;;ACR3C,oDAAa;AAUb,iDAAgB;AAVT,MAAM,uBAAuB;IAChC,YAAY,OAAO,EAAE,OAAO,CAAE;QAC1B,KAAK,CAAC;QACN,IAAI,OAAO,MAAM,iBAAiB,KAAK,YACnC,MAAM,iBAAiB,CAAC,IAAI,EAAE,WAAW,IAAI,CAAC,WAAW;QAE7D,IAAI,CAAC,IAAI,GAAG;IAChB;AACJ;AAEO,SAAS,YAAY,SAAS,EAAE,GAAG;IACtC,IAAI,CAAC,WACD,MAAM,IAAI,eAAe;IAE7B,OAAO;AACX;;;;;ACFA,8CAAgB;AAahB,+CAAgB;AAQhB,8CAAgB;AAlChB,SAAS,OAAO,GAAG;IACf,OAAO,IAAI,OAAO,CAAC,8BAA8B,CAAC,GAAG,IAAI;QACrD,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG;QACrB,IAAI,GAAG,MAAM,KAAK,GACd,KAAK,KAAK;QAEd,IAAI,GAAG,MAAM,KAAK,GACd,KAAK,KAAK;QAEd,OAAO,GAAG,GAAG,CAAC,EAAE,IAAI;IACxB;AACJ;AAEO,SAAS,SAAS,OAAO;IAC5B,OAAO,kBAAkB,MAAM,CAC3B,OAAO,SACF,OAAO,CAAC,kBAAkB,SAC1B,OAAO,CAAC,mBAAmB,QAC3B,OAAO,CAAC,gBAAgB,QACxB,OAAO,CAAC,kBAAkB,SAC1B,OAAO,CAAC,8BAA8B,SACtC,OAAO,CAAC,eAAe,IACvB,MAAM,CAAC;AAEpB;AAEO,SAAS,UAAU,OAAO;IAC7B,OAAO,IAAI,eAAe,CACtB,IAAI,KAAK;QAAC;KAAQ,EAAE;QAChB,MAAM;IACV;AAER;AAEO,SAAS,SAAS,GAAG;IACxB,MAAM,QAAQ,IAAI,OACd,qHAOA;IAGJ,SAAS,QAAQ,OAAO,EAAE;QACtB,OAAO,KACF,KAAK,CAAC,QACN,GAAG,CAAC,CAAC,MAAM,OAAO;YACf,IAAI,UAAU,IAAI,MAAM,GAAG,GAAG;gBAC1B,IAAI,KAAK,MAAM,KAAK,GAChB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;gBAGvB,IAAI,KAAK,MAAM,KAAK,GAChB,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAE1B,OAAO,IAAI,KAAK,MAAM,KAAK,GACvB,OAAO,AAAC,CAAA,UAAU,IAAI,MAAM,IAAG,IAAK;YAGxC,OAAO,UAAU,IAAI,OAAO,UAAU,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM;QAClF,GACC,IAAI,CAAC;IACd;IAEA,OACI,eAGA,IACK,KAAK,CAAC,SACN,GAAG,CAAC,CAAC;QACF,MAAM,IAAI,KAAK,KAAK,CAAC;QACrB,IAAI,CAAC,GAAG,OAAO;QACf,OAAO;YACH,OAAO,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI;YACxB,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI;YACtB,MAAM,CAAC,CAAC,EAAE,CACL,OAAO,CAAC,eAAe,IACvB,OAAO,CAAC,UAAU,MAClB,IAAI,GACJ,KAAK,CAAC,SACN,GAAG,CAAC,CAAC,OAAS,KAAK,IAAI,IACvB,IAAI,CAAC;QACd;IACJ,GACC,MAAM,CAAC,CAAC,OAAS,MACjB,GAAG,CAAC,CAAC,MAAM;QACR,IAAI,MACA,OAAO,QAAQ,IAAI,OAAO,GAAG,KAAK,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,EAAE,GAAG,OAAO,GAAG,KAAK,IAAI,EAAE;QAErF,OAAO;IACX,GACC,MAAM,CAAC,CAAC,OAAS,KAAK,IAAI,IAC1B,IAAI,CAAC;AAElB;;;;;AClGA,4CAAgB;AAYhB,8CAAgB;AAZT,SAAS,OAAO,GAAG;IACtB,IAAI,IAAI,QAAQ,CAAC,MACb,OAAO,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;IAGnC,IAAI,IAAI,QAAQ,CAAC,MACb,OAAO,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;IAGnC,OAAO,IAAI,IAAI,GAAG,WAAW,GAAG,KAAK,CAAC,KAAK,GAAG;AAClD;AAEO,SAAS,SAAS,GAAG,EAAE,IAAI;IAC9B,MAAM,QAAQ,SAAS,aAAa,CAAC;IACrC,MAAM,KAAK,CAAC,OAAO,GAAG;IACtB,MAAM,IAAI,GAAG;IACb,MAAM,QAAQ,GAAG;IACjB,SAAS,IAAI,CAAC,WAAW,CAAC;IAC1B,MAAM,KAAK;IACX,SAAS,IAAI,CAAC,WAAW,CAAC;AAC9B;;;;;yCCpBa;AAGb,yCAAgB;AAIhB,yCAAgB;AAIhB,+CAAgB;AAXT,MAAM,MAAM,OAAO,cAAc;AAExC,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,SAAS;AACpC,SAAS,IAAI,GAAG,EAAE,IAAI;IACzB,OAAO,eAAe,IAAI,CAAC,KAAK;AACpC;AAEO,SAAS,IAAI,GAAG,EAAE,IAAI;IACzB,OAAO,OAAO,wBAAwB,CAAC,KAAK;AAChD;AAEO,SAAS,UAAU,GAAG,OAAO;IAChC,MAAM,WAAW,CAAC,OAAS,QAAQ,OAAO,SAAS,YAAY,CAAC,MAAM,OAAO,CAAC;IAC9E,OAAO,QAAQ,MAAM,CAAC,CAAC,MAAM;QACzB,OAAO,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC;YACtB,MAAM,OAAO,IAAI,CAAC,IAAI;YACtB,MAAM,OAAO,GAAG,CAAC,IAAI;YACrB,IAAI,MAAM,OAAO,CAAC,SAAS,MAAM,OAAO,CAAC,OACrC,IAAI,CAAC,IAAI,GAAG,KAAK,MAAM,IAAI;iBACxB,IAAI,SAAS,SAAS,SAAS,OAClC,IAAI,CAAC,IAAI,GAAG,UAAU,MAAM;iBAE5B,IAAI,CAAC,IAAI,GAAG;QAEpB;QACA,OAAO;IACX,GAAG,CAAC;AACR;;;;;AC3BA,2CAAgB;AAIhB,8CAAgB;AAchB,8CAAgB;AAlBT,SAAS,MAAM,KAAK,CAAC;IACxB,OAAO,IAAI,QAAQ,CAAC,UAAY,WAAW,SAAS;AACxD;AAEO,SAAS,SAAS,IAAI,EAAE,QAAQ;IACnC,IAAI;IAEJ,OAAO,SAAU,GAAG,IAAI;QACpB,MAAM,SAAS;YACX,UAAU;YACV,OAAO,KAAK,KAAK,CAAC,IAAI,EAAE;QAC5B;QAEA,aAAa;QACb,UAAU,WAAW,QAAQ;IACjC;AACJ;AAEO,SAAS,SAAS,IAAI,EAAE,QAAQ;IACnC,IAAI,aAAa;IAEjB,OAAO,SAAU,GAAG,IAAI;QACpB,IAAI,CAAC,YAAY;YACb,KAAK,KAAK,CAAC,IAAI,EAAE;YACjB,aAAa;YAEb,WAAW;gBACP,aAAa;YACjB,GAAG;QACP;IACJ;AACJ;;;;;AC/BA,2CAAgB;AAIhB,gDAAgB;AAIhB,kDAAgB;AAShB,4CAAgB;AAchB,8CAAgB;AA/BT,SAAS,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC;IAC3B,OAAO,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,GAAG,KAAK,KAAK,GAAG,CAAC,GAAG;AAC/D;AAEO,SAAS,WAAW,GAAG;IAC1B,OAAO,IAAI,MAAM,CAAC,GAAG,WAAW,KAAK,IAAI,KAAK,CAAC;AACnD;AAEO,SAAS,aAAa,MAAM;IAC/B,IAAI,CAAC,QAAQ,OAAO;IACpB,MAAM,OAAO,CAAC,MAAS,MAAM,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO;IACrD,MAAM,OAAO,KAAK,KAAK,CAAC,SAAS;IACjC,MAAM,MAAM,KAAK,KAAK,CAAC,AAAC,CAAA,SAAS,OAAO,IAAG,IAAK;IAChD,MAAM,MAAM,KAAK,KAAK,CAAC,SAAS,OAAO,OAAO,MAAM;IACpD,OAAO,AAAC,CAAA,OAAO,IAAI;QAAC;QAAM;QAAK;KAAI,GAAG;QAAC;QAAK;KAAI,AAAD,EAAG,GAAG,CAAC,MAAM,IAAI,CAAC;AACrE;AAEO,SAAS,OAAO,GAAG;IACtB,OAAO,IAAI,OAAO,CACd,YACA,CAAC,MACG,AAAC,CAAA;YACG,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;QACT,CAAA,CAAE,CAAC,IAAI,IAAI;AAEvB;AAEO,SAAS,SAAS,GAAG;IACxB,MAAM,MAAM;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,UAAU;IACd;IACA,MAAM,MAAM,IAAI,OAAO,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;IAC1D,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,MAAQ,GAAG,CAAC,IAAI,IAAI;AACjD;;;;;qDCzBa;AAhBb;AAEA,MAAM,IAAI;AACV,MAAM,IAAI;AACV,MAAM,IAAI;AACV,MAAM,IAAI;AACV,MAAM,IAAI;AACV,MAAM,IAAI;AAEV,SAAS,aAAa,KAAK,EAAE,IAAI,EAAE,KAAK;IACpC,OAAO,CAAA,GAAA,kBAAW,AAAD,EACb,SAAS,KAAK,SAAS,KAAK,iBAAiB,SAC7C,GAAG,MAAM,IAAI,CAAC,KAAK,UAAU,EAAE,EAAE,mBAAmB,CAAC;AAE7D;AAEO,MAAM,kBAAkB;IAC3B,MAAM;IACN,SAAS,CAAC,CAAC,EAAE,GAAG;IAChB,MAAM,CAAC,CAAC,EAAE,GAAG;IACb,OAAO,CAAC,CAAC,EAAE,GAAG;IACd,OAAO,CAAC,CAAC,EAAE,GAAG;IACd,OAAO,CAAC,CAAC,EAAE,GAAG;IACd,SAAS,CAAC,CAAC,EAAE,GAAG;IAChB,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG;IACrB,OAAO,CAAC,CAAC,EAAE,GAAG;IACd,UAAU,CAAC,CAAC,EAAE,GAAG;IACjB,UAAU,CAAC,CAAC,EAAE,GAAG;IACjB,QAAQ,CAAC,CAAC,EAAE,GAAG;IACf,UAAU,CAAC,CAAC,EAAE,GAAG;IACjB,OAAO,CAAC,CAAC,EAAE,GAAG;IACd,SAAS,CAAC,CAAC,EAAE,GAAG;IAChB,UAAU,CAAC,CAAC,EAAE,GAAG;AACrB;kBAEe;IACX,IAAI;IACJ,WAAW;IACX,KAAK;IACL,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,UAAU;IACV,UAAU;IACV,UAAU;IACV,MAAM;IACN,MAAM;IACN,cAAc;IACd,aAAa;IACb,YAAY;IACZ,SAAS;IACT,QAAQ;IACR,KAAK;IACL,OAAO;IACP,UAAU;IACV,YAAY;IACZ,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,QAAQ;IACR,aAAa;IACb,MAAM;IACN,SAAS;IACT,aAAa;IACb,cAAc;IACd,iBAAiB;IACjB,SAAS;IACT,OAAO,CAAC,CAAC,EAAE,GAAG;IACd,SAAS;QAAC;KAAE;IACZ,QAAQ;QAAC;KAAgB;IACzB,aAAa;QAAC;KAAgB;IAC9B,UAAU;QAAC;KAAgB;IAC3B,UAAU;QACN;YACI,GAAG,eAAe;YAClB,UAAU,CAAC,OAAO,GAAG;gBACjB,MAAM,WAAW;oBAAC;oBAAO;oBAAQ;iBAAQ;gBACzC,OAAO,CAAA,GAAA,kBAAW,AAAD,EACb,SAAS,QAAQ,CAAC,QAClB,GAAG,MAAM,IAAI,CAAC,KAAK,aAAa,EAAE,SAAS,QAAQ,GAAG,cAAc,CAAC;YAE7E;QACJ;KACH;IACD,SAAS;QACL;YACI,SAAS,CAAC,CAAC,EAAE,GAAG;YAChB,MAAM;YACN,KAAK;QACT;KACH;IACD,WAAW;QACP;YACI,MAAM;YACN,MAAM;QACV;KACH;IACD,YAAY;QACR,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;IACX;IACA,UAAU;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,UAAU;QACV,WAAW;IACf;IACA,eAAe;IACf,MAAM;IACN,OAAO;IACP,QAAQ;IACR,YAAY;AAChB;;;;;kBC3He;IACX,WAAW;QACP;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACH;IACD,SAAS;QAAC;QAAgB;QAAe;QAAQ;QAAQ;KAAQ;IACjE,QAAQ;QACJ;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACH;IACD,YAAY;QACR;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACH;AACL;;;;;AChFA;AAEe,MAAM;IACjB,YAAY,GAAG,CAAE;QACb,IAAI,CAAC,GAAG,GAAG;QACX,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG;QAEhC,IAAI,OAAO,SAAS,YAAY,SAC5B,IAAI,CAAC,UAAU,GAAG,OAAO,SAAS;aAC/B;YACH,IAAI,CAAC,UAAU,GAAG,CAAA,GAAA,YAAK,AAAD,EAAE,OAAO,SAAS;YACxC,CAAA,GAAA,kBAAW,AAAD,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,8BAA8B,EAAE,OAAO,SAAS,EAAE;QACpF;QAEA,CAAA,GAAA,kBAAW,AAAD,EAAE,CAAA,GAAA,mBAAY,AAAD,KAAK;QAE5B,MAAM,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW;QAChD,CAAA,GAAA,kBAAW,AAAD,EAAE,SAAS,OAAO,CAAC,gEAAgE,EAAE,KAAK,CAAC,CAAC;QAEtG,CAAA,GAAA,kBAAW,AAAD,EACN,YAAY,SAAS,CAAC,KAAK,CAAC,CAAC,MAAQ,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,GAChF;QAGJ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;QACjC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,EAAE;QACtC,IAAI,CAAC,IAAI;IACb;IAEA,WAAW,OAAO;QACd,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gDA6BgC,EAAE,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA6B5D,CAAC;IACL;IAEA,MAAM,SAAS,EAAE;QACb,OAAO,CAAA,GAAA,YAAK,AAAD,EAAE,WAAW,IAAI,CAAC,UAAU;IAC3C;IAEA,OAAO;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG;QAE3B,IAAI,CAAC,OAAO,MAAM,EACd,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,SAAS,IAAI;QAG7C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QAE/B,IAAI,OAAO,KAAK,EAAE;YACd,MAAM,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG;YAClD,CAAA,GAAA,kBAAW,AAAD,EACN,iBAAiB,oBAAoB,iBAAiB,mBACtD,CAAC,iFAAiF,CAAC;YAEvF,CAAA,GAAA,qBAAc,AAAD,EAAE,OAAO,IAAI,CAAC,MAAM;YACjC,MAAM,SAAS,GAAG;YAClB,IAAI,CAAC,MAAM,GAAG;QAClB;QAEA,IAAI,OAAO,QAAQ,EACf,CAAA,GAAA,eAAQ,AAAD,EAAE,IAAI,CAAC,OAAO,EAAE;QAG3B,IAAI,GAAA,eAAQ,EACR,CAAA,GAAA,eAAQ,AAAD,EAAE,IAAI,CAAC,OAAO,EAAE;IAE/B;IAEA,QAAQ,UAAU,EAAE;QAChB,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG;QAClB,IAAI,YACA,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG;aAE5B,CAAA,GAAA,eAAQ,AAAD,EAAE,IAAI,CAAC,OAAO,EAAE;IAE/B;AACJ;kBAxJqB;;;;;ACFrB;AACA;;AAEe,MAAM;IACjB,YAAY,GAAG,CAAE;QACb,IAAI,CAAC,GAAG,GAAG;QAEX,IAAI,CAAC,SAAS,GAAG;YACb,SAAS,CAAA,GAAA,oBAAI,AAAD;QAChB;QAEA,IAAI,CAAC,QAAQ,GAAG,CAAC;QAEjB,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI;IAC/B;IAEA,OAAO;QACH,MAAM,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW;QAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAC7C;IAEA,IAAI,GAAG,EAAE;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI;IACjC;IAEA,OAAO,KAAK,EAAE;QACV,IAAI,CAAC,SAAS,GAAG,CAAA,GAAA,gBAAS,AAAD,EAAE,IAAI,CAAC,SAAS,EAAE;QAC3C,IAAI,CAAC,IAAI;IACb;AACJ;kBA1BqB;;;;;ACHrB,MAAM,OAAO;IACT,cAAc;IACd,OAAO;IACP,qBAAqB;IACrB,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,cAAc;IACd,YAAY;IACZ,UAAU;IACV,WAAW;IACX,gBAAgB;IAChB,gBAAgB;IAChB,YAAY;IACZ,cAAc;IACd,gBAAgB;IAChB,SAAS;IACT,QAAQ;IACR,MAAM;IACN,gBAAgB;IAChB,mBAAmB;IACnB,YAAY;IACZ,mBAAmB;IACnB,kBAAkB;IAClB,uBAAuB;IACvB,eAAe;IACf,YAAY;IACZ,iBAAiB;IACjB,qBAAqB;IACrB,4BAA4B;IAC5B,mBAAmB;IACnB,aAAa;IACb,aAAa;IACb,SAAS;IACT,yBAAyB;AAC7B;kBAEe;AAEf,IAAI,OAAO,WAAW,aAClB,MAAM,CAAC,uBAAuB,GAAG;;;;;AC1CrC;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEe,MAAM;IACjB,YAAY,GAAG,CAAE;QACb,CAAA,GAAA,sBAAM,AAAD,EAAE;QACP,CAAA,GAAA,uBAAO,AAAD,EAAE;QACR,CAAA,GAAA,uBAAO,AAAD,EAAE;QACR,CAAA,GAAA,wBAAQ,AAAD,EAAE;QACT,CAAA,GAAA,yBAAS,AAAD,EAAE;QACV,CAAA,GAAA,uBAAO,AAAD,EAAE;QACR,CAAA,GAAA,yBAAS,AAAD,EAAE;QACV,CAAA,GAAA,8BAAc,AAAD,EAAE;QACf,CAAA,GAAA,2BAAW,AAAD,EAAE;QACZ,CAAA,GAAA,yBAAS,AAAD,EAAE;QACV,CAAA,GAAA,+BAAe,AAAD,EAAE;QAChB,CAAA,GAAA,8BAAc,AAAD,EAAE;QACf,CAAA,GAAA,6BAAa,AAAD,EAAE;QACd,CAAA,GAAA,6BAAa,AAAD,EAAE;QACd,CAAA,GAAA,gCAAgB,AAAD,EAAE;QACjB,CAAA,GAAA,sBAAM,AAAD,EAAE;QACP,CAAA,GAAA,yBAAS,AAAD,EAAE;QACV,CAAA,GAAA,yBAAS,AAAD,EAAE;QACV,CAAA,GAAA,0BAAU,AAAD,EAAE;QACX,CAAA,GAAA,2BAAW,AAAD,EAAE;QACZ,CAAA,GAAA,uBAAO,AAAD,EAAE;QACR,CAAA,GAAA,uBAAO,AAAD,EAAE;QACR,CAAA,GAAA,uBAAO,AAAD,EAAE;QACR,CAAA,GAAA,yBAAS,AAAD,EAAE;QACV,CAAA,GAAA,6BAAa,AAAD,EAAE;QACd,CAAA,GAAA,yBAAS,AAAD,EAAE;QACV,CAAA,GAAA,wBAAQ,AAAD,EAAE;QACT,CAAA,GAAA,uBAAO,AAAD,EAAE;QACR,CAAA,GAAA,wBAAQ,AAAD,EAAE;QACT,CAAA,GAAA,iCAAiB,AAAD,EAAE;QAClB,CAAA,GAAA,0BAAU,AAAD,EAAE;QACX,CAAA,GAAA,0BAAU,AAAD,EAAE;QACX,CAAA,GAAA,6BAAa,AAAD,EAAE;QACd,CAAA,GAAA,yBAAS,AAAD,EAAE;QACV,CAAA,GAAA,0BAAU,AAAD,EAAE;IACf;AACJ;kBAtCqB;;;;;6CClCG;AAFxB;AAEe,SAAS,OAAO,GAAG;IAC9B,MAAM,EACF,MAAM,EACN,UAAU,EAAE,MAAM,EAAE,EACvB,GAAG;IAEJ,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,OAAO;QACZ;YACI,OAAO,OAAO,GAAG;QACrB;QACA,MAAM,KAAI,MAAM;YACZ,IAAI,QAAQ;gBACR,MAAM,SAAS,IAAI,GAAG;gBACtB,MAAM,WAAW,OAAO,IAAI,IAAI,CAAA,GAAA,aAAM,AAAD,EAAE;gBACvC,MAAM,eAAe,OAAO,UAAU,CAAC,SAAS;gBAEhD,IAAI,YAAY,cAAc;oBAC1B,MAAM,CAAA,GAAA,YAAK,AAAD;oBACV,IAAI,OAAO,CAAC,IAAI,GAAG;oBACnB,aAAa,IAAI,CAAC,KAAK,QAAQ,QAAQ;gBAC3C,OAAO;oBACH,IAAI,eAAe,CAAC;oBACpB,OAAO,GAAG,GAAG;gBACjB;gBAEA,IAAI,WAAW,IAAI,GAAG,EAAE;oBACpB,IAAI,MAAM,CAAC,GAAG,GAAG;oBACjB,IAAI,IAAI,OAAO,IAAI,QACf,IAAI,IAAI,CAAC,iBAAiB;wBACtB,IAAI,IAAI,CAAC,WAAW;oBACxB;gBAER;YACJ,OAAO;gBACH,MAAM,CAAA,GAAA,YAAK,AAAD;gBACV,IAAI,OAAO,CAAC,IAAI,GAAG;YACvB;QACJ;IACJ;AACJ;;;;;6CCvCwB;AAFxB;AAEe,SAAS,QAAQ,GAAG;IAC/B,MAAM,EACF,UAAU,EAAE,MAAM,EAAE,EACvB,GAAG;IAEJ,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,QAAQ;QACb,OAAM,GAAG,EAAE,KAAK;YACZ,IAAI,UAAU,WAAW,OAAO,MAAM,CAAC,IAAI;YAC3C,MAAM,CAAC,IAAI,GAAG;QAClB;IACJ;AACJ;;;;;6CCXwB;AAFxB;AAEe,SAAS,QAAQ,GAAG;IAC/B,MAAM,EACF,IAAI,EACJ,MAAM,EACN,MAAM,EACN,aAAa,EAAE,SAAS,EAAE,EAC1B,UAAU,EAAE,MAAM,EAAE,EACvB,GAAG;IAEJ,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,QAAQ;QACb,OAAO;YACH,MAAM,SAAS,MAAM,OAAO,IAAI;YAChC,OAAO,IAAI,GAAG,KAAK,GAAG,CAAC;YACvB,IAAI,IAAI,CAAC;YAET,IAAI,OAAO,KAAK,EACZ,IAAK,IAAI,QAAQ,GAAG,QAAQ,UAAU,MAAM,EAAE,QAAS;gBACnD,MAAM,WAAW,SAAS,CAAC,MAAM;gBACjC,IAAI,aAAa,KACb,SAAS,KAAK;YAEtB;YAGJ,OAAO;QACX;IACJ;AACJ;;;;;6CC3BwB;AAFxB;AAEe,SAAS,SAAS,GAAG;IAChC,MAAM,EACF,UAAU,EAAE,MAAM,EAAE,EACpB,IAAI,EACJ,MAAM,EACT,GAAG;IAEJ,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,SAAS;QACd;YACI,MAAM,SAAS,OAAO,KAAK;YAC3B,OAAO,IAAI,GAAG,KAAK,GAAG,CAAC;YACvB,IAAI,IAAI,CAAC;YACT,OAAO;QACX;IACJ;AACJ;;;;;6CCfwB;AAFxB;AAEe,SAAS,UAAU,GAAG;IACjC,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,UAAU;QACf;YACI,IAAI,IAAI,OAAO,EACX,OAAO,IAAI,KAAK;iBAEhB,OAAO,IAAI,IAAI;QAEvB;IACJ;AACJ;;;;;6CCVwB;AAFxB;AAEe,SAAS,QAAQ,GAAG;IAC/B,MAAM,EAAE,MAAM,EAAE,GAAG;IAEnB,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,QAAQ;QACb,KAAI,IAAI;YACJ,IAAI,WAAW,GAAG;YAClB,IAAI,IAAI,QAAQ,EACZ,OAAO,IAAI,GAAG,GAAG,CAAA,GAAA,mBAAY,AAAD,EAAE,IAAI,WAAW,EAAE,GAAG,EAAE,CAAA,GAAA,mBAAY,AAAD,EAAE,IAAI,QAAQ,GAAG;YAEpF,IAAI,IAAI,CAAC,QAAQ,IAAI,WAAW;QACpC;IACJ;IAEA,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,WAAW;QAChB,KAAI,IAAI;YACJ,IAAI,IAAI,GAAG,IAAI,WAAW,GAAG;QACjC;IACJ;IAEA,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,YAAY;QACjB,KAAI,IAAI;YACJ,IAAI,IAAI,GAAG,IAAI,WAAW,GAAG;QACjC;IACJ;AACJ;;;;;6CCxBwB;AAFxB;AAEe,SAAS,UAAU,GAAG;IACjC,MAAM,EACF,UAAU,EAAE,MAAM,EAAE,EACpB,IAAI,EACJ,MAAM,EACN,OAAO,EACV,GAAG;IAEJ,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,UAAU;QACf,KAAK,IAAM,OAAO,MAAM,IAAI;QAC5B,KAAK,CAAC;YACF,OAAO,MAAM,GAAG,CAAA,GAAA,YAAK,AAAD,EAAE,YAAY,GAAG;YACrC,OAAO,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,UAAU,EAAE,EAAE,SAAS,OAAO,MAAM,GAAG,KAAK,KAAK;YAC3E,IAAI,OAAO,MAAM,KAAK,GAClB,QAAQ,GAAG,CAAC,UAAU,OAAO,MAAM;QAE3C;IACJ;IAEA,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,SAAS;QACd,KAAK,IAAM,OAAO,KAAK;QACvB,KAAK,CAAC;YACF,OAAO,KAAK,GAAG;YACf,IAAI,IAAI,CAAC,SAAS;QACtB;IACJ;AACJ;;;;;6CC1BwB;AAFxB;AAEe,SAAS,eAAe,GAAG;IACtC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,QAAQ;IAE/B,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,eAAe;QACpB,KAAK,IAAM,OAAO,WAAW,IAAI;QACjC,KAAK,CAAC;YACF,OAAO,WAAW;YAClB,IAAI,OAAO,KAAK,CAAC,OAAO;YACxB,OAAO,WAAW,GAAG,CAAA,GAAA,YAAK,AAAD,EAAE,MAAM,GAAG,IAAI,QAAQ;QACpD;IACJ;AACJ;;;;;6CCXwB;AAFxB;AAEe,SAAS,YAAY,GAAG;IACnC,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,YAAY;QACjB,KAAK;YACD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM;YACxC,IAAI,aAAa,UAAU,OAAO;YAClC,OAAO,YAAY;QACvB;IACJ;AACJ;;;;;6CCRwB;AAFxB;AAEe,SAAS,UAAU,GAAG;IACjC,SAAS,UAAU,GAAG,EAAE,WAAW;QAC/B,OAAO,IAAI,QAAQ,CAAC,SAAS;YACzB,IAAI,QAAQ,IAAI,GAAG,EAAE;YACrB,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG;YAE/C,IAAI,KAAK;YACT,IAAI,GAAG,GAAG;YACV,IAAI,MAAM,CAAC,IAAI,GAAG;YAElB,IAAI,IAAI,CAAC,eAAe;YAExB,IAAI,IAAI,CAAC,wBAAwB;gBAC7B,IAAI,WAAW,GAAG;YACtB;YAEA,IAAI,IAAI,CAAC,iBAAiB;gBACtB,IAAI,YAAY,GAAG;gBACnB,IAAI,WAAW,GAAG;gBAElB,IAAI,SACA,MAAM,IAAI,IAAI;gBAGlB,IAAI,MAAM,CAAC,IAAI,GAAG;gBAElB;YACJ;QACJ;IACJ;IAEA,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,iBAAiB;QACtB,OAAO,CAAC;YACJ,OAAO,UAAU,KAAK,IAAI,WAAW;QACzC;IACJ;IAEA,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,aAAa;QAClB,OAAO,CAAC;YACJ,OAAO,UAAU,KAAK;QAC1B;IACJ;IAEA,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,UAAU;QACf,KAAK,IAAI,SAAS;IACtB;AACJ;;;;;6CC9CwB;AAFxB;AAEe,SAAS,gBAAgB,GAAG;IACvC,MAAM,EACF,UAAU,EAAE,MAAM,EAAE,EACpB,IAAI,EACJ,MAAM,EACT,GAAG;IAEJ,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,gBAAgB;QACrB;YACI,OAAO,OAAO,YAAY;QAC9B;QACA,KAAI,IAAI;YACJ,IAAI,MAAM;gBACN,IAAI,SAAS,OAAO,YAAY,EAAE;gBAClC,OAAO,YAAY,GAAG;gBACtB,OAAO,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE,SAAS,MAAM,KAAK,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC,EAAE;YAC1F,OACI,IAAI,YAAY,GAAG;QAE3B;IACJ;AACJ;;;;;6CCrBwB;AAFxB;AAEe,SAAS,eAAe,GAAG;IACtC,MAAM,EACF,IAAI,EACJ,MAAM,EACN,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,EAChC,GAAG;IAEJ,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,eAAe;QACpB;YACI,OAAO,QAAQ,OAAO,CAAC,WAAW,IAAI;QAC1C;QACA,KAAI,KAAK;YACL,IAAI,CAAC,OAAO,QAAQ;YACpB,IAAI,UAAU,WAAW;gBACrB,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,SAAS;gBAC1B,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,UAAU;gBAC3B,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,UAAU;gBAC3B,OAAO,QAAQ,OAAO,CAAC,WAAW;YACtC,OAAO;gBACH,MAAM,aAAa,MAAM,KAAK,CAAC,KAAK,GAAG,CAAC;gBACxC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG;gBACtC,MAAM,cAAc,cAAc;gBAClC,MAAM,aAAa,UAAU,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE;gBAEhD,IAAI,cAAc,YAAY;oBAC1B,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,SAAS,GAAG,aAAa,aAAa,EAAE,CAAC;oBAC1D,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,UAAU;oBAC3B,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,UAAU;gBAC/B,OAAO;oBACH,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,SAAS;oBAC1B,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,UAAU,GAAG,cAAc,WAAW,EAAE,CAAC;oBAC1D,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,UAAU;gBAC/B;gBAEA,QAAQ,OAAO,CAAC,WAAW,GAAG;YAClC;YAEA,OAAO,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,gBAAgB,EAAE,EAAE,UAAU,YAAY,KAAK,GAAG,CAAC,aAAa,OAAO;YACjG,IAAI,IAAI,CAAC,eAAe;QAC5B;IACJ;AACJ;;;;;6CCzCwB;AAFxB;AAEe,SAAS,cAAc,GAAG;IACrC,MAAM,EACF,MAAM,EACN,UAAU,EAAE,MAAM,EAAE,EACvB,GAAG;IAEJ,MAAM,UAAU,CAAA,GAAA,oBAAa,AAAD,EAAE;IAE9B,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,cAAc;QACnB,OAAO,IACH,IAAI,QAAQ,CAAC,SAAS;gBAClB,IAAI;oBACA,QAAQ,KAAK,GAAG,OAAO,UAAU;oBACjC,QAAQ,MAAM,GAAG,OAAO,WAAW;oBACnC,QAAQ,UAAU,CAAC,MAAM,SAAS,CAAC,QAAQ,GAAG;oBAC9C,QAAQ,QAAQ,SAAS,CAAC;gBAC9B,EAAE,OAAO,KAAK;oBACV,OAAO,IAAI,GAAG;oBACd,OAAO;gBACX;YACJ;IACR;IAEA,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,cAAc;QACnB,OAAO,IACH,IAAI,QAAQ,CAAC,SAAS;gBAClB,IAAI;oBACA,QAAQ,KAAK,GAAG,OAAO,UAAU;oBACjC,QAAQ,MAAM,GAAG,OAAO,WAAW;oBACnC,QAAQ,UAAU,CAAC,MAAM,SAAS,CAAC,QAAQ,GAAG;oBAC9C,QAAQ,MAAM,CAAC,CAAC;wBACZ,QAAQ,IAAI,eAAe,CAAC;oBAChC;gBACJ,EAAE,OAAO,KAAK;oBACV,OAAO,IAAI,GAAG;oBACd,OAAO;gBACX;YACJ;IACR;IAEA,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,cAAc;QACnB,OAAO,OAAO;YACV,MAAM,UAAU,MAAM,IAAI,UAAU;YACpC,MAAM,WAAW,QAAQ,CAAC,UAAU,EAAE,CAAA,GAAA,mBAAY,AAAD,EAAE,OAAO,WAAW,GAAG;YACxE,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,GAAG,SAAS,IAAI,CAAC;YACnC,IAAI,IAAI,CAAC,cAAc;YACvB,OAAO;QACX;IACJ;AACJ;;;;;6CChDwB;AAHxB;;AACA;AAEe,SAAS,cAAc,GAAG;IACrC,MAAM,EACF,IAAI,EACJ,MAAM,EACN,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,EAChC,GAAG;IAEJ,MAAM,mBAAmB,CAAC;QACtB,CAAA,GAAA,0BAAU,AAAD,EAAE,EAAE,CAAC,UAAU;YACpB,IAAI,IAAI,CAAC,cAAc,CAAA,GAAA,0BAAU,AAAD,EAAE,YAAY;YAE9C,IAAI,CAAA,GAAA,0BAAU,AAAD,EAAE,YAAY,EAAE;gBACzB,IAAI,KAAK,GAAG;gBACZ,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS;YACtB,OACI,CAAA,GAAA,kBAAW,AAAD,EAAE,SAAS;YAGzB,IAAI,IAAI,CAAC;QACb;QAEA,CAAA,GAAA,0BAAU,AAAD,EAAE,EAAE,CAAC,SAAS,CAAC;YACpB,IAAI,IAAI,CAAC,mBAAmB;QAChC;QAEA,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,cAAc;YACnB;gBACI,OAAO,CAAA,GAAA,0BAAU,AAAD,EAAE,YAAY;YAClC;YACA,MAAM,KAAI,KAAK;gBACX,IAAI,OACA,MAAM,CAAA,GAAA,0BAAU,AAAD,EAAE,OAAO,CAAC;qBAEzB,MAAM,CAAA,GAAA,0BAAU,AAAD,EAAE,IAAI;YAE7B;QACJ;IACJ;IAEA,MAAM,mBAAmB,CAAC;QACtB,IAAI,KAAK,CAAC,UAAU,0BAA0B;YAC1C,IAAI,IAAI,CAAC,cAAc,IAAI,UAAU;YACrC,IAAI,IAAI,CAAC;QACb;QAEA,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,cAAc;YACnB;gBACI,OAAO,SAAS,iBAAiB,KAAK;YAC1C;YACA,KAAI,KAAK;gBACL,IAAI,OAAO;oBACP,IAAI,KAAK,GAAG;oBACZ,OAAO,qBAAqB;gBAChC,OACI,OAAO,oBAAoB;YAEnC;QACJ;IACJ;IAEA,IAAI,IAAI,CAAC,wBAAwB;QAC7B,IAAI,CAAA,GAAA,0BAAU,AAAD,EAAE,SAAS,EACpB,iBAAiB;aACd,IAAI,OAAO,wBAAwB,EACtC,iBAAiB;aAEjB,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,cAAc;YACnB;gBACI,OAAO;YACX;YACA;gBACI,OAAO,IAAI,GAAG,KAAK,GAAG,CAAC;YAC3B;QACJ;QAGJ,uBAAuB;QACvB,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,cAAc,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK;IACpC;AACJ;;;;;AClFA,MAAM,YAAY;IACd;QACI;QACA;QACA;QACA;QACA;QACA;KACH;IACD,aAAa;IACb;QACI;QACA;QACA;QACA;QACA;QACA;KACH;IACD,aAAa;IACb;QACI;QACA;QACA;QACA;QACA;QACA;KACH;IACD;QACI;QACA;QACA;QACA;QACA;QACA;KACH;IACD;QACI;QACA;QACA;QACA;QACA;QACA;KACH;CACJ;AAED,MAAM,YAAY,AAAC,CAAA;IACf,IAAI,OAAO,aAAa,aACpB,OAAO;IAGX,MAAM,oBAAoB,SAAS,CAAC,EAAE;IACtC,MAAM,cAAc,CAAC;IAErB,KAAK,MAAM,cAAc,UAAW;QAChC,MAAM,uBAAuB,UAAU,CAAC,EAAE;QAC1C,IAAI,wBAAwB,UAAU;YAClC,KAAK,MAAM,CAAC,OAAO,OAAO,IAAI,WAAW,OAAO,GAC5C,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG;YAG5C,OAAO;QACX;IACJ;IAEA,OAAO;AACX,CAAA;AAEA,MAAM,eAAe;IACjB,QAAQ,UAAU,gBAAgB;IAClC,OAAO,UAAU,eAAe;AACpC;AAEA,IAAI,aAAa;IACb,SAAQ,UAAU,SAAS,eAAe,EAAE,OAAO;QAC/C,OAAO,IAAI,QAAQ,CAAC,SAAS;YACzB,MAAM,sBAAsB;gBACxB,WAAW,GAAG,CAAC,UAAU;gBACzB;YACJ;YAEA,WAAW,EAAE,CAAC,UAAU;YAExB,MAAM,gBAAgB,OAAO,CAAC,UAAU,iBAAiB,CAAC,CAAC;YAE3D,IAAI,yBAAyB,SACzB,cAAc,IAAI,CAAC,qBAAqB,KAAK,CAAC;QAEtD;IACJ;IACA;QACI,OAAO,IAAI,QAAQ,CAAC,SAAS;YACzB,IAAI,CAAC,WAAW,YAAY,EAAE;gBAC1B;gBACA;YACJ;YAEA,MAAM,mBAAmB;gBACrB,WAAW,GAAG,CAAC,UAAU;gBACzB;YACJ;YAEA,WAAW,EAAE,CAAC,UAAU;YAExB,MAAM,gBAAgB,QAAQ,CAAC,UAAU,cAAc,CAAC;YAExD,IAAI,yBAAyB,SACzB,cAAc,IAAI,CAAC,kBAAkB,KAAK,CAAC;QAEnD;IACJ;IACA,QAAO,OAAO,EAAE,OAAO;QACnB,OAAO,WAAW,YAAY,GAAG,WAAW,IAAI,KAAK,WAAW,OAAO,CAAC,SAAS;IACrF;IACA,UAAS,QAAQ;QACb,WAAW,EAAE,CAAC,UAAU;IAC5B;IACA,SAAQ,QAAQ;QACZ,WAAW,EAAE,CAAC,SAAS;IAC3B;IACA,IAAG,KAAK,EAAE,QAAQ;QACd,MAAM,YAAY,YAAY,CAAC,MAAM;QACrC,IAAI,WACA,SAAS,gBAAgB,CAAC,WAAW,UAAU;IAEvD;IACA,KAAI,KAAK,EAAE,QAAQ;QACf,MAAM,YAAY,YAAY,CAAC,MAAM;QACrC,IAAI,WACA,SAAS,mBAAmB,CAAC,WAAW,UAAU;IAE1D;IACA,KAAK;AACT;AAEA,OAAO,gBAAgB,CAAC,YAAY;IAChC,cAAc;QACV,KAAK,IAAM,QAAQ,QAAQ,CAAC,UAAU,iBAAiB,CAAC;IAC5D;IACA,SAAS;QACL,YAAY;QACZ,KAAK,IAAM,QAAQ,CAAC,UAAU,iBAAiB,CAAC;IACpD;IACA,WAAW;QACP,YAAY;QACZ,KAAK,IAAM,QAAQ,QAAQ,CAAC,UAAU,iBAAiB,CAAC;IAC5D;AACJ;AAEA,IAAI,CAAC,WACD,aAAa;IAAE,WAAW;AAAM;kBAGrB;;;;;6CCtJS;AAFxB;AAEe,SAAS,iBAAiB,GAAG;IACxC,MAAM,EACF,WAAW,EACX,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,EACpC,GAAG;IAEJ,IAAI,UAAU;IACd,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,iBAAiB;QACtB;YACI,OAAO,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS;QAC7B;QACA,KAAI,KAAK;YACL,IAAI,OAAO;gBACP,UAAU,QAAQ,KAAK,CAAC,OAAO;gBAC/B,IAAI,YAAY,sBAAsB,EAClC,CAAA,GAAA,aAAM,AAAD,EAAE,SAAS,IAAI,EAAE;gBAE1B,IAAI,KAAK,GAAG;gBACZ,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,SAAS;gBAC3B,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,UAAU;gBAC5B,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS;gBAClB,IAAI,IAAI,CAAC,iBAAiB;YAC9B,OAAO;gBACH,IAAI,YAAY,sBAAsB,EAClC,CAAA,GAAA,aAAM,AAAD,EAAE,YAAY;gBAEvB,IAAI,SAAS;oBACT,QAAQ,KAAK,CAAC,OAAO,GAAG;oBACxB,UAAU;gBACd;gBACA,CAAA,GAAA,kBAAW,AAAD,EAAE,SAAS;gBACrB,IAAI,IAAI,CAAC,iBAAiB;YAC9B;YAEA,IAAI,IAAI,CAAC;QACb;IACJ;AACJ;;;;;6CCuBwB;AA9DxB;AAEA,SAAS,UAAU,GAAG;IAClB,MAAM,EACF,UAAU,EAAE,MAAM,EAAE,EACpB,KAAK,EACL,MAAM,EACT,GAAG;IAEJ,OAAO,uBAAuB,GAAG;IAEjC,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,OAAO;QACZ;YACI,OAAO,SAAS,uBAAuB;QAC3C;QACA,KAAI,KAAK;YACL,IAAI,OAAO;gBACP,IAAI,KAAK,GAAG;gBACZ,OAAO,uBAAuB,GAAG,KAAK,CAAC,CAAC;oBACpC,OAAO,IAAI,GAAG;oBACd,MAAM;gBACV;YACJ,OACI,SAAS,oBAAoB,GAAG,KAAK,CAAC,CAAC;gBACnC,OAAO,IAAI,GAAG;gBACd,MAAM;YACV;QAER;IACJ;IAEA,MAAM,QAAQ,yBAAyB;QACnC,IAAI,IAAI,CAAC,OAAO;IACpB;IAEA,MAAM,QAAQ,yBAAyB;QACnC,IAAI,IAAI,CAAC,OAAO;IACpB;AACJ;AAEA,SAAS,UAAU,GAAG;IAClB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,QAAQ;IAE/B,OAAO,yBAAyB,CAAC;IAEjC,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,OAAO;QACZ;YACI,OAAO,OAAO,sBAAsB,KAAK;QAC7C;QACA,KAAI,KAAK;YACL,IAAI,OAAO;gBACP,IAAI,KAAK,GAAG;gBACZ,OAAO,yBAAyB,CAAC;gBACjC,IAAI,IAAI,CAAC,OAAO;YACpB,OAAO;gBACH,OAAO,yBAAyB,CAAC;gBACjC,IAAI,IAAI,CAAC,OAAO;YACpB;QACJ;IACJ;AACJ;AAEe,SAAS,OAAO,GAAG;IAC9B,MAAM,EACF,IAAI,EACJ,MAAM,EACN,UAAU,EAAE,MAAM,EAAE,EACvB,GAAG;IACJ,IAAI,SAAS,uBAAuB,EAChC,UAAU;SACP,IAAI,OAAO,8BAA8B,EAC5C,UAAU;SAEV,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,OAAO;QACZ;YACI,OAAO;QACX;QACA;YACI,OAAO,IAAI,GAAG,KAAK,GAAG,CAAC;QAC3B;IACJ;AAER;;;;;6CChFwB;AAFxB;AAEe,SAAS,QAAQ,GAAG;IAC/B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,QAAQ;IAE/B,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,UAAU;QACf,KAAK,IAAM,IAAI,UAAU,GAAG,OAAO,QAAQ;IAC/C;IAEA,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,cAAc;QACnB,KAAK;YACD,OAAO,OAAO,QAAQ,CAAC,MAAM,GAAG,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,QAAQ,CAAC,MAAM,GAAG,KAAK;QACtF;IACJ;AACJ;;;;;6CCZwB;AAFxB;AAEe,SAAS,UAAU,GAAG;IACjC,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,UAAU;QACf,KAAK,IAAM,IAAI,WAAW,GAAG,IAAI,QAAQ;IAC7C;AACJ;;;;;6CCJwB;AAFxB;AAEe,SAAS,WAAW,GAAG;IAClC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,QAAQ;IAC/B,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,WAAW;QAChB,KAAK;YACD,IAAI,OAAO,OAAO,OAAO,KAAK,WAAW,OAAO,OAAO,OAAO;YAC9D,OAAO,CAAC,CAAE,CAAA,OAAO,WAAW,GAAG,KAAK,CAAC,OAAO,MAAM,IAAI,CAAC,OAAO,KAAK,IAAI,OAAO,UAAU,GAAG,CAAA;QAC/F;IACJ;AACJ;;;;;6CCRwB;AAFxB;AAEe,SAAS,UAAU,GAAG;IACjC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,QAAQ;IAEpD,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,YAAY;QACjB;YACI,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG;YACpC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAA,GAAA,cAAO,AAAD,EAAE;YAClC,MAAM,aAAa,aAAa;YAChC,MAAM,iBAAiB,QAAQ;YAC/B,IAAI,iBAAiB,YAAY;gBAC7B,MAAM,aAAa,AAAE,SAAS,aAAc,QAAS;gBACrD,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,SAAS,GAAG,WAAW,CAAC,CAAC;gBAC3C,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,UAAU;YAChC,OAAO;gBACH,MAAM,aAAa,AAAC,QAAQ,aAAa,SAAU;gBACnD,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,SAAS;gBAC3B,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,UAAU,GAAG,WAAW,CAAC,CAAC;YAChD;YACA,IAAI,IAAI,CAAC,YAAY;gBACjB,OAAO,IAAI,KAAK;gBAChB,QAAQ,IAAI,MAAM;YACtB;QACJ;IACJ;AACJ;;;;;6CCxBwB;AAFxB;AAEe,SAAS,QAAQ,GAAG;IAC/B,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,QAAQ;QACb,KAAK;YACD,OAAO,CAAA,GAAA,cAAO,AAAD,EAAE,IAAI,QAAQ,CAAC,OAAO;QACvC;IACJ;IAEA,MAAM,OAAO;QAAC;QAAU;QAAU;QAAQ;QAAS;QAAO;KAAQ;IAClE,IAAK,IAAI,QAAQ,GAAG,QAAQ,KAAK,MAAM,EAAE,QAAS;QAC9C,MAAM,MAAM,IAAI,CAAC,MAAM;QACvB,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,KAAK;YACV,KAAK;gBACD,OAAO,IAAI,IAAI,CAAC,IAAI;YACxB;QACJ;IACJ;IAEA,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,KAAK;QACV,KAAK;YACD,OAAO,IAAI,IAAI,GAAG,OAAO,WAAW;QACxC;IACJ;IAEA,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,KAAK;QACV,KAAK;YACD,OAAO,IAAI,GAAG,GAAG,OAAO,WAAW;QACvC;IACJ;AACJ;;;;;6CC5BwB;AAFxB;AAEe,SAAS,QAAQ,GAAG;IAC/B,MAAM,EACF,UAAU,EAAE,OAAO,EAAE,EACrB,IAAI,EACJ,MAAM,EACT,GAAG;IAEJ,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,QAAQ;QACb;YACI,OAAO,QAAQ,OAAO,CAAC,IAAI,IAAI;QACnC;QACA,KAAI,IAAI;YACJ,IAAI,CAAC,MAAM,OAAO;YAClB,IAAI,SAAS,UACT,OAAO,QAAQ,OAAO,CAAC,IAAI;iBAE3B,QAAQ,OAAO,CAAC,IAAI,GAAG;YAG3B,OAAO,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,cAAc,EAAE,EAAE,KAAK,GAAG,CAAC,CAAA,GAAA,iBAAU,AAAD,EAAE,QAAQ;YACxE,IAAI,IAAI,CAAC,QAAQ;QACrB;IACJ;AACJ;;;;;6CCvBwB;AAFxB;AAEe,SAAS,QAAQ,GAAG;IAC/B,MAAM,EACF,KAAK,EACL,KAAK,EACL,OAAO,EACP,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,EAChC,GAAG;IAEJ,IAAI,YAAY;IAChB,IAAI,YAAY;IAChB,IAAI,YAAY;IAEhB,SAAS;QACL,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,QAAQ;QAC9B,IAAI,OAAO;YACP,CAAA,GAAA,kBAAW,AAAD,EAAE,SAAS;YACrB,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO,WAAW;YAC3B,QAAQ,OAAO,CAAC;YAChB,IAAI,IAAI,CAAC,QAAQ;QACrB;IACJ;IAEA,SAAS,UAAU,KAAK,EAAE,MAAM;QAC5B,IAAI,IAAI,OAAO,EAAE;YACb,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO,WAAW,CAAC,IAAI,CAAC;YACjC,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,WAAW,CAAC,IAAI,CAAC;QACtC,OAAO;YACH,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO,WAAW,CAAC,IAAI,CAAC;YACjC,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,WAAW,CAAC,IAAI,CAAC;QACtC;IACJ;IAEA,SAAS;QACL,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,QAAQ;QAC9B,IAAI,OAAO;YACP,CAAA,GAAA,aAAM,AAAD,EAAE,OAAO;YACd,OAAO,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO,WAAW;QACtC,OAAO;YACH,MAAM,QAAQ,CAAA,GAAA,oBAAa,AAAD,EAAE;YAC5B,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO;YAChB,CAAA,GAAA,aAAM,AAAD,EAAE,SAAS,IAAI,EAAE;YACtB,IAAI,QAAQ,CAAC,KAAK,GAAG;YACrB,CAAA,GAAA,aAAM,AAAD,EAAE,OAAO;YAEd,MAAM,SAAS,CAAA,GAAA,aAAM,AAAD,EAAE,OAAO,CAAC,kCAAkC,CAAC;YACjE,CAAA,GAAA,aAAM,AAAD,EAAE,QAAQ,MAAM,KAAK;YAC1B,MAAM,QAAQ,SAAS;YAEvB,MAAM,SAAS,CAAA,GAAA,aAAM,AAAD,EAAE,OAAO,CAAC,kCAAkC,CAAC;YACjE,MAAM,QAAQ,CAAA,GAAA,aAAM,AAAD,EAAE,QAAQ,MAAM,IAAI;YACvC,MAAM,SAAS,CAAA,GAAA,aAAM,AAAD,EAAE,QAAQ,MAAM,KAAK;YACzC,MAAM,OAAO,SAAS,IAAM,IAAI,IAAI;YACpC,MAAM,QAAQ,SAAS,IAAM,IAAI,KAAK;YACtC,UAAU,OAAO;YACjB,IAAI,EAAE,CAAC,iBAAiB,IAAM,UAAU,OAAO;YAC/C,IAAI,EAAE,CAAC,eAAe,IAAM,UAAU,OAAO;YAC7C,IAAI,EAAE,CAAC,oBAAoB,IAAM,UAAU,OAAO;YAElD,MAAM,OAAO,aAAa,CAAC;gBACvB,YAAY,MAAM,MAAM,KAAK;gBAC7B,YAAY,MAAM,KAAK;gBACvB,YAAY,MAAM,KAAK;YAC3B;YAEA,IAAI,EAAE,CAAC,sBAAsB,CAAC;gBAC1B,IAAI,WAAW;oBACX,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO;oBAChB,MAAM,IAAI,MAAM,KAAK,GAAG;oBACxB,MAAM,IAAI,MAAM,KAAK,GAAG;oBACxB,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC;gBAC5D;YACJ;YAEA,IAAI,EAAE,CAAC,oBAAoB;gBACvB,IAAI,WAAW;oBACX,YAAY;oBACZ,CAAA,GAAA,kBAAW,AAAD,EAAE,OAAO;oBACnB,MAAM,OAAO,CAAA,GAAA,cAAO,AAAD,EAAE;oBACrB,QAAQ,GAAG,CAAC,QAAQ,KAAK,IAAI;oBAC7B,QAAQ,GAAG,CAAC,OAAO,KAAK,GAAG;oBAC3B,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO,QAAQ,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC;oBACxC,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO,OAAO,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;oBACtC,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO,aAAa;gBACjC;YACJ;YAEA,OAAO;QACX;IACJ;IAEA,SAAS;QACL,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,QAAQ;QAC9B,MAAM,OAAO,CAAA,GAAA,cAAO,AAAD,EAAE;QACrB,MAAM,MAAM,OAAO,WAAW,GAAG,KAAK,MAAM,GAAG;QAC/C,MAAM,OAAO,OAAO,UAAU,GAAG,KAAK,KAAK,GAAG;QAC9C,QAAQ,GAAG,CAAC,OAAO;QACnB,QAAQ,GAAG,CAAC,QAAQ;QACpB,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO,OAAO,GAAG,IAAI,EAAE,CAAC;QACjC,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO,QAAQ,GAAG,KAAK,EAAE,CAAC;IACvC;IAEA,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,QAAQ;QACb;YACI,OAAO,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS;QAC7B;QACA,KAAI,KAAK;YACL,IAAI,OAAO;gBACP,IAAI,KAAK,GAAG;gBACZ,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS;gBAClB,MAAM,QAAQ;gBACd,MAAM,MAAM,QAAQ,GAAG,CAAC;gBACxB,MAAM,OAAO,QAAQ,GAAG,CAAC;gBACzB,IAAI,OAAO,MAAM;oBACb,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO,OAAO,GAAG,IAAI,EAAE,CAAC;oBACjC,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO,QAAQ,GAAG,KAAK,EAAE,CAAC;oBACnC,IAAI,CAAC,CAAA,GAAA,mBAAY,AAAD,EAAE,QACd;gBAER,OACI;gBAEJ,IAAI,IAAI,CAAC,QAAQ;YACrB,OACI;QAER;IACJ;AACJ;;;;;6CC/HwB;AAFxB;AAEe,SAAS,UAAU,GAAG;IACjC,MAAM,EACF,UAAU,EAAE,OAAO,EAAE,EACxB,GAAG;IAEJ,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,UAAU;QACf,KAAK;YACD,IAAI;gBACA,OAAO,QAAQ,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YAC1D,0CAA0C;YAC9C,EAAE,OAAO,OAAO;gBACZ,OAAO;YACX;QACJ;QACA,KAAI,GAAG;YACH,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtD;IACJ;AACJ;;;;;6CClBwB;AAFxB;AAEe,SAAS,cAAc,GAAG;IACrC,MAAM,EACF,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,EACnC,GAAG;IAEJ,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,cAAc;QACnB;YACI,MAAM,EAAE,WAAW,EAAE,GAAG;YACxB,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG;YACpC,MAAM,SAAS,cAAe,CAAA,cAAc,UAAS;YACrD,CAAA,GAAA,eAAQ,AAAD,EAAE,YAAY,UAAU,SAAS;YACxC,IAAI,IAAI,CAAC,cAAc;QAC3B;IACJ;AACJ;;;;;6CCdwB;AAFxB;AAEe,SAAS,UAAU,GAAG;IACjC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,QAAQ;IAEhC,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,UAAU;QACf,OAAM,GAAG,EAAE,KAAK;YACZ,IAAI,OACA,OAAO,QAAQ,KAAK,CAAC,WAAW,CAAC,KAAK;iBAEtC,OAAO,iBAAiB,SAAS,gBAAgB,CAAC;QAE1D;IACJ;AACJ;;;;;6CCZwB;AAFxB;AAEe,SAAS,SAAS,GAAG;IAChC,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,SAAS;QACd;YACI,OAAO,IAAI,MAAM,CAAC;QACtB;QACA,KAAI,KAAK;YACL,IAAI,MAAM,CAAC,eAAe;QAC9B;IACJ;AACJ;;;;;6CCTwB;AAFxB;AAEe,SAAS,QAAQ,GAAG;IAC/B,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,QAAQ;QACb;YACI,OAAO,IAAI,MAAM,CAAC,IAAI;QAC1B;QACA,KAAI,IAAI;YACJ,IAAI,MAAM,CAAC,IAAI,GAAG;QACtB;IACJ;AACJ;;;;;6CCTwB;AAFxB;AAEe,SAAS,SAAS,GAAG;IAChC,MAAM,SAAS;QAAC;QAAQ;QAAO;QAAc;KAAgB;IAC7D,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,SAAS;QACd,KAAK,IAAM,OAAO,IAAI,CAAC,CAAC,OAAS,GAAG,CAAC,KAAK,KAAK;QAC/C,KAAI,IAAI;YACJ,IAAK,IAAI,QAAQ,GAAG,QAAQ,OAAO,MAAM,EAAE,QAAS;gBAChD,MAAM,OAAO,MAAM,CAAC,MAAM;gBAC1B,IAAI,SAAS,QAAQ,GAAG,CAAC,KAAK,EAC1B,GAAG,CAAC,KAAK,GAAG;YAEpB;QACJ;IACJ;AACJ;;;;;6CCbwB;AAFxB;AAEe,SAAS,kBAAkB,GAAG;IACzC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG;IAEnC,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,kBAAkB;QACvB;YACI,OAAO,SAAS,MAAM,EAAE,UAAU;QACtC;QACA,KAAI,KAAK;YACL,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,QAAQ;YAC7B,IAAI,CAAC,SAAS,MAAM,IAAI,KAAK,MAAM,KAAK,GAAG;YAC3C,MAAM,SAAS,CAAA,GAAA,YAAK,AAAD,EAAE,OAAO,KAAK;YACjC,SAAS,MAAM,CAAC,MAAM,GAAG;YACzB,IAAK,IAAI,QAAQ,GAAG,QAAQ,KAAK,MAAM,EAAE,QAAS;gBAC9C,MAAM,MAAM,IAAI,CAAC,MAAM;gBACvB,IAAI,iBAAiB,GAAG,IAAI,iBAAiB,IAAI,IAAI,SAAS;gBAC9D,IAAI,eAAe,GAAG,IAAI,eAAe,IAAI,IAAI,OAAO;gBACxD,IAAI,SAAS,GAAG,CAAA,GAAA,YAAK,AAAD,EAAE,IAAI,iBAAiB,GAAG,QAAQ,GAAG,IAAI,QAAQ;gBACrE,IAAI,OAAO,GAAG,CAAA,GAAA,YAAK,AAAD,EAAE,IAAI,eAAe,GAAG,QAAQ,GAAG,IAAI,QAAQ;YACrE;YACA,IAAI,QAAQ,CAAC,MAAM;YACnB,OAAO,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,mBAAmB,EAAE,EAAE,MAAM,CAAC,CAAC;YACzD,IAAI,IAAI,CAAC,kBAAkB;QAC/B;IACJ;AACJ;;;;;6CCxBwB;AAFxB;AAEe,SAAS,WAAW,GAAG;IAClC,MAAM,EACF,IAAI,EACJ,MAAM,EACN,KAAK,EACL,UAAU,EAAE,MAAM,EAAE,EACvB,GAAG;IAEJ,IAAI,YAAY;IAEhB,IAAI,OAAO,qCAAqC,IAAI,OAAO,8BAA8B,EACrF,MAAM,QAAQ,2CAA2C,CAAC;QACtD,OAAQ,MAAM,YAAY;YACtB,KAAK;gBACD,YAAY;gBACZ;YACJ,KAAK;gBACD,YAAY;gBACZ;QACR;IACJ;SAEA,YAAY;IAGhB,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,WAAW;QAChB;YACI,IAAI,WAAW;gBACX,OAAO,8BAA8B;gBACrC,IAAI,IAAI,CAAC;YACb,OACI,OAAO,IAAI,GAAG,KAAK,GAAG,CAAC;QAE/B;IACJ;AACJ;;;;;6CCnCwB;AAFxB;AAEe,SAAS,WAAW,GAAG;IAClC,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,WAAW;QAChB,KAAI,OAAO;YACP,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;YACnC,MAAM,iBAAiB,QAAQ,IAAI,CAAC,CAAC,OAAS,KAAK,OAAO,KAAK,OAAO,CAAC,EAAE;YACzE,SAAS,MAAM,CAAC;gBACZ,MAAM;gBACN,UAAU;gBACV,OAAO;gBACP,OAAO;oBACH,aAAa;gBACjB;gBACA,MAAM,gBAAgB,QAAQ;gBAC9B,UAAU;gBACV,MAAM,UAAS,IAAI;oBACf,MAAM,IAAI,aAAa,CAAC,KAAK,GAAG;oBAChC,OAAO,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,gBAAgB,EAAE,EAAE,KAAK,IAAI,EAAE;oBACzD,OAAO,KAAK,IAAI;gBACpB;YACJ;QACJ;IACJ;AACJ;;;;;6CCtBwB;AAFxB;AAEe,SAAS,cAAc,GAAG;IACrC,MAAM,EACF,MAAM,EACN,MAAM,EACN,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,EAClC,GAAG;IAEJ,IAAI,QAAQ;IACZ,IAAI,QAAQ;IACZ,IAAI,UAAU;IACd,IAAI,SAAS;IACb,IAAI,UAAU;IAEd,SAAS;QACL,aAAa;QACb,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,SAAS;IACb;IAEA,SAAS,eAAe,QAAQ;QAC5B,MAAM,cAAc,IAAI,QAAQ,EAAE;QAClC,IAAI,CAAC,aAAa;QAElB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,UAAU;QAClE,MAAM,SAAS,QAAQ,SAAS,MAAM,YAAY,GAAG;QACrD,MAAM,UAAU,SAAS,SAAS,SAAU,CAAA,OAAO,UAAU,GAAG,OAAO,WAAW,AAAD;QACjF,MAAM,WAAW,UAAU,WAAW,GAAG;QACzC,MAAM,WAAW,KAAK,KAAK,CAAC,WAAW;QACvC,MAAM,SAAS,KAAK,IAAI,CAAC,WAAW,UAAU;QAC9C,MAAM,SAAS,WAAW,UAAU,SAAS;QAC7C,CAAA,GAAA,eAAQ,AAAD,EAAE,aAAa,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5D,CAAA,GAAA,eAAQ,AAAD,EAAE,aAAa,UAAU,GAAG,QAAQ,EAAE,CAAC;QAC9C,CAAA,GAAA,eAAQ,AAAD,EAAE,aAAa,SAAS,GAAG,OAAO,EAAE,CAAC;QAC5C,CAAA,GAAA,eAAQ,AAAD,EAAE,aAAa,sBAAsB,CAAC,CAAC,EAAE,SAAS,OAAO,IAAI,EAAE,SAAS,QAAQ,EAAE,CAAC;QAC1F,IAAI,YAAY,SAAS,GACrB,CAAA,GAAA,eAAQ,AAAD,EAAE,aAAa,QAAQ;aAC3B,IAAI,WAAW,UAAU,WAAW,GAAG,SAAS,GACnD,CAAA,GAAA,eAAQ,AAAD,EAAE,aAAa,QAAQ,GAAG,UAAU,WAAW,GAAG,OAAO,EAAE,CAAC;aAEnE,CAAA,GAAA,eAAQ,AAAD,EAAE,aAAa,QAAQ,GAAG,WAAW,SAAS,EAAE,EAAE,CAAC;IAElE;IAEA,OAAO,KAAK,CACR,WACA;QACI,UAAU;IACd,GACA;QACI,UAAU;IACd;IAGJ,IAAI,EAAE,CAAC,UAAU,OAAO,MAAM,YAAY;QACtC,MAAM,cAAc,IAAI,QAAQ,EAAE;QAClC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,UAAU;QACxC,IAAI,CAAC,eAAe,CAAC,KAAK;QAE1B,MAAM,kBAAkB,SAAS,YAAY,SAAS,CAAA,GAAA,eAAQ,AAAD;QAE7D,IAAI,SAAS,WAAW,iBAAiB;YACrC,IAAI,CAAC,SAAS;gBACV,UAAU;gBACV,QAAQ,MAAM,CAAA,GAAA,cAAO,AAAD,EAAE,KAAK;gBAC3B,SAAS;YACb;YAEA,IAAI,CAAC,UAAU,CAAC,SAAS;YAEzB,MAAM,QAAQ,UAAU,WAAW,GAAG;YACtC,CAAA,GAAA,eAAQ,AAAD,EAAE,aAAa,WAAW;YAEjC,IAAI,QAAQ,KAAK,QAAQ,UAAU,WAAW,EAC1C,eAAe;iBAEf,IAAI,CAAC,CAAA,GAAA,eAAQ,AAAD,GACR,CAAA,GAAA,eAAQ,AAAD,EAAE,aAAa,WAAW;YAIzC,IAAI,iBAAiB;gBACjB,aAAa;gBACb,QAAQ,WAAW;oBACf,CAAA,GAAA,eAAQ,AAAD,EAAE,aAAa,WAAW;gBACrC,GAAG;YACP;QACJ;IACJ;IAEA,CAAA,GAAA,UAAG,AAAD,EAAE,KAAK,cAAc;QACnB;YACI,OAAO,IAAI,MAAM,CAAC,UAAU;QAChC;QACA,KAAI,UAAU;YACV,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE;gBACtC,IAAI,MAAM,CAAC,UAAU,GAAG;gBACxB;YACJ;QACJ;IACJ;AACJ;;;;;6CCtGwB;AAFxB;AAEe,SAAS,SAAS,GAAG;IAChC,MAAM,EACF,MAAM,EACN,OAAO,EACP,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,EAChC,GAAG;IAEJ,IAAK,MAAM,OAAO,OAAO,aAAa,CAClC,IAAI,IAAI,CAAC,KAAK,OAAO,aAAa,CAAC,IAAI;IAG3C,IAAI,OAAO,KAAK,EACZ,IAAI,KAAK,GAAG,OAAO,KAAK;IAG5B,IAAI,OAAO,MAAM,EACb,OAAO,MAAM,GAAG,CAAA,GAAA,YAAK,AAAD,EAAE,OAAO,MAAM,EAAE,GAAG;IAG5C,MAAM,gBAAgB,QAAQ,GAAG,CAAC;IAClC,IAAI,OAAO,kBAAkB,UACzB,OAAO,MAAM,GAAG,CAAA,GAAA,YAAK,AAAD,EAAE,eAAe,GAAG;IAG5C,IAAI,OAAO,MAAM,EACb,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,mBAAmB,CAAC,IAAI,EAAE,OAAO,MAAM,CAAC,CAAC,CAAC;IAGhE,IAAI,OAAO,QAAQ,EACf,OAAO,QAAQ,GAAG,OAAO,QAAQ;IAGrC,IAAI,OAAO,WAAW,EAAE;QACpB,OAAO,WAAW,GAAG;QACrB,MAAM,CAAC,qBAAqB,GAAG;IACnC;IAEA,IAAI,OAAO,KAAK,EACZ,OAAO,MAAM,CAAC,cAAc,GAAG,OAAO,KAAK;IAG/C,IAAK,MAAM,OAAO,OAAO,MAAM,CAC3B,IAAI,MAAM,CAAC,KAAK,OAAO,MAAM,CAAC,IAAI;IAGtC,IAAI,GAAG,GAAG,OAAO,GAAG;AACxB;;;;;6CC7CwB;AAHxB;;AACA;AAEe,SAAS,UAAU,GAAG;IACjC,MAAM,EACF,IAAI,EACJ,MAAM,EACN,MAAM,EACN,WAAW,EACX,KAAK,EACL,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EACzC,GAAG;IAEJ,IAAI,gBAAgB;IAEpB,IAAK,IAAI,QAAQ,GAAG,QAAQ,CAAA,GAAA,sBAAM,AAAD,EAAE,MAAM,CAAC,MAAM,EAAE,QAC9C,MAAM,QAAQ,CAAA,GAAA,sBAAM,AAAD,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE;IACpC;IAGJ,gCAAgC;IAEhC,MAAM;IAEN,IAAI,EAAE,CAAC,iBAAiB;QACpB,gBAAgB;QAChB,IAAI,OAAO,CAAC,IAAI,GAAG;IACvB;IAEA,IAAI,IAAI,CAAC,iBAAiB;QACtB,IAAI,OAAO,CAAC,IAAI,GAAG;QACnB,IAAI,QAAQ,CAAC,IAAI,GAAG;QACpB,IAAI,IAAI,CAAC,IAAI,GAAG;QAChB,IAAI,OAAO,GAAG;QACd,IAAI,IAAI,CAAC;IACb;IAEA,yCAAyC;IAEzC,MAAM;IAEN,yCAAyC;IAEzC,MAAM;IAEN,kCAAkC;IAElC,MAAM;IAEN,IAAI,EAAE,CAAC,eAAe;QAClB,IAAI,OAAO,IAAI,EAAE;YACb,IAAI,IAAI,GAAG;YACX,IAAI,IAAI;YACR,IAAI,QAAQ,CAAC,IAAI,GAAG;YACpB,IAAI,IAAI,CAAC,IAAI,GAAG;QACpB,OAAO;YACH,IAAI,QAAQ,CAAC,IAAI,GAAG;YACpB,IAAI,IAAI,CAAC,IAAI,GAAG;QACpB;IACJ;IAEA,IAAI,EAAE,CAAC,eAAe,OAAO;QACzB,IAAI,gBAAgB,YAAY,kBAAkB,EAAE;YAChD,MAAM,CAAA,GAAA,YAAK,AAAD,EAAE,YAAY,oBAAoB;YAC5C,iBAAiB;YACjB,IAAI,GAAG,GAAG,OAAO,GAAG;YACpB,OAAO,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,aAAa,EAAE,EAAE,eAAe;YAC1D,IAAI,IAAI,CAAC,SAAS,OAAO;QAC7B,OAAO;YACH,IAAI,IAAI,CAAC,IAAI,GAAG;YAChB,IAAI,OAAO,CAAC,IAAI,GAAG;YACnB,IAAI,QAAQ,CAAC,IAAI,GAAG;YACpB,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS;YAClB,MAAM,CAAA,GAAA,YAAK,AAAD,EAAE,YAAY,oBAAoB;YAC5C,OAAO,IAAI,GAAG,KAAK,GAAG,CAAC;QAC3B;IACJ;IAEA,qCAAqC;IAErC,MAAM;IAEN,IAAI,EAAE,CAAC,wBAAwB;QAC3B,IAAI,IAAI,CAAC;QACT,IAAI,GAAA,eAAQ,EAAE;YACV,IAAI,OAAO,CAAC,IAAI,GAAG;YACnB,IAAI,QAAQ,CAAC,IAAI,GAAG;YACpB,IAAI,IAAI,CAAC,IAAI,GAAG;QACpB;IACJ;IAEA,IAAI,EAAE,CAAC,mBAAmB;QACtB,IAAI,OAAO,CAAC,IAAI,GAAG;QACnB,IAAI,IAAI,CAAC,IAAI,GAAG;QAChB,IAAI,QAAQ,CAAC,IAAI,GAAG;IACxB;IAEA,IAAI,EAAE,CAAC,eAAe;QAClB,IAAI,QAAQ,CAAC,IAAI,GAAG;QACpB,IAAI,IAAI,CAAC,IAAI,GAAG;IACpB;IAEA,IAAI,EAAE,CAAC,cAAc;QACjB,IAAI,IAAI,CAAC,IAAI,GAAG;QAChB,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,WAAW;IACjC;IAEA,IAAI,EAAE,CAAC,iBAAiB;QACpB,IAAI,IAAI,CAAC,IAAI,GAAG;IACpB;IAEA,IAAI,EAAE,CAAC,kBAAkB;QACrB,IAAI,IAAI,OAAO,EACX,IAAI,OAAO,CAAC,IAAI,GAAG;IAE3B;IAEA,qCAAqC;IAErC,MAAM;IAEN,IAAI,EAAE,CAAC,gBAAgB;QACnB,IAAI,OAAO,CAAC,IAAI,GAAG;QACnB,IAAI,IAAI,CAAC,IAAI,GAAG;IACpB;IAEA,IAAI,EAAE,CAAC,iBAAiB;QACpB,IAAI,OAAO,CAAC,IAAI,GAAG;QACnB,IAAI,IAAI,CAAC,IAAI,GAAG;IACpB;IAEA,kCAAkC;IAElC,MAAM;IAEN,kCAAkC;IAElC,MAAM;IAEN,IAAI,EAAE,CAAC,oBAAoB;QACvB,IAAI,IAAI,CAAC,IAAI,GAAG;IACpB;IAEA,uCAAuC;IAEvC,MAAM;IAEN,IAAI,EAAE,CAAC,iBAAiB;QACpB,IAAI,OAAO,CAAC,IAAI,GAAG;QACnB,IAAI,IAAI,CAAC,IAAI,GAAG;IACpB;AACJ;;;;;ACxJA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;AAae,MAAM,gBAAgB,CAAA,GAAA,yBAAS,AAAD;IACzC,YAAY,GAAG,CAAE;QACb,KAAK,CAAC;QAEN,IAAI,CAAC,OAAO,GAAG;QACf,IAAI,CAAC,IAAI,GAAG;QACZ,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG;QAErB,MAAM,EAAE,WAAW,EAAE,GAAG;QACxB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ;QAE9C,IAAI,EAAE,CAAC,aAAa;YAChB,IAAI,CAAC,CAAA,GAAA,eAAQ,AAAD,GACR,IAAI,CAAC,IAAI,GAAG;QAEpB;QAEA,IAAI,EAAE,CAAC,SAAS;YACZ,IAAI,GAAA,eAAQ,EACR,IAAI,CAAC,MAAM;iBAEX,IAAI,CAAC,IAAI,GAAG;QAEpB;QAEA,IAAI,EAAE,CAAC,sBAAsB,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,CAAA,GAAA,uBAAgB,AAAD,EAAE,OAAO;QAC3C;QAEA,IAAI,EAAE,CAAC,oBAAoB;YACvB,IACI,CAAC,IAAI,OAAO,CAAC,IAAI,IACjB,CAAC,IAAI,CAAC,OAAO,IACb,CAAC,IAAI,OAAO,IACZ,IAAI,OAAO,IACX,IAAI,CAAC,IAAI,IACT,KAAK,GAAG,KAAK,IAAI,CAAC,KAAK,IAAI,YAAY,iBAAiB,EAExD,IAAI,CAAC,IAAI,GAAG;QAEpB;QAEA,IAAI,EAAE,CAAC,WAAW,CAAC;YACf,IAAI,OAAO;gBACP,CAAA,GAAA,kBAAW,AAAD,EAAE,SAAS;gBACrB,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS;gBAClB,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG;YACzB,OAAO;gBACH,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS;gBAClB,CAAA,GAAA,kBAAW,AAAD,EAAE,SAAS;YACzB;QACJ;QAEA,IAAI,CAAC,IAAI;IACb;IAEA,OAAO;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG;QAE3B,IAAI,CAAC,OAAO,MAAM,EACd,IAAI,CAAC,GAAG,CACJ,CAAA,GAAA,wBAAQ,AAAD,EAAE;YACL,MAAM;YACN,UAAU;YACV,OAAO;QACX;QAIR,IAAI,CAAC,GAAG,CAAC;YACL,MAAM;YACN,UAAU;YACV,OAAO;QACX;QAEA,IAAI,CAAC,GAAG,CACJ,CAAA,GAAA,4BAAY,AAAD,EAAE;YACT,MAAM;YACN,UAAU;YACV,OAAO;QACX;QAGJ,IAAI,CAAC,GAAG,CACJ,CAAA,GAAA,sBAAM,AAAD,EAAE;YACH,MAAM;YACN,UAAU;YACV,OAAO;QACX;QAGJ,IAAI,CAAC,OAAO,MAAM,EACd,IAAI,CAAC,GAAG,CACJ,CAAA,GAAA,oBAAI,AAAD,EAAE;YACD,MAAM;YACN,UAAU;YACV,OAAO;QACX;QAIR,IAAI,OAAO,OAAO,CAAC,MAAM,EACrB,CAAA,GAAA,YAAK,AAAD,IAAI,IAAI,CAAC;YACT,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,OAAO,OAAO;QACrC;QAGJ,IAAI,OAAO,UAAU,IAAI,CAAC,CAAA,GAAA,eAAQ,AAAD,GAC7B,IAAI,CAAC,GAAG,CACJ,CAAA,GAAA,0BAAU,AAAD,EAAE;YACP,MAAM;YACN,UAAU;YACV,OAAO;QACX;QAIR,IAAI,OAAO,OAAO,EACd,IAAI,CAAC,GAAG,CACJ,CAAA,GAAA,uBAAO,AAAD,EAAE;YACJ,MAAM;YACN,UAAU;YACV,OAAO;QACX;QAIR,IAAI,OAAO,GAAG,EACV,IAAI,CAAC,GAAG,CACJ,CAAA,GAAA,mBAAG,AAAD,EAAE;YACA,MAAM;YACN,UAAU;YACV,OAAO;QACX;QAIR,IAAI,OAAO,OAAO,IAAI,OAAO,qCAAqC,EAC9D,IAAI,CAAC,GAAG,CACJ,CAAA,GAAA,uBAAO,AAAD,EAAE;YACJ,MAAM;YACN,UAAU;YACV,OAAO;QACX;QAIR,IAAI,OAAO,aAAa,EACpB,IAAI,CAAC,GAAG,CACJ,CAAA,GAAA,6BAAa,AAAD,EAAE;YACV,MAAM;YACN,UAAU;YACV,OAAO;QACX;QAIR,IAAI,OAAO,UAAU,EACjB,IAAI,CAAC,GAAG,CACJ,CAAA,GAAA,0BAAU,AAAD,EAAE;YACP,MAAM;YACN,UAAU;YACV,OAAO;QACX;QAIR,IAAK,IAAI,QAAQ,GAAG,QAAQ,OAAO,QAAQ,CAAC,MAAM,EAAE,QAChD,IAAI,CAAC,GAAG,CAAC,OAAO,QAAQ,CAAC,MAAM;IAEvC;IAEA,IAAI,SAAS,EAAE;QACX,MAAM,SAAS,OAAO,cAAc,aAAa,UAAU,IAAI,CAAC,GAAG,IAAI;QACvE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ;QAEtE,OAAQ,OAAO,QAAQ;YACnB,KAAK;gBACD,IAAI,CAAC,OAAO,GAAG;gBACf;YACJ,KAAK;gBACD,IAAI,CAAC,OAAO,GAAG;gBACf;YACJ,KAAK;gBACD,IAAI,CAAC,OAAO,GAAG;gBACf;YACJ;gBACI,CAAA,GAAA,kBAAW,AAAD,EAAE,OAAO,CAAC,0DAA0D,CAAC;gBAC/E;QACR;QAEA,KAAK,CAAC,IAAI;IACd;IAEA,MAAM,MAAM,EAAE;QACV,OAAO,cAAc,CAAC,SAAS,GAAG,OAAO,IAAI;QAC7C,IAAK,IAAI,QAAQ,GAAG,QAAQ,OAAO,eAAe,CAAC,MAAM,EAAE,QAAS;YAChE,MAAM,OAAO,OAAO,eAAe,CAAC,MAAM;YAC1C,KAAK,OAAO,GAAG,SAAS;YACxB,IAAI,KAAK,OAAO,EACZ,CAAA,GAAA,mBAAY,AAAD,EAAE,KAAK,aAAa,EAAE;QAEzC;IACJ;IAEA,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;QAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM;QAEjC,CAAA,GAAA,eAAQ,AAAD,EAAE,MAAM;QACf,MAAM,SAAS,CAAA,GAAA,oBAAa,AAAD,EAAE;QAC7B,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ;QACjB,CAAA,GAAA,aAAM,AAAD,EAAE,QAAQ,OAAO,IAAI;QAC1B,KAAK,SAAS,GAAG;QACjB,CAAA,GAAA,aAAM,AAAD,EAAE,MAAM;QAEb,MAAM,QAAQ,CAAA,GAAA,oBAAa,AAAD,EAAE;QAC5B,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO;QAChB,CAAA,GAAA,aAAM,AAAD,EAAE,MAAM;QAEb,IAAK,IAAI,QAAQ,GAAG,QAAQ,OAAO,QAAQ,CAAC,MAAM,EAAE,QAAS;YACzD,MAAM,OAAO,OAAO,QAAQ,CAAC,MAAM;YACnC,MAAM,QAAQ,CAAA,GAAA,oBAAa,AAAD,EAAE;YAC5B,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO;YAChB,IAAI,KAAK,OAAO,EAAE,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO;YAClC,MAAM,OAAO,CAAC,KAAK,GAAG;YACtB,MAAM,OAAO,CAAC,KAAK,GAAG,KAAK,KAAK;YAChC,MAAM,SAAS,GAAG,KAAK,IAAI;YAC3B,CAAA,GAAA,aAAM,AAAD,EAAE,OAAO;YAEd,CAAA,GAAA,UAAG,AAAD,EAAE,MAAM,mBAAmB;gBACzB,KAAK,IAAM,OAAO,QAAQ;YAC9B;YAEA,CAAA,GAAA,UAAG,AAAD,EAAE,MAAM,iBAAiB;gBACvB,KAAK,IAAM;YACf;YAEA,CAAA,GAAA,UAAG,AAAD,EAAE,MAAM,kBAAkB;gBACxB,KAAK,IAAM;YACf;QACJ;QAEA,MAAM,QAAQ,MAAM,OAAO,SAAS,OAAO;YACvC,MAAM,OAAO,MAAM,YAAY,MAAM,EAAE;YACvC,MAAM,OAAO,OAAO,QAAQ,CAAC,IAAI,CAC7B,CAAC,OAAS,KAAK,aAAa,KAAK,KAAK,IAAI,CAAC,CAAC,QAAU,KAAK,aAAa,KAAK;YAEjF,IAAI,CAAC,KAAK,CAAC;YACX,IAAI,OAAO,QAAQ,EACf,OAAO,SAAS,GAAG,MAAM,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,KAAK,aAAa,EAAE;QAE1F;QAEA,OAAO,IAAI,CAAC;IAChB;AACJ;kBA/PqB;;;;;ACxBrB;AACA;AACA;;AACA;AAEe,MAAM;IACjB,YAAY,GAAG,CAAE;QACb,IAAI,CAAC,EAAE,GAAG;QACV,IAAI,CAAC,GAAG,GAAG;QACX,IAAI,CAAC,KAAK,GAAG,IAAI;QACjB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;IACvC;IAEA,IAAI,OAAO;QACP,OAAO,CAAA,GAAA,aAAQ,AAAD,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACtE;IAEA,IAAI,KAAK,KAAK,EAAE;QACZ,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ;QACrC,MAAM,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACzC,IAAI,OACA,CAAA,GAAA,aAAQ,AAAD,EAAE,SAAS;aAElB,CAAA,GAAA,gBAAW,AAAD,EAAE,SAAS;QAEzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IAC7B;IAEA,SAAS;QACL,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI;IAC1B;IAEA,IAAI,SAAS,EAAE;QACX,MAAM,SAAS,OAAO,cAAc,aAAa,UAAU,IAAI,CAAC,GAAG,IAAI;QACvE,OAAO,IAAI,GAAG,OAAO,IAAI,IAAI;QAC7B,CAAA,GAAA,+BAAS,AAAD,EAAE,QAAQ,CAAA,GAAA,uBAAe,AAAD;QAChC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,OAAO,EAAE;QACnD,MAAM,OAAO,OAAO,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE;QACpD,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAC5B,CAAA,GAAA,kBAAW,AAAD,EAAE,CAAC,MAAM,CAAC,uBAAuB,EAAE,KAAK,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1E,IAAI,CAAC,EAAE,IAAI;QACX,MAAM,OAAO,CAAA,GAAA,kBAAa,AAAD,EAAE;QAC3B,CAAA,GAAA,aAAQ,AAAD,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;QACjC,CAAA,GAAA,aAAQ,AAAD,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM;QAEzC,MAAM,SAAS,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;QAC/C,KAAK,OAAO,CAAC,KAAK,GAAG,OAAO,KAAK,IAAI,IAAI,CAAC,EAAE;QAC5C,MAAM,YAAY,OAAO,IAAI,CAAC,CAAC,OAAS,OAAO,KAAK,OAAO,CAAC,KAAK,KAAK,OAAO,KAAK,OAAO,CAAC,KAAK;QAC/F,IAAI,WACA,UAAU,qBAAqB,CAAC,eAAe;aAE/C,CAAA,GAAA,WAAM,AAAD,EAAE,IAAI,CAAC,OAAO,EAAE;QAGzB,IAAI,OAAO,IAAI,EACX,CAAA,GAAA,WAAM,AAAD,EAAE,MAAM,OAAO,IAAI;QAG5B,IAAI,OAAO,KAAK,EACZ,CAAA,GAAA,cAAS,AAAD,EAAE,MAAM,OAAO,KAAK;QAGhC,IAAI,OAAO,OAAO,EACd,CAAA,GAAA,YAAO,AAAD,EAAE,MAAM,OAAO,OAAO;QAGhC,MAAM,SAAS,EAAE;QACjB,IAAI,OAAO,KAAK,EAAE;YACd,MAAM,eAAe,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC;gBACvD,MAAM,cAAc;gBACpB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE;YACtC;YACA,OAAO,IAAI,CAAC;QAChB;QAEA,IAAI,OAAO,QAAQ,IAAI;YAAC;YAAQ;SAAQ,CAAC,QAAQ,CAAC,OAAO,QAAQ,GAC7D,IAAI,CAAC,QAAQ,CAAC,QAAQ,MAAM;QAGhC,IAAI,CAAC,KAAK,GAAG;QACb,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM;YAAE;YAAM;YAAQ;QAAO;QAE5C,IAAI,OAAO,OAAO,EACd,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;QAGlC,OAAO;IACX;IAEA,OAAO,IAAI,EAAE;QACT,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAC5B,CAAA,GAAA,kBAAW,AAAD,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEhE,IAAI,KAAK,MAAM,CAAC,aAAa,EACzB,KAAK,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI;QAGtD,IAAK,IAAI,QAAQ,GAAG,QAAQ,KAAK,MAAM,CAAC,MAAM,EAAE,QAC5C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM;QAG7C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAClB,OAAO,IAAI,CAAC,KAAK;QACjB,CAAA,GAAA,WAAM,AAAD,EAAE,KAAK,IAAI;IACpB;IAEA,OAAO,MAAM,EAAE;QACX,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI;QACvC,IAAI,MAAM;YACN,SAAS,OAAO,MAAM,CAAC,KAAK,MAAM,EAAE;YACpC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI;QAC3B;QACA,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB;AACJ;kBAhHqB;;;;;6CCHG;AAFxB;AAEe,SAAS,WAAW,MAAM;IACrC,OAAO,CAAC,MAAS,CAAA;YACb,GAAG,MAAM;YACT,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC;YACtB,SAAS,CAAC;gBACN,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG;gBAE/B,MAAM,gBAAgB,CAAA,GAAA,aAAM,AAAD,EAAE,UAAU,MAAM,YAAY;gBACzD,MAAM,iBAAiB,CAAA,GAAA,aAAM,AAAD,EAAE,UAAU,MAAM,aAAa;gBAC3D,CAAA,GAAA,eAAQ,AAAD,EAAE,gBAAgB,WAAW;gBAEpC,MAAM,UAAU,SAAS;oBACrB,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU;gBACpC;gBAEA,IAAI,EAAE,CAAC,cAAc,CAAC;oBAClB,IAAI,OAAO;wBACP,CAAA,GAAA,cAAO,AAAD,EAAE,UAAU,KAAK,GAAG,CAAC;wBAC3B,CAAA,GAAA,eAAQ,AAAD,EAAE,eAAe,WAAW;wBACnC,CAAA,GAAA,eAAQ,AAAD,EAAE,gBAAgB,WAAW;oBACxC,OAAO;wBACH,CAAA,GAAA,cAAO,AAAD,EAAE,UAAU,KAAK,GAAG,CAAC;wBAC3B,CAAA,GAAA,eAAQ,AAAD,EAAE,eAAe,WAAW;wBACnC,CAAA,GAAA,eAAQ,AAAD,EAAE,gBAAgB,WAAW;oBACxC;gBACJ;YACJ;QACJ,CAAA;AACJ;;;;;6CC5BwB;AAFxB;AAEe,SAAS,cAAc,MAAM;IACxC,OAAO,CAAC,MAAS,CAAA;YACb,GAAG,MAAM;YACT,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC;YACtB,SAAS,CAAC;gBACN,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG;gBAE/B,MAAM,mBAAmB,CAAA,GAAA,aAAM,AAAD,EAAE,UAAU,MAAM,eAAe;gBAC/D,MAAM,oBAAoB,CAAA,GAAA,aAAM,AAAD,EAAE,UAAU,MAAM,gBAAgB;gBACjE,CAAA,GAAA,eAAQ,AAAD,EAAE,mBAAmB,WAAW;gBAEvC,MAAM,UAAU,SAAS;oBACrB,IAAI,aAAa,GAAG,CAAC,IAAI,aAAa;gBAC1C;gBAEA,IAAI,EAAE,CAAC,iBAAiB,CAAC;oBACrB,IAAI,OAAO;wBACP,CAAA,GAAA,cAAO,AAAD,EAAE,UAAU,KAAK,GAAG,CAAC;wBAC3B,CAAA,GAAA,eAAQ,AAAD,EAAE,kBAAkB,WAAW;wBACtC,CAAA,GAAA,eAAQ,AAAD,EAAE,mBAAmB,WAAW;oBAC3C,OAAO;wBACH,CAAA,GAAA,cAAO,AAAD,EAAE,UAAU,KAAK,GAAG,CAAC;wBAC3B,CAAA,GAAA,eAAQ,AAAD,EAAE,kBAAkB,WAAW;wBACtC,CAAA,GAAA,eAAQ,AAAD,EAAE,mBAAmB,WAAW;oBAC3C;gBACJ;YACJ;QACJ,CAAA;AACJ;;;;;6CC5BwB;AAFxB;AAEe,SAAS,IAAI,MAAM;IAC9B,OAAO,CAAC,MAAS,CAAA;YACb,GAAG,MAAM;YACT,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC;YACtB,SAAS,CAAC;gBACN,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG;gBAE/B,CAAA,GAAA,aAAM,AAAD,EAAE,UAAU,MAAM,GAAG;gBAE1B,MAAM,UAAU,SAAS;oBACrB,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG;gBACtB;gBAEA,IAAI,EAAE,CAAC,OAAO,CAAC;oBACX,CAAA,GAAA,cAAO,AAAD,EAAE,UAAU,KAAK,GAAG,CAAC,QAAQ,kBAAkB;gBACzD;YACJ;QACJ,CAAA;AACJ;;;;;6CClBwB;AAFxB;AAEe,SAAS,aAAa,MAAM;IACvC,OAAO,CAAC,MAAS,CAAA;YACb,GAAG,MAAM;YACT,SAAS,CAAC;gBACN,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG;gBAE/B,MAAM,QAAQ,CAAA,GAAA,aAAM,AAAD,EAAE,UAAU,MAAM,IAAI;gBACzC,MAAM,SAAS,CAAA,GAAA,aAAM,AAAD,EAAE,UAAU,MAAM,KAAK;gBAC3C,CAAA,GAAA,cAAO,AAAD,EAAE,OAAO,KAAK,GAAG,CAAC;gBACxB,CAAA,GAAA,cAAO,AAAD,EAAE,QAAQ,KAAK,GAAG,CAAC;gBAEzB,MAAM,OAAO,SAAS;oBAClB,IAAI,IAAI;gBACZ;gBAEA,MAAM,QAAQ,SAAS;oBACnB,IAAI,KAAK;gBACb;gBAEA,SAAS;oBACL,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO,WAAW;oBAC3B,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,WAAW;gBAChC;gBAEA,SAAS;oBACL,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO,WAAW;oBAC3B,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,WAAW;gBAChC;gBAEA,IAAI,IAAI,OAAO,EACX;qBAEA;gBAGJ,IAAI,EAAE,CAAC,iBAAiB;oBACpB;gBACJ;gBAEA,IAAI,EAAE,CAAC,eAAe;oBAClB;gBACJ;YACJ;QACJ,CAAA;AACJ;;;;;AC5CA,qDAAgB;AAWhB,oDAAgB;6CAaQ;AA1BxB;AAEO,SAAS,gBAAgB,GAAG,EAAE,KAAK;IACtC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,QAAQ;IAClC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAA,GAAA,cAAO,AAAD,EAAE;IACzB,MAAM,YAAY,CAAA,GAAA,eAAQ,AAAD,IAAI,MAAM,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,MAAM,OAAO;IACrE,MAAM,QAAQ,CAAA,GAAA,YAAK,AAAD,EAAE,YAAY,MAAM,GAAG,UAAU,WAAW;IAC9D,MAAM,SAAS,AAAC,QAAQ,UAAU,WAAW,GAAI,IAAI,QAAQ;IAC7D,MAAM,OAAO,CAAA,GAAA,mBAAY,AAAD,EAAE;IAC1B,MAAM,aAAa,CAAA,GAAA,YAAK,AAAD,EAAE,QAAQ,UAAU,WAAW,EAAE,GAAG;IAC3D,OAAO;QAAE;QAAQ;QAAM;QAAO;IAAW;AAC7C;AAEO,SAAS,eAAe,GAAG,EAAE,KAAK;IACrC,IAAI,IAAI,QAAQ,EAAE;QACd,MAAM,aAAa,MAAM,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,MAAM;QACxD,MAAM,SAAS,aAAa,IAAI,QAAQ;QACxC,IAAI,IAAI,CAAC,UAAU,UAAU,YAAY;QACzC,IAAI,IAAI,GAAG;IACf,OAAO;QACH,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,KAAK;QACpD,IAAI,IAAI,CAAC,UAAU,UAAU,YAAY;QACzC,IAAI,IAAI,GAAG;IACf;AACJ;AAEe,SAAS,SAAS,OAAO;IACpC,OAAO,CAAC;QACJ,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;QAEjC,OAAO;YACH,GAAG,OAAO;YACV,MAAM,CAAC;;;;;;;;;YASP,CAAC;YACD,SAAS,CAAC;gBACN,IAAI,WAAW;gBACf,IAAI,YAAY;gBAEhB,MAAM,SAAS,CAAA,GAAA,YAAK,AAAD,EAAE,uBAAuB;gBAC5C,MAAM,UAAU,CAAA,GAAA,YAAK,AAAD,EAAE,wBAAwB;gBAC9C,MAAM,UAAU,CAAA,GAAA,YAAK,AAAD,EAAE,wBAAwB;gBAC9C,MAAM,aAAa,CAAA,GAAA,YAAK,AAAD,EAAE,2BAA2B;gBACpD,MAAM,aAAa,CAAA,GAAA,YAAK,AAAD,EAAE,2BAA2B;gBACpD,MAAM,OAAO,CAAA,GAAA,YAAK,AAAD,EAAE,qBAAqB;gBAExC,IAAI,MAAM,SAAS,EACf,CAAA,GAAA,aAAM,AAAD,EAAE,YAAY,MAAM,SAAS;qBAElC,CAAA,GAAA,eAAQ,AAAD,EAAE,YAAY,mBAAmB;gBAG5C,SAAS,cAAc,KAAK;oBACxB,MAAM,EAAE,KAAK,EAAE,GAAG,gBAAgB,KAAK;oBACvC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO;oBACrC,KAAK,SAAS,GAAG;oBACjB,MAAM,WAAW,KAAK,WAAW;oBACjC,IAAI,SAAS,WAAW,GACpB,CAAA,GAAA,eAAQ,AAAD,EAAE,MAAM,QAAQ;yBACpB,IAAI,QAAQ,SAAS,WAAW,GAAG,WAAW,GACjD,CAAA,GAAA,eAAQ,AAAD,EAAE,MAAM,QAAQ,GAAG,SAAS,WAAW,GAAG,SAAS,EAAE,CAAC;yBAE7D,CAAA,GAAA,eAAQ,AAAD,EAAE,MAAM,QAAQ,GAAG,QAAQ,WAAW,EAAE,EAAE,CAAC;gBAE1D;gBAEA,SAAS,SAAS,KAAK,EAAE,KAAK;oBAC1B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,gBAAgB,KAAK;oBACtD,KAAK,SAAS,GAAG;oBACjB,MAAM,WAAW,KAAK,WAAW;oBACjC,IAAI,SAAS,WAAW,GACpB,CAAA,GAAA,eAAQ,AAAD,EAAE,MAAM,QAAQ;yBACpB,IAAI,QAAQ,SAAS,WAAW,GAAG,WAAW,GACjD,CAAA,GAAA,eAAQ,AAAD,EAAE,MAAM,QAAQ,GAAG,SAAS,WAAW,GAAG,SAAS,EAAE,CAAC;yBAE7D,CAAA,GAAA,eAAQ,AAAD,EAAE,MAAM,QAAQ,GAAG,QAAQ,WAAW,EAAE,EAAE,CAAC;gBAE1D;gBAEA,SAAS;oBACL,WAAW,SAAS,GAAG;oBACvB,IAAK,IAAI,QAAQ,GAAG,QAAQ,OAAO,SAAS,CAAC,MAAM,EAAE,QAAS;wBAC1D,MAAM,OAAO,OAAO,SAAS,CAAC,MAAM;wBACpC,MAAM,OAAO,AAAC,CAAA,GAAA,YAAK,AAAD,EAAE,KAAK,IAAI,EAAE,GAAG,IAAI,QAAQ,IAAI,IAAI,QAAQ,GAAI;wBAClE,MAAM,OAAO,CAAC,iBAAiB,EAAE,KAAK,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,CAAC,eAAe,EAAE,KAAK,UAAU,CAAC;wBACrG,CAAA,GAAA,aAAM,AAAD,EAAE,YAAY;oBACvB;gBACJ;gBAEA,SAAS,OAAO,IAAI,EAAE,UAAU,EAAE,KAAK;oBACnC,MAAM,kBAAkB,SAAS,YAAY,SAAS,CAAA,GAAA,eAAQ,AAAD;oBAE7D,IAAI,SAAS,UACT,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,SAAS,GAAG,aAAa,IAAI,CAAC,CAAC;oBAGrD,IAAI,SAAS,SACT,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,SAAS,GAAG,aAAa,IAAI,CAAC,CAAC;oBAGpD,IAAI,SAAS,UAAU;wBACnB,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,SAAS,GAAG,aAAa,IAAI,CAAC,CAAC;wBACjD,CAAA,GAAA,eAAQ,AAAD,EAAE,YAAY,QAAQ,GAAG,aAAa,IAAI,CAAC,CAAC;oBACvD;oBAEA,IAAI,iBAAiB;wBACjB,CAAA,GAAA,eAAQ,AAAD,EAAE,MAAM,WAAW;wBAC1B,MAAM,QAAQ,SAAS,WAAW,GAAG;wBACrC,MAAM,OAAO,CAAA,GAAA,mBAAY,AAAD,EAAE,aAAa,IAAI,QAAQ;wBACnD,SAAS,OAAO;4BAAE;4BAAO;wBAAK;wBAC9B,aAAa;wBACb,WAAW,WAAW;4BAClB,CAAA,GAAA,eAAQ,AAAD,EAAE,MAAM,WAAW;wBAC9B,GAAG;oBACP;gBACJ;gBAEA,IAAI,EAAE,CAAC,UAAU;gBACjB,IAAI,EAAE,CAAC,wBAAwB;gBAE/B,IAAI,IAAI,WAAW,CAAC,OAAO,EACvB,IAAI,EAAE,CAAC,OAAO;oBACV,IAAI,IAAI,CAAC,UAAU,UAAU,IAAI,MAAM;oBACvC,IAAI,IAAI,CAAC,UAAU,UAAU,IAAI,MAAM;gBAC3C;qBACG;oBACH,IAAI,EAAE,CAAC,oBAAoB;wBACvB,IAAI,IAAI,CAAC,UAAU,UAAU,IAAI,MAAM;oBAC3C;oBAEA,IAAI,EAAE,CAAC,kBAAkB;wBACrB,IAAI,IAAI,CAAC,UAAU,UAAU,IAAI,MAAM;oBAC3C;oBAEA,IAAI,EAAE,CAAC,eAAe;wBAClB,IAAI,IAAI,CAAC,UAAU,UAAU;oBACjC;gBACJ;gBAEA,IAAI,IAAI,CAAC,UAAU,UAAU,IAAI,MAAM,IAAI;gBAE3C,IAAI,CAAC,CAAA,GAAA,eAAQ,AAAD,GAAG;oBACX,MAAM,UAAU,SAAS,CAAC;wBACtB,IAAI,MAAM,MAAM,KAAK,YACjB,eAAe,KAAK;oBAE5B;oBAEA,MAAM,UAAU,aAAa,CAAC;wBAC1B,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,KAAK;wBAC5C,IAAI,IAAI,CAAC,UAAU,SAAS,YAAY;wBACxC,CAAA,GAAA,eAAQ,AAAD,EAAE,MAAM,WAAW;wBAC1B,IAAI,CAAA,GAAA,uBAAgB,AAAD,EAAE,OAAO,aACxB,cAAc;6BAEd,SAAS;oBAEjB;oBAEA,MAAM,UAAU,cAAc,CAAC;wBAC3B,CAAA,GAAA,eAAQ,AAAD,EAAE,MAAM,WAAW;wBAC1B,IAAI,IAAI,CAAC,UAAU,SAAS,GAAG;oBACnC;oBAEA,MAAM,UAAU,aAAa,CAAC;wBAC1B,YAAY,MAAM,MAAM,KAAK;oBACjC;oBAEA,IAAI,EAAE,CAAC,sBAAsB,CAAC;wBAC1B,IAAI,WAAW;4BACX,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,KAAK;4BACpD,IAAI,IAAI,CAAC,UAAU,UAAU,YAAY;4BACzC,IAAI,IAAI,GAAG;wBACf;oBACJ;oBAEA,IAAI,EAAE,CAAC,oBAAoB;wBACvB,IAAI,WACA,YAAY;oBAEpB;gBACJ;YACJ;QACJ;IACJ;AACJ;;;;;6CC9LwB;AAFxB;AAEe,SAAS,KAAK,MAAM;IAC/B,OAAO,CAAC,MAAS,CAAA;YACb,GAAG,MAAM;YACT,OAAO,CAAA,GAAA,eAAQ,AAAD,IACR;gBACI,UAAU;gBACV,SAAS;YACb,IACA;gBACI,QAAQ;gBACR,SAAS;YACb;YACN,SAAS,CAAC;gBACN,SAAS;oBACL,MAAM,UAAU,GAAG,CAAA,GAAA,mBAAY,AAAD,EAAE,IAAI,WAAW,EAAE,GAAG,EAAE,CAAA,GAAA,mBAAY,AAAD,EAAE,IAAI,QAAQ,GAAG;oBAClF,IAAI,YAAY,SAAS,SAAS,EAC9B,SAAS,SAAS,GAAG;gBAE7B;gBAEA;gBAEA,MAAM,SAAS;oBAAC;oBAAwB;oBAAoB;iBAAiB;gBAC7E,IAAK,IAAI,QAAQ,GAAG,QAAQ,OAAO,MAAM,EAAE,QACvC,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE;YAE9B;QACJ,CAAA;AACJ;;;;;6CC5BwB;AAFxB;AAEe,SAAS,OAAO,MAAM;IACjC,OAAO,CAAC,MAAS,CAAA;YACb,GAAG,MAAM;YACT,SAAS,CAAC;gBACN,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG;gBAEzB,MAAM,UAAU,CAAA,GAAA,aAAM,AAAD,EAAE,UAAU,MAAM,MAAM;gBAC7C,MAAM,SAAS,CAAA,GAAA,aAAM,AAAD,EAAE,UAAU,MAAM,WAAW;gBACjD,MAAM,SAAS,CAAA,GAAA,aAAM,AAAD,EAAE,UAAU;gBAChC,MAAM,SAAS,CAAA,GAAA,aAAM,AAAD,EAAE,QAAQ;gBAC9B,MAAM,SAAS,CAAA,GAAA,aAAM,AAAD,EAAE,QAAQ,CAAC,kCAAkC,CAAC;gBAClE,MAAM,UAAU,CAAA,GAAA,aAAM,AAAD,EAAE,QAAQ,CAAC,qCAAqC,CAAC;gBACtE,MAAM,UAAU,CAAA,GAAA,aAAM,AAAD,EAAE,SAAS,CAAC,qCAAqC,CAAC;gBACvE,MAAM,UAAU,CAAA,GAAA,aAAM,AAAD,EAAE,SAAS,CAAC,qCAAqC,CAAC;gBACvE,MAAM,aAAa,CAAA,GAAA,aAAM,AAAD,EAAE,SAAS,CAAC,wCAAwC,CAAC;gBAE7E,SAAS,mBAAmB,KAAK;oBAC7B,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAA,GAAA,cAAO,AAAD,EAAE;oBAChC,OAAO,IAAI,AAAC,CAAA,MAAM,OAAO,GAAG,GAAE,IAAK;gBACvC;gBAEA,SAAS;oBACL,IAAI,IAAI,KAAK,IAAI,IAAI,MAAM,KAAK,GAAG;wBAC/B,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,WAAW;wBAC7B,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,WAAW;wBAC5B,CAAA,GAAA,eAAQ,AAAD,EAAE,YAAY,OAAO;wBAC5B,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,OAAO;wBACzB,OAAO,SAAS,GAAG;oBACvB,OAAO;wBACH,MAAM,aAAa,IAAI,MAAM,GAAG;wBAChC,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,WAAW;wBAC7B,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,WAAW;wBAC5B,CAAA,GAAA,eAAQ,AAAD,EAAE,YAAY,OAAO,GAAG,MAAM,WAAW,CAAC,CAAC;wBAClD,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,OAAO,GAAG,MAAM,WAAW,CAAC,CAAC;wBAC/C,OAAO,SAAS,GAAG,KAAK,KAAK,CAAC;oBAClC;gBACJ;gBAEA;gBACA,IAAI,EAAE,CAAC,sBAAsB;gBAE7B,MAAM,SAAS,SAAS;oBACpB,IAAI,KAAK,GAAG;gBAChB;gBAEA,MAAM,QAAQ,SAAS;oBACnB,IAAI,KAAK,GAAG;gBAChB;gBAEA,IAAI,GAAA,eAAQ,EACR,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,WAAW;qBACzB;oBACH,IAAI,YAAY;oBAEhB,MAAM,SAAS,aAAa,CAAC;wBACzB,YAAY,MAAM,MAAM,KAAK;wBAC7B,IAAI,MAAM,GAAG,mBAAmB;oBACpC;oBAEA,IAAI,EAAE,CAAC,sBAAsB,CAAC;wBAC1B,IAAI,WAAW;4BACX,IAAI,KAAK,GAAG;4BACZ,IAAI,MAAM,GAAG,mBAAmB;wBACpC;oBACJ;oBAEA,IAAI,EAAE,CAAC,oBAAoB;wBACvB,IAAI,WACA,YAAY;oBAEpB;gBACJ;YACJ;QACJ,CAAA;AACJ;;;;;6CC1EwB;AAFxB;AAEe,SAAS,QAAQ,MAAM;IAClC,OAAO,CAAC,MAAS,CAAA;YACb,GAAG,MAAM;YACT,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC;YACtB,SAAS,CAAC;gBACN,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG;gBAE/B,CAAA,GAAA,aAAM,AAAD,EAAE,UAAU,MAAM,OAAO;gBAE9B,MAAM,UAAU,SAAS;oBACrB,IAAI,OAAO,CAAC,MAAM;oBAClB,IAAI,OAAO,CAAC,MAAM;gBACtB;gBAEA,IAAI,EAAE,CAAC,WAAW,CAAC;oBACf,CAAA,GAAA,cAAO,AAAD,EAAE,UAAU,KAAK,GAAG,CAAC,QAAQ,iBAAiB;gBACxD;YACJ;QACJ,CAAA;AACJ;;;;;6CCnBwB;AAFxB;AAEe,SAAS,WAAW,MAAM;IACrC,OAAO,CAAC,MAAS,CAAA;YACb,GAAG,MAAM;YACT,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC;YACtB,SAAS,CAAC;gBACN,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG;gBAEzB,CAAA,GAAA,aAAM,AAAD,EAAE,UAAU,MAAM,UAAU;gBACjC,MAAM,UAAU,SAAS;oBACrB,IAAI,UAAU;gBAClB;YACJ;QACJ,CAAA;AACJ;;;;;6CCbwB;AAFxB;AAEe,SAAS,IAAI,MAAM;IAC9B,OAAO,CAAC,MAAS,CAAA;YACb,GAAG,MAAM;YACT,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC;YACtB,SAAS,CAAC;gBACN,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG;gBACzB,CAAA,GAAA,aAAM,AAAD,EAAE,UAAU,MAAM,OAAO;gBAC9B,MAAM,UAAU,SAAS,IAAM,IAAI,OAAO;YAC9C;QACJ,CAAA;AACJ;;;;;ACZA;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEe,MAAM,oBAAoB,CAAA,GAAA,yBAAS,AAAD;IAC7C,YAAY,GAAG,CAAE;QACb,KAAK,CAAC;QAEN,IAAI,CAAC,IAAI,GAAG;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,QAAQ,CAAC,YAAY;QAExC,IAAI,CAAC,CAAA,GAAA,eAAQ,AAAD,GACR,IAAI,CAAC,IAAI;IAEjB;IAEA,OAAO;QACH,MAAM,EACF,MAAM,EACN,KAAK,EACL,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,EACtC,GAAG,IAAI,CAAC,GAAG;QAEZ,IAAI,OAAO,YAAY,EACnB,IAAI,CAAC,GAAG,CACJ,CAAA,GAAA,4BAAY,AAAD,EAAE;YACT,MAAM;YACN,OAAO;QACX;QAIR,IAAI,OAAO,WAAW,EAClB,IAAI,CAAC,GAAG,CACJ,CAAA,GAAA,2BAAW,AAAD,EAAE;YACR,MAAM;YACN,OAAO;QACX;QAIR,IAAI,OAAO,IAAI,EACX,IAAI,CAAC,GAAG,CACJ,CAAA,GAAA,oBAAI,AAAD,EAAE;YACD,MAAM;YACN,OAAO;QACX;QAIR,IAAI,CAAC,GAAG,CACJ,CAAA,GAAA,oBAAI,AAAD,EAAE;YACD,MAAM;YACN,OAAO;QACX;QAGJ,IAAI,CAAC,GAAG,CACJ,CAAA,GAAA,uBAAO,AAAD,EAAE;YACJ,MAAM;YACN,OAAO;QACX;QAGJ,IAAI,CAAC,GAAG,CACJ,CAAA,GAAA,qBAAK,AAAD,EAAE;YACF,MAAM;YACN,OAAO;QACX;QAGJ,IAAK,IAAI,QAAQ,GAAG,QAAQ,OAAO,WAAW,CAAC,MAAM,EAAE,QACnD,IAAI,CAAC,GAAG,CAAC,OAAO,WAAW,CAAC,MAAM;QAGtC,MAAM,SAAS,eAAe,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE;YACvC,MAAM,cAAc;YAEpB,IAAI,CAAC,IAAI,GAAG;YAEZ,MAAM,SAAS,MAAM,OAAO;YAC5B,MAAM,SAAS,MAAM,OAAO;YAC5B,MAAM,EAAE,QAAQ,OAAO,EAAE,OAAO,MAAM,EAAE,MAAM,KAAK,EAAE,KAAK,IAAI,EAAE,GAAG,CAAA,GAAA,cAAO,AAAD,EAAE;YAC3E,MAAM,EAAE,QAAQ,OAAO,EAAE,OAAO,MAAM,EAAE,GAAG,CAAA,GAAA,cAAO,AAAD,EAAE;YACnD,IAAI,WAAW,SAAS;YACxB,IAAI,UAAU,SAAS;YAEvB,IAAI,SAAS,SAAS,QAAQ,QAC1B,WAAW,SAAS;YAGxB,IAAI,SAAS,UAAU,OAAO,SAC1B,UAAU,UAAU;YAGxB,CAAA,GAAA,gBAAS,AAAD,EAAE,cAAc;gBACpB,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACnB,MAAM,GAAG,SAAS,EAAE,CAAC;YACzB;QACJ;QAEA,MAAM,SAAS,SAAS,CAAC;YACrB,IAAI,CAAC,CAAA,GAAA,uBAAgB,AAAD,EAAE,OAAO,eACzB,IAAI,CAAC,IAAI,GAAG;QAEpB;QAEA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ;YAChB,IAAI,CAAC,IAAI,GAAG;QAChB;IACJ;AACJ;kBA5GqB;;;;;6CCPG;AAFxB;AAEe,SAAS,aAAa,MAAM;IACvC,OAAO,CAAC;QACJ,MAAM,EACF,IAAI,EACJ,aAAa,EAAE,aAAa,EAAE,EACjC,GAAG;QAEJ,MAAM,OAAO,cAAc,GAAG,CAC1B,CAAC,OAAS,CAAC,kBAAkB,EAAE,KAAK,EAAE,EAAE,SAAS,IAAI,KAAK,GAAG,CAAC,YAAY,KAAK,OAAO,CAAC,GAAG,OAAO,CAAC,EACpG,IAAI,CAAC;QAEP,OAAO;YACH,GAAG,MAAM;YACT,MAAM,GAAG,KAAK,GAAG,CAAC,cAAc,EAAE,EAAE,MAAM;YAC1C,OAAO,CAAC,aAAa;gBACjB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO;gBACtC,IAAI,OAAO;oBACP,IAAI,YAAY,GAAG,OAAO;oBAC1B,YAAY,IAAI,GAAG;gBACvB;YACJ;YACA,SAAS,CAAC;gBACN,MAAM,WAAW,CAAA,GAAA,YAAK,AAAD,EAAE,oBAAoB;gBAC3C,IAAI,UAAU,CAAA,GAAA,mBAAY,AAAD,EAAE,UAAU;gBACrC,IAAI,EAAE,CAAC,oBAAoB;oBACvB,MAAM,WAAW,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,QAAQ,IAAI,CAC1C,CAAC,OAAS,OAAO,KAAK,OAAO,CAAC,KAAK,MAAM,IAAI,YAAY;oBAE7D,IAAI,UACA,CAAA,GAAA,mBAAY,AAAD,EAAE,UAAU;gBAE/B;YACJ;QACJ;IACJ;AACJ;;;;;6CCnCwB;AAFxB;AAEe,SAAS,YAAY,MAAM;IACtC,OAAO,CAAC;QACJ,MAAM,EACF,IAAI,EACJ,aAAa,EAAE,YAAY,EAAE,EAChC,GAAG;QAEJ,MAAM,OAAO,aAAa,GAAG,CACzB,CAAC,OAAS,CAAC,kBAAkB,EAAE,KAAK,EAAE,EAAE,SAAS,YAAY,KAAK,GAAG,CAAC,aAAa,KAAK,OAAO,CAAC,EAClG,IAAI,CAAC;QAEP,OAAO;YACH,GAAG,MAAM;YACT,MAAM,GAAG,KAAK,GAAG,CAAC,gBAAgB,EAAE,EAAE,MAAM;YAC5C,OAAO,CAAC,aAAa;gBACjB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO;gBACtC,IAAI,OAAO;oBACP,IAAI,WAAW,GAAG;oBAClB,YAAY,IAAI,GAAG;gBACvB;YACJ;YACA,SAAS,CAAC;gBACN,MAAM,WAAW,CAAA,GAAA,YAAK,AAAD,EAAE,0BAA0B;gBACjD,IAAI,UACA,CAAA,GAAA,mBAAY,AAAD,EAAE,UAAU;gBAE3B,IAAI,EAAE,CAAC,eAAe,CAAC;oBACnB,MAAM,WAAW,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,QAAQ,IAAI,CAAC,CAAC,OAAS,KAAK,OAAO,CAAC,KAAK,KAAK;oBAChF,IAAI,UACA,CAAA,GAAA,mBAAY,AAAD,EAAE,UAAU;gBAE/B;YACJ;QACJ;IACJ;AACJ;;;;;6CCnCwB;AAFxB;AAEe,SAAS,KAAK,MAAM;IAC/B,OAAO,CAAC;QACJ,MAAM,EACF,IAAI,EACJ,aAAa,EAAE,IAAI,EAAE,EACxB,GAAG;QAEJ,MAAM,OAAO,KAAK,GAAG,CAAC,CAAC,OAAS,CAAC,kBAAkB,EAAE,KAAK,EAAE,EAAE,KAAK,GAAG,CAAC,CAAA,GAAA,iBAAU,AAAD,EAAE,OAAO,OAAO,CAAC,EAAE,IAAI,CAAC;QAExG,OAAO;YACH,GAAG,MAAM;YACT,MAAM,GAAG,KAAK,GAAG,CAAC,cAAc,EAAE,EAAE,MAAM;YAC1C,OAAO,CAAC,aAAa;gBACjB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO;gBACtC,IAAI,OAAO;oBACP,IAAI,IAAI,GAAG,MAAM,WAAW;oBAC5B,YAAY,IAAI,GAAG;gBACvB;YACJ;YACA,SAAS,CAAC;gBACN,MAAM,WAAW,CAAA,GAAA,YAAK,AAAD,EAAE,yBAAyB;gBAChD,IAAI,UACA,CAAA,GAAA,mBAAY,AAAD,EAAE,UAAU;gBAE3B,IAAI,EAAE,CAAC,QAAQ,CAAC;oBACZ,MAAM,WAAW,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,QAAQ,IAAI,CAAC,CAAC,OAAS,KAAK,OAAO,CAAC,KAAK,KAAK;oBAChF,IAAI,UACA,CAAA,GAAA,mBAAY,AAAD,EAAE,UAAU;gBAE/B;YACJ;QACJ;IACJ;AACJ;;;;;6CCnCwB;AAAT,SAAS,KAAK,MAAM;IAC/B,OAAO,CAAC,MAAS,CAAA;YACb,GAAG,MAAM;YACT,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC;YACnB,OAAO,CAAC;gBACJ,IAAI,IAAI,CAAC,IAAI,GAAG;gBAChB,YAAY,IAAI,GAAG;YACvB;QACJ,CAAA;AACJ;;;;;6CCTwB;AAAT,SAAS,QAAQ,MAAM;IAClC,OAAO;QACH,GAAG,MAAM;QACT,MAAM,CAAC,0DAA0D,EAAE,kBAAkB,IAAI,CAAC;IAC9F;AACJ;;;;;6CCLwB;AAAT,SAAS,MAAM,MAAM;IAChC,OAAO,CAAC,MAAS,CAAA;YACb,GAAG,MAAM;YACT,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC;YACnB,OAAO,CAAC;gBACJ,YAAY,IAAI,GAAG;YACvB;QACJ,CAAA;AACJ;;;;;ACRA;AACA;;AAEe,MAAM,aAAa,CAAA,GAAA,yBAAS,AAAD;IACtC,YAAY,GAAG,CAAE;QACb,KAAK,CAAC;QACN,IAAI,CAAC,IAAI,GAAG;QAEZ,IAAI,CAAC,CAAA,GAAA,eAAQ,AAAD,GACR,IAAI,CAAC,IAAI;IAEjB;IAEA,OAAO;QACH,MAAM,EACF,KAAK,EACL,WAAW,EACX,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,EAC/C,GAAG,IAAI,CAAC,GAAG;QAEZ,MAAM,YAAY,SAAS;YACvB,IAAI,CAAC,IAAI,GAAG;QAChB;QAEA,IAAI,QAAQ;QACZ,MAAM,SAAS,CAAA,GAAA,eAAQ,AAAD,EAAE,gBAAgB,eAAe,EAAE;QACzD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,IAAM,aAAa;QAE1C,SAAS;YACL,IAAK,IAAI,QAAQ,GAAG,QAAQ,OAAO,MAAM,EAAE,QAAS;gBAChD,MAAM,OAAO,MAAM,CAAC,MAAM;gBAC1B,MAAM,QAAQ,MAAM,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC;gBACxC,MAAM,YAAY,OAAO,UAAU,WAAW,MAAM,OAAO,CAAC,KAAK;gBACjE,IAAI,KAAK,SAAS,KAAK,WACnB,KAAK,SAAS,GAAG;YAEzB;YACA,QAAQ,WAAW,MAAM,YAAY,cAAc;QACvD;QAEA;IACJ;AACJ;kBAvCqB;;;;;ACHrB;AAYA;;AACA;;AACA;;AAEe,MAAM,iBAAiB,CAAA,GAAA,yBAAS,AAAD;IAC1C,YAAY,GAAG,CAAE;QACb,KAAK,CAAC;QACN,IAAI,CAAC,IAAI,GAAG;QACZ,IAAI,CAAC,MAAM,GAAG;QACd,IAAI,CAAC,YAAY,GAAG,IAAM;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ;QAE7B,IAAI,YAAY;QAChB,IAAI,EAAE,CAAC,oBAAoB;YACvB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACf,MAAM,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,0BAA0B;YACjE,IAAI,OAAO,UAAU,WAAW;YAChC,IAAI,UAAU,WAAW;gBACrB,YAAY;gBACZ,IAAI,CAAC,WAAW,CAAC,QAAQ,cAAc,YAAY,IAAI,CAAC,GAAG;YAC/D;QACJ;IACJ;IAEA,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG;IACvC;IAEA,IAAI,IAAI,GAAG,EAAE;QACT,IAAI,CAAC,MAAM,CAAC;IAChB;IAEA,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE;IACpD;IAEA,IAAI,aAAa;QACb,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;QAC9B,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU;IAC/C;IAEA,IAAI,OAAO;QACP,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;QAC9B,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI;IACzC;IAEA,MAAM,GAAG,EAAE,KAAK,EAAE;QACd,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ;QACvC,IAAI,OAAO,QAAQ,UACf,OAAO,CAAA,GAAA,gBAAS,AAAD,EAAE,WAAW;QAEhC,OAAO,CAAA,GAAA,eAAQ,AAAD,EAAE,WAAW,KAAK;IACpC;IAEA,SAAS;QACL,MAAM,EACF,QAAQ,EAAE,QAAQ,EAAE,EACpB,UAAU,EAAE,SAAS,EAAE,EAC1B,GAAG,IAAI,CAAC,GAAG;QAEZ,UAAU,SAAS,GAAG;QACtB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QAE7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,UAAU;QACrD,UAAU,SAAS,GAAG,IAAI,CAAC,UAAU,CAChC,GAAG,CAAC,CAAC,KAAK,QACP,IAAI,IAAI,CACH,KAAK,CAAC,SACN,MAAM,CAAC,CAAC,OAAS,KAAK,IAAI,IAC1B,GAAG,CACA,CAAC,OACG,CAAC,2CAA2C,EAAE,MAAM;gCAChD,EAAE,SAAS,MAAM,GAAG,CAAA,GAAA,aAAM,AAAD,EAAE,QAAQ,KAAK;kCACtC,CAAC,EAEd,IAAI,CAAC,KAEb,IAAI,CAAC;QACV,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,UAAU;IACxD;IAEA,MAAM,OAAO,GAAG,EAAE,YAAY,CAAC,CAAC,EAAE;QAC9B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG;QACzC,MAAM,iBAAiB;YAAE,GAAG,OAAO,QAAQ;YAAE,GAAG,SAAS;YAAE;QAAI;QAC/D,MAAM,SAAS,MAAM,IAAI,CAAC,IAAI,CAAC;QAC/B,IAAI,UAAU,IAAI,EACd,OAAO,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,mBAAmB,EAAE,EAAE,UAAU,IAAI,EAAE;QAErE,OAAO;IACX;IAEA,YAAY,IAAI,EAAE,GAAG,EAAE;QACnB,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG;QAC5C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG;QAE3B,MAAM,YAAY,CAAA,GAAA,oBAAa,AAAD,EAAE;QAChC,UAAU,OAAO,GAAG;QACpB,UAAU,IAAI,GAAG;QACjB,UAAU,GAAG,GAAG;QAChB,UAAU,KAAK,GAAG,OAAO,QAAQ,CAAC,IAAI,IAAI;QAC1C,UAAU,KAAK,CAAC,IAAI,GAAG;QACvB,UAAU,MAAM,GAAG;YACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM;QACxD;QAEA,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY;QACxC,OAAO,MAAM,GAAG;QAChB,CAAA,GAAA,aAAM,AAAD,EAAE;QACP,CAAA,GAAA,aAAM,AAAD,EAAE,QAAQ;QACf,SAAS,MAAM,GAAG;QAClB,IAAI,CAAC,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,aAAa,IAAM,IAAI,CAAC,MAAM;IAC5E;IAEA,MAAM,KAAK,cAAc,EAAE;QACvB,MAAM,EACF,MAAM,EACN,UAAU,EAAE,SAAS,EAAE,EAC1B,GAAG,IAAI,CAAC,GAAG;QAEZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO;QAC5B,CAAA,GAAA,+BAAS,AAAD,EAAE,gBAAgB,CAAA,GAAA,sBAAM,AAAD,EAAE,QAAQ;QACzC,IAAI,CAAC,eAAe,GAAG,EAAE;QACzB,IAAI,CAAC,MAAM,GAAG;QACd,IAAI,CAAC,KAAK,CAAC,eAAe,KAAK;QAE/B,OAAO,MAAM,eAAe,GAAG,EAC1B,IAAI,CAAC,CAAC,WAAa,SAAS,WAAW,IACvC,IAAI,CAAC,CAAC;YACH,MAAM,UAAU,IAAI,YAAY,eAAe,QAAQ;YACvD,MAAM,OAAO,QAAQ,MAAM,CAAC;YAC5B,OAAQ,eAAe,IAAI,IAAI,CAAA,GAAA,aAAM,AAAD,EAAE,eAAe,GAAG;gBACpD,KAAK;oBAAO;wBACR,MAAM,MAAM,CAAA,GAAA,eAAQ,AAAD,EAAE;wBACrB,MAAM,SAAS,eAAe,SAAS,CAAC;wBACxC,OAAO,CAAA,GAAA,gBAAS,AAAD,EAAE;oBACrB;gBACA,KAAK;oBAAO;wBACR,MAAM,MAAM,CAAA,GAAA,eAAQ,AAAD,EAAE;wBACrB,MAAM,SAAS,eAAe,SAAS,CAAC;wBACxC,OAAO,CAAA,GAAA,gBAAS,AAAD,EAAE;oBACrB;gBACA,KAAK;oBAAO;wBACR,MAAM,SAAS,eAAe,SAAS,CAAC;wBACxC,OAAO,CAAA,GAAA,gBAAS,AAAD,EAAE;oBACrB;gBACA;oBACI,OAAO,eAAe,GAAG;YACjC;QACJ,GACC,IAAI,CAAC,CAAC;YACH,UAAU,SAAS,GAAG;YACtB,IAAI,IAAI,CAAC,GAAG,KAAK,QAAQ,OAAO;YAChC,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG;YAC5B,IAAI,CAAC,WAAW,CAAC,YAAY;YAC7B,OAAO;QACX,GACC,KAAK,CAAC,CAAC;YACJ,UAAU,SAAS,GAAG;YACtB,OAAO,IAAI,GAAG;YACd,MAAM;QACV;IACR;AACJ;kBA9JqB;;;;;AChBrB;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEe,MAAM;IACjB,YAAY,GAAG,CAAE;QACb,IAAI,CAAC,aAAa,GAAG,EAAE;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;QAEjC,CAAA,GAAA,yBAAS,AAAD,EAAE,KAAK,IAAI;QACnB,CAAA,GAAA,yBAAS,AAAD,EAAE,KAAK,IAAI;QACnB,CAAA,GAAA,wBAAQ,AAAD,EAAE,KAAK,IAAI;QAClB,CAAA,GAAA,0BAAU,AAAD,EAAE,KAAK,IAAI;QACpB,CAAA,GAAA,2BAAW,AAAD,EAAE,KAAK,IAAI;QACrB,CAAA,GAAA,wBAAQ,AAAD,EAAE,KAAK,IAAI;QAClB,CAAA,GAAA,4BAAY,AAAD,EAAE,KAAK,IAAI;QACtB,CAAA,GAAA,0BAAU,AAAD,EAAE,KAAK,IAAI;QACpB,CAAA,GAAA,2BAAW,AAAD,EAAE,KAAK,IAAI;IACzB;IAEA,MAAM,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,EAAE;QACvC,IAAI,MAAM,OAAO,CAAC,OACd,OAAO,KAAK,GAAG,CAAC,CAAC,OAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,MAAM,UAAU;QAGjE,OAAO,gBAAgB,CAAC,MAAM,UAAU;QACxC,MAAM,UAAU,IAAM,OAAO,mBAAmB,CAAC,MAAM,UAAU;QACjE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QACxB,OAAO;IACX;IAEA,MAAM,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE;QAClC,IAAI,YACA,IAAI,CAAC,KAAK,CAAC,QAAQ,cAAc;QAErC,IAAI,YACA,IAAI,CAAC,KAAK,CAAC,QAAQ,cAAc;IAEzC;IAEA,OAAO,YAAY,EAAE;QACjB,MAAM,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QACzC,IAAI,QAAQ,IAAI;YACZ;YACA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO;QACrC;IACJ;IAEA,UAAU;QACN,IAAK,IAAI,QAAQ,GAAG,QAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QACnD,IAAI,CAAC,aAAa,CAAC,MAAM;IAEjC;AACJ;kBAlDqB;;;;;6CCRG;AAFxB;AAEe,SAAS,UAAU,GAAG,EAAE,MAAM;IACzC,MAAM,EACF,WAAW,EACX,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,EAChC,GAAG;IAEJ,OAAO,KAAK,CAAC,UAAU;QAAC;QAAS;KAAc,EAAE,CAAC;QAC9C,IAAI,CAAA,GAAA,uBAAgB,AAAD,EAAE,OAAO,UAAU;YAClC,IAAI,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,KAAK;YACvC,IAAI,OAAO,GAAG;YACd,IAAI,IAAI,CAAC,SAAS;QACtB,OAAO;YACH,IAAI,OAAO,GAAG;YACd,IAAI,OAAO,GAAG;YACd,IAAI,IAAI,CAAC,QAAQ;QACrB;IACJ;IAEA,IAAI,aAAa,EAAE;IACnB,OAAO,KAAK,CAAC,QAAQ,SAAS,CAAC;QAC3B,MAAM,MAAM,KAAK,GAAG;QACpB,WAAW,IAAI,CAAC;QAChB,MAAM,EAAE,iBAAiB,EAAE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,GAAG;QAErF,MAAM,SAAS,WAAW,MAAM,CAAC,CAAC,IAAM,MAAM,KAAK;QACnD,OAAQ,OAAO,MAAM;YACjB,KAAK;gBACD,IAAI,IAAI,CAAC,SAAS;gBAElB,IAAI,GAAA,eAAQ,EACR;oBAAA,IAAI,CAAC,IAAI,MAAM,IAAI,mBACf,IAAI,MAAM;gBACd,OAEA,IAAI,MAAM;gBAEd,aAAa;gBACb;YACJ,KAAK;gBACD,IAAI,IAAI,CAAC,YAAY;gBAErB,IAAI,GAAA,eAAQ,EACR;oBAAA,IAAI,CAAC,IAAI,MAAM,IAAI,qBACf,IAAI,MAAM;gBACd,OAEA,IAAI,oBACA,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU;gBAGxC,aAAa,EAAE;gBACf;YACJ;gBACI,aAAa,EAAE;QACvB;IACJ;AACJ;;;;;6CCxDwB;AAFxB;AAEe,SAAS,UAAU,GAAG,EAAE,MAAM;IACzC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,QAAQ;IAEhC,OAAO,KAAK,CACR,SACA,CAAC;QACG,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS;QAClB,IAAI,IAAI,CAAC,SAAS,MAAM;IAC5B,GACA,CAAC;QACG,CAAA,GAAA,kBAAW,AAAD,EAAE,SAAS;QACrB,IAAI,IAAI,CAAC,SAAS,OAAO;IAC7B;AAER;;;;;6CChBwB;AAAT,SAAS,SAAS,GAAG,EAAE,MAAM;IACxC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,QAAQ;IAEhC,OAAO,KAAK,CAAC,SAAS,aAAa,CAAC;QAChC,IAAI,IAAI,CAAC,aAAa;IAC1B;AACJ;;;;;6CCJwB;AAFxB;AAEe,SAAS,WAAW,GAAG,EAAE,MAAM;IAC1C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG;IAEhC,IAAI,EAAE,CAAC,UAAU;QACb,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG;QAChC,IAAI,IAAI,KAAK,KAAK,cAAc,OAAO,QAAQ,EAC3C,IAAI,QAAQ;QAEhB,IAAI,WAAW,GAAG;QAClB,OAAO,IAAI,GAAG;IAClB;IAEA,MAAM,WAAW,CAAA,GAAA,eAAQ,AAAD,EAAE,IAAM,IAAI,IAAI,CAAC,WAAW,YAAY,WAAW;IAC3E,OAAO,KAAK,CAAC,QAAQ;QAAC;QAAqB;KAAS,EAAE,IAAM;IAC5D,IAAI,UAAU,OAAO,WAAW,IAAI,OAAO,WAAW,CAAC,QAAQ,EAC3D,OAAO,KAAK,CAAC,OAAO,WAAW,EAAE,UAAU,IAAM;AAEzD;;;;;6CCWwB;AA9BxB;AACA;AAEA,SAAS,cAAc,EAAE,EAAE,EAAE;IACzB,OAAO,AAAC,KAAK,KAAK,CAAC,IAAI,MAAM,MAAO,KAAK,EAAE;AAC/C;AAEA,SAAS,kBAAkB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI;IACjD,IAAI,KAAK,SAAS;IAClB,IAAI,KAAK,OAAO;IAChB,IAAI,SAAS;IAEb,IAAI,KAAK,GAAG,CAAC,MAAM,KAAK,KAAK,GAAG,CAAC,MAAM,GACnC,OAAO;IAGX,IAAI,QAAQ,cAAc,IAAI;IAC9B,IAAI,SAAS,OAAO,QAAQ,IACxB,SAAS;SACN,IAAI,SAAS,MAAM,QAAQ,KAC9B,SAAS;SACN,IAAI,SAAS,QAAQ,QAAQ,KAChC,SAAS;SACN,IAAI,AAAC,SAAS,OAAO,SAAS,OAAS,SAAS,QAAQ,QAAQ,MACnE,SAAS;IAGb,OAAO;AACX;AAEe,SAAS,YAAY,GAAG,EAAE,MAAM;IAC3C,IAAI,CAAA,GAAA,eAAQ,AAAD,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE;QAChC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,QAAQ;QAE1C,IAAI,cAAc;QAClB,IAAI,YAAY;QAChB,IAAI,SAAS;QACb,IAAI,SAAS;QACb,IAAI,YAAY;QAEhB,MAAM,eAAe,CAAC;YAClB,IAAI,MAAM,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,MAAM,EAAE;gBAC3C,IAAI,gBAAgB,WAChB,CAAA,GAAA,wBAAc,AAAD,EAAE,KAAK;gBAGxB,YAAY;gBACZ,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC,EAAE;gBACzC,SAAS;gBACT,SAAS;gBACT,YAAY,IAAI,WAAW;YAC/B;QACJ;QAEA,MAAM,cAAc,CAAC;YACjB,IAAI,MAAM,OAAO,CAAC,MAAM,KAAK,KAAK,aAAa,IAAI,QAAQ,EAAE;gBACzD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC,EAAE;gBACzC,MAAM,YAAY,kBAAkB,QAAQ,QAAQ,OAAO;gBAC3D,MAAM,eAAe;oBAAC;oBAAG;iBAAE,CAAC,QAAQ,CAAC;gBACrC,MAAM,aAAa;oBAAC;oBAAG;iBAAE,CAAC,QAAQ,CAAC;gBACnC,MAAM,UAAU,AAAC,gBAAgB,CAAC,IAAI,QAAQ,IAAM,cAAc,IAAI,QAAQ;gBAC9E,IAAI,SAAS;oBACT,MAAM,SAAS,CAAA,GAAA,YAAK,AAAD,EAAE,AAAC,CAAA,QAAQ,MAAK,IAAK,IAAI,KAAK,EAAE,IAAI;oBACvD,MAAM,SAAS,CAAA,GAAA,YAAK,AAAD,EAAE,AAAC,CAAA,QAAQ,MAAK,IAAK,IAAI,MAAM,EAAE,IAAI;oBACxD,MAAM,QAAQ,IAAI,QAAQ,GAAG,SAAS;oBACtC,MAAM,mBAAmB,gBAAgB,SAAS,IAAI,WAAW,CAAC,gBAAgB,GAAG;oBACrF,MAAM,cAAc,CAAA,GAAA,YAAK,AAAD,EAAE,YAAY,IAAI,QAAQ,GAAG,QAAQ,kBAAkB,GAAG,IAAI,QAAQ;oBAC9F,IAAI,IAAI,GAAG;oBACX,IAAI,IAAI,CAAC,UAAU,UAAU,CAAA,GAAA,YAAK,AAAD,EAAE,cAAc,IAAI,QAAQ,EAAE,GAAG,IAAI;oBACtE,IAAI,MAAM,CAAC,IAAI,GAAG,GAAG,CAAA,GAAA,mBAAY,AAAD,EAAE,aAAa,GAAG,EAAE,CAAA,GAAA,mBAAY,AAAD,EAAE,IAAI,QAAQ,GAAG;gBACpF;YACJ;QACJ;QAEA,MAAM,aAAa;YACf,IAAI,WAAW;gBACX,SAAS;gBACT,SAAS;gBACT,YAAY;gBACZ,YAAY;gBACZ,cAAc;YAClB;QACJ;QAEA,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE;YACpB,OAAO,KAAK,CAAC,QAAQ,cAAc,CAAC;gBAChC,cAAc;gBACd,aAAa;YACjB;YACA,OAAO,KAAK,CAAC,QAAQ,aAAa;QACtC;QAEA,OAAO,KAAK,CAAC,WAAW,cAAc,CAAC;YACnC,cAAc;YACd,aAAa;QACjB;QAEA,OAAO,KAAK,CAAC,WAAW,aAAa;QACrC,OAAO,KAAK,CAAC,UAAU,YAAY;IACvC;AACJ;;;;;6CClGwB;AAFxB;AAEe,SAAS,SAAS,GAAG,EAAE,MAAM;IACxC,MAAM,EACF,MAAM,EACN,WAAW,EACX,UAAU,EAAE,UAAU,EAAE,EAC3B,GAAG;IAEJ,MAAM,WAAW,CAAA,GAAA,eAAQ,AAAD,EAAE;QACtB,IAAI,IAAI,CAAC,QAAQ,CAAA,GAAA,mBAAY,AAAD,EAAE,YAAY,YAAY,UAAU;IACpE,GAAG,YAAY,WAAW;IAE1B,OAAO,KAAK,CAAC,QAAQ,UAAU,IAAM;IAErC,IAAI,EAAE,CAAC,QAAQ,CAAC;QACZ,IAAI,OAAO,QAAQ,EACf,IAAI,IAAI,GAAG,CAAC;IAEpB;AACJ;;;;;6CCpBwB;AAAT,SAAS,aAAa,GAAG,EAAE,MAAM;IAC5C,OAAO,KAAK,CAAC,UAAU,aAAa,CAAC;QACjC,IAAI,IAAI,CAAC,sBAAsB;IACnC;IAEA,OAAO,KAAK,CAAC,UAAU,WAAW,CAAC;QAC/B,IAAI,IAAI,CAAC,oBAAoB;IACjC;AACJ;;;;;6CCRwB;AAAT,SAAS,WAAW,GAAG;IAClC,IAAI,IAAI,WAAW,CAAC,OAAO,EAAE;QACzB,IAAI,QAAQ;QAEX,CAAA,SAAS;YACN,IAAI,IAAI,OAAO,EACX,IAAI,IAAI,CAAC;YAGb,IAAI,CAAC,IAAI,SAAS,EACd,QAAQ,sBAAsB;QAEtC,CAAA;QAEA,IAAI,EAAE,CAAC,WAAW;YACd,qBAAqB;QACzB;IACJ;AACJ;;;;;6CClBwB;AAAT,SAAS,YAAY,GAAG,EAAE,MAAM;AAC3C,EAAE;AACN;;;;;ACFA;AAEe,MAAM;IACjB,YAAY,GAAG,CAAE;QACb,IAAI,CAAC,GAAG,GAAG;QACX,IAAI,CAAC,IAAI,GAAG,CAAC;QAEb,IAAI,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,CAAA,GAAA,eAAQ,AAAD,GAC7B,IAAI,CAAC,IAAI;IAEjB;IAEA,OAAO;QACH,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,GAAG;QAEvC,IAAI,CAAC,GAAG,CAAC,UAAU;YACf,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,EACtB,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG;QAEjC;QAEA,IAAI,CAAC,GAAG,CAAC,SAAS;YACd,IAAI,CAAC,GAAG,CAAC,MAAM;QACnB;QAEA,IAAI,CAAC,GAAG,CAAC,aAAa;YAClB,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,SAAS;QAC7C;QAEA,IAAI,CAAC,GAAG,CAAC,WAAW;YAChB,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,YAAY,WAAW;QAC9C;QAEA,IAAI,CAAC,GAAG,CAAC,cAAc;YACnB,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,YAAY,SAAS;QAC5C;QAEA,IAAI,CAAC,GAAG,CAAC,aAAa;YAClB,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,YAAY,WAAW;QAC9C;QAEA,MAAM,UAAU,WAAW,CAAC;YACxB,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;gBAClB,MAAM,MAAM,SAAS,aAAa,CAAC,OAAO,CAAC,WAAW;gBACtD,MAAM,WAAW,SAAS,aAAa,CAAC,YAAY,CAAC;gBACrD,IACI,QAAQ,WACR,QAAQ,cACR,aAAa,MACb,aAAa,UACb,CAAC,MAAM,MAAM,IACb,CAAC,MAAM,OAAO,IACd,CAAC,MAAM,OAAO,IACd,CAAC,MAAM,QAAQ,EACjB;oBACE,MAAM,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC;oBACpC,IAAI,QAAQ;wBACR,MAAM,cAAc;wBACpB,IAAK,IAAI,QAAQ,GAAG,QAAQ,OAAO,MAAM,EAAE,QACvC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;wBAEjC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU;oBAC5B;gBACJ;YACJ;YACA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW;QAC7B;IACJ;IAEA,IAAI,GAAG,EAAE,KAAK,EAAE;QACZ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EACd,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;aAEpB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG;YAAC;SAAM;QAE5B,OAAO,IAAI;IACf;IAEA,OAAO,GAAG,EAAE,KAAK,EAAE;QACf,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAChB,MAAM,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACrC,IAAI,UAAU,IACV,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;QAErC;QACA,OAAO,IAAI;IACf;AACJ;kBArFqB;;;;;ACFrB;;AAEe,MAAM,cAAc,CAAA,GAAA,yBAAS,AAAD;IACvC,YAAY,GAAG,CAAE;QACb,KAAK,CAAC;QAEN,MAAM,EACF,MAAM,EACN,UAAU,EAAE,MAAM,EAAE,EACvB,GAAG;QAEJ,IAAI,CAAC,IAAI,GAAG;QACZ,IAAI,CAAC,OAAO,GAAG;QAEf,IAAK,IAAI,QAAQ,GAAG,QAAQ,OAAO,MAAM,CAAC,MAAM,EAAE,QAC9C,IAAI,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,MAAM;IAErC;AACJ;kBAhBqB;;;;;ACFrB;AACA;;AAEe,MAAM,gBAAgB,CAAA,GAAA,yBAAS,AAAD;IACzC,YAAY,GAAG,CAAE;QACb,KAAK,CAAC;QACN,IAAI,CAAC,IAAI,GAAG;QACZ,CAAA,GAAA,aAAM,AAAD,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,OAAO;IACnD;AACJ;kBANqB;;;;;ACHrB;AAEe,MAAM;IACjB,YAAY,GAAG,CAAE;QACb,IAAI,CAAC,GAAG,GAAG;QACX,IAAI,CAAC,KAAK,GAAG;IACjB;IAEA,IAAI,KAAK,GAAG,EAAE;QACV,MAAM,EACF,WAAW,EACX,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,EACtC,GAAG,IAAI,CAAC,GAAG;QAEZ,IAAI,KAAK;YACL,aAAa,SAAS,GAAG,eAAe,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK;YACrE,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS;YAClB,aAAa,IAAI,CAAC,KAAK;YACvB,IAAI,CAAC,KAAK,GAAG,WAAW;gBACpB,aAAa,SAAS,GAAG;gBACzB,CAAA,GAAA,kBAAW,AAAD,EAAE,SAAS;YACzB,GAAG,YAAY,WAAW;QAC9B,OACI,CAAA,GAAA,kBAAW,AAAD,EAAE,SAAS;IAE7B;AACJ;kBAxBqB;;;;;ACFrB;AACA;;AAEe,MAAM,aAAa,CAAA,GAAA,yBAAS,AAAD;IACtC,YAAY,GAAG,CAAE;QACb,KAAK,CAAC;QAEN,IAAI,CAAC,IAAI,GAAG;QACZ,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG;QAEpC,MAAM,SAAS,CAAA,GAAA,aAAM,AAAD,EAAE,SAAS,MAAM,EAAE,MAAM,KAAK;QAClD,MAAM,SAAS,CAAA,GAAA,aAAM,AAAD,EAAE,SAAS,MAAM,EAAE,MAAM,KAAK;QAElD,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,WAAW;QAE5B,IAAI,EAAE,CAAC,WAAW;YACd,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,WAAW;YAC5B,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ,WAAW;QAChC;QAEA,OAAO,KAAK,CAAC,SAAS,MAAM,EAAE,SAAS,IAAM,IAAI,IAAI;IACzD;AACJ;kBAnBqB;;;;;ACHrB;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEe,MAAM;IACjB,YAAY,GAAG,CAAE;QACb,MAAM,QAAQ;qBACV,CAAA,GAAA,0BAAO,AAAD;mBACN,CAAA,GAAA,wBAAK,AAAD;kBACJ,CAAA,GAAA,uBAAI,AAAD;mBACH,CAAA,GAAA,wBAAK,AAAD;mBACJ,CAAA,GAAA,wBAAK,AAAD;oBACJ,CAAA,GAAA,yBAAM,AAAD;yBACL,CAAA,GAAA,8BAAW,AAAD;wBACV,CAAA,GAAA,6BAAU,AAAD;qBACT,CAAA,GAAA,0BAAO,AAAD;iBACN,CAAA,GAAA,sBAAG,AAAD;uBACF,CAAA,GAAA,4BAAS,AAAD;wBACR,CAAA,GAAA,6BAAU,AAAD;0BACT,CAAA,GAAA,+BAAY,AAAD;yBACX,CAAA,GAAA,8BAAW,AAAD;oBACV,CAAA,GAAA,yBAAM,AAAD;kBACL,CAAA,GAAA,uBAAI,AAAD;kBACH,CAAA,GAAA,uBAAI,AAAD;oBACH,CAAA,GAAA,yBAAM,AAAD;2BACL,CAAA,GAAA,gCAAa,AAAD;0BACZ,CAAA,GAAA,+BAAY,AAAD;8BACX,CAAA,GAAA,mCAAgB,AAAD;6BACf,CAAA,GAAA,kCAAe,AAAD;sBACd,CAAA,GAAA,2BAAQ,AAAD;uBACP,CAAA,GAAA,4BAAS,AAAD;mBACR,CAAA,GAAA,wBAAK,AAAD;mBACJ,CAAA,GAAA,wBAAK,AAAD;qBACJ,CAAA,GAAA,0BAAO,AAAD;YACN,GAAG,IAAI,MAAM,CAAC,KAAK;QACvB;QAEA,IAAK,MAAM,OAAO,MACd,CAAA,GAAA,UAAG,AAAD,EAAE,IAAI,EAAE,KAAK;YACX,KAAK,IAAM,CAAA,GAAA,cAAO,AAAD,EAAE,KAAK,KAAK,CAAC,IAAI;QACtC;IAER;AACJ;kBAvCqB;;;AC7BrB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;;;ACAjB;;AACA;;AACA;;AACA;;AACA;;AACA;AAgBe,MAAM,gBAAgB,CAAA,GAAA,yBAAS,AAAD;IACzC,YAAY,GAAG,CAAE;QACb,KAAK,CAAC;QAEN,MAAM,EACF,MAAM,EACN,QAAQ,EACR,UAAU,EAAE,QAAQ,EAAE,EACzB,GAAG;QAEJ,IAAI,CAAC,IAAI,GAAG;QACZ,IAAI,CAAC,OAAO,GAAG;QAEf,IAAI,CAAC,EAAE,GAAG;QACV,IAAI,CAAC,MAAM,GAAG;QACd,IAAI,CAAC,KAAK,GAAG,IAAI;QACjB,IAAI,CAAC,MAAM,GAAG;eAAI,IAAI,CAAC,OAAO;eAAK,OAAO,QAAQ;SAAC;QAEnD,IAAI,OAAO,OAAO,EAAE;YAChB,IAAI,CAAC,MAAM;YACX,IAAI,CAAC,MAAM;YAEX,IAAI,EAAE,CAAC,QAAQ;gBACX,IAAI,IAAI,CAAC,IAAI,EAAE;oBACX,IAAI,CAAC,IAAI,GAAG;oBACZ,IAAI,CAAC,MAAM;gBACf;YACJ;YAEA,IAAI,EAAE,CAAC,SAAS,CAAC;gBACb,MAAM,YAAY,CAAA,GAAA,uBAAgB,AAAD,EAAE,OAAO,SAAS,OAAO;gBAC1D,MAAM,YAAY,CAAA,GAAA,uBAAgB,AAAD,EAAE,OAAO,IAAI,CAAC,OAAO;gBACtD,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW;oBACvC,IAAI,CAAC,IAAI,GAAG;oBACZ,IAAI,CAAC,MAAM;gBACf;YACJ;YAEA,IAAI,EAAE,CAAC,UAAU,IAAM,IAAI,CAAC,MAAM;QACtC;IACJ;IAEA,IAAI,UAAU;QACV,MAAM,SAAS,EAAE;QACjB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG;QAE3B,IAAI,OAAO,YAAY,EACnB,OAAO,IAAI,CAAC,CAAA,GAAA,4BAAY,AAAD,EAAE,IAAI,CAAC,GAAG;QAGrC,IAAI,OAAO,WAAW,EAClB,OAAO,IAAI,CAAC,CAAA,GAAA,2BAAW,AAAD,EAAE,IAAI,CAAC,GAAG;QAGpC,IAAI,OAAO,IAAI,EACX,OAAO,IAAI,CAAC,CAAA,GAAA,oBAAI,AAAD,EAAE,IAAI,CAAC,GAAG;QAG7B,IAAI,OAAO,cAAc,EACrB,OAAO,IAAI,CAAC,CAAA,GAAA,8BAAc,AAAD,EAAE,IAAI,CAAC,GAAG;QAGvC,OAAO;IACX;IAEA,SAAS,QAAQ,EAAE,SAAS,IAAI,CAAC,MAAM,EAAE;QACrC,IAAK,IAAI,QAAQ,GAAG,QAAQ,OAAO,MAAM,EAAE,QAAS;YAChD,MAAM,OAAO,MAAM,CAAC,MAAM;YAC1B,SAAS;YACT,IAAI,KAAK,QAAQ,EAAE,QACf,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,KAAK,QAAQ;QAExD;IACJ;IAEA,MAAM,MAAM,EAAE;QACV,OAAO,OAAO,CAAC,OAAO,GAAG,OAAO,IAAI;QACpC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACX,KAAK,OAAO,GAAG,SAAS;YACxB,IAAI,KAAK,OAAO,IAAI,KAAK,KAAK,EAC1B,CAAA,GAAA,mBAAY,AAAD,EAAE,KAAK,KAAK,EAAE;QAEjC,GAAG,OAAO,OAAO;QACjB,IAAI,CAAC,MAAM,CAAC,OAAO,QAAQ;IAC/B;IAEA,OAAO,SAAS,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;QACtD,IAAK,IAAI,QAAQ,GAAG,QAAQ,OAAO,MAAM,EAAE,QAAS;YAChD,MAAM,OAAO,MAAM,CAAC,MAAM;YAE1B,IAAI,MAAM,MAAM;gBACZ,CAAA,GAAA,kBAAW,AAAD,EAAE,CAAC,MAAM,QAAQ,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,+BAA+B,CAAC;gBAC1F,MAAM,IAAI,CAAC,KAAK,IAAI;YACxB,OACI,KAAK,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,IAAI;YAGtC,IAAI,CAAC,KAAK,UAAU,EAAE;gBAClB,CAAA,GAAA,UAAG,AAAD,EAAE,MAAM,WAAW;oBACjB,KAAK,IAAM;gBACf;gBAEA,CAAA,GAAA,UAAG,AAAD,EAAE,MAAM,YAAY;oBAClB,KAAK,IAAM;gBACf;gBAEA,CAAA,GAAA,UAAG,AAAD,EAAE,MAAM,WAAW;oBACjB,KAAK,IAAM;gBACf;gBAEA,MAAM,UAAU,EAAE;gBAClB,CAAA,GAAA,UAAG,AAAD,EAAE,MAAM,WAAW;oBACjB,KAAK,IAAM;gBACf;gBAEA,CAAA,GAAA,UAAG,AAAD,EAAE,MAAM,cAAc;oBACpB,KAAK,IAAM;gBACf;YACJ;YAEA,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,EAAE,EAAE,MAAM,QAAQ;QACnD;QAEA,IAAI,CAAC,MAAM,GAAG;IAClB;IAEA,KAAK,OAAO,EAAE,EAAE;QACZ,IAAI,SAAS;QACb,IAAI,CAAC,QAAQ,CAAC,CAAC;YACX,IAAI,KAAK,IAAI,KAAK,MACd,SAAS;QAEjB;QACA,OAAO;IACX;IAEA,SAAS;QACL,MAAM,EACF,QAAQ,EACR,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,EACnD,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,EAClC,GAAG,IAAI,CAAC,GAAG;QAEZ,IAAI,SAAS,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE;YAC/B,MAAM,eAAe,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,SAAS;YACvD,MAAM,EAAE,MAAM,WAAW,EAAE,OAAO,YAAY,EAAE,GAAG,CAAA,GAAA,cAAO,AAAD,EAAE,SAAS,OAAO;YAC3E,MAAM,EAAE,MAAM,UAAU,EAAE,OAAO,WAAW,EAAE,GAAG,CAAA,GAAA,cAAO,AAAD,EAAE;YACzD,MAAM,cAAc,cAAc,aAAa,eAAe,IAAI,eAAe;YAEjF,MAAM,gBACF,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,GACrB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,sBACrB,AAAC,CAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAA,IAAK;YAErC,CAAA,GAAA,eAAQ,AAAD,EAAE,UAAU,UAAU,GAAG,cAAc,EAAE,CAAC;YACjD,CAAA,GAAA,eAAQ,AAAD,EAAE,UAAU,SAAS,GAAG,aAAa,EAAE,CAAC;YAE/C,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAA,GAAA,eAAQ,AAAD,GAAG;YAEnC,IAAI,cAAc,eAAe,aAAa;gBAC1C,CAAA,GAAA,eAAQ,AAAD,EAAE,UAAU,QAAQ;gBAC3B,CAAA,GAAA,eAAQ,AAAD,EAAE,UAAU,SAAS;YAChC,OAAO;gBACH,CAAA,GAAA,eAAQ,AAAD,EAAE,UAAU,QAAQ,GAAG,YAAY,EAAE,CAAC;gBAC7C,CAAA,GAAA,eAAQ,AAAD,EAAE,UAAU,SAAS;YAChC;QACJ;IACJ;IAEA,WAAW,IAAI,EAAE;QACb,IAAK,IAAI,QAAQ,GAAG,QAAQ,KAAK,OAAO,CAAC,MAAM,EAAE,QAC7C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,MAAM;QAE9C,KAAK,OAAO,CAAC,MAAM,GAAG;IAC1B;IAEA,OAAO,IAAI,EAAE;QACT,MAAM,OAAO,IAAI,CAAC,IAAI,CAAC;QACvB,CAAA,GAAA,kBAAW,AAAD,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK,kBAAkB,CAAC;QACzD,MAAM,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC;QACnC,KAAK,OAAO,CAAC,MAAM,CAAC,OAAO;QAC3B,IAAI,CAAC,UAAU,CAAC;QAChB,IAAI,KAAK,KAAK,EAAE,CAAA,GAAA,aAAM,AAAD,EAAE,KAAK,KAAK;QACjC,IAAI,CAAC,MAAM;IACf;IAEA,OAAO,MAAM,EAAE;QACX,MAAM,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI;QAElC,IAAI,MAAM;YACN,IAAI,CAAC,UAAU,CAAC;YAChB,OAAO,MAAM,CAAC,MAAM;YACpB,IAAI,CAAC,MAAM;YACX,IAAI,CAAC,SAAS,CAAC,MAAM;YACrB,IAAI,CAAC,MAAM;YACX,OAAO;QACX,OACI,OAAO,IAAI,CAAC,GAAG,CAAC;IAExB;IAEA,IAAI,IAAI,EAAE,SAAS,IAAI,CAAC,MAAM,EAAE;QAC5B,OAAO,IAAI,CAAC;QACZ,IAAI,CAAC,MAAM;QACX,IAAI,CAAC,SAAS,CAAC;QACf,IAAI,CAAC,MAAM;QACX,OAAO;IACX;IAEA,YAAY,IAAI,EAAE;QACd,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,GAAG;QACnC,MAAM,SAAS,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO;QAE1C,MAAM,EACF,KAAK,EACL,OAAO,EAAE,SAAS,EAAE,EACpB,aAAa,EAAE,mBAAmB,EAAE,EACvC,GAAG,IAAI,CAAC,GAAG;QAEZ,MAAM,QAAQ,CAAA,GAAA,oBAAa,AAAD,EAAE;QAC5B,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO,UAAU,GAAG,oBAAoB,EAAE,CAAC;QACpD,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO;QAChB,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO;QAChB,MAAM,QAAQ,CAAA,GAAA,aAAM,AAAD,EAAE,OAAO;QAC5B,MAAM,QAAQ,CAAA,GAAA,oBAAa,AAAD,EAAE;QAC5B,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO;QAChB,CAAA,GAAA,aAAM,AAAD,EAAE,OAAO;QACd,CAAA,GAAA,aAAM,AAAD,EAAE,OAAO;QACd,CAAA,GAAA,aAAM,AAAD,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI;QAC/B,MAAM,QAAQ,MAAM,OAAO,SAAS,IAAM,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ;QACnE,KAAK,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QAC1B,CAAA,GAAA,aAAM,AAAD,EAAE,QAAQ;IACnB;IAEA,UAAU,IAAI,EAAE,WAAW,KAAK,EAAE;QAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,GAAG;QACnC,MAAM,SAAS,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO;QAC1C,MAAM,UAAU,KAAK,KAAK;QAE1B,IAAI,OAAO;QAEX,IAAI,CAAA,GAAA,UAAG,AAAD,EAAE,MAAM,WACV,OAAO;QAGX,IAAI,CAAA,GAAA,UAAG,AAAD,EAAE,MAAM,UACV,OAAO;QAGX,IAAI,CAAA,GAAA,UAAG,AAAD,EAAE,MAAM,YACV,OAAO;QAGX,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,GAAG;QAE9C,MAAM,QAAQ,CAAA,GAAA,oBAAa,AAAD,EAAE;QAC5B,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO;QAChB,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO,UAAU,GAAG,YAAY,mBAAmB,CAAC,EAAE,CAAC;QAEhE,MAAM,OAAO,CAAC,IAAI,GAAG,KAAK,IAAI,IAAI;QAClC,MAAM,OAAO,CAAC,KAAK,GAAG,KAAK,KAAK,IAAI;QAEpC,MAAM,QAAQ,CAAA,GAAA,aAAM,AAAD,EAAE,OAAO;QAC5B,MAAM,SAAS,CAAA,GAAA,aAAM,AAAD,EAAE,OAAO;QAE7B,MAAM,QAAQ,CAAA,GAAA,oBAAa,AAAD,EAAE;QAC5B,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO;QAEhB,OAAQ;YACJ,KAAK;YACL,KAAK;YACL,KAAK;gBACD,CAAA,GAAA,aAAM,AAAD,EAAE,OAAO,KAAK,IAAI,IAAI,MAAM,MAAM;gBACvC;YACJ,KAAK;gBACD,IAAI,KAAK,QAAQ,EAAE,QACf,CAAA,GAAA,aAAM,AAAD,EAAE,OAAO,KAAK,IAAI,IAAI,MAAM,MAAM;qBAEvC,CAAA,GAAA,aAAM,AAAD,EAAE,OAAO,MAAM,KAAK;gBAE7B;YACJ;gBACI;QACR;QAEA,CAAA,GAAA,aAAM,AAAD,EAAE,OAAO;QAEd,CAAA,GAAA,UAAG,AAAD,EAAE,MAAM,SAAS;YACf,cAAc;YACd,KAAK,IAAM;QACf;QAEA,CAAA,GAAA,UAAG,AAAD,EAAE,MAAM,QAAQ;YACd,cAAc;YACd;gBACI,OAAO,MAAM,SAAS;YAC1B;YACA,KAAI,KAAK;gBACL,MAAM,SAAS,GAAG;gBAClB,CAAA,GAAA,aAAM,AAAD,EAAE,OAAO;YAClB;QACJ;QAEA,MAAM,QAAQ,CAAA,GAAA,oBAAa,AAAD,EAAE;QAC5B,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO;QAChB,CAAA,GAAA,aAAM,AAAD,EAAE,OAAO,KAAK,IAAI,IAAI;QAC3B,CAAA,GAAA,aAAM,AAAD,EAAE,OAAO;QAEd,CAAA,GAAA,UAAG,AAAD,EAAE,MAAM,SAAS;YACf,cAAc;YACd,KAAK,IAAM;QACf;QAEA,CAAA,GAAA,UAAG,AAAD,EAAE,MAAM,QAAQ;YACd,cAAc;YACd;gBACI,OAAO,MAAM,SAAS;YAC1B;YACA,KAAI,KAAK;gBACL,MAAM,SAAS,GAAG;gBAClB,CAAA,GAAA,aAAM,AAAD,EAAE,OAAO;YAClB;QACJ;QAEA,MAAM,WAAW,CAAA,GAAA,oBAAa,AAAD,EAAE;QAC/B,CAAA,GAAA,eAAQ,AAAD,EAAE,UAAU;QACnB,CAAA,GAAA,aAAM,AAAD,EAAE,UAAU,KAAK,OAAO,IAAI;QACjC,CAAA,GAAA,aAAM,AAAD,EAAE,QAAQ;QAEf,CAAA,GAAA,UAAG,AAAD,EAAE,MAAM,YAAY;YAClB,cAAc;YACd,KAAK,IAAM;QACf;QAEA,CAAA,GAAA,UAAG,AAAD,EAAE,MAAM,WAAW;YACjB,cAAc;YACd;gBACI,OAAO,SAAS,SAAS;YAC7B;YACA,KAAI,KAAK;gBACL,SAAS,SAAS,GAAG;gBACrB,CAAA,GAAA,aAAM,AAAD,EAAE,UAAU;YACrB;QACJ;QAEA,OAAQ;YACJ,KAAK;gBAAU;oBACX,MAAM,UAAU,CAAA,GAAA,oBAAa,AAAD,EAAE;oBAC9B,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS;oBAClB,MAAM,YAAY,CAAA,GAAA,aAAM,AAAD,EAAE,SAAS,MAAM,QAAQ;oBAChD,MAAM,aAAa,CAAA,GAAA,aAAM,AAAD,EAAE,SAAS,MAAM,SAAS;oBAClD,CAAA,GAAA,eAAQ,AAAD,EAAE,KAAK,MAAM,GAAG,aAAa,WAAW,WAAW;oBAC1D,CAAA,GAAA,aAAM,AAAD,EAAE,QAAQ;oBAEf,CAAA,GAAA,UAAG,AAAD,EAAE,MAAM,WAAW;wBACjB,cAAc;wBACd,KAAK,IAAM;oBACf;oBAEA,IAAI,eAAe,KAAK,MAAM;oBAC9B,CAAA,GAAA,UAAG,AAAD,EAAE,MAAM,UAAU;wBAChB,cAAc;wBACd,KAAK,IAAM;wBACX,KAAI,KAAK;4BACL,eAAe;4BACf,IAAI,OAAO;gCACP,CAAA,GAAA,eAAQ,AAAD,EAAE,YAAY,WAAW;gCAChC,CAAA,GAAA,eAAQ,AAAD,EAAE,WAAW,WAAW;4BACnC,OAAO;gCACH,CAAA,GAAA,eAAQ,AAAD,EAAE,YAAY,WAAW;gCAChC,CAAA,GAAA,eAAQ,AAAD,EAAE,WAAW,WAAW;4BACnC;wBACJ;oBACJ;oBACA;gBACJ;YACA,KAAK;gBACD;oBACI,MAAM,SAAS,CAAA,GAAA,oBAAa,AAAD,EAAE;oBAC7B,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ;oBACjB,MAAM,SAAS,CAAA,GAAA,aAAM,AAAD,EAAE,QAAQ;oBAC9B,OAAO,KAAK,GAAG,KAAK,KAAK,CAAC,EAAE;oBAC5B,OAAO,GAAG,GAAG,KAAK,KAAK,CAAC,EAAE;oBAC1B,OAAO,GAAG,GAAG,KAAK,KAAK,CAAC,EAAE;oBAC1B,OAAO,IAAI,GAAG,KAAK,KAAK,CAAC,EAAE;oBAC3B,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ;oBACjB,CAAA,GAAA,aAAM,AAAD,EAAE,QAAQ;oBAEf,CAAA,GAAA,UAAG,AAAD,EAAE,MAAM,UAAU;wBAChB,cAAc;wBACd,KAAK,IAAM;oBACf;oBAEA,IAAI,cAAc;2BAAI,KAAK,KAAK;qBAAC;oBACjC,CAAA,GAAA,UAAG,AAAD,EAAE,MAAM,SAAS;wBACf,cAAc;wBACd,KAAK,IAAM;wBACX,KAAI,KAAK;4BACL,cAAc;mCAAI;6BAAM;4BACxB,OAAO,KAAK,GAAG,KAAK,CAAC,EAAE;4BACvB,OAAO,GAAG,GAAG,KAAK,CAAC,EAAE;4BACrB,OAAO,GAAG,GAAG,KAAK,CAAC,EAAE;4BACrB,OAAO,IAAI,GAAG,KAAK,CAAC,EAAE;wBAC1B;oBACJ;gBACJ;gBACA;YACJ,KAAK;gBACD,IAAI,KAAK,QAAQ,EAAE,QAAQ;oBACvB,MAAM,SAAS,CAAA,GAAA,oBAAa,AAAD,EAAE;oBAC7B,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ;oBACjB,CAAA,GAAA,aAAM,AAAD,EAAE,QAAQ,MAAM,UAAU;oBAC/B,CAAA,GAAA,aAAM,AAAD,EAAE,QAAQ;gBACnB;gBACA;YACJ;gBACI;QACR;QAEA,OAAQ;YACJ,KAAK;gBACD,IAAI,KAAK,QAAQ,EAAE;oBACf,MAAM,QAAQ,MAAM,OAAO,SAAS,OAAO;wBACvC,KAAK,MAAM,GAAG,MAAM,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,OAAO;oBAClE;oBACA,KAAK,OAAO,CAAC,IAAI,CAAC;gBACtB;gBACA;YAEJ,KAAK;gBACD,IAAI,KAAK,MAAM,EAAE;oBACb,IAAI,KAAK,OAAO,EAAE;wBACd,MAAM,QAAQ,MAAM,KAAK,MAAM,EAAE,UAAU,OAAO;4BAC9C,KAAK,KAAK,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC,aAAa;4BACzC,KAAK,OAAO,GAAG,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,OAAO;wBAClE;wBACA,KAAK,OAAO,CAAC,IAAI,CAAC;oBACtB;oBAEA,IAAI,KAAK,QAAQ,EAAE;wBACf,MAAM,QAAQ,MAAM,KAAK,MAAM,EAAE,SAAS,OAAO;4BAC7C,KAAK,KAAK,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC,aAAa;4BACzC,KAAK,OAAO,GAAG,MAAM,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,OAAO;wBACnE;wBACA,KAAK,OAAO,CAAC,IAAI,CAAC;oBACtB;gBACJ;gBACA;YAEJ,KAAK;gBACD;oBACI,MAAM,QAAQ,MAAM,OAAO,SAAS,OAAO;wBACvC,IAAI,KAAK,QAAQ,EAAE,QACf,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ;6BACtB;4BACH,IAAI,CAAC,KAAK,CAAC;4BACX,IAAI,KAAK,OAAO,CAAC,QAAQ,EACrB,KAAK,OAAO,CAAC,OAAO,GAAG,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,OAAO;wBAEvF;oBACJ;oBAEA,KAAK,OAAO,CAAC,IAAI,CAAC;oBAElB,IAAI,KAAK,OAAO,EACZ,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO;gBAExB;gBACA;YACJ,KAAK;gBAEG,IAAI,KAAK,OAAO,EAAE;oBACd,MAAM,QAAQ,MAAM,OAAO,SAAS,OAAO;wBACvC,KAAK,OAAO,GAAG,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,OAAO;oBAClE;oBACA,KAAK,OAAO,CAAC,IAAI,CAAC;gBACtB;gBAEJ;YACJ;gBACI;QACR;QAEA,CAAA,GAAA,UAAG,AAAD,EAAE,MAAM,SAAS;YACf,cAAc;YACd,KAAK,IAAM;QACf;QAEA,IAAI,UACA,CAAA,GAAA,qBAAc,AAAD,EAAE,OAAO;aAEtB,CAAA,GAAA,aAAM,AAAD,EAAE,QAAQ;QAGnB,IAAI,KAAK,OAAO,EACZ,WAAW,IAAM,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,OAAO;IAExE;IAEA,OAAO,SAAS,IAAI,CAAC,MAAM,EAAE;QACzB,IAAI,CAAC,MAAM,GAAG;QACd,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS;YACxB,MAAM,SAAS,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAC9B,CAAA,GAAA,mBAAY,AAAD,EAAE,QAAQ;QACzB,OAAO;YACH,MAAM,SAAS,CAAA,GAAA,oBAAa,AAAD,EAAE;YAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ;YACvB,CAAA,GAAA,eAAQ,AAAD,EAAE,QAAQ;YACjB,CAAA,GAAA,aAAM,AAAD,EAAE,IAAI,CAAC,OAAO,EAAE;YACrB,CAAA,GAAA,mBAAY,AAAD,EAAE,QAAQ;YAErB,IAAI,MAAM,CAAC,EAAE,EAAE,SACX,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;YAG9B,IAAK,IAAI,QAAQ,GAAG,QAAQ,OAAO,MAAM,EAAE,QACvC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM;QAEpC;QACA,IAAI,CAAC,MAAM;IACf;AACJ;kBAzgBqB;;;;;6CCnBG;AAFxB;AAEe,SAAS,KAAK,GAAG;IAC5B,MAAM,EACF,IAAI,EACJ,KAAK,EACL,aAAa,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAC5C,GAAG;IAEJ,SAAS,QAAQ,KAAK;QAClB,OAAO,KAAK,GAAG,CAAC,CAAA,GAAA,iBAAU,AAAD,EAAE;IAC/B;IAEA,SAAS;QACL,MAAM,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE;QAClD,IAAI,OAAO,CAAC,KAAK,CAAC;IACtB;IAEA,OAAO;QACH,OAAO;QACP,MAAM;QACN,MAAM,KAAK,GAAG,CAAC;QACf,SAAS,QAAQ,IAAI,IAAI;QACzB,MAAM,MAAM,IAAI;QAChB,UAAU,KAAK,GAAG,CAAC,CAAC;YAChB,OAAO;gBACH,OAAO;gBACP,MAAM,CAAC,KAAK,EAAE,MAAM;gBACpB,SAAS,SAAS,IAAI,IAAI;gBAC1B,MAAM,QAAQ;YAClB;QACJ;QACA,UAAS,IAAI;YACT,IAAI,IAAI,GAAG,KAAK,KAAK;YACrB,OAAO,KAAK,IAAI;QACpB;QACA,SAAS;YACL;YACA,IAAI,EAAE,CAAC,QAAQ,IAAM;QACzB;IACJ;AACJ;;;;;6CCzCwB;AAAT,SAAS,YAAY,GAAG;IACnC,MAAM,EACF,IAAI,EACJ,KAAK,EACL,aAAa,EAAE,kBAAkB,EAAE,YAAY,EAAE,EACpD,GAAG;IAEJ,SAAS,QAAQ,KAAK;QAClB,OAAO,UAAU,YAAY,KAAK,GAAG,CAAC,aAAa;IACvD;IAEA,SAAS;QACL,MAAM,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,IAAI,WAAW,EAAE;QACjE,IAAI,OAAO,CAAC,KAAK,CAAC;IACtB;IAEA,OAAO;QACH,OAAO;QACP,MAAM;QACN,MAAM,KAAK,GAAG,CAAC;QACf,MAAM,MAAM,WAAW;QACvB,SAAS,QAAQ,IAAI,WAAW;QAChC,UAAU,aAAa,GAAG,CAAC,CAAC;YACxB,OAAO;gBACH,OAAO;gBACP,MAAM,CAAC,aAAa,EAAE,MAAM;gBAC5B,SAAS,SAAS,IAAI,WAAW;gBACjC,MAAM,QAAQ;YAClB;QACJ;QACA,UAAS,IAAI;YACT,IAAI,WAAW,GAAG,KAAK,KAAK;YAC5B,OAAO,KAAK,IAAI;QACpB;QACA,SAAS;YACL;YACA,IAAI,EAAE,CAAC,eAAe,IAAM;QAChC;IACJ;AACJ;;;;;6CCvCwB;AAAT,SAAS,aAAa,GAAG;IACpC,MAAM,EACF,IAAI,EACJ,KAAK,EACL,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,EACrD,GAAG;IAEJ,SAAS,QAAQ,KAAK;QAClB,OAAO,UAAU,MAAM,KAAK,GAAG,CAAC,YAAY,MAAM,OAAO,CAAC;IAC9D;IAEA,SAAS;QACL,MAAM,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,IAAI,YAAY,EAAE;QACnE,IAAI,OAAO,CAAC,KAAK,CAAC;IACtB;IAEA,OAAO;QACH,OAAO;QACP,MAAM;QACN,MAAM,KAAK,GAAG,CAAC;QACf,SAAS,QAAQ,IAAI,YAAY;QACjC,MAAM,MAAM,YAAY;QACxB,UAAU,cAAc,GAAG,CAAC,CAAC;YACzB,OAAO;gBACH,OAAO;gBACP,MAAM,CAAC,cAAc,EAAE,MAAM;gBAC7B,SAAS,SAAS,IAAI,YAAY;gBAClC,MAAM,QAAQ;YAClB;QACJ;QACA,UAAS,IAAI;YACT,IAAI,YAAY,GAAG,KAAK,KAAK;YAC7B,OAAO,KAAK,IAAI;QACpB;QACA,SAAS;YACL;YACA,IAAI,EAAE,CAAC,oBAAoB,IAAM;QACrC;IACJ;AACJ;;;;;6CCvCwB;AAAT,SAAS,eAAe,GAAG;IACtC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG;IAErC,OAAO;QACH,OAAO,YAAY,kBAAkB;QACrC,MAAM;QACN,MAAM,KAAK,GAAG,CAAC;QACf,MAAM,MAAM,QAAQ;QACpB,SAAS;QACT,OAAO;YAAC;YAAG;YAAK;YAAI;SAAI;QACxB,UAAS,IAAI;YACT,IAAI,cAAc,GAAG,KAAK,KAAK,CAAC,EAAE;YAClC,OAAO,KAAK,KAAK,CAAC,EAAE,GAAG;QAC3B;QACA,SAAS,CAAC,GAAG;YACT,IAAI,EAAE,CAAC,kBAAkB,CAAC;gBACtB,KAAK,MAAM,CAAC,KAAK,GAAG;gBACpB,KAAK,OAAO,GAAG,QAAQ;YAC3B;QACJ;IACJ;AACJ;;;;;ACrBe,MAAM;IACjB,aAAc;QACV,IAAI,CAAC,IAAI,GAAG;QACZ,IAAI,CAAC,QAAQ,GAAG,CAAC;IACrB;IAEA,IAAI,GAAG,EAAE;QACL,IAAI;YACA,MAAM,UAAU,KAAK,KAAK,CAAC,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;YACvE,OAAO,MAAM,OAAO,CAAC,IAAI,GAAG;QAC5B,0CAA0C;QAC9C,EAAE,OAAO,OAAO;YACZ,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ;QACnD;IACJ;IAEA,IAAI,GAAG,EAAE,KAAK,EAAE;QACZ,IAAI;YACA,MAAM,UAAU,OAAO,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;gBAC1C,CAAC,IAAI,EAAE;YACX;YACA,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,SAAS,CAAC;QACtD,0CAA0C;QAC9C,EAAE,OAAO,OAAO;YACZ,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG;QACzB;IACJ;IAEA,IAAI,GAAG,EAAE;QACL,IAAI;YACA,MAAM,UAAU,IAAI,CAAC,GAAG;YACxB,OAAO,OAAO,CAAC,IAAI;YACnB,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,SAAS,CAAC;QACtD,0CAA0C;QAC9C,EAAE,OAAO,OAAO;YACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI;QAC7B;IACJ;IAEA,QAAQ;QACJ,IAAI;YACA,OAAO,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI;QACxC,0CAA0C;QAC9C,EAAE,OAAO,OAAO;YACZ,IAAI,CAAC,QAAQ,GAAG,CAAC;QACrB;IACJ;AACJ;kBA/CqB;;;;;ACArB;AACA;;AACA;;AACA;;AACA;;AACA;;AAEe,MAAM;IACjB,YAAY,GAAG,CAAE;QACb,IAAI,CAAC,GAAG,GAAG;QACX,IAAI,CAAC,EAAE,GAAG;QAEV,MAAM,EAAE,MAAM,EAAE,GAAG;QAEnB,IAAI,OAAO,eAAe,IAAI,CAAC,OAAO,MAAM,EACxC,IAAI,CAAC,GAAG,CAAC,CAAA,GAAA,+BAAe,AAAD;QAG3B,IAAI,OAAO,IAAI,IAAI,CAAA,GAAA,eAAQ,AAAD,GACtB,IAAI,CAAC,GAAG,CAAC,CAAA,GAAA,oBAAI,AAAD;QAGhB,IAAI,OAAO,YAAY,IAAI,CAAC,OAAO,MAAM,EACrC,IAAI,CAAC,GAAG,CAAC,CAAA,GAAA,4BAAY,AAAD;QAGxB,IAAI,OAAO,eAAe,IAAI,CAAA,GAAA,eAAQ,AAAD,GACjC,IAAI,CAAC,GAAG,CAAC,CAAA,GAAA,+BAAe,AAAD;QAG3B,IAAI,OAAO,WAAW,IAAI,CAAA,GAAA,eAAQ,AAAD,KAAK,CAAC,OAAO,MAAM,EAChD,IAAI,CAAC,GAAG,CAAC,CAAA,GAAA,2BAAW,AAAD;QAGvB,IAAK,IAAI,QAAQ,GAAG,QAAQ,OAAO,OAAO,CAAC,MAAM,EAAE,QAC/C,IAAI,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,MAAM;IAEtC;IAEA,IAAI,MAAM,EAAE;QACR,IAAI,CAAC,EAAE,IAAI;QACX,MAAM,SAAS,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG;QAC7C,IAAI,kBAAkB,SAClB,OAAO,OAAO,IAAI,CAAC,CAAC,MAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;aAE9C,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ;IAEjC;IAEA,KAAK,MAAM,EAAE,MAAM,EAAE;QACjB,MAAM,aAAa,AAAC,UAAU,OAAO,IAAI,IAAK,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;QAC/E,CAAA,GAAA,kBAAW,AAAD,EAAE,CAAC,CAAA,GAAA,UAAG,AAAD,EAAE,IAAI,EAAE,aAAa,CAAC,oDAAoD,EAAE,YAAY;QACvG,CAAA,GAAA,UAAG,AAAD,EAAE,IAAI,EAAE,YAAY;YAClB,OAAO;QACX;QACA,OAAO,IAAI;IACf;AACJ;kBAlDqB;;;;;6CCLG;AAFxB;AAEe,SAAS,gBAAgB,GAAG;IACvC,IAAI,EAAE,CAAC,WAAW,CAAC;QACf,IAAI,OACA,CAAA,GAAA,kBAAW,AAAD,EAAE,IAAI,QAAQ,CAAC,OAAO,EAAE;aAElC,CAAA,GAAA,eAAQ,AAAD,EAAE,IAAI,QAAQ,CAAC,OAAO,EAAE;IAEvC;IAEA,OAAO;QAAE,MAAM;IAAoB;AACvC;;;;;6CCVwB;AAFxB;AAEe,SAAS,gBAAgB,GAAG;IACvC,MAAM,EACF,WAAW,EACX,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,EAChC,GAAG;IAEJ,IAAI,EAAE,CAAC,iBAAiB,CAAC;QACrB,IAAI,OAAO;YACP,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG;YACpC,MAAM,EAAE,aAAa,SAAS,EAAE,cAAc,UAAU,EAAE,GAAG,SAAS,eAAe;YACrF,IACI,AAAC,aAAa,eAAe,YAAY,cACxC,aAAa,eAAe,YAAY,YAEzC,6FAA6F;YAC7F,WAAW;gBACP,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,SAAS,GAAG,WAAW,EAAE,CAAC;gBAC5C,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,UAAU,GAAG,UAAU,EAAE,CAAC;gBAC5C,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,oBAAoB;gBACtC,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,aAAa,CAAC,4BAA4B,EAAE,UAAU,GAAG,CAAC;gBAC5E,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS;gBAClB,IAAI,QAAQ,GAAG;gBACf,IAAI,IAAI,CAAC;YACb,GAAG,YAAY,qBAAqB;QAE5C,OACI,IAAI,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,yBAAyB;YAC3C,CAAA,GAAA,kBAAW,AAAD,EAAE,SAAS;YACrB,IAAI,QAAQ,GAAG;YACf,IAAI,IAAI,CAAC;QACb;IAER;IAEA,IAAI,EAAE,CAAC,cAAc,OAAO;QACxB,IAAI,CAAC,QAAQ,aAAa,MAAM;QAEhC,MAAM,kBAAkB,OAAO,WAAW,CAAC,IAAI;QAC/C,IAAI,OAAO;YACP,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG;YACpC,MAAM,EAAE,aAAa,SAAS,EAAE,cAAc,UAAU,EAAE,GAAG,SAAS,eAAe;YACrF,IACI,AAAC,aAAa,eAAe,YAAY,cACxC,aAAa,eAAe,YAAY,YAC3C;gBACE,MAAM,sBAAsB,gBAAgB,UAAU,CAAC,cAAc,cAAc;gBACnF,MAAM,OAAO,WAAW,CAAC,IAAI,CAAC;gBAC9B,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS;YACtB;QACJ,OACI,IAAI,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,oCAAoC;YACtD,MAAM,OAAO,WAAW,CAAC,IAAI,CAAC;YAC9B,CAAA,GAAA,kBAAW,AAAD,EAAE,SAAS;QACzB;IAER;IAEA,OAAO;QACH,MAAM;QACN,IAAI,SAAQ;YACR,OAAO,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS;QAC7B;IACJ;AACJ;;;;;6CC/DwB;AAFxB;AAEe,SAAS,aAAa,GAAG;IACpC,MAAM,EACF,IAAI,EACJ,KAAK,EACL,OAAO,EACP,WAAW,EACX,KAAK,EACL,UAAU,EAAE,OAAO,EAAE,EACxB,GAAG;IAEJ,MAAM,gBAAgB,IAAI,MAAM,CAAC,GAAG,CAAC;QACjC,MAAM;QACN,MAAM,CAAC;;;;QAIP,CAAC;IACL;IAEA,MAAM,QAAQ,CAAA,GAAA,YAAK,AAAD,EAAE,2BAA2B;IAC/C,MAAM,QAAQ,CAAA,GAAA,YAAK,AAAD,EAAE,2BAA2B;IAC/C,MAAM,SAAS,CAAA,GAAA,YAAK,AAAD,EAAE,4BAA4B;IACjD,CAAA,GAAA,aAAM,AAAD,EAAE,QAAQ,MAAM,KAAK;IAE1B,IAAI,QAAQ;IAEZ,IAAI,EAAE,CAAC,oBAAoB;QACvB,IAAI,IAAI,OAAO,EAAE;YACb,MAAM,QAAQ,QAAQ,GAAG,CAAC,YAAY,CAAC;YACvC,MAAM,OAAO,OAAO,IAAI,CAAC;YACzB,IAAI,KAAK,MAAM,GAAG,YAAY,iBAAiB,EAC3C,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAEzB,KAAK,CAAC,IAAI,MAAM,CAAC,EAAE,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,WAAW;YACxD,QAAQ,GAAG,CAAC,SAAS;QACzB;IACJ;IAEA,SAAS;QACL,MAAM,QAAQ,QAAQ,GAAG,CAAC,YAAY,CAAC;QACvC,MAAM,cAAc,KAAK,CAAC,IAAI,MAAM,CAAC,EAAE,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC;QAE1D,aAAa;QACb,CAAA,GAAA,eAAQ,AAAD,EAAE,eAAe,WAAW;QAEnC,IAAI,eAAe,eAAe,YAAY,iBAAiB,EAAE;YAC7D,CAAA,GAAA,eAAQ,AAAD,EAAE,eAAe,WAAW;YAEnC,MAAM,SAAS,GAAG,GAAG,KAAK,GAAG,CAAC,aAAa,CAAC,EAAE,CAAA,GAAA,mBAAY,AAAD,EAAE,cAAc;YACzE,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC;YAE3B,MAAM,QAAQ,SAAS;gBACnB,CAAA,GAAA,eAAQ,AAAD,EAAE,eAAe,WAAW;YACvC;YAEA,MAAM,OAAO,SAAS;gBAClB,IAAI,IAAI,GAAG;gBACX,IAAI,IAAI;gBACR,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,WAAW;gBAC7B,CAAA,GAAA,eAAQ,AAAD,EAAE,eAAe,WAAW;YACvC;YAEA,IAAI,IAAI,CAAC,oBAAoB;gBACzB,QAAQ,WAAW;oBACf,CAAA,GAAA,eAAQ,AAAD,EAAE,eAAe,WAAW;gBACvC,GAAG,YAAY,qBAAqB;YACxC;QACJ;IACJ;IAEA,IAAI,EAAE,CAAC,SAAS;IAChB,IAAI,EAAE,CAAC,WAAW;IAElB,OAAO;QACH,MAAM;QACN,IAAI,SAAQ;YACR,OAAO,QAAQ,GAAG,CAAC,YAAY,CAAC;QACpC;QACA;YACI,OAAO,QAAQ,GAAG,CAAC;QACvB;QACA,QAAO,EAAE;YACL,MAAM,QAAQ,QAAQ,GAAG,CAAC,YAAY,CAAC;YACvC,OAAO,KAAK,CAAC,GAAG;YAChB,QAAQ,GAAG,CAAC,SAAS;YACrB,OAAO;QACX;IACJ;AACJ;;;;;6CCxFwB;AAFxB;AAEe,SAAS,YAAY,GAAG;IACnC,MAAM,EACF,WAAW,EACX,KAAK,EACL,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,EAChC,GAAG;IAEJ,IAAI,QAAQ;IACZ,IAAI,UAAU;IACd,IAAI,mBAAmB;IAEvB,MAAM,UAAU,CAAC;QACb,IAAI,MAAM,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,MAAM,EACxD,QAAQ,WAAW;YACf,UAAU;YACV,mBAAmB,IAAI,YAAY;YACnC,IAAI,YAAY,GAAG,YAAY,kBAAkB;YACjD,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS;QACtB,GAAG,YAAY,iBAAiB;IAExC;IAEA,MAAM,SAAS;QACX,aAAa;QACb,IAAI,SAAS;YACT,UAAU;YACV,IAAI,YAAY,GAAG;YACnB,CAAA,GAAA,kBAAW,AAAD,EAAE,SAAS;QACzB;IACJ;IAEA,MAAM,QAAQ,cAAc;IAC5B,MAAM,UAAU,aAAa;IAC7B,MAAM,UAAU,YAAY;IAE5B,OAAO;QACH,MAAM;QACN,IAAI,SAAQ;YACR,OAAO,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS;QAC7B;IACJ;AACJ;;;;;6CCzCwB;AAFxB;AAEe,SAAS,KAAK,GAAG;IAC5B,MAAM,EACF,MAAM,EACN,KAAK,EACL,UAAU,EAAE,OAAO,EAAE,EACxB,GAAG;IAEJ,SAAS;QACL,OAAO,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS;IAC7B;IAEA,SAAS;QACL,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS;QAClB,IAAI,MAAM,GAAG;QACb,IAAI,IAAI,CAAC,QAAQ;IACrB;IAEA,SAAS;QACL,CAAA,GAAA,kBAAW,AAAD,EAAE,SAAS;QACrB,IAAI,MAAM,GAAG;QACb,IAAI,IAAI,CAAC,QAAQ;IACrB;IAEA,OAAO,GAAG,CAAC;QACP,MAAM;QACN,SAAQ,GAAG;YACP,MAAM,QAAQ,CAAA,GAAA,aAAM,AAAD,EAAE,KAAK,MAAM,IAAI;YACpC,MAAM,UAAU,CAAA,GAAA,aAAM,AAAD,EAAE,KAAK,MAAM,MAAM;YACxC,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO,WAAW;YAE3B,IAAI,EAAE,CAAC,QAAQ,CAAC;gBACZ,IAAI,OAAO;oBACP,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO,WAAW;oBAC3B,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,WAAW;gBACjC,OAAO;oBACH,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO,WAAW;oBAC3B,CAAA,GAAA,eAAQ,AAAD,EAAE,SAAS,WAAW;gBACjC;YACJ;QACJ;QACA;YACI,IAAI,YACA;iBAEA;QAER;IACJ;IAEA,OAAO;QACH,MAAM;QACN,IAAI,SAAQ;YACR,OAAO;QACX;QACA,IAAI,OAAM,MAAO;YACb,IAAI,OACA;iBAEA;QAER;IACJ;AACJ","sources":["packages/artplayer/src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-1a83ba7b78f9fbad.js","node_modules/option-validator/dist/option-validator.js","packages/artplayer/src/utils/emitter.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js","packages/artplayer/src/utils/index.js","packages/artplayer/src/utils/dom.js","packages/artplayer/src/utils/compatibility.js","packages/artplayer/src/utils/error.js","packages/artplayer/src/utils/subtitle.js","packages/artplayer/src/utils/file.js","packages/artplayer/src/utils/property.js","packages/artplayer/src/utils/time.js","packages/artplayer/src/utils/format.js","packages/artplayer/src/scheme/index.js","packages/artplayer/src/config/index.js","packages/artplayer/src/template.js","packages/artplayer/src/i18n/index.js","packages/artplayer/src/i18n/zh-cn.js","packages/artplayer/src/player/index.js","packages/artplayer/src/player/urlMix.js","packages/artplayer/src/player/attrMix.js","packages/artplayer/src/player/playMix.js","packages/artplayer/src/player/pauseMix.js","packages/artplayer/src/player/toggleMix.js","packages/artplayer/src/player/seekMix.js","packages/artplayer/src/player/volumeMix.js","packages/artplayer/src/player/currentTimeMix.js","packages/artplayer/src/player/durationMix.js","packages/artplayer/src/player/switchMix.js","packages/artplayer/src/player/playbackRateMix.js","packages/artplayer/src/player/aspectRatioMix.js","packages/artplayer/src/player/screenshotMix.js","packages/artplayer/src/player/fullscreenMix.js","packages/artplayer/src/libs/screenfull.js","packages/artplayer/src/player/fullscreenWebMix.js","packages/artplayer/src/player/pipMix.js","packages/artplayer/src/player/loadedMix.js","packages/artplayer/src/player/playedMix.js","packages/artplayer/src/player/playingMix.js","packages/artplayer/src/player/autoSizeMix.js","packages/artplayer/src/player/rectMix.js","packages/artplayer/src/player/flipMix.js","packages/artplayer/src/player/miniMix.js","packages/artplayer/src/player/posterMix.js","packages/artplayer/src/player/autoHeightMix.js","packages/artplayer/src/player/cssVarMix.js","packages/artplayer/src/player/themeMix.js","packages/artplayer/src/player/typeMix.js","packages/artplayer/src/player/stateMix.js","packages/artplayer/src/player/subtitleOffsetMix.js","packages/artplayer/src/player/airplayMix.js","packages/artplayer/src/player/qualityMix.js","packages/artplayer/src/player/thumbnailsMix.js","packages/artplayer/src/player/optionInit.js","packages/artplayer/src/player/eventInit.js","packages/artplayer/src/control/index.js","packages/artplayer/src/utils/component.js","packages/artplayer/src/control/fullscreen.js","packages/artplayer/src/control/fullscreenWeb.js","packages/artplayer/src/control/pip.js","packages/artplayer/src/control/playAndPause.js","packages/artplayer/src/control/progress.js","packages/artplayer/src/control/time.js","packages/artplayer/src/control/volume.js","packages/artplayer/src/control/setting.js","packages/artplayer/src/control/screenshot.js","packages/artplayer/src/control/airplay.js","packages/artplayer/src/contextmenu/index.js","packages/artplayer/src/contextmenu/playbackRate.js","packages/artplayer/src/contextmenu/aspectRatio.js","packages/artplayer/src/contextmenu/flip.js","packages/artplayer/src/contextmenu/info.js","packages/artplayer/src/contextmenu/version.js","packages/artplayer/src/contextmenu/close.js","packages/artplayer/src/info.js","packages/artplayer/src/subtitle.js","packages/artplayer/src/events/index.js","packages/artplayer/src/events/clickInit.js","packages/artplayer/src/events/hoverInit.js","packages/artplayer/src/events/moveInit.js","packages/artplayer/src/events/resizeInit.js","packages/artplayer/src/events/gestureInit.js","packages/artplayer/src/events/viewInit.js","packages/artplayer/src/events/documentInit.js","packages/artplayer/src/events/updateInit.js","packages/artplayer/src/events/restoreInit.js","packages/artplayer/src/hotkey.js","packages/artplayer/src/layer.js","packages/artplayer/src/loading.js","packages/artplayer/src/notice.js","packages/artplayer/src/mask.js","packages/artplayer/src/icons/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-20be5e3eca70ea32.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-c89477eca9760866.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-8306aa2d43f8f518.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-9e6243eba3e2ee25.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-ed2c6405abc18237.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-296845b4b0ef3af0.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-ce7336f6ee750446.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-e2d98041510dcc81.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-0b69a45deda02972.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-59d8a32ff494cf26.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-fc0e8ba14b0a205e.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-8fd0b0f874dbf51e.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-b6afaee63da94390.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-6e4bd76b89220063.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-d269c22a6d246bc3.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-c577d5b2fce8a593.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-766dea468868d543.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-d20ee4405f81c2fb.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-e61dc575158bf45c.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-853939c76577d052.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-ed21bae52505e995.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-3cf7eba38b86f798.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-dbc4095e84eeca13.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-a9b9362d1cb1ddd7.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-11f6581ae841b62a.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-e79e019b9bea702c.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-b09787399762439a.js","packages/artplayer/src/setting/index.js","packages/artplayer/src/setting/flip.js","packages/artplayer/src/setting/aspectRatio.js","packages/artplayer/src/setting/playbackRate.js","packages/artplayer/src/setting/subtitleOffset.js","packages/artplayer/src/storage.js","packages/artplayer/src/plugins/index.js","packages/artplayer/src/plugins/miniProgressBar.js","packages/artplayer/src/plugins/autoOrientation.js","packages/artplayer/src/plugins/autoPlayback.js","packages/artplayer/src/plugins/fastForward.js","packages/artplayer/src/plugins/lock.js"],"sourcesContent":["import style from 'bundle-text:./style/index.less';\nimport validator from 'option-validator';\nimport Emitter from './utils/emitter';\nimport * as utils from './utils';\nimport scheme from './scheme';\nimport config from './config';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Control from './control';\nimport Contextmenu from './contextmenu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layer from './layer';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\nimport Icons from './icons';\nimport Setting from './setting';\nimport Storage from './storage';\nimport Plugins from './plugins';\n\nlet id = 0;\nconst instances = [];\nexport default class Artplayer extends Emitter {\n constructor(option, readyCallback) {\n super();\n\n this.id = ++id;\n\n const mergeOption = utils.mergeDeep(Artplayer.option, option);\n mergeOption.container = option.container;\n\n this.option = validator(mergeOption, scheme);\n\n this.isLock = false;\n this.isReady = false;\n this.isFocus = false;\n this.isInput = false;\n this.isRotate = false;\n this.isDestroy = false;\n\n this.template = new Template(this);\n this.events = new Events(this);\n this.storage = new Storage(this);\n this.icons = new Icons(this);\n this.i18n = new I18n(this);\n this.notice = new Notice(this);\n this.player = new Player(this);\n this.layers = new Layer(this);\n this.controls = new Control(this);\n this.contextmenu = new Contextmenu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n this.setting = new Setting(this);\n this.plugins = new Plugins(this);\n\n if (typeof readyCallback === 'function') {\n this.on('ready', () => readyCallback.call(this, this));\n }\n\n if (Artplayer.DEBUG) {\n const log = (msg) => console.log(`[ART.${this.id}] -> ${msg}`);\n log('Version@' + Artplayer.version);\n log('Env@' + Artplayer.env);\n log('Build@' + Artplayer.build);\n for (let index = 0; index < config.events.length; index++) {\n this.on('video:' + config.events[index], (event) => log('Event@' + event.type));\n }\n }\n\n instances.push(this);\n }\n\n static get instances() {\n return instances;\n }\n\n static get version() {\n return '\"5.2.3\"';\n }\n\n static get env() {\n return '\"development\"';\n }\n\n static get config() {\n return config;\n }\n\n static get utils() {\n return utils;\n }\n\n static get scheme() {\n return scheme;\n }\n\n static get Emitter() {\n return Emitter;\n }\n\n static get validator() {\n return validator;\n }\n\n static get kindOf() {\n return validator.kindOf;\n }\n\n static get html() {\n return Template.html;\n }\n\n static get option() {\n return {\n id: '',\n container: '#artplayer',\n url: '',\n poster: '',\n type: '',\n theme: '#f00',\n volume: 0.7,\n isLive: false,\n muted: false,\n autoplay: false,\n autoSize: false,\n autoMini: false,\n loop: false,\n flip: false,\n playbackRate: false,\n aspectRatio: false,\n screenshot: false,\n setting: false,\n hotkey: true,\n pip: false,\n mutex: true,\n backdrop: true,\n fullscreen: false,\n fullscreenWeb: false,\n subtitleOffset: false,\n miniProgressBar: false,\n useSSR: false,\n playsInline: true,\n lock: false,\n gesture: true,\n fastForward: false,\n autoPlayback: false,\n autoOrientation: false,\n airplay: false,\n proxy: undefined,\n layers: [],\n contextmenu: [],\n controls: [],\n settings: [],\n quality: [],\n highlight: [],\n plugins: [],\n thumbnails: {\n url: '',\n number: 60,\n column: 10,\n width: 0,\n height: 0,\n scale: 1,\n },\n subtitle: {\n url: '',\n type: '',\n style: {},\n name: '',\n escape: true,\n encoding: 'utf-8',\n onVttLoad: (vtt) => vtt,\n },\n moreVideoAttr: {\n controls: false,\n preload: utils.isSafari ? 'auto' : 'metadata',\n },\n i18n: {},\n icons: {},\n cssVar: {},\n customType: {},\n lang: navigator?.language.toLowerCase(),\n };\n }\n\n get proxy() {\n return this.events.proxy;\n }\n\n get query() {\n return this.template.query;\n }\n\n get video() {\n return this.template.$video;\n }\n\n destroy(removeHtml = true) {\n this.events.destroy();\n this.template.destroy(removeHtml);\n instances.splice(instances.indexOf(this), 1);\n this.isDestroy = true;\n this.emit('destroy');\n }\n}\n\nArtplayer.STYLE = style;\nArtplayer.DEBUG = false;\nArtplayer.CONTEXTMENU = true;\nArtplayer.NOTICE_TIME = 2000;\nArtplayer.SETTING_WIDTH = 250;\nArtplayer.SETTING_ITEM_WIDTH = 200;\nArtplayer.SETTING_ITEM_HEIGHT = 35;\nArtplayer.RESIZE_TIME = 200;\nArtplayer.SCROLL_TIME = 200;\nArtplayer.SCROLL_GAP = 50;\nArtplayer.AUTO_PLAYBACK_MAX = 10;\nArtplayer.AUTO_PLAYBACK_MIN = 5;\nArtplayer.AUTO_PLAYBACK_TIMEOUT = 3000;\nArtplayer.RECONNECT_TIME_MAX = 5;\nArtplayer.RECONNECT_SLEEP_TIME = 1000;\nArtplayer.CONTROL_HIDE_TIME = 3000;\nArtplayer.DBCLICK_TIME = 300;\nArtplayer.DBCLICK_FULLSCREEN = true;\nArtplayer.MOBILE_DBCLICK_PLAY = true;\nArtplayer.MOBILE_CLICK_PLAY = false;\nArtplayer.AUTO_ORIENTATION_TIME = 200;\nArtplayer.INFO_LOOP_TIME = 1000;\nArtplayer.FAST_FORWARD_VALUE = 3;\nArtplayer.FAST_FORWARD_TIME = 1000;\nArtplayer.TOUCH_MOVE_RATIO = 0.5;\nArtplayer.VOLUME_STEP = 0.1;\nArtplayer.SEEK_STEP = 5;\nArtplayer.PLAYBACK_RATE = [0.5, 0.75, 1, 1.25, 1.5, 2];\nArtplayer.ASPECT_RATIO = ['default', '4:3', '16:9'];\nArtplayer.FLIP = ['normal', 'horizontal', 'vertical'];\nArtplayer.FULLSCREEN_WEB_IN_BODY = false;\nArtplayer.LOG_VERSION = true;\nArtplayer.USE_RAF = false;\n\nif (utils.isBrowser) {\n window['Artplayer'] = Artplayer;\n\n utils.setStyleText('artplayer-style', style);\n\n setTimeout(() => {\n if (Artplayer.LOG_VERSION) {\n console.log(\n `%c ArtPlayer %c ${Artplayer.version} %c https://artplayer.org`,\n 'color: #fff; background: #5f5f5f',\n 'color: #fff; background: #4bc729',\n '',\n );\n }\n }, 100);\n}\n","module.exports = \"8df583d394494873\";","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):r.optionValidator=t()}(this,function(){\"use strict\";function e(r){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&\"function\"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?\"symbol\":typeof r})(r)}var n=Object.prototype.toString,c=function(r){if(void 0===r)return\"undefined\";if(null===r)return\"null\";var t=e(r);if(\"boolean\"===t)return\"boolean\";if(\"string\"===t)return\"string\";if(\"number\"===t)return\"number\";if(\"symbol\"===t)return\"symbol\";if(\"function\"===t)return function(r){return\"GeneratorFunction\"===o(r)}(r)?\"generatorfunction\":\"function\";if(function(r){return Array.isArray?Array.isArray(r):r instanceof Array}(r))return\"array\";if(function(r){if(r.constructor&&\"function\"==typeof r.constructor.isBuffer)return r.constructor.isBuffer(r);return!1}(r))return\"buffer\";if(function(r){try{if(\"number\"==typeof r.length&&\"function\"==typeof r.callee)return!0}catch(r){if(-1!==r.message.indexOf(\"callee\"))return!0}return!1}(r))return\"arguments\";if(function(r){return r instanceof Date||\"function\"==typeof r.toDateString&&\"function\"==typeof r.getDate&&\"function\"==typeof r.setDate}(r))return\"date\";if(function(r){return r instanceof Error||\"string\"==typeof r.message&&r.constructor&&\"number\"==typeof r.constructor.stackTraceLimit}(r))return\"error\";if(function(r){return r instanceof RegExp||\"string\"==typeof r.flags&&\"boolean\"==typeof r.ignoreCase&&\"boolean\"==typeof r.multiline&&\"boolean\"==typeof r.global}(r))return\"regexp\";switch(o(r)){case\"Symbol\":return\"symbol\";case\"Promise\":return\"promise\";case\"WeakMap\":return\"weakmap\";case\"WeakSet\":return\"weakset\";case\"Map\":return\"map\";case\"Set\":return\"set\";case\"Int8Array\":return\"int8array\";case\"Uint8Array\":return\"uint8array\";case\"Uint8ClampedArray\":return\"uint8clampedarray\";case\"Int16Array\":return\"int16array\";case\"Uint16Array\":return\"uint16array\";case\"Int32Array\":return\"int32array\";case\"Uint32Array\":return\"uint32array\";case\"Float32Array\":return\"float32array\";case\"Float64Array\":return\"float64array\"}if(function(r){return\"function\"==typeof r.throw&&\"function\"==typeof r.return&&\"function\"==typeof r.next}(r))return\"generator\";switch(t=n.call(r)){case\"[object Object]\":return\"object\";case\"[object Map Iterator]\":return\"mapiterator\";case\"[object Set Iterator]\":return\"setiterator\";case\"[object String Iterator]\":return\"stringiterator\";case\"[object Array Iterator]\":return\"arrayiterator\"}return t.slice(8,-1).toLowerCase().replace(/\\s/g,\"\")};function o(r){return r.constructor?r.constructor.name:null}function f(r,t){var e=2 item !== target);\n}\n\nexport function inverseClass(target, className) {\n sublings(target).forEach((item) => removeClass(item, className));\n addClass(target, className);\n}\n\nexport function tooltip(target, msg, pos = 'top') {\n if (isMobile) return;\n target.setAttribute('aria-label', msg);\n addClass(target, 'hint--rounded');\n addClass(target, `hint--${pos}`);\n}\n\nexport function isInViewport(el, offset = 0) {\n const rect = el.getBoundingClientRect();\n const windowHeight = window.innerHeight || document.documentElement.clientHeight;\n const windowWidth = window.innerWidth || document.documentElement.clientWidth;\n const vertInView = rect.top - offset <= windowHeight && rect.top + rect.height + offset >= 0;\n const horInView = rect.left - offset <= windowWidth + offset && rect.left + rect.width + offset >= 0;\n return vertInView && horInView;\n}\n\nexport function includeFromEvent(event, target) {\n return event.composedPath && event.composedPath().indexOf(target) > -1;\n}\n\nexport function replaceElement(newChild, oldChild) {\n oldChild.parentNode.replaceChild(newChild, oldChild);\n return newChild;\n}\n\nexport function createElement(tag) {\n return document.createElement(tag);\n}\n\nexport function getIcon(key = '', html = '') {\n const icon = createElement('i');\n addClass(icon, 'art-icon');\n addClass(icon, `art-icon-${key}`);\n append(icon, html);\n return icon;\n}\n\nexport function setStyleText(id, style) {\n let $style = document.getElementById(id);\n if (!$style) {\n $style = document.createElement('style');\n $style.id = id;\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', () => {\n document.head.appendChild($style);\n });\n } else {\n (document.head || document.documentElement).appendChild($style);\n }\n }\n $style.textContent = style;\n}\n\nexport function supportsFlex() {\n const div = document.createElement('div');\n div.style.display = 'flex';\n return div.style.display === 'flex';\n}\n\nexport function getRect(el) {\n return el.getBoundingClientRect();\n}\n\nexport function loadImg(url, scale) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n\n img.onload = function () {\n if (!scale || scale === 1) {\n resolve(img);\n } else {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n canvas.width = img.width * scale;\n canvas.height = img.height * scale;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n\n canvas.toBlob((blob) => {\n const blobUrl = URL.createObjectURL(blob);\n const scaledImg = new Image();\n\n scaledImg.onload = function () {\n resolve(scaledImg);\n };\n\n scaledImg.onerror = function () {\n URL.revokeObjectURL(blobUrl);\n reject(new Error(`Image load failed: ${url}`));\n };\n\n scaledImg.src = blobUrl;\n });\n }\n };\n\n img.onerror = function () {\n reject(new Error(`Image load failed: ${url}`));\n };\n\n img.src = url;\n });\n}\n","export const userAgent = typeof navigator !== 'undefined' ? navigator.userAgent : '';\nexport const isSafari = /^((?!chrome|android).)*safari/i.test(userAgent);\nexport const isWechat = /MicroMessenger/i.test(userAgent);\nexport const isIE = /MSIE|Trident/i.test(userAgent);\nexport const isAndroid = /android/i.test(userAgent);\nexport const isIOS = /iPad|iPhone|iPod/i.test(userAgent) && !window.MSStream;\nexport const isIOS13 = isIOS || (userAgent.includes('Macintosh') && navigator.maxTouchPoints >= 1);\nexport const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent) || isIOS13;\nexport const isBrowser = typeof window !== 'undefined';\n","export class ArtPlayerError extends Error {\n constructor(message, context) {\n super(message);\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, context || this.constructor);\n }\n this.name = 'ArtPlayerError';\n }\n}\n\nexport function errorHandle(condition, msg) {\n if (!condition) {\n throw new ArtPlayerError(msg);\n }\n return condition;\n}\n","function fixSrt(srt) {\n return srt.replace(/(\\d\\d:\\d\\d:\\d\\d)[,.](\\d+)/g, (_, $1, $2) => {\n let ms = $2.slice(0, 3);\n if ($2.length === 1) {\n ms = $2 + '00';\n }\n if ($2.length === 2) {\n ms = $2 + '0';\n }\n return `${$1},${ms}`;\n });\n}\n\nexport function srtToVtt(srtText) {\n return 'WEBVTT \\r\\n\\r\\n'.concat(\n fixSrt(srtText)\n .replace(/\\{\\\\([ibu])\\}/g, '')\n .replace(/\\{\\\\([ibu])1\\}/g, '<$1>')\n .replace(/\\{([ibu])\\}/g, '<$1>')\n .replace(/\\{\\/([ibu])\\}/g, '')\n .replace(/(\\d\\d:\\d\\d:\\d\\d),(\\d\\d\\d)/g, '$1.$2')\n .replace(/{[\\s\\S]*?}/g, '')\n .concat('\\r\\n\\r\\n'),\n );\n}\n\nexport function vttToBlob(vttText) {\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt',\n }),\n );\n}\n\nexport function assToVtt(ass) {\n const reAss = new RegExp(\n 'Dialogue:\\\\s\\\\d,' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '([^,]*),' +\n '([^,]*),' +\n '(?:[^,]*,){4}' +\n '([\\\\s\\\\S]*)$',\n 'i',\n );\n\n function fixTime(time = '') {\n return time\n .split(/[:.]/)\n .map((item, index, arr) => {\n if (index === arr.length - 1) {\n if (item.length === 1) {\n return `.${item}00`;\n }\n\n if (item.length === 2) {\n return `.${item}0`;\n }\n } else if (item.length === 1) {\n return (index === 0 ? '0' : ':0') + item;\n }\n\n return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`;\n })\n .join('');\n }\n\n return (\n 'WEBVTT' +\n '\\n' +\n '\\n' +\n ass\n .split(/\\r?\\n/)\n .map((line) => {\n const m = line.match(reAss);\n if (!m) return null;\n return {\n start: fixTime(m[1].trim()),\n end: fixTime(m[2].trim()),\n text: m[5]\n .replace(/{[\\s\\S]*?}/g, '')\n .replace(/(\\\\N)/g, '\\n')\n .trim()\n .split(/\\r?\\n/)\n .map((item) => item.trim())\n .join('\\n'),\n };\n })\n .filter((line) => line)\n .map((line, index) => {\n if (line) {\n return index + 1 + '\\n' + `${line.start} --> ${line.end}` + '\\n' + `${line.text}`;\n }\n return '';\n })\n .filter((line) => line.trim())\n .join('\\n\\n')\n );\n}\n","export function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n if (url.includes('#')) {\n return getExt(url.split('#')[0]);\n }\n\n return url.trim().toLowerCase().split('.').pop();\n}\n\nexport function download(url, name) {\n const elink = document.createElement('a');\n elink.style.display = 'none';\n elink.href = url;\n elink.download = name;\n document.body.appendChild(elink);\n elink.click();\n document.body.removeChild(elink);\n}\n","export const def = Object.defineProperty;\n\nconst { hasOwnProperty } = Object.prototype;\nexport function has(obj, name) {\n return hasOwnProperty.call(obj, name);\n}\n\nexport function get(obj, name) {\n return Object.getOwnPropertyDescriptor(obj, name);\n}\n\nexport function mergeDeep(...objects) {\n const isObject = (item) => item && typeof item === 'object' && !Array.isArray(item);\n return objects.reduce((prev, obj) => {\n Object.keys(obj).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n","export function sleep(ms = 0) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function debounce(func, duration) {\n let timeout;\n\n return function (...args) {\n const effect = () => {\n timeout = null;\n return func.apply(this, args);\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(effect, duration);\n };\n}\n\nexport function throttle(func, duration) {\n let shouldWait = false;\n\n return function (...args) {\n if (!shouldWait) {\n func.apply(this, args);\n shouldWait = true;\n\n setTimeout(function () {\n shouldWait = false;\n }, duration);\n }\n };\n}\n","export function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nexport function secondToTime(second) {\n if (!second) return '00:00';\n const add0 = (num) => (num < 10 ? `0${num}` : String(num));\n const hour = Math.floor(second / 3600);\n const min = Math.floor((second - hour * 3600) / 60);\n const sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');\n}\n\nexport function escape(str) {\n return str.replace(\n /[&<>'\"]/g,\n (tag) =>\n ({\n '&': '&',\n '<': '<',\n '>': '>',\n \"'\": ''',\n '\"': '"',\n })[tag] || tag,\n );\n}\n\nexport function unescape(str) {\n const map = {\n '&': '&',\n '<': '<',\n '>': '>',\n ''': \"'\",\n '"': '\"',\n };\n const reg = new RegExp(`(${Object.keys(map).join('|')})`, 'g');\n return str.replace(reg, (tag) => map[tag] || tag);\n}\n","import { errorHandle } from '../utils';\n\nconst a = 'array';\nconst b = 'boolean';\nconst s = 'string';\nconst n = 'number';\nconst o = 'object';\nconst f = 'function';\n\nfunction validElement(value, type, paths) {\n return errorHandle(\n type === s || type === n || value instanceof Element,\n `${paths.join('.')} require '${s}' or 'Element' type`,\n );\n}\n\nexport const ComponentOption = {\n html: validElement,\n disable: `?${b}`,\n name: `?${s}`,\n index: `?${n}`,\n style: `?${o}`,\n click: `?${f}`,\n mounted: `?${f}`,\n tooltip: `?${s}|${n}`,\n width: `?${n}`,\n selector: `?${a}`,\n onSelect: `?${f}`,\n switch: `?${b}`,\n onSwitch: `?${f}`,\n range: `?${a}`,\n onRange: `?${f}`,\n onChange: `?${f}`,\n};\n\nexport default {\n id: s,\n container: validElement,\n url: s,\n poster: s,\n type: s,\n theme: s,\n lang: s,\n volume: n,\n isLive: b,\n muted: b,\n autoplay: b,\n autoSize: b,\n autoMini: b,\n loop: b,\n flip: b,\n playbackRate: b,\n aspectRatio: b,\n screenshot: b,\n setting: b,\n hotkey: b,\n pip: b,\n mutex: b,\n backdrop: b,\n fullscreen: b,\n fullscreenWeb: b,\n subtitleOffset: b,\n miniProgressBar: b,\n useSSR: b,\n playsInline: b,\n lock: b,\n gesture: b,\n fastForward: b,\n autoPlayback: b,\n autoOrientation: b,\n airplay: b,\n proxy: `?${f}`,\n plugins: [f],\n layers: [ComponentOption],\n contextmenu: [ComponentOption],\n settings: [ComponentOption],\n controls: [\n {\n ...ComponentOption,\n position: (value, _, paths) => {\n const position = ['top', 'left', 'right'];\n return errorHandle(\n position.includes(value),\n `${paths.join('.')} only accept ${position.toString()} as parameters`,\n );\n },\n },\n ],\n quality: [\n {\n default: `?${b}`,\n html: s,\n url: s,\n },\n ],\n highlight: [\n {\n time: n,\n text: s,\n },\n ],\n thumbnails: {\n url: s,\n number: n,\n column: n,\n width: n,\n height: n,\n scale: n,\n },\n subtitle: {\n url: s,\n name: s,\n type: s,\n style: o,\n escape: b,\n encoding: s,\n onVttLoad: f,\n },\n moreVideoAttr: o,\n i18n: o,\n icons: o,\n cssVar: o,\n customType: o,\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume',\n ],\n methods: ['addTextTrack', 'canPlayType', 'load', 'play', 'pause'],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n ],\n prototypes: [\n 'width',\n 'height',\n 'videoWidth',\n 'videoHeight',\n 'poster',\n 'webkitDecodedFrameCount',\n 'webkitDroppedFrameCount',\n 'playsInline',\n 'webkitSupportsFullscreen',\n 'webkitDisplayingFullscreen',\n 'onenterpictureinpicture',\n 'onleavepictureinpicture',\n 'disablePictureInPicture',\n 'cancelVideoFrameCallback',\n 'requestVideoFrameCallback',\n 'getVideoPlaybackQuality',\n 'requestPictureInPicture',\n 'webkitEnterFullScreen',\n 'webkitEnterFullscreen',\n 'webkitExitFullScreen',\n 'webkitExitFullscreen',\n ],\n};\n","import { supportsFlex, errorHandle, query, addClass, isMobile, replaceElement } from './utils';\n\nexport default class Template {\n constructor(art) {\n this.art = art;\n const { option, constructor } = art;\n\n if (option.container instanceof Element) {\n this.$container = option.container;\n } else {\n this.$container = query(option.container);\n errorHandle(this.$container, `No container element found by ${option.container}`);\n }\n\n errorHandle(supportsFlex(), 'The current browser does not support flex layout');\n\n const type = this.$container.tagName.toLowerCase();\n errorHandle(type === 'div', `Unsupported container element type, only support 'div' but got '${type}'`);\n\n errorHandle(\n constructor.instances.every((ins) => ins.template.$container !== this.$container),\n 'Cannot mount multiple instances on the same dom element',\n );\n\n this.query = this.query.bind(this);\n this.$container.dataset.artId = art.id;\n this.init();\n }\n\n static get html() {\n return `\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Player version:
\n
${'__APP_VERSION__'}
\n
\n
\n
Video url:
\n
\n
\n
\n
Video volume:
\n
\n
\n
\n
Video time:
\n
\n
\n
\n
Video duration:
\n
\n
\n
\n
Video resolution:
\n
\n x \n
\n
\n
\n
[x]
\n
\n
\n
\n `;\n }\n\n query(className) {\n return query(className, this.$container);\n }\n\n init() {\n const { option } = this.art;\n\n if (!option.useSSR) {\n this.$container.innerHTML = Template.html;\n }\n\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n this.$track = this.query('track');\n this.$poster = this.query('.art-poster');\n this.$subtitle = this.query('.art-subtitle');\n this.$danmuku = this.query('.art-danmuku');\n this.$bottom = this.query('.art-bottom');\n this.$progress = this.query('.art-progress');\n this.$controls = this.query('.art-controls');\n this.$controlsLeft = this.query('.art-controls-left');\n this.$controlsCenter = this.query('.art-controls-center');\n this.$controlsRight = this.query('.art-controls-right');\n this.$layer = this.query('.art-layers');\n this.$loading = this.query('.art-loading');\n this.$notice = this.query('.art-notice');\n this.$noticeInner = this.query('.art-notice-inner');\n this.$mask = this.query('.art-mask');\n this.$state = this.query('.art-state');\n this.$setting = this.query('.art-settings');\n this.$info = this.query('.art-info');\n this.$infoPanel = this.query('.art-info-panel');\n this.$infoClose = this.query('.art-info-close');\n this.$contextmenu = this.query('.art-contextmenus');\n\n if (option.proxy) {\n const video = option.proxy.call(this.art, this.art);\n errorHandle(\n video instanceof HTMLVideoElement || video instanceof HTMLCanvasElement,\n `Function 'option.proxy' needs to return 'HTMLVideoElement' or 'HTMLCanvasElement'`,\n );\n replaceElement(video, this.$video);\n video.className = 'art-video';\n this.$video = video;\n }\n\n if (option.backdrop) {\n addClass(this.$player, 'art-backdrop');\n }\n\n if (isMobile) {\n addClass(this.$player, 'art-mobile');\n }\n }\n\n destroy(removeHtml) {\n this.$video.src = '';\n if (removeHtml) {\n this.$container.innerHTML = '';\n } else {\n addClass(this.$player, 'art-destroy');\n }\n }\n}\n","import { mergeDeep } from '../utils';\nimport zhCn from './zh-cn';\n\nexport default class I18n {\n constructor(art) {\n this.art = art;\n\n this.languages = {\n 'zh-cn': zhCn,\n };\n\n this.language = {};\n\n this.update(art.option.i18n);\n }\n\n init() {\n const lang = this.art.option.lang.toLowerCase();\n this.language = this.languages[lang] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n\n update(value) {\n this.languages = mergeDeep(this.languages, value);\n this.init();\n }\n}\n","const zhCn = {\n 'Video Info': '统计信息',\n Close: '关闭',\n 'Video Load Failed': '加载失败',\n Volume: '音量',\n Play: '播放',\n Pause: '暂停',\n Rate: '速度',\n Mute: '静音',\n 'Video Flip': '画面翻转',\n Horizontal: '水平',\n Vertical: '垂直',\n Reconnect: '重新连接',\n 'Show Setting': '显示设置',\n 'Hide Setting': '隐藏设置',\n Screenshot: '截图',\n 'Play Speed': '播放速度',\n 'Aspect Ratio': '画面比例',\n Default: '默认',\n Normal: '正常',\n Open: '打开',\n 'Switch Video': '切换',\n 'Switch Subtitle': '切换字幕',\n Fullscreen: '全屏',\n 'Exit Fullscreen': '退出全屏',\n 'Web Fullscreen': '网页全屏',\n 'Exit Web Fullscreen': '退出网页全屏',\n 'Mini Player': '迷你播放器',\n 'PIP Mode': '开启画中画',\n 'Exit PIP Mode': '退出画中画',\n 'PIP Not Supported': '不支持画中画',\n 'Fullscreen Not Supported': '不支持全屏',\n 'Subtitle Offset': '字幕偏移',\n 'Last Seen': '上次看到',\n 'Jump Play': '跳转播放',\n AirPlay: '隔空播放',\n 'AirPlay Not Available': '隔空播放不可用',\n};\n\nexport default zhCn;\n\nif (typeof window !== 'undefined') {\n window['artplayer-i18n-zh-cn'] = zhCn;\n}\n","import urlMix from './urlMix';\nimport attrMix from './attrMix';\nimport playMix from './playMix';\nimport pauseMix from './pauseMix';\nimport toggleMix from './toggleMix';\nimport seekMix from './seekMix';\nimport volumeMix from './volumeMix';\nimport currentTimeMix from './currentTimeMix';\nimport durationMix from './durationMix';\nimport switchMix from './switchMix';\nimport playbackRateMix from './playbackRateMix';\nimport aspectRatioMix from './aspectRatioMix';\nimport screenshotMix from './screenshotMix';\nimport fullscreenMix from './fullscreenMix';\nimport fullscreenWebMix from './fullscreenWebMix';\nimport pipMix from './pipMix';\nimport loadedMix from './loadedMix';\nimport playedMix from './playedMix';\nimport playingMix from './playingMix';\nimport autoSizeMix from './autoSizeMix';\nimport rectMix from './rectMix';\nimport flipMix from './flipMix';\nimport miniMix from './miniMix';\nimport posterMix from './posterMix';\nimport autoHeightMix from './autoHeightMix';\nimport cssVarMix from './cssVarMix';\nimport themeMix from './themeMix';\nimport typeMix from './typeMix';\nimport stateMix from './stateMix';\nimport subtitleOffsetMix from './subtitleOffsetMix';\nimport airplayMix from './airplayMix';\nimport qualityMix from './qualityMix';\nimport thumbnailsMix from './thumbnailsMix';\nimport optionInit from './optionInit';\nimport eventInit from './eventInit';\n\nexport default class Player {\n constructor(art) {\n urlMix(art);\n attrMix(art);\n playMix(art);\n pauseMix(art);\n toggleMix(art);\n seekMix(art);\n volumeMix(art);\n currentTimeMix(art);\n durationMix(art);\n switchMix(art);\n playbackRateMix(art);\n aspectRatioMix(art);\n screenshotMix(art);\n fullscreenMix(art);\n fullscreenWebMix(art);\n pipMix(art);\n loadedMix(art);\n playedMix(art);\n playingMix(art);\n autoSizeMix(art);\n rectMix(art);\n flipMix(art);\n miniMix(art);\n posterMix(art);\n autoHeightMix(art);\n cssVarMix(art);\n themeMix(art);\n typeMix(art);\n stateMix(art);\n subtitleOffsetMix(art);\n airplayMix(art);\n qualityMix(art);\n thumbnailsMix(art);\n eventInit(art);\n optionInit(art);\n }\n}\n","import { getExt, def, sleep } from '../utils';\n\nexport default function urlMix(art) {\n const {\n option,\n template: { $video },\n } = art;\n\n def(art, 'url', {\n get() {\n return $video.src;\n },\n async set(newUrl) {\n if (newUrl) {\n const oldUrl = art.url;\n const typeName = option.type || getExt(newUrl);\n const typeCallback = option.customType[typeName];\n\n if (typeName && typeCallback) {\n await sleep();\n art.loading.show = true;\n typeCallback.call(art, $video, newUrl, art);\n } else {\n URL.revokeObjectURL(oldUrl);\n $video.src = newUrl;\n }\n\n if (oldUrl !== art.url) {\n art.option.url = newUrl;\n if (art.isReady && oldUrl) {\n art.once('video:canplay', () => {\n art.emit('restart', newUrl);\n });\n }\n }\n } else {\n await sleep();\n art.loading.show = true;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function attrMix(art) {\n const {\n template: { $video },\n } = art;\n\n def(art, 'attr', {\n value(key, value) {\n if (value === undefined) return $video[key];\n $video[key] = value;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function playMix(art) {\n const {\n i18n,\n notice,\n option,\n constructor: { instances },\n template: { $video },\n } = art;\n\n def(art, 'play', {\n value: async function () {\n const result = await $video.play();\n notice.show = i18n.get('Play');\n art.emit('play');\n\n if (option.mutex) {\n for (let index = 0; index < instances.length; index++) {\n const instance = instances[index];\n if (instance !== art) {\n instance.pause();\n }\n }\n }\n\n return result;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function pauseMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art;\n\n def(art, 'pause', {\n value() {\n const result = $video.pause();\n notice.show = i18n.get('Pause');\n art.emit('pause');\n return result;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function toggleMix(art) {\n def(art, 'toggle', {\n value() {\n if (art.playing) {\n return art.pause();\n } else {\n return art.play();\n }\n },\n });\n}\n","import { secondToTime, def } from '../utils';\n\nexport default function seekMix(art) {\n const { notice } = art;\n\n def(art, 'seek', {\n set(time) {\n art.currentTime = time;\n if (art.duration) {\n notice.show = `${secondToTime(art.currentTime)} / ${secondToTime(art.duration)}`;\n }\n art.emit('seek', art.currentTime);\n },\n });\n\n def(art, 'forward', {\n set(time) {\n art.seek = art.currentTime + time;\n },\n });\n\n def(art, 'backward', {\n set(time) {\n art.seek = art.currentTime - time;\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function volumeMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n storage,\n } = art;\n\n def(art, 'volume', {\n get: () => $video.volume || 0,\n set: (percentage) => {\n $video.volume = clamp(percentage, 0, 1);\n notice.show = `${i18n.get('Volume')}: ${parseInt($video.volume * 100, 10)}`;\n if ($video.volume !== 0) {\n storage.set('volume', $video.volume);\n }\n },\n });\n\n def(art, 'muted', {\n get: () => $video.muted,\n set: (muted) => {\n $video.muted = muted;\n art.emit('muted', muted);\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function currentTimeMix(art) {\n const { $video } = art.template;\n\n def(art, 'currentTime', {\n get: () => $video.currentTime || 0,\n set: (time) => {\n time = parseFloat(time);\n if (Number.isNaN(time)) return;\n $video.currentTime = clamp(time, 0, art.duration);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function durationMix(art) {\n def(art, 'duration', {\n get: () => {\n const { duration } = art.template.$video;\n if (duration === Infinity) return 0;\n return duration || 0;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function switchMix(art) {\n function switchUrl(url, currentTime) {\n return new Promise((resolve, reject) => {\n if (url === art.url) return;\n const { playing, aspectRatio, playbackRate } = art;\n\n art.pause();\n art.url = url;\n art.notice.show = '';\n\n art.once('video:error', reject);\n\n art.once('video:loadedmetadata', () => {\n art.currentTime = currentTime;\n });\n\n art.once('video:canplay', async () => {\n art.playbackRate = playbackRate;\n art.aspectRatio = aspectRatio;\n\n if (playing) {\n await art.play();\n }\n\n art.notice.show = '';\n\n resolve();\n });\n });\n }\n\n def(art, 'switchQuality', {\n value: (url) => {\n return switchUrl(url, art.currentTime);\n },\n });\n\n def(art, 'switchUrl', {\n value: (url) => {\n return switchUrl(url, 0);\n },\n });\n\n def(art, 'switch', {\n set: art.switchUrl,\n });\n}\n","import { def } from '../utils';\n\nexport default function playbackRateMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art;\n\n def(art, 'playbackRate', {\n get() {\n return $video.playbackRate;\n },\n set(rate) {\n if (rate) {\n if (rate === $video.playbackRate) return;\n $video.playbackRate = rate;\n notice.show = `${i18n.get('Rate')}: ${rate === 1.0 ? i18n.get('Normal') : `${rate}x`}`;\n } else {\n art.playbackRate = 1;\n }\n },\n });\n}\n","import { setStyle, def } from '../utils';\n\nexport default function aspectRatioMix(art) {\n const {\n i18n,\n notice,\n template: { $video, $player },\n } = art;\n\n def(art, 'aspectRatio', {\n get() {\n return $player.dataset.aspectRatio || 'default';\n },\n set(ratio) {\n if (!ratio) ratio = 'default';\n if (ratio === 'default') {\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'margin', null);\n delete $player.dataset.aspectRatio;\n } else {\n const ratioArray = ratio.split(':').map(Number);\n const { clientWidth, clientHeight } = $player;\n const playerRatio = clientWidth / clientHeight;\n const setupRatio = ratioArray[0] / ratioArray[1];\n\n if (playerRatio > setupRatio) {\n setStyle($video, 'width', `${setupRatio * clientHeight}px`);\n setStyle($video, 'height', '100%');\n setStyle($video, 'margin', '0 auto');\n } else {\n setStyle($video, 'width', '100%');\n setStyle($video, 'height', `${clientWidth / setupRatio}px`);\n setStyle($video, 'margin', 'auto 0');\n }\n\n $player.dataset.aspectRatio = ratio;\n }\n\n notice.show = `${i18n.get('Aspect Ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`;\n art.emit('aspectRatio', ratio);\n },\n });\n}\n","import { secondToTime, download, def, createElement } from '../utils';\n\nexport default function screenshotMix(art) {\n const {\n notice,\n template: { $video },\n } = art;\n\n const $canvas = createElement('canvas');\n\n def(art, 'getDataURL', {\n value: () =>\n new Promise((resolve, reject) => {\n try {\n $canvas.width = $video.videoWidth;\n $canvas.height = $video.videoHeight;\n $canvas.getContext('2d').drawImage($video, 0, 0);\n resolve($canvas.toDataURL('image/png'));\n } catch (err) {\n notice.show = err;\n reject(err);\n }\n }),\n });\n\n def(art, 'getBlobUrl', {\n value: () =>\n new Promise((resolve, reject) => {\n try {\n $canvas.width = $video.videoWidth;\n $canvas.height = $video.videoHeight;\n $canvas.getContext('2d').drawImage($video, 0, 0);\n $canvas.toBlob((blob) => {\n resolve(URL.createObjectURL(blob));\n });\n } catch (err) {\n notice.show = err;\n reject(err);\n }\n }),\n });\n\n def(art, 'screenshot', {\n value: async (name) => {\n const dataUri = await art.getDataURL();\n const fileName = name || `artplayer_${secondToTime($video.currentTime)}`;\n download(dataUri, `${fileName}.png`);\n art.emit('screenshot', dataUri);\n return dataUri;\n },\n });\n}\n","import screenfull from '../libs/screenfull';\nimport { addClass, removeClass, def, get } from '../utils';\n\nexport default function fullscreenMix(art) {\n const {\n i18n,\n notice,\n template: { $video, $player },\n } = art;\n\n const nativeScreenfull = (art) => {\n screenfull.on('change', () => {\n art.emit('fullscreen', screenfull.isFullscreen);\n\n if (screenfull.isFullscreen) {\n art.state = 'fullscreen';\n addClass($player, 'art-fullscreen');\n } else {\n removeClass($player, 'art-fullscreen');\n }\n\n art.emit('resize');\n });\n\n screenfull.on('error', (event) => {\n art.emit('fullscreenError', event);\n });\n\n def(art, 'fullscreen', {\n get() {\n return screenfull.isFullscreen;\n },\n async set(value) {\n if (value) {\n await screenfull.request($player);\n } else {\n await screenfull.exit();\n }\n },\n });\n };\n\n const webkitScreenfull = (art) => {\n art.proxy(document, 'webkitfullscreenchange', () => {\n art.emit('fullscreen', art.fullscreen);\n art.emit('resize');\n });\n\n def(art, 'fullscreen', {\n get() {\n return document.fullscreenElement === $video;\n },\n set(value) {\n if (value) {\n art.state = 'fullscreen';\n $video.webkitEnterFullscreen();\n } else {\n $video.webkitExitFullscreen();\n }\n },\n });\n };\n\n art.once('video:loadedmetadata', () => {\n if (screenfull.isEnabled) {\n nativeScreenfull(art);\n } else if ($video.webkitSupportsFullscreen) {\n webkitScreenfull(art);\n } else {\n def(art, 'fullscreen', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('Fullscreen Not Supported');\n },\n });\n }\n\n // Asynchronous setting\n def(art, 'fullscreen', get(art, 'fullscreen'));\n });\n}\n","const methodMap = [\n [\n 'requestFullscreen',\n 'exitFullscreen',\n 'fullscreenElement',\n 'fullscreenEnabled',\n 'fullscreenchange',\n 'fullscreenerror',\n ],\n // New WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitFullscreenEnabled',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror',\n ],\n // Old WebKit\n [\n 'webkitRequestFullScreen',\n 'webkitCancelFullScreen',\n 'webkitCurrentFullScreenElement',\n 'webkitCancelFullScreen',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror',\n ],\n [\n 'mozRequestFullScreen',\n 'mozCancelFullScreen',\n 'mozFullScreenElement',\n 'mozFullScreenEnabled',\n 'mozfullscreenchange',\n 'mozfullscreenerror',\n ],\n [\n 'msRequestFullscreen',\n 'msExitFullscreen',\n 'msFullscreenElement',\n 'msFullscreenEnabled',\n 'MSFullscreenChange',\n 'MSFullscreenError',\n ],\n];\n\nconst nativeAPI = (() => {\n if (typeof document === 'undefined') {\n return false;\n }\n\n const unprefixedMethods = methodMap[0];\n const returnValue = {};\n\n for (const methodList of methodMap) {\n const exitFullscreenMethod = methodList[1];\n if (exitFullscreenMethod in document) {\n for (const [index, method] of methodList.entries()) {\n returnValue[unprefixedMethods[index]] = method;\n }\n\n return returnValue;\n }\n }\n\n return false;\n})();\n\nconst eventNameMap = {\n change: nativeAPI.fullscreenchange,\n error: nativeAPI.fullscreenerror,\n};\n\nlet screenfull = {\n request(element = document.documentElement, options) {\n return new Promise((resolve, reject) => {\n const onFullScreenEntered = () => {\n screenfull.off('change', onFullScreenEntered);\n resolve();\n };\n\n screenfull.on('change', onFullScreenEntered);\n\n const returnPromise = element[nativeAPI.requestFullscreen](options);\n\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenEntered).catch(reject);\n }\n });\n },\n exit() {\n return new Promise((resolve, reject) => {\n if (!screenfull.isFullscreen) {\n resolve();\n return;\n }\n\n const onFullScreenExit = () => {\n screenfull.off('change', onFullScreenExit);\n resolve();\n };\n\n screenfull.on('change', onFullScreenExit);\n\n const returnPromise = document[nativeAPI.exitFullscreen]();\n\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenExit).catch(reject);\n }\n });\n },\n toggle(element, options) {\n return screenfull.isFullscreen ? screenfull.exit() : screenfull.request(element, options);\n },\n onchange(callback) {\n screenfull.on('change', callback);\n },\n onerror(callback) {\n screenfull.on('error', callback);\n },\n on(event, callback) {\n const eventName = eventNameMap[event];\n if (eventName) {\n document.addEventListener(eventName, callback, false);\n }\n },\n off(event, callback) {\n const eventName = eventNameMap[event];\n if (eventName) {\n document.removeEventListener(eventName, callback, false);\n }\n },\n raw: nativeAPI,\n};\n\nObject.defineProperties(screenfull, {\n isFullscreen: {\n get: () => Boolean(document[nativeAPI.fullscreenElement]),\n },\n element: {\n enumerable: true,\n get: () => document[nativeAPI.fullscreenElement],\n },\n isEnabled: {\n enumerable: true,\n get: () => Boolean(document[nativeAPI.fullscreenEnabled]),\n },\n});\n\nif (!nativeAPI) {\n screenfull = { isEnabled: false };\n}\n\nexport default screenfull;\n","import { addClass, removeClass, hasClass, def, append, setStyle } from '../utils';\n\nexport default function fullscreenWebMix(art) {\n const {\n constructor,\n template: { $container, $player },\n } = art;\n\n let cssText = '';\n def(art, 'fullscreenWeb', {\n get() {\n return hasClass($player, 'art-fullscreen-web');\n },\n set(value) {\n if (value) {\n cssText = $player.style.cssText;\n if (constructor.FULLSCREEN_WEB_IN_BODY) {\n append(document.body, $player);\n }\n art.state = 'fullscreenWeb';\n setStyle($player, 'width', '100%');\n setStyle($player, 'height', '100%');\n addClass($player, 'art-fullscreen-web');\n art.emit('fullscreenWeb', true);\n } else {\n if (constructor.FULLSCREEN_WEB_IN_BODY) {\n append($container, $player);\n }\n if (cssText) {\n $player.style.cssText = cssText;\n cssText = '';\n }\n removeClass($player, 'art-fullscreen-web');\n art.emit('fullscreenWeb', false);\n }\n\n art.emit('resize');\n },\n });\n}\n","import { def } from '../utils';\n\nfunction nativePip(art) {\n const {\n template: { $video },\n proxy,\n notice,\n } = art;\n\n $video.disablePictureInPicture = false;\n\n def(art, 'pip', {\n get() {\n return document.pictureInPictureElement;\n },\n set(value) {\n if (value) {\n art.state = 'pip';\n $video.requestPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n } else {\n document.exitPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n },\n });\n\n proxy($video, 'enterpictureinpicture', () => {\n art.emit('pip', true);\n });\n\n proxy($video, 'leavepictureinpicture', () => {\n art.emit('pip', false);\n });\n}\n\nfunction webkitPip(art) {\n const { $video } = art.template;\n\n $video.webkitSetPresentationMode('inline');\n\n def(art, 'pip', {\n get() {\n return $video.webkitPresentationMode === 'picture-in-picture';\n },\n set(value) {\n if (value) {\n art.state = 'pip';\n $video.webkitSetPresentationMode('picture-in-picture');\n art.emit('pip', true);\n } else {\n $video.webkitSetPresentationMode('inline');\n art.emit('pip', false);\n }\n },\n });\n}\n\nexport default function pipMix(art) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art;\n if (document.pictureInPictureEnabled) {\n nativePip(art);\n } else if ($video.webkitSupportsPresentationMode) {\n webkitPip(art);\n } else {\n def(art, 'pip', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('PIP Not Supported');\n },\n });\n }\n}\n","import { def } from '../utils';\n\nexport default function seekMix(art) {\n const { $video } = art.template;\n\n def(art, 'loaded', {\n get: () => art.loadedTime / $video.duration,\n });\n\n def(art, 'loadedTime', {\n get: () => {\n return $video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function playedMix(art) {\n def(art, 'played', {\n get: () => art.currentTime / art.duration,\n });\n}\n","import { def } from '../utils';\n\nexport default function playingMix(art) {\n const { $video } = art.template;\n def(art, 'playing', {\n get: () => {\n if (typeof $video.playing === 'boolean') return $video.playing;\n return !!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2);\n },\n });\n}\n","import { setStyle, def, getRect } from '../utils';\n\nexport default function resizeMix(art) {\n const { $container, $player, $video } = art.template;\n\n def(art, 'autoSize', {\n value() {\n const { videoWidth, videoHeight } = $video;\n const { width, height } = getRect($container);\n const videoRatio = videoWidth / videoHeight;\n const containerRatio = width / height;\n if (containerRatio > videoRatio) {\n const percentage = ((height * videoRatio) / width) * 100;\n setStyle($player, 'width', `${percentage}%`);\n setStyle($player, 'height', '100%');\n } else {\n const percentage = (width / videoRatio / height) * 100;\n setStyle($player, 'width', '100%');\n setStyle($player, 'height', `${percentage}%`);\n }\n art.emit('autoSize', {\n width: art.width,\n height: art.height,\n });\n },\n });\n}\n","import { def, getRect } from '../utils';\n\nexport default function rectMix(art) {\n def(art, 'rect', {\n get: () => {\n return getRect(art.template.$player);\n },\n });\n\n const keys = ['bottom', 'height', 'left', 'right', 'top', 'width'];\n for (let index = 0; index < keys.length; index++) {\n const key = keys[index];\n def(art, key, {\n get: () => {\n return art.rect[key];\n },\n });\n }\n\n def(art, 'x', {\n get: () => {\n return art.left + window.pageXOffset;\n },\n });\n\n def(art, 'y', {\n get: () => {\n return art.top + window.pageYOffset;\n },\n });\n}\n","import { def, capitalize } from '../utils';\n\nexport default function flipMix(art) {\n const {\n template: { $player },\n i18n,\n notice,\n } = art;\n\n def(art, 'flip', {\n get() {\n return $player.dataset.flip || 'normal';\n },\n set(flip) {\n if (!flip) flip = 'normal';\n if (flip === 'normal') {\n delete $player.dataset.flip;\n } else {\n $player.dataset.flip = flip;\n }\n\n notice.show = `${i18n.get('Video Flip')}: ${i18n.get(capitalize(flip))}`;\n art.emit('flip', flip);\n },\n });\n}\n","import { append, setStyle, addClass, removeClass, hasClass, def, isInViewport, createElement, getRect } from '../utils';\n\nexport default function miniMix(art) {\n const {\n icons,\n proxy,\n storage,\n template: { $player, $video },\n } = art;\n\n let isDroging = false;\n let lastPageX = 0;\n let lastPageY = 0;\n\n function hideMini() {\n const { $mini } = art.template;\n if ($mini) {\n removeClass($player, 'art-mini');\n setStyle($mini, 'display', 'none');\n $player.prepend($video);\n art.emit('mini', false);\n }\n }\n\n function initState($play, $pause) {\n if (art.playing) {\n setStyle($play, 'display', `none`);\n setStyle($pause, 'display', `flex`);\n } else {\n setStyle($play, 'display', `flex`);\n setStyle($pause, 'display', `none`);\n }\n }\n\n function createMini() {\n const { $mini } = art.template;\n if ($mini) {\n append($mini, $video);\n return setStyle($mini, 'display', 'flex');\n } else {\n const $mini = createElement('div');\n addClass($mini, 'art-mini-popup');\n append(document.body, $mini);\n art.template.$mini = $mini;\n append($mini, $video);\n\n const $close = append($mini, `
`);\n append($close, icons.close);\n proxy($close, 'click', hideMini);\n\n const $state = append($mini, `
`);\n const $play = append($state, icons.play);\n const $pause = append($state, icons.pause);\n proxy($play, 'click', () => art.play());\n proxy($pause, 'click', () => art.pause());\n initState($play, $pause);\n art.on('video:playing', () => initState($play, $pause));\n art.on('video:pause', () => initState($play, $pause));\n art.on('video:timeupdate', () => initState($play, $pause));\n\n proxy($mini, 'mousedown', (event) => {\n isDroging = event.button === 0;\n lastPageX = event.pageX;\n lastPageY = event.pageY;\n });\n\n art.on('document:mousemove', (event) => {\n if (isDroging) {\n addClass($mini, 'art-mini-droging');\n const x = event.pageX - lastPageX;\n const y = event.pageY - lastPageY;\n setStyle($mini, 'transform', `translate(${x}px, ${y}px)`);\n }\n });\n\n art.on('document:mouseup', () => {\n if (isDroging) {\n isDroging = false;\n removeClass($mini, 'art-mini-droging');\n const rect = getRect($mini);\n storage.set('left', rect.left);\n storage.set('top', rect.top);\n setStyle($mini, 'left', `${rect.left}px`);\n setStyle($mini, 'top', `${rect.top}px`);\n setStyle($mini, 'transform', null);\n }\n });\n\n return $mini;\n }\n }\n\n function initMini() {\n const { $mini } = art.template;\n const rect = getRect($mini);\n const top = window.innerHeight - rect.height - 50;\n const left = window.innerWidth - rect.width - 50;\n storage.set('top', top);\n storage.set('left', left);\n setStyle($mini, 'top', `${top}px`);\n setStyle($mini, 'left', `${left}px`);\n }\n\n def(art, 'mini', {\n get() {\n return hasClass($player, 'art-mini');\n },\n set(value) {\n if (value) {\n art.state = 'mini';\n addClass($player, 'art-mini');\n const $mini = createMini();\n const top = storage.get('top');\n const left = storage.get('left');\n if (top && left) {\n setStyle($mini, 'top', `${top}px`);\n setStyle($mini, 'left', `${left}px`);\n if (!isInViewport($mini)) {\n initMini();\n }\n } else {\n initMini();\n }\n art.emit('mini', true);\n } else {\n hideMini();\n }\n },\n });\n}\n","import { def, setStyle } from '../utils';\n\nexport default function posterMix(art) {\n const {\n template: { $poster },\n } = art;\n\n def(art, 'poster', {\n get: () => {\n try {\n return $poster.style['backgroundImage'].match(/\"(.*)\"/)[1];\n // eslint-disable-next-line no-unused-vars\n } catch (error) {\n return '';\n }\n },\n set(url) {\n setStyle($poster, 'backgroundImage', `url(${url})`);\n },\n });\n}\n","import { setStyle, def } from '../utils';\n\nexport default function autoHeightMix(art) {\n const {\n template: { $container, $video },\n } = art;\n\n def(art, 'autoHeight', {\n value() {\n const { clientWidth } = $container;\n const { videoHeight, videoWidth } = $video;\n const height = videoHeight * (clientWidth / videoWidth);\n setStyle($container, 'height', height + 'px');\n art.emit('autoHeight', height);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function cssVarMix(art) {\n const { $player } = art.template;\n\n def(art, 'cssVar', {\n value(key, value) {\n if (value) {\n return $player.style.setProperty(key, value);\n } else {\n return getComputedStyle($player).getPropertyValue(key);\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function themeMix(art) {\n def(art, 'theme', {\n get() {\n return art.cssVar('--art-theme');\n },\n set(theme) {\n art.cssVar('--art-theme', theme);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function typeMix(art) {\n def(art, 'type', {\n get() {\n return art.option.type;\n },\n set(type) {\n art.option.type = type;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function stateMix(art) {\n const states = ['mini', 'pip', 'fullscreen', 'fullscreenWeb'];\n def(art, 'state', {\n get: () => states.find((name) => art[name]) || 'standard',\n set(name) {\n for (let index = 0; index < states.length; index++) {\n const prop = states[index];\n if (prop !== name && art[prop]) {\n art[prop] = false;\n }\n }\n },\n });\n}\n","import { def, clamp } from '../utils';\n\nexport default function subtitleOffsetMix(art) {\n const { notice, i18n, template } = art;\n\n def(art, 'subtitleOffset', {\n get() {\n return template.$track?.offset || 0;\n },\n set(value) {\n const { cues } = art.subtitle;\n if (!template.$track || cues.length === 0) return;\n const offset = clamp(value, -10, 10);\n template.$track.offset = offset;\n for (let index = 0; index < cues.length; index++) {\n const cue = cues[index];\n cue.originalStartTime = cue.originalStartTime ?? cue.startTime;\n cue.originalEndTime = cue.originalEndTime ?? cue.endTime;\n cue.startTime = clamp(cue.originalStartTime + offset, 0, art.duration);\n cue.endTime = clamp(cue.originalEndTime + offset, 0, art.duration);\n }\n art.subtitle.update();\n notice.show = `${i18n.get('Subtitle Offset')}: ${value}s`;\n art.emit('subtitleOffset', value);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function airplayMix(art) {\n const {\n i18n,\n notice,\n proxy,\n template: { $video },\n } = art;\n\n let available = true;\n\n if (window.WebKitPlaybackTargetAvailabilityEvent && $video.webkitShowPlaybackTargetPicker) {\n proxy($video, 'webkitplaybacktargetavailabilitychanged', (event) => {\n switch (event.availability) {\n case 'available':\n available = true;\n break;\n case 'not-available':\n available = false;\n break;\n }\n });\n } else {\n available = false;\n }\n\n def(art, 'airplay', {\n value() {\n if (available) {\n $video.webkitShowPlaybackTargetPicker();\n art.emit('airplay');\n } else {\n notice.show = i18n.get('AirPlay Not Available');\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function qualityMix(art) {\n def(art, 'quality', {\n set(quality) {\n const { controls, notice, i18n } = art;\n const qualityDefault = quality.find((item) => item.default) || quality[0];\n controls.update({\n name: 'quality',\n position: 'right',\n index: 10,\n style: {\n marginRight: '10px',\n },\n html: qualityDefault?.html || '',\n selector: quality,\n async onSelect(item) {\n await art.switchQuality(item.url);\n notice.show = `${i18n.get('Switch Video')}: ${item.html}`;\n return item.html;\n },\n });\n },\n });\n}\n","import { def, setStyle, isMobile, loadImg } from '../utils';\n\nexport default function thumbnailsMix(art) {\n const {\n events,\n option,\n template: { $progress, $video },\n } = art;\n\n let timer = null;\n let image = null;\n let loading = false;\n let isLoad = false;\n let isHover = false;\n\n function reset() {\n clearTimeout(timer);\n timer = null;\n image = null;\n loading = false;\n isLoad = false;\n }\n\n function showThumbnails(posWidth) {\n const $thumbnails = art.controls?.thumbnails;\n if (!$thumbnails) return;\n\n const { number, column, width, height, scale } = option.thumbnails;\n const width2 = width * scale || image.naturalWidth / column;\n const height2 = height * scale || width2 / ($video.videoWidth / $video.videoHeight);\n const perWidth = $progress.clientWidth / number;\n const perIndex = Math.floor(posWidth / perWidth);\n const yIndex = Math.ceil(perIndex / column) - 1;\n const xIndex = perIndex % column || column - 1;\n setStyle($thumbnails, 'backgroundImage', `url(${image.src})`);\n setStyle($thumbnails, 'height', `${height2}px`);\n setStyle($thumbnails, 'width', `${width2}px`);\n setStyle($thumbnails, 'backgroundPosition', `-${xIndex * width2}px -${yIndex * height2}px`);\n if (posWidth <= width2 / 2) {\n setStyle($thumbnails, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width2 / 2) {\n setStyle($thumbnails, 'left', `${$progress.clientWidth - width2}px`);\n } else {\n setStyle($thumbnails, 'left', `${posWidth - width2 / 2}px`);\n }\n }\n\n events.hover(\n $progress,\n () => {\n isHover = true;\n },\n () => {\n isHover = false;\n },\n );\n\n art.on('setBar', async (type, percentage, event) => {\n const $thumbnails = art.controls?.thumbnails;\n const { url, scale } = option.thumbnails;\n if (!$thumbnails || !url) return;\n\n const isMobileDroging = type === 'played' && event && isMobile;\n\n if (type === 'hover' || isMobileDroging) {\n if (!loading) {\n loading = true;\n image = await loadImg(url, scale);\n isLoad = true;\n }\n\n if (!isLoad || !isHover) return;\n\n const width = $progress.clientWidth * percentage;\n setStyle($thumbnails, 'display', 'flex');\n\n if (width > 0 && width < $progress.clientWidth) {\n showThumbnails(width);\n } else {\n if (!isMobile) {\n setStyle($thumbnails, 'display', 'none');\n }\n }\n\n if (isMobileDroging) {\n clearTimeout(timer);\n timer = setTimeout(() => {\n setStyle($thumbnails, 'display', 'none');\n }, 500);\n }\n }\n });\n\n def(art, 'thumbnails', {\n get() {\n return art.option.thumbnails;\n },\n set(thumbnails) {\n if (thumbnails.url && !art.option.isLive) {\n art.option.thumbnails = thumbnails;\n reset();\n }\n },\n });\n}\n","import { clamp, setStyle } from '../utils';\n\nexport default function attrInit(art) {\n const {\n option,\n storage,\n template: { $video, $poster },\n } = art;\n\n for (const key in option.moreVideoAttr) {\n art.attr(key, option.moreVideoAttr[key]);\n }\n\n if (option.muted) {\n art.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n const volumeStorage = storage.get('volume');\n if (typeof volumeStorage === 'number') {\n $video.volume = clamp(volumeStorage, 0, 1);\n }\n\n if (option.poster) {\n setStyle($poster, 'backgroundImage', `url(${option.poster})`);\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n if (option.playsInline) {\n $video.playsInline = true;\n $video['webkit-playsinline'] = true;\n }\n\n if (option.theme) {\n option.cssVar['--art-theme'] = option.theme;\n }\n\n for (const key in option.cssVar) {\n art.cssVar(key, option.cssVar[key]);\n }\n\n art.url = option.url;\n}\n","import config from '../config';\nimport { sleep, addClass, setStyle, isMobile } from '../utils';\n\nexport default function eventInit(art) {\n const {\n i18n,\n notice,\n option,\n constructor,\n proxy,\n template: { $player, $video, $poster },\n } = art;\n\n let reconnectTime = 0;\n\n for (let index = 0; index < config.events.length; index++) {\n proxy($video, config.events[index], (event) => {\n art.emit(`video:${event.type}`, event);\n });\n }\n\n // art.on('video:abort', () => {\n\n // });\n\n art.on('video:canplay', () => {\n reconnectTime = 0;\n art.loading.show = false;\n });\n\n art.once('video:canplay', () => {\n art.loading.show = false;\n art.controls.show = true;\n art.mask.show = true;\n art.isReady = true;\n art.emit('ready');\n });\n\n // art.on('video:canplaythrough', () => {\n\n // });\n\n // art.on('video:durationchange', () => {\n\n // });\n\n // art.on('video:emptied', () => {\n\n // });\n\n art.on('video:ended', () => {\n if (option.loop) {\n art.seek = 0;\n art.play();\n art.controls.show = false;\n art.mask.show = false;\n } else {\n art.controls.show = true;\n art.mask.show = true;\n }\n });\n\n art.on('video:error', async (error) => {\n if (reconnectTime < constructor.RECONNECT_TIME_MAX) {\n await sleep(constructor.RECONNECT_SLEEP_TIME);\n reconnectTime += 1;\n art.url = option.url;\n notice.show = `${i18n.get('Reconnect')}: ${reconnectTime}`;\n art.emit('error', error, reconnectTime);\n } else {\n art.mask.show = true;\n art.loading.show = false;\n art.controls.show = true;\n addClass($player, 'art-error');\n await sleep(constructor.RECONNECT_SLEEP_TIME);\n notice.show = i18n.get('Video Load Failed');\n }\n });\n\n // art.on('video:loadeddata', () => {\n\n // });\n\n art.on('video:loadedmetadata', () => {\n art.emit('resize');\n if (isMobile) {\n art.loading.show = false;\n art.controls.show = true;\n art.mask.show = true;\n }\n });\n\n art.on('video:loadstart', () => {\n art.loading.show = true;\n art.mask.show = false;\n art.controls.show = true;\n });\n\n art.on('video:pause', () => {\n art.controls.show = true;\n art.mask.show = true;\n });\n\n art.on('video:play', () => {\n art.mask.show = false;\n setStyle($poster, 'display', 'none');\n });\n\n art.on('video:playing', () => {\n art.mask.show = false;\n });\n\n art.on('video:progress', () => {\n if (art.playing) {\n art.loading.show = false;\n }\n });\n\n // art.on('video:ratechange', () => {\n\n // });\n\n art.on('video:seeked', () => {\n art.loading.show = false;\n art.mask.show = true;\n });\n\n art.on('video:seeking', () => {\n art.loading.show = true;\n art.mask.show = false;\n });\n\n // art.on('video:stalled', () => {\n\n // });\n\n // art.on('video:suspend', () => {\n\n // });\n\n art.on('video:timeupdate', () => {\n art.mask.show = false;\n });\n\n // art.on('video:volumechange', () => {\n\n // });\n\n art.on('video:waiting', () => {\n art.loading.show = true;\n art.mask.show = false;\n });\n}\n","import Component from '../utils/component';\nimport fullscreen from './fullscreen';\nimport fullscreenWeb from './fullscreenWeb';\nimport pip from './pip';\nimport playAndPause from './playAndPause';\nimport progress from './progress';\nimport time from './time';\nimport volume from './volume';\nimport setting from './setting';\nimport screenshot from './screenshot';\nimport airplay from './airplay';\nimport {\n def,\n sleep,\n append,\n addClass,\n isMobile,\n removeClass,\n errorHandle,\n inverseClass,\n createElement,\n includeFromEvent,\n} from '../utils';\n\nexport default class Control extends Component {\n constructor(art) {\n super(art);\n\n this.isHover = false;\n this.name = 'control';\n this.timer = Date.now();\n\n const { constructor } = art;\n const { $player, $bottom } = this.art.template;\n\n art.on('mousemove', () => {\n if (!isMobile) {\n this.show = true;\n }\n });\n\n art.on('click', () => {\n if (isMobile) {\n this.toggle();\n } else {\n this.show = true;\n }\n });\n\n art.on('document:mousemove', (event) => {\n this.isHover = includeFromEvent(event, $bottom);\n });\n\n art.on('video:timeupdate', () => {\n if (\n !art.setting.show &&\n !this.isHover &&\n !art.isInput &&\n art.playing &&\n this.show &&\n Date.now() - this.timer >= constructor.CONTROL_HIDE_TIME\n ) {\n this.show = false;\n }\n });\n\n art.on('control', (state) => {\n if (state) {\n removeClass($player, 'art-hide-cursor');\n addClass($player, 'art-hover');\n this.timer = Date.now();\n } else {\n addClass($player, 'art-hide-cursor');\n removeClass($player, 'art-hover');\n }\n });\n\n this.init();\n }\n\n init() {\n const { option } = this.art;\n\n if (!option.isLive) {\n this.add(\n progress({\n name: 'progress',\n position: 'top',\n index: 10,\n }),\n );\n }\n\n this.add({\n name: 'thumbnails',\n position: 'top',\n index: 20,\n });\n\n this.add(\n playAndPause({\n name: 'playAndPause',\n position: 'left',\n index: 10,\n }),\n );\n\n this.add(\n volume({\n name: 'volume',\n position: 'left',\n index: 20,\n }),\n );\n\n if (!option.isLive) {\n this.add(\n time({\n name: 'time',\n position: 'left',\n index: 30,\n }),\n );\n }\n\n if (option.quality.length) {\n sleep().then(() => {\n this.art.quality = option.quality;\n });\n }\n\n if (option.screenshot && !isMobile) {\n this.add(\n screenshot({\n name: 'screenshot',\n position: 'right',\n index: 20,\n }),\n );\n }\n\n if (option.setting) {\n this.add(\n setting({\n name: 'setting',\n position: 'right',\n index: 30,\n }),\n );\n }\n\n if (option.pip) {\n this.add(\n pip({\n name: 'pip',\n position: 'right',\n index: 40,\n }),\n );\n }\n\n if (option.airplay && window.WebKitPlaybackTargetAvailabilityEvent) {\n this.add(\n airplay({\n name: 'airplay',\n position: 'right',\n index: 50,\n }),\n );\n }\n\n if (option.fullscreenWeb) {\n this.add(\n fullscreenWeb({\n name: 'fullscreenWeb',\n position: 'right',\n index: 60,\n }),\n );\n }\n\n if (option.fullscreen) {\n this.add(\n fullscreen({\n name: 'fullscreen',\n position: 'right',\n index: 70,\n }),\n );\n }\n\n for (let index = 0; index < option.controls.length; index++) {\n this.add(option.controls[index]);\n }\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n const { $progress, $controlsLeft, $controlsRight } = this.art.template;\n\n switch (option.position) {\n case 'top':\n this.$parent = $progress;\n break;\n case 'left':\n this.$parent = $controlsLeft;\n break;\n case 'right':\n this.$parent = $controlsRight;\n break;\n default:\n errorHandle(false, `Control option.position must one of 'top', 'left', 'right'`);\n break;\n }\n\n super.add(option);\n }\n\n check(target) {\n target.$control_value.innerHTML = target.html;\n for (let index = 0; index < target.$control_option.length; index++) {\n const item = target.$control_option[index];\n item.default = item === target;\n if (item.default) {\n inverseClass(item.$control_item, 'art-current');\n }\n }\n }\n\n selector(option, $ref, events) {\n const { proxy } = this.art.events;\n\n addClass($ref, 'art-control-selector');\n const $value = createElement('div');\n addClass($value, 'art-selector-value');\n append($value, option.html);\n $ref.innerText = '';\n append($ref, $value);\n\n const $list = createElement('div');\n addClass($list, 'art-selector-list');\n append($ref, $list);\n\n for (let index = 0; index < option.selector.length; index++) {\n const item = option.selector[index];\n const $item = createElement('div');\n addClass($item, 'art-selector-item');\n if (item.default) addClass($item, 'art-current');\n $item.dataset.index = index;\n $item.dataset.value = item.value;\n $item.innerHTML = item.html;\n append($list, $item);\n\n def(item, '$control_option', {\n get: () => option.selector,\n });\n\n def(item, '$control_item', {\n get: () => $item,\n });\n\n def(item, '$control_value', {\n get: () => $value,\n });\n }\n\n const event = proxy($list, 'click', async (event) => {\n const path = event.composedPath() || [];\n const item = option.selector.find(\n (item) => item.$control_item === path.find(($item) => item.$control_item === $item),\n );\n this.check(item);\n if (option.onSelect) {\n $value.innerHTML = await option.onSelect.call(this.art, item, item.$control_item, event);\n }\n });\n\n events.push(event);\n }\n}\n","import { remove, append, tooltip, hasClass, addClass, setStyles, removeClass, createElement } from './dom';\nimport { errorHandle } from './error';\nimport validator from 'option-validator';\nimport { ComponentOption } from '../scheme';\n\nexport default class Component {\n constructor(art) {\n this.id = 0;\n this.art = art;\n this.cache = new Map();\n this.add = this.add.bind(this);\n this.remove = this.remove.bind(this);\n this.update = this.update.bind(this);\n }\n\n get show() {\n return hasClass(this.art.template.$player, `art-${this.name}-show`);\n }\n\n set show(value) {\n const { $player } = this.art.template;\n const className = `art-${this.name}-show`;\n if (value) {\n addClass($player, className);\n } else {\n removeClass($player, className);\n }\n this.art.emit(this.name, value);\n }\n\n toggle() {\n this.show = !this.show;\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n option.html = option.html || '';\n validator(option, ComponentOption);\n if (!this.$parent || !this.name || option.disable) return;\n const name = option.name || `${this.name}${this.id}`;\n const item = this.cache.get(name);\n errorHandle(!item, `Can't add an existing [${name}] to the [${this.name}]`);\n\n this.id += 1;\n const $ref = createElement('div');\n addClass($ref, `art-${this.name}`);\n addClass($ref, `art-${this.name}-${name}`);\n\n const childs = Array.from(this.$parent.children);\n $ref.dataset.index = option.index || this.id;\n const nextChild = childs.find((item) => Number(item.dataset.index) >= Number($ref.dataset.index));\n if (nextChild) {\n nextChild.insertAdjacentElement('beforebegin', $ref);\n } else {\n append(this.$parent, $ref);\n }\n\n if (option.html) {\n append($ref, option.html);\n }\n\n if (option.style) {\n setStyles($ref, option.style);\n }\n\n if (option.tooltip) {\n tooltip($ref, option.tooltip);\n }\n\n const events = [];\n if (option.click) {\n const destroyEvent = this.art.events.proxy($ref, 'click', (event) => {\n event.preventDefault();\n option.click.call(this.art, this, event);\n });\n events.push(destroyEvent);\n }\n\n if (option.selector && ['left', 'right'].includes(option.position)) {\n this.selector(option, $ref, events);\n }\n\n this[name] = $ref;\n this.cache.set(name, { $ref, events, option });\n\n if (option.mounted) {\n option.mounted.call(this.art, $ref);\n }\n\n return $ref;\n }\n\n remove(name) {\n const item = this.cache.get(name);\n errorHandle(item, `Can't find [${name}] from the [${this.name}]`);\n\n if (item.option.beforeUnmount) {\n item.option.beforeUnmount.call(this.art, item.$ref);\n }\n\n for (let index = 0; index < item.events.length; index++) {\n this.art.events.remove(item.events[index]);\n }\n\n this.cache.delete(name);\n delete this[name];\n remove(item.$ref);\n }\n\n update(option) {\n const item = this.cache.get(option.name);\n if (item) {\n option = Object.assign(item.option, option);\n this.remove(option.name);\n }\n return this.add(option);\n }\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function fullscreen(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Fullscreen'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art;\n\n const $fullscreenOn = append($control, icons.fullscreenOn);\n const $fullscreenOff = append($control, icons.fullscreenOff);\n setStyle($fullscreenOff, 'display', 'none');\n\n proxy($control, 'click', () => {\n art.fullscreen = !art.fullscreen;\n });\n\n art.on('fullscreen', (state) => {\n if (state) {\n tooltip($control, i18n.get('Exit Fullscreen'));\n setStyle($fullscreenOn, 'display', 'none');\n setStyle($fullscreenOff, 'display', 'inline-flex');\n } else {\n tooltip($control, i18n.get('Fullscreen'));\n setStyle($fullscreenOn, 'display', 'inline-flex');\n setStyle($fullscreenOff, 'display', 'none');\n }\n });\n },\n });\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function fullscreenWeb(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Web Fullscreen'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art;\n\n const $fullscreenWebOn = append($control, icons.fullscreenWebOn);\n const $fullscreenWebOff = append($control, icons.fullscreenWebOff);\n setStyle($fullscreenWebOff, 'display', 'none');\n\n proxy($control, 'click', () => {\n art.fullscreenWeb = !art.fullscreenWeb;\n });\n\n art.on('fullscreenWeb', (value) => {\n if (value) {\n tooltip($control, i18n.get('Exit Web Fullscreen'));\n setStyle($fullscreenWebOn, 'display', 'none');\n setStyle($fullscreenWebOff, 'display', 'inline-flex');\n } else {\n tooltip($control, i18n.get('Web Fullscreen'));\n setStyle($fullscreenWebOn, 'display', 'inline-flex');\n setStyle($fullscreenWebOff, 'display', 'none');\n }\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function pip(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('PIP Mode'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art;\n\n append($control, icons.pip);\n\n proxy($control, 'click', () => {\n art.pip = !art.pip;\n });\n\n art.on('pip', (value) => {\n tooltip($control, i18n.get(value ? 'Exit PIP Mode' : 'PIP Mode'));\n });\n },\n });\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function playAndPause(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const { proxy, icons, i18n } = art;\n\n const $play = append($control, icons.play);\n const $pause = append($control, icons.pause);\n tooltip($play, i18n.get('Play'));\n tooltip($pause, i18n.get('Pause'));\n\n proxy($play, 'click', () => {\n art.play();\n });\n\n proxy($pause, 'click', () => {\n art.pause();\n });\n\n function showPlay() {\n setStyle($play, 'display', 'flex');\n setStyle($pause, 'display', 'none');\n }\n\n function showPause() {\n setStyle($play, 'display', 'none');\n setStyle($pause, 'display', 'flex');\n }\n\n if (art.playing) {\n showPause();\n } else {\n showPlay();\n }\n\n art.on('video:playing', () => {\n showPause();\n });\n\n art.on('video:pause', () => {\n showPlay();\n });\n },\n });\n}\n","import { query, clamp, append, setStyle, secondToTime, includeFromEvent, isMobile, getRect } from '../utils';\n\nexport function getPosFromEvent(art, event) {\n const { $progress } = art.template;\n const { left } = getRect($progress);\n const eventLeft = isMobile ? event.touches[0].clientX : event.clientX;\n const width = clamp(eventLeft - left, 0, $progress.clientWidth);\n const second = (width / $progress.clientWidth) * art.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / $progress.clientWidth, 0, 1);\n return { second, time, width, percentage };\n}\n\nexport function setCurrentTime(art, event) {\n if (art.isRotate) {\n const percentage = event.touches[0].clientY / art.height;\n const second = percentage * art.duration;\n art.emit('setBar', 'played', percentage, event);\n art.seek = second;\n } else {\n const { second, percentage } = getPosFromEvent(art, event);\n art.emit('setBar', 'played', percentage, event);\n art.seek = second;\n }\n}\n\nexport default function progress(options) {\n return (art) => {\n const { icons, option, proxy } = art;\n\n return {\n ...options,\n html: `\n
\n
\n
\n
\n
\n
\n
\n
\n `,\n mounted: ($control) => {\n let tipTimer = null;\n let isDroging = false;\n\n const $hover = query('.art-progress-hover', $control);\n const $loaded = query('.art-progress-loaded', $control);\n const $played = query('.art-progress-played', $control);\n const $highlight = query('.art-progress-highlight', $control);\n const $indicator = query('.art-progress-indicator', $control);\n const $tip = query('.art-progress-tip', $control);\n\n if (icons.indicator) {\n append($indicator, icons.indicator);\n } else {\n setStyle($indicator, 'backgroundColor', 'var(--art-theme)');\n }\n\n function showHighlight(event) {\n const { width } = getPosFromEvent(art, event);\n const { text } = event.target.dataset;\n $tip.innerText = text;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function showTime(event, touch) {\n const { width, time } = touch || getPosFromEvent(art, event);\n $tip.innerText = time;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function updateHighlight() {\n $highlight.innerText = '';\n for (let index = 0; index < option.highlight.length; index++) {\n const item = option.highlight[index];\n const left = (clamp(item.time, 0, art.duration) / art.duration) * 100;\n const html = ``;\n append($highlight, html);\n }\n }\n\n function setBar(type, percentage, event) {\n const isMobileDroging = type === 'played' && event && isMobile;\n\n if (type === 'loaded') {\n setStyle($loaded, 'width', `${percentage * 100}%`);\n }\n\n if (type === 'hover') {\n setStyle($hover, 'width', `${percentage * 100}%`);\n }\n\n if (type === 'played') {\n setStyle($played, 'width', `${percentage * 100}%`);\n setStyle($indicator, 'left', `${percentage * 100}%`);\n }\n\n if (isMobileDroging) {\n setStyle($tip, 'display', 'flex');\n const width = $control.clientWidth * percentage;\n const time = secondToTime(percentage * art.duration);\n showTime(event, { width, time });\n clearTimeout(tipTimer);\n tipTimer = setTimeout(() => {\n setStyle($tip, 'display', 'none');\n }, 500);\n }\n }\n\n art.on('setBar', setBar);\n art.on('video:loadedmetadata', updateHighlight);\n\n if (art.constructor.USE_RAF) {\n art.on('raf', () => {\n art.emit('setBar', 'played', art.played);\n art.emit('setBar', 'loaded', art.loaded);\n });\n } else {\n art.on('video:timeupdate', () => {\n art.emit('setBar', 'played', art.played);\n });\n\n art.on('video:progress', () => {\n art.emit('setBar', 'loaded', art.loaded);\n });\n\n art.on('video:ended', () => {\n art.emit('setBar', 'played', 1);\n });\n }\n\n art.emit('setBar', 'loaded', art.loaded || 0);\n\n if (!isMobile) {\n proxy($control, 'click', (event) => {\n if (event.target !== $indicator) {\n setCurrentTime(art, event);\n }\n });\n\n proxy($control, 'mousemove', (event) => {\n const { percentage } = getPosFromEvent(art, event);\n art.emit('setBar', 'hover', percentage, event);\n setStyle($tip, 'display', 'flex');\n if (includeFromEvent(event, $highlight)) {\n showHighlight(event);\n } else {\n showTime(event);\n }\n });\n\n proxy($control, 'mouseleave', (event) => {\n setStyle($tip, 'display', 'none');\n art.emit('setBar', 'hover', 0, event);\n });\n\n proxy($control, 'mousedown', (event) => {\n isDroging = event.button === 0;\n });\n\n art.on('document:mousemove', (event) => {\n if (isDroging) {\n const { second, percentage } = getPosFromEvent(art, event);\n art.emit('setBar', 'played', percentage, event);\n art.seek = second;\n }\n });\n\n art.on('document:mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n }\n },\n };\n };\n}\n","import { secondToTime, isMobile } from '../utils';\n\nexport default function time(option) {\n return (art) => ({\n ...option,\n style: isMobile\n ? {\n fontSize: '12px',\n padding: '0 5px',\n }\n : {\n cursor: 'auto',\n padding: '0 10px',\n },\n mounted: ($control) => {\n function getTime() {\n const newTime = `${secondToTime(art.currentTime)} / ${secondToTime(art.duration)}`;\n if (newTime !== $control.innerText) {\n $control.innerText = newTime;\n }\n }\n\n getTime();\n\n const events = ['video:loadedmetadata', 'video:timeupdate', 'video:progress'];\n for (let index = 0; index < events.length; index++) {\n art.on(events[index], getTime);\n }\n },\n });\n}\n","import { append, setStyle, isMobile, getRect } from '../utils';\n\nexport default function volume(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const { proxy, icons } = art;\n\n const $volume = append($control, icons.volume);\n const $close = append($control, icons.volumeClose);\n const $panel = append($control, '
');\n const $inner = append($panel, '
');\n const $value = append($inner, `
`);\n const $slider = append($inner, `
`);\n const $handle = append($slider, `
`);\n const $loaded = append($handle, `
`);\n const $indicator = append($slider, `
`);\n\n function getVolumeFromEvent(event) {\n const { top, height } = getRect($slider);\n return 1 - (event.clientY - top) / height;\n }\n\n function update() {\n if (art.muted || art.volume === 0) {\n setStyle($volume, 'display', 'none');\n setStyle($close, 'display', 'flex');\n setStyle($indicator, 'top', '100%');\n setStyle($loaded, 'top', '100%');\n $value.innerText = 0;\n } else {\n const percentage = art.volume * 100;\n setStyle($volume, 'display', 'flex');\n setStyle($close, 'display', 'none');\n setStyle($indicator, 'top', `${100 - percentage}%`);\n setStyle($loaded, 'top', `${100 - percentage}%`);\n $value.innerText = Math.floor(percentage);\n }\n }\n\n update();\n art.on('video:volumechange', update);\n\n proxy($volume, 'click', () => {\n art.muted = true;\n });\n\n proxy($close, 'click', () => {\n art.muted = false;\n });\n\n if (isMobile) {\n setStyle($panel, 'display', 'none');\n } else {\n let isDroging = false;\n\n proxy($slider, 'mousedown', (event) => {\n isDroging = event.button === 0;\n art.volume = getVolumeFromEvent(event);\n });\n\n art.on('document:mousemove', (event) => {\n if (isDroging) {\n art.muted = false;\n art.volume = getVolumeFromEvent(event);\n }\n });\n\n art.on('document:mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n }\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function setting(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Show Setting'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art;\n\n append($control, icons.setting);\n\n proxy($control, 'click', () => {\n art.setting.toggle();\n art.setting.resize();\n });\n\n art.on('setting', (value) => {\n tooltip($control, i18n.get(value ? 'Hide Setting' : 'Show Setting'));\n });\n },\n });\n}\n","import { append } from '../utils';\n\nexport default function screenshot(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Screenshot'),\n mounted: ($control) => {\n const { proxy, icons } = art;\n\n append($control, icons.screenshot);\n proxy($control, 'click', () => {\n art.screenshot();\n });\n },\n });\n}\n","import { append } from '../utils';\n\nexport default function pip(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('AirPlay'),\n mounted: ($control) => {\n const { proxy, icons } = art;\n append($control, icons.airplay);\n proxy($control, 'click', () => art.airplay());\n },\n });\n}\n","import { setStyles, includeFromEvent, isMobile, getRect } from '../utils';\nimport Component from '../utils/component';\nimport playbackRate from './playbackRate';\nimport aspectRatio from './aspectRatio';\nimport flip from './flip';\nimport info from './info';\nimport version from './version';\nimport close from './close';\n\nexport default class Contextmenu extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'contextmenu';\n this.$parent = art.template.$contextmenu;\n\n if (!isMobile) {\n this.init();\n }\n }\n\n init() {\n const {\n option,\n proxy,\n template: { $player, $contextmenu },\n } = this.art;\n\n if (option.playbackRate) {\n this.add(\n playbackRate({\n name: 'playbackRate',\n index: 10,\n }),\n );\n }\n\n if (option.aspectRatio) {\n this.add(\n aspectRatio({\n name: 'aspectRatio',\n index: 20,\n }),\n );\n }\n\n if (option.flip) {\n this.add(\n flip({\n name: 'flip',\n index: 30,\n }),\n );\n }\n\n this.add(\n info({\n name: 'info',\n index: 40,\n }),\n );\n\n this.add(\n version({\n name: 'version',\n index: 50,\n }),\n );\n\n this.add(\n close({\n name: 'close',\n index: 60,\n }),\n );\n\n for (let index = 0; index < option.contextmenu.length; index++) {\n this.add(option.contextmenu[index]);\n }\n\n proxy($player, 'contextmenu', (event) => {\n if (!this.art.constructor.CONTEXTMENU) return;\n event.preventDefault();\n\n this.show = true;\n\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = getRect($player);\n const { height: mHeight, width: mWidth } = getRect($contextmenu);\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight;\n }\n\n setStyles($contextmenu, {\n top: `${menuTop}px`,\n left: `${menuLeft}px`,\n });\n });\n\n proxy($player, 'click', (event) => {\n if (!includeFromEvent(event, $contextmenu)) {\n this.show = false;\n }\n });\n\n this.art.on('blur', () => {\n this.show = false;\n });\n }\n}\n","import { inverseClass, query, queryAll } from '../utils';\n\nexport default function playbackRate(option) {\n return (art) => {\n const {\n i18n,\n constructor: { PLAYBACK_RATE },\n } = art;\n\n const html = PLAYBACK_RATE.map(\n (item) => `${item === 1 ? i18n.get('Normal') : item.toFixed(1)}`,\n ).join('');\n\n return {\n ...option,\n html: `${i18n.get('Play Speed')}: ${html}`,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset;\n if (value) {\n art.playbackRate = Number(value);\n contextmenu.show = false;\n }\n },\n mounted: ($panel) => {\n const $default = query('[data-value=\"1\"]', $panel);\n if ($default) inverseClass($default, 'art-current');\n art.on('video:ratechange', () => {\n const $current = queryAll('span', $panel).find(\n (item) => Number(item.dataset.value) === art.playbackRate,\n );\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, query, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return (art) => {\n const {\n i18n,\n constructor: { ASPECT_RATIO },\n } = art;\n\n const html = ASPECT_RATIO.map(\n (item) => `${item === 'default' ? i18n.get('Default') : item}`,\n ).join('');\n\n return {\n ...option,\n html: `${i18n.get('Aspect Ratio')}: ${html}`,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset;\n if (value) {\n art.aspectRatio = value;\n contextmenu.show = false;\n }\n },\n mounted: ($panel) => {\n const $default = query('[data-value=\"default\"]', $panel);\n if ($default) {\n inverseClass($default, 'art-current');\n }\n art.on('aspectRatio', (value) => {\n const $current = queryAll('span', $panel).find((item) => item.dataset.value === value);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, query, queryAll, capitalize } from '../utils';\n\nexport default function flip(option) {\n return (art) => {\n const {\n i18n,\n constructor: { FLIP },\n } = art;\n\n const html = FLIP.map((item) => `${i18n.get(capitalize(item))}`).join('');\n\n return {\n ...option,\n html: `${i18n.get('Video Flip')}: ${html}`,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset;\n if (value) {\n art.flip = value.toLowerCase();\n contextmenu.show = false;\n }\n },\n mounted: ($panel) => {\n const $default = query('[data-value=\"normal\"]', $panel);\n if ($default) {\n inverseClass($default, 'art-current');\n }\n art.on('flip', (value) => {\n const $current = queryAll('span', $panel).find((item) => item.dataset.value === value);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","export default function info(option) {\n return (art) => ({\n ...option,\n html: art.i18n.get('Video Info'),\n click: (contextmenu) => {\n art.info.show = true;\n contextmenu.show = false;\n },\n });\n}\n","export default function version(option) {\n return {\n ...option,\n html: `ArtPlayer ${'__APP_VERSION__'}`,\n };\n}\n","export default function close(option) {\n return (art) => ({\n ...option,\n html: art.i18n.get('Close'),\n click: (contextmenu) => {\n contextmenu.show = false;\n },\n });\n}\n","import { queryAll, isMobile } from './utils';\nimport Component from './utils/component';\n\nexport default class Info extends Component {\n constructor(art) {\n super(art);\n this.name = 'info';\n\n if (!isMobile) {\n this.init();\n }\n }\n\n init() {\n const {\n proxy,\n constructor,\n template: { $infoPanel, $infoClose, $video },\n } = this.art;\n\n proxy($infoClose, 'click', () => {\n this.show = false;\n });\n\n let timer = null;\n const $types = queryAll('[data-video]', $infoPanel) || [];\n this.art.on('destroy', () => clearTimeout(timer));\n\n function loop() {\n for (let index = 0; index < $types.length; index++) {\n const item = $types[index];\n const value = $video[item.dataset.video];\n const innerText = typeof value === 'number' ? value.toFixed(2) : value;\n if (item.innerText !== innerText) {\n item.innerText = innerText;\n }\n }\n timer = setTimeout(loop, constructor.INFO_LOOP_TIME);\n }\n\n loop();\n }\n}\n","import {\n setStyle,\n setStyles,\n srtToVtt,\n vttToBlob,\n getExt,\n assToVtt,\n escape,\n remove,\n append,\n createElement,\n} from './utils';\nimport Component from './utils/component';\nimport validator from 'option-validator';\nimport scheme from './scheme';\n\nexport default class Subtitle extends Component {\n constructor(art) {\n super(art);\n this.name = 'subtitle';\n this.option = null;\n this.destroyEvent = () => null;\n this.init(art.option.subtitle);\n\n let lastState = false;\n art.on('video:timeupdate', () => {\n if (!this.url) return;\n const state = this.art.template.$video.webkitDisplayingFullscreen;\n if (typeof state !== 'boolean') return;\n if (state !== lastState) {\n lastState = state;\n this.createTrack(state ? 'subtitles' : 'metadata', this.url);\n }\n });\n }\n\n get url() {\n return this.art.template.$track.src;\n }\n\n set url(url) {\n this.switch(url);\n }\n\n get textTrack() {\n return this.art.template.$video?.textTracks?.[0];\n }\n\n get activeCues() {\n if (!this.textTrack) return [];\n return Array.from(this.textTrack.activeCues);\n }\n\n get cues() {\n if (!this.textTrack) return [];\n return Array.from(this.textTrack.cues);\n }\n\n style(key, value) {\n const { $subtitle } = this.art.template;\n if (typeof key === 'object') {\n return setStyles($subtitle, key);\n }\n return setStyle($subtitle, key, value);\n }\n\n update() {\n const {\n option: { subtitle },\n template: { $subtitle },\n } = this.art;\n\n $subtitle.innerHTML = '';\n if (!this.activeCues.length) return;\n\n this.art.emit('subtitleBeforeUpdate', this.activeCues);\n $subtitle.innerHTML = this.activeCues\n .map((cue, index) =>\n cue.text\n .split(/\\r?\\n/)\n .filter((line) => line.trim())\n .map(\n (line) =>\n `
\n ${subtitle.escape ? escape(line) : line}\n
`,\n )\n .join(''),\n )\n .join('');\n this.art.emit('subtitleAfterUpdate', this.activeCues);\n }\n\n async switch(url, newOption = {}) {\n const { i18n, notice, option } = this.art;\n const subtitleOption = { ...option.subtitle, ...newOption, url };\n const subUrl = await this.init(subtitleOption);\n if (newOption.name) {\n notice.show = `${i18n.get('Switch Subtitle')}: ${newOption.name}`;\n }\n return subUrl;\n }\n\n createTrack(kind, url) {\n const { template, proxy, option } = this.art;\n const { $video, $track } = template;\n\n const $newTrack = createElement('track');\n $newTrack.default = true;\n $newTrack.kind = kind;\n $newTrack.src = url;\n $newTrack.label = option.subtitle.name || 'Artplayer';\n $newTrack.track.mode = 'hidden';\n $newTrack.onload = () => {\n this.art.emit('subtitleLoad', this.cues, this.option);\n };\n\n this.art.events.remove(this.destroyEvent);\n $track.onload = null;\n remove($track);\n append($video, $newTrack);\n template.$track = $newTrack;\n this.destroyEvent = proxy(this.textTrack, 'cuechange', () => this.update());\n }\n\n async init(subtitleOption) {\n const {\n notice,\n template: { $subtitle },\n } = this.art;\n\n if (!this.textTrack) return null;\n validator(subtitleOption, scheme.subtitle);\n if (!subtitleOption.url) return;\n this.option = subtitleOption;\n this.style(subtitleOption.style);\n\n return fetch(subtitleOption.url)\n .then((response) => response.arrayBuffer())\n .then((buffer) => {\n const decoder = new TextDecoder(subtitleOption.encoding);\n const text = decoder.decode(buffer);\n switch (subtitleOption.type || getExt(subtitleOption.url)) {\n case 'srt': {\n const vtt = srtToVtt(text);\n const vttNew = subtitleOption.onVttLoad(vtt);\n return vttToBlob(vttNew);\n }\n case 'ass': {\n const vtt = assToVtt(text);\n const vttNew = subtitleOption.onVttLoad(vtt);\n return vttToBlob(vttNew);\n }\n case 'vtt': {\n const vttNew = subtitleOption.onVttLoad(text);\n return vttToBlob(vttNew);\n }\n default:\n return subtitleOption.url;\n }\n })\n .then((subUrl) => {\n $subtitle.innerHTML = '';\n if (this.url === subUrl) return subUrl;\n URL.revokeObjectURL(this.url);\n this.createTrack('metadata', subUrl);\n return subUrl;\n })\n .catch((err) => {\n $subtitle.innerHTML = '';\n notice.show = err;\n throw err;\n });\n }\n}\n","import clickInit from './clickInit';\nimport hoverInit from './hoverInit';\nimport moveInit from './moveInit';\nimport resizeInit from './resizeInit';\nimport gestureInit from './gestureInit';\nimport viewInit from './viewInit';\nimport documentInit from './documentInit';\nimport updateInit from './updateInit';\nimport restoreInit from './restoreInit';\n\nexport default class Events {\n constructor(art) {\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n this.hover = this.hover.bind(this);\n\n clickInit(art, this);\n hoverInit(art, this);\n moveInit(art, this);\n resizeInit(art, this);\n gestureInit(art, this);\n viewInit(art, this);\n documentInit(art, this);\n updateInit(art, this);\n restoreInit(art, this);\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n return name.map((item) => this.proxy(target, item, callback, option));\n }\n\n target.addEventListener(name, callback, option);\n const destroy = () => target.removeEventListener(name, callback, option);\n this.destroyEvents.push(destroy);\n return destroy;\n }\n\n hover(target, mouseenter, mouseleave) {\n if (mouseenter) {\n this.proxy(target, 'mouseenter', mouseenter);\n }\n if (mouseleave) {\n this.proxy(target, 'mouseleave', mouseleave);\n }\n }\n\n remove(destroyEvent) {\n const index = this.destroyEvents.indexOf(destroyEvent);\n if (index > -1) {\n destroyEvent();\n this.destroyEvents.splice(index, 1);\n }\n }\n\n destroy() {\n for (let index = 0; index < this.destroyEvents.length; index++) {\n this.destroyEvents[index]();\n }\n }\n}\n","import { includeFromEvent, isMobile } from '../utils';\n\nexport default function clickInit(art, events) {\n const {\n constructor,\n template: { $player, $video },\n } = art;\n\n events.proxy(document, ['click', 'contextmenu'], (event) => {\n if (includeFromEvent(event, $player)) {\n art.isInput = event.target.tagName === 'INPUT';\n art.isFocus = true;\n art.emit('focus', event);\n } else {\n art.isInput = false;\n art.isFocus = false;\n art.emit('blur', event);\n }\n });\n\n let clickTimes = [];\n events.proxy($video, 'click', (event) => {\n const now = Date.now();\n clickTimes.push(now);\n const { MOBILE_CLICK_PLAY, DBCLICK_TIME, MOBILE_DBCLICK_PLAY, DBCLICK_FULLSCREEN } = constructor;\n\n const clicks = clickTimes.filter((t) => now - t <= DBCLICK_TIME);\n switch (clicks.length) {\n case 1:\n art.emit('click', event);\n\n if (isMobile) {\n if (!art.isLock && MOBILE_CLICK_PLAY) {\n art.toggle();\n }\n } else {\n art.toggle();\n }\n clickTimes = clicks;\n break;\n case 2:\n art.emit('dblclick', event);\n\n if (isMobile) {\n if (!art.isLock && MOBILE_DBCLICK_PLAY) {\n art.toggle();\n }\n } else {\n if (DBCLICK_FULLSCREEN) {\n art.fullscreen = !art.fullscreen;\n }\n }\n clickTimes = [];\n break;\n default:\n clickTimes = [];\n }\n });\n}\n","import { addClass, removeClass } from '../utils';\n\nexport default function hoverInit(art, events) {\n const { $player } = art.template;\n\n events.hover(\n $player,\n (event) => {\n addClass($player, 'art-hover');\n art.emit('hover', true, event);\n },\n (event) => {\n removeClass($player, 'art-hover');\n art.emit('hover', false, event);\n },\n );\n}\n","export default function moveInit(art, events) {\n const { $player } = art.template;\n\n events.proxy($player, 'mousemove', (event) => {\n art.emit('mousemove', event);\n });\n}\n","import { debounce } from '../utils';\n\nexport default function resizeInit(art, events) {\n const { option, constructor } = art;\n\n art.on('resize', () => {\n const { aspectRatio, notice } = art;\n if (art.state === 'standard' && option.autoSize) {\n art.autoSize();\n }\n art.aspectRatio = aspectRatio;\n notice.show = '';\n });\n\n const resizeFn = debounce(() => art.emit('resize'), constructor.RESIZE_TIME);\n events.proxy(window, ['orientationchange', 'resize'], () => resizeFn());\n if (screen && screen.orientation && screen.orientation.onchange) {\n events.proxy(screen.orientation, 'change', () => resizeFn());\n }\n}\n","import { clamp, secondToTime, isMobile } from '../utils';\nimport { setCurrentTime } from '../control/progress';\n\nfunction GetSlideAngle(dx, dy) {\n return (Math.atan2(dy, dx) * 180) / Math.PI;\n}\n\nfunction GetSlideDirection(startX, startY, endX, endY) {\n var dy = startY - endY;\n var dx = endX - startX;\n var result = 0;\n\n if (Math.abs(dx) < 2 && Math.abs(dy) < 2) {\n return result;\n }\n\n var angle = GetSlideAngle(dx, dy);\n if (angle >= -45 && angle < 45) {\n result = 4;\n } else if (angle >= 45 && angle < 135) {\n result = 1;\n } else if (angle >= -135 && angle < -45) {\n result = 2;\n } else if ((angle >= 135 && angle <= 180) || (angle >= -180 && angle < -135)) {\n result = 3;\n }\n\n return result;\n}\n\nexport default function gestureInit(art, events) {\n if (isMobile && !art.option.isLive) {\n const { $video, $progress } = art.template;\n\n let touchTarget = null;\n let isDroging = false;\n let startX = 0;\n let startY = 0;\n let startTime = 0;\n\n const onTouchStart = (event) => {\n if (event.touches.length === 1 && !art.isLock) {\n if (touchTarget === $progress) {\n setCurrentTime(art, event);\n }\n\n isDroging = true;\n const { pageX, pageY } = event.touches[0];\n startX = pageX;\n startY = pageY;\n startTime = art.currentTime;\n }\n };\n\n const onTouchMove = (event) => {\n if (event.touches.length === 1 && isDroging && art.duration) {\n const { pageX, pageY } = event.touches[0];\n const direction = GetSlideDirection(startX, startY, pageX, pageY);\n const isHorizontal = [3, 4].includes(direction);\n const isVertical = [1, 2].includes(direction);\n const isLegal = (isHorizontal && !art.isRotate) || (isVertical && art.isRotate);\n if (isLegal) {\n const ratioX = clamp((pageX - startX) / art.width, -1, 1);\n const ratioY = clamp((pageY - startY) / art.height, -1, 1);\n const ratio = art.isRotate ? ratioY : ratioX;\n const TOUCH_MOVE_RATIO = touchTarget === $video ? art.constructor.TOUCH_MOVE_RATIO : 1;\n const currentTime = clamp(startTime + art.duration * ratio * TOUCH_MOVE_RATIO, 0, art.duration);\n art.seek = currentTime;\n art.emit('setBar', 'played', clamp(currentTime / art.duration, 0, 1), event);\n art.notice.show = `${secondToTime(currentTime)} / ${secondToTime(art.duration)}`;\n }\n }\n };\n\n const onTouchEnd = () => {\n if (isDroging) {\n startX = 0;\n startY = 0;\n startTime = 0;\n isDroging = false;\n touchTarget = null;\n }\n };\n\n if (art.option.gesture) {\n events.proxy($video, 'touchstart', (event) => {\n touchTarget = $video;\n onTouchStart(event);\n });\n events.proxy($video, 'touchmove', onTouchMove);\n }\n\n events.proxy($progress, 'touchstart', (event) => {\n touchTarget = $progress;\n onTouchStart(event);\n });\n\n events.proxy($progress, 'touchmove', onTouchMove);\n events.proxy(document, 'touchend', onTouchEnd);\n }\n}\n","import { throttle, isInViewport } from '../utils';\n\nexport default function viewInit(art, events) {\n const {\n option,\n constructor,\n template: { $container },\n } = art;\n\n const scrollFn = throttle(() => {\n art.emit('view', isInViewport($container, constructor.SCROLL_GAP));\n }, constructor.SCROLL_TIME);\n\n events.proxy(window, 'scroll', () => scrollFn());\n\n art.on('view', (state) => {\n if (option.autoMini) {\n art.mini = !state;\n }\n });\n}\n","export default function documentInit(art, events) {\n events.proxy(document, 'mousemove', (event) => {\n art.emit('document:mousemove', event);\n });\n\n events.proxy(document, 'mouseup', (event) => {\n art.emit('document:mouseup', event);\n });\n}\n","export default function updateInit(art) {\n if (art.constructor.USE_RAF) {\n let timer = null;\n\n (function update() {\n if (art.playing) {\n art.emit('raf');\n }\n\n if (!art.isDestroy) {\n timer = requestAnimationFrame(update);\n }\n })();\n\n art.on('destroy', () => {\n cancelAnimationFrame(timer);\n });\n }\n}\n","export default function restoreInit(art, events) {\n //\n}\n","import { isMobile } from './utils';\n\nexport default class Hotkey {\n constructor(art) {\n this.art = art;\n this.keys = {};\n\n if (art.option.hotkey && !isMobile) {\n this.init();\n }\n }\n\n init() {\n const { proxy, constructor } = this.art;\n\n this.add('Escape', () => {\n if (this.art.fullscreenWeb) {\n this.art.fullscreenWeb = false;\n }\n });\n\n this.add('Space', () => {\n this.art.toggle();\n });\n\n this.add('ArrowLeft', () => {\n this.art.backward = constructor.SEEK_STEP;\n });\n\n this.add('ArrowUp', () => {\n this.art.volume += constructor.VOLUME_STEP;\n });\n\n this.add('ArrowRight', () => {\n this.art.forward = constructor.SEEK_STEP;\n });\n\n this.add('ArrowDown', () => {\n this.art.volume -= constructor.VOLUME_STEP;\n });\n\n proxy(document, 'keydown', (event) => {\n if (this.art.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (\n tag !== 'INPUT' &&\n tag !== 'TEXTAREA' &&\n editable !== '' &&\n editable !== 'true' &&\n !event.altKey &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.shiftKey\n ) {\n const events = this.keys[event.code];\n if (events) {\n event.preventDefault();\n for (let index = 0; index < events.length; index++) {\n events[index].call(this.art, event);\n }\n this.art.emit('hotkey', event);\n }\n }\n }\n this.art.emit('keydown', event);\n });\n }\n\n add(key, event) {\n if (this.keys[key]) {\n this.keys[key].push(event);\n } else {\n this.keys[key] = [event];\n }\n return this;\n }\n\n remove(key, event) {\n if (this.keys[key]) {\n const index = this.keys[key].indexOf(event);\n if (index !== -1) {\n this.keys[key].splice(index, 1);\n }\n }\n return this;\n }\n}\n","import Component from './utils/component';\n\nexport default class Layer extends Component {\n constructor(art) {\n super(art);\n\n const {\n option,\n template: { $layer },\n } = art;\n\n this.name = 'layer';\n this.$parent = $layer;\n\n for (let index = 0; index < option.layers.length; index++) {\n this.add(option.layers[index]);\n }\n }\n}\n","import { append } from './utils';\nimport Component from './utils/component';\n\nexport default class Loading extends Component {\n constructor(art) {\n super(art);\n this.name = 'loading';\n append(art.template.$loading, art.icons.loading);\n }\n}\n","import { addClass, removeClass } from './utils';\n\nexport default class Notice {\n constructor(art) {\n this.art = art;\n this.timer = null;\n }\n\n set show(msg) {\n const {\n constructor,\n template: { $player, $noticeInner },\n } = this.art;\n\n if (msg) {\n $noticeInner.innerText = msg instanceof Error ? msg.message.trim() : msg;\n addClass($player, 'art-notice-show');\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n $noticeInner.innerText = '';\n removeClass($player, 'art-notice-show');\n }, constructor.NOTICE_TIME);\n } else {\n removeClass($player, 'art-notice-show');\n }\n }\n}\n","import { append, setStyle } from './utils';\nimport Component from './utils/component';\n\nexport default class Mask extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'mask';\n const { template, icons, events } = art;\n\n const $state = append(template.$state, icons.state);\n const $error = append(template.$state, icons.error);\n\n setStyle($error, 'display', 'none');\n\n art.on('destroy', () => {\n setStyle($state, 'display', 'none');\n setStyle($error, 'display', null);\n });\n\n events.proxy(template.$state, 'click', () => art.play());\n }\n}\n","import { def, getIcon } from '../utils';\nimport loading from 'bundle-text:./loading.svg';\nimport state from 'bundle-text:./state.svg';\nimport check from 'bundle-text:./check.svg';\nimport play from 'bundle-text:./play.svg';\nimport pause from 'bundle-text:./pause.svg';\nimport volume from 'bundle-text:./volume.svg';\nimport volumeClose from 'bundle-text:./volume-close.svg';\nimport screenshot from 'bundle-text:./screenshot.svg';\nimport setting from 'bundle-text:./setting.svg';\nimport arrowLeft from 'bundle-text:./arrow-left.svg';\nimport arrowRight from 'bundle-text:./arrow-right.svg';\nimport playbackRate from 'bundle-text:./playback-rate.svg';\nimport aspectRatio from 'bundle-text:./aspect-ratio.svg';\nimport config from 'bundle-text:./config.svg';\nimport pip from 'bundle-text:./pip.svg';\nimport lock from 'bundle-text:./lock.svg';\nimport unlock from 'bundle-text:./unlock.svg';\nimport fullscreenOff from 'bundle-text:./fullscreen-off.svg';\nimport fullscreenOn from 'bundle-text:./fullscreen-on.svg';\nimport fullscreenWebOff from 'bundle-text:./fullscreen-web-off.svg';\nimport fullscreenWebOn from 'bundle-text:./fullscreen-web-on.svg';\nimport switchOn from 'bundle-text:./switch-on.svg';\nimport switchOff from 'bundle-text:./switch-off.svg';\nimport flip from 'bundle-text:./flip.svg';\nimport error from 'bundle-text:./error.svg';\nimport close from 'bundle-text:./close.svg';\nimport airplay from 'bundle-text:./airplay.svg';\n\nexport default class Icons {\n constructor(art) {\n const icons = {\n loading,\n state,\n play,\n pause,\n check,\n volume,\n volumeClose,\n screenshot,\n setting,\n pip,\n arrowLeft,\n arrowRight,\n playbackRate,\n aspectRatio,\n config,\n lock,\n flip,\n unlock,\n fullscreenOff,\n fullscreenOn,\n fullscreenWebOff,\n fullscreenWebOn,\n switchOn,\n switchOff,\n error,\n close,\n airplay,\n ...art.option.icons,\n };\n\n for (const key in icons) {\n def(this, key, {\n get: () => getIcon(key, icons[key]),\n });\n }\n }\n}\n","module.exports = \"75a057509707bc87\";","module.exports = \"820f454e33d34914\";","module.exports = \"6e9bb7fa28118e05\";","module.exports = \"4838679ac81bbe80\";","module.exports = \"b491c01323e26afb\";","module.exports = \"95ec2167c54ce911\";","module.exports = \"1499cf92f6f33dd9\";","module.exports = \"e4ecf862ed860d42\";","module.exports = \"a391299de3225f80\";","module.exports = \"ea3f9694841ef258\";","module.exports = \"b67cac358913d514\";","module.exports = \"46895f0cf70aca10\";","module.exports = \"65c783bf793215eb\";","module.exports = \"3fa24efddec6bcbd\";","module.exports = \"0d8559370ca5b4ef\";","module.exports = \"358c932d8356421e\";","module.exports = \"7cf671d989be8873\";","module.exports = \"a76d6978226feea3\";","module.exports = \"fe487e5ddec5d380\";","module.exports = \"3f492d6cd9c76858\";","module.exports = \"46c741c838cae528\";","module.exports = \"ca0154888ac784ab\";","module.exports = \"03b02c181a6fb9ce\";","module.exports = \"9b95a2cd859b7b0b\";","module.exports = \"d3353905d0ec07f0\";","module.exports = \"ece62effeeaea8b9\";","module.exports = \"9e11ac5830b69238\";","import flip from './flip';\nimport aspectRatio from './aspectRatio';\nimport playbackRate from './playbackRate';\nimport subtitleOffset from './subtitleOffset';\nimport Component from '../utils/component';\nimport {\n def,\n has,\n remove,\n append,\n getRect,\n addClass,\n setStyle,\n isMobile,\n errorHandle,\n inverseClass,\n createElement,\n replaceElement,\n includeFromEvent,\n} from '../utils';\n\nexport default class Setting extends Component {\n constructor(art) {\n super(art);\n\n const {\n option,\n controls,\n template: { $setting },\n } = art;\n\n this.name = 'setting';\n this.$parent = $setting;\n\n this.id = 0;\n this.active = null;\n this.cache = new Map();\n this.option = [...this.builtin, ...option.settings];\n\n if (option.setting) {\n this.format();\n this.render();\n\n art.on('blur', () => {\n if (this.show) {\n this.show = false;\n this.render();\n }\n });\n\n art.on('focus', (event) => {\n const isControl = includeFromEvent(event, controls.setting);\n const isSetting = includeFromEvent(event, this.$parent);\n if (this.show && !isControl && !isSetting) {\n this.show = false;\n this.render();\n }\n });\n\n art.on('resize', () => this.resize());\n }\n }\n\n get builtin() {\n const result = [];\n const { option } = this.art;\n\n if (option.playbackRate) {\n result.push(playbackRate(this.art));\n }\n\n if (option.aspectRatio) {\n result.push(aspectRatio(this.art));\n }\n\n if (option.flip) {\n result.push(flip(this.art));\n }\n\n if (option.subtitleOffset) {\n result.push(subtitleOffset(this.art));\n }\n\n return result;\n }\n\n traverse(callback, option = this.option) {\n for (let index = 0; index < option.length; index++) {\n const item = option[index];\n callback(item);\n if (item.selector?.length) {\n this.traverse.call(this, callback, item.selector);\n }\n }\n }\n\n check(target) {\n target.$parent.tooltip = target.html;\n this.traverse((item) => {\n item.default = item === target;\n if (item.default && item.$item) {\n inverseClass(item.$item, 'art-current');\n }\n }, target.$option);\n this.render(target.$parents);\n }\n\n format(option = this.option, parent, parents, names = []) {\n for (let index = 0; index < option.length; index++) {\n const item = option[index];\n\n if (item?.name) {\n errorHandle(!names.includes(item.name), `The [${item.name}] is already exist in [setting]`);\n names.push(item.name);\n } else {\n item.name = `setting-${this.id++}`;\n }\n\n if (!item.$formatted) {\n def(item, '$parent', {\n get: () => parent,\n });\n\n def(item, '$parents', {\n get: () => parents,\n });\n\n def(item, '$option', {\n get: () => option,\n });\n\n const $events = [];\n def(item, '$events', {\n get: () => $events,\n });\n\n def(item, '$formatted', {\n get: () => true,\n });\n }\n\n this.format(item.selector || [], item, option, names);\n }\n\n this.option = option;\n }\n\n find(name = '') {\n let result = null;\n this.traverse((item) => {\n if (item.name === name) {\n result = item;\n }\n });\n return result;\n }\n\n resize() {\n const {\n controls,\n constructor: { SETTING_WIDTH, SETTING_ITEM_HEIGHT },\n template: { $player, $setting },\n } = this.art;\n\n if (controls.setting && this.show) {\n const settingWidth = this.active[0]?.$parent?.width || SETTING_WIDTH;\n const { left: controlLeft, width: controlWidth } = getRect(controls.setting);\n const { left: playerLeft, width: playerWidth } = getRect($player);\n const settingLeft = controlLeft - playerLeft + controlWidth / 2 - settingWidth / 2;\n\n const settingHeight =\n this.active === this.option\n ? this.active.length * SETTING_ITEM_HEIGHT\n : (this.active.length + 1) * SETTING_ITEM_HEIGHT;\n\n setStyle($setting, 'height', `${settingHeight}px`);\n setStyle($setting, 'width', `${settingWidth}px`);\n\n if (this.art.isRotate || isMobile) return;\n\n if (settingLeft + settingWidth > playerWidth) {\n setStyle($setting, 'left', null);\n setStyle($setting, 'right', null);\n } else {\n setStyle($setting, 'left', `${settingLeft}px`);\n setStyle($setting, 'right', 'auto');\n }\n }\n }\n\n inactivate(item) {\n for (let index = 0; index < item.$events.length; index++) {\n this.art.events.remove(item.$events[index]);\n }\n item.$events.length = 0;\n }\n\n remove(name) {\n const item = this.find(name);\n errorHandle(item, `Can't find [${name}] in the [setting]`);\n const index = item.$option.indexOf(item);\n item.$option.splice(index, 1);\n this.inactivate(item);\n if (item.$item) remove(item.$item);\n this.render();\n }\n\n update(target) {\n const item = this.find(target.name);\n\n if (item) {\n this.inactivate(item);\n Object.assign(item, target);\n this.format();\n this.creatItem(item, true);\n this.render();\n return item;\n } else {\n return this.add(target);\n }\n }\n\n add(item, option = this.option) {\n option.push(item);\n this.format();\n this.creatItem(item);\n this.render();\n return item;\n }\n\n creatHeader(item) {\n if (!this.cache.has(item.$option)) return;\n const $panel = this.cache.get(item.$option);\n\n const {\n proxy,\n icons: { arrowLeft },\n constructor: { SETTING_ITEM_HEIGHT },\n } = this.art;\n\n const $item = createElement('div');\n setStyle($item, 'height', `${SETTING_ITEM_HEIGHT}px`);\n addClass($item, 'art-setting-item');\n addClass($item, 'art-setting-item-back');\n const $left = append($item, '
');\n const $icon = createElement('div');\n addClass($icon, 'art-setting-item-left-icon');\n append($icon, arrowLeft);\n append($left, $icon);\n append($left, item.$parent.html);\n const event = proxy($item, 'click', () => this.render(item.$parents));\n item.$parent.$events.push(event);\n append($panel, $item);\n }\n\n creatItem(item, isUpdate = false) {\n if (!this.cache.has(item.$option)) return;\n const $panel = this.cache.get(item.$option);\n const oldItem = item.$item;\n\n let type = 'selector';\n\n if (has(item, 'switch')) {\n type = 'switch';\n }\n\n if (has(item, 'range')) {\n type = 'range';\n }\n\n if (has(item, 'onClick')) {\n type = 'button';\n }\n\n const { icons, proxy, constructor } = this.art;\n\n const $item = createElement('div');\n addClass($item, 'art-setting-item');\n setStyle($item, 'height', `${constructor.SETTING_ITEM_HEIGHT}px`);\n\n $item.dataset.name = item.name || '';\n $item.dataset.value = item.value || '';\n\n const $left = append($item, '
');\n const $right = append($item, '
');\n\n const $icon = createElement('div');\n addClass($icon, 'art-setting-item-left-icon');\n\n switch (type) {\n case 'button':\n case 'switch':\n case 'range':\n append($icon, item.icon || icons.config);\n break;\n case 'selector':\n if (item.selector?.length) {\n append($icon, item.icon || icons.config);\n } else {\n append($icon, icons.check);\n }\n break;\n default:\n break;\n }\n\n append($left, $icon);\n\n def(item, '$icon', {\n configurable: true,\n get: () => $icon,\n });\n\n def(item, 'icon', {\n configurable: true,\n get() {\n return $icon.innerHTML;\n },\n set(value) {\n $icon.innerHTML = '';\n append($icon, value);\n },\n });\n\n const $html = createElement('div');\n addClass($html, 'art-setting-item-left-text');\n append($html, item.html || '');\n append($left, $html);\n\n def(item, '$html', {\n configurable: true,\n get: () => $html,\n });\n\n def(item, 'html', {\n configurable: true,\n get() {\n return $html.innerHTML;\n },\n set(value) {\n $html.innerHTML = '';\n append($html, value);\n },\n });\n\n const $tooltip = createElement('div');\n addClass($tooltip, 'art-setting-item-right-tooltip');\n append($tooltip, item.tooltip || '');\n append($right, $tooltip);\n\n def(item, '$tooltip', {\n configurable: true,\n get: () => $tooltip,\n });\n\n def(item, 'tooltip', {\n configurable: true,\n get() {\n return $tooltip.innerHTML;\n },\n set(value) {\n $tooltip.innerHTML = '';\n append($tooltip, value);\n },\n });\n\n switch (type) {\n case 'switch': {\n const $switch = createElement('div');\n addClass($switch, 'art-setting-item-right-icon');\n const $switchOn = append($switch, icons.switchOn);\n const $switchOff = append($switch, icons.switchOff);\n setStyle(item.switch ? $switchOff : $switchOn, 'display', 'none');\n append($right, $switch);\n\n def(item, '$switch', {\n configurable: true,\n get: () => $switch,\n });\n\n let $switchValue = item.switch;\n def(item, 'switch', {\n configurable: true,\n get: () => $switchValue,\n set(value) {\n $switchValue = value;\n if (value) {\n setStyle($switchOff, 'display', 'none');\n setStyle($switchOn, 'display', null);\n } else {\n setStyle($switchOff, 'display', null);\n setStyle($switchOn, 'display', 'none');\n }\n },\n });\n break;\n }\n case 'range':\n {\n const $state = createElement('div');\n addClass($state, 'art-setting-item-right-icon');\n const $range = append($state, '');\n $range.value = item.range[0];\n $range.min = item.range[1];\n $range.max = item.range[2];\n $range.step = item.range[3];\n addClass($range, 'art-setting-range');\n append($right, $state);\n\n def(item, '$range', {\n configurable: true,\n get: () => $range,\n });\n\n let $rangeValue = [...item.range];\n def(item, 'range', {\n configurable: true,\n get: () => $rangeValue,\n set(value) {\n $rangeValue = [...value];\n $range.value = value[0];\n $range.min = value[1];\n $range.max = value[2];\n $range.step = value[3];\n },\n });\n }\n break;\n case 'selector':\n if (item.selector?.length) {\n const $state = createElement('div');\n addClass($state, 'art-setting-item-right-icon');\n append($state, icons.arrowRight);\n append($right, $state);\n }\n break;\n default:\n break;\n }\n\n switch (type) {\n case 'switch': {\n if (item.onSwitch) {\n const event = proxy($item, 'click', async (event) => {\n item.switch = await item.onSwitch.call(this.art, item, $item, event);\n });\n item.$events.push(event);\n }\n break;\n }\n case 'range': {\n if (item.$range) {\n if (item.onRange) {\n const event = proxy(item.$range, 'change', async (event) => {\n item.range[0] = item.$range.valueAsNumber;\n item.tooltip = await item.onRange.call(this.art, item, $item, event);\n });\n item.$events.push(event);\n }\n\n if (item.onChange) {\n const event = proxy(item.$range, 'input', async (event) => {\n item.range[0] = item.$range.valueAsNumber;\n item.tooltip = await item.onChange.call(this.art, item, $item, event);\n });\n item.$events.push(event);\n }\n }\n break;\n }\n case 'selector':\n {\n const event = proxy($item, 'click', async (event) => {\n if (item.selector?.length) {\n this.render(item.selector);\n } else {\n this.check(item);\n if (item.$parent.onSelect) {\n item.$parent.tooltip = await item.$parent.onSelect.call(this.art, item, $item, event);\n }\n }\n });\n\n item.$events.push(event);\n\n if (item.default) {\n addClass($item, 'art-current');\n }\n }\n break;\n case 'button':\n {\n if (item.onClick) {\n const event = proxy($item, 'click', async (event) => {\n item.tooltip = await item.onClick.call(this.art, item, $item, event);\n });\n item.$events.push(event);\n }\n }\n break;\n default:\n break;\n }\n\n def(item, '$item', {\n configurable: true,\n get: () => $item,\n });\n\n if (isUpdate) {\n replaceElement($item, oldItem);\n } else {\n append($panel, $item);\n }\n\n if (item.mounted) {\n setTimeout(() => item.mounted.call(this.art, item.$item, item), 0);\n }\n }\n\n render(option = this.option) {\n this.active = option;\n if (this.cache.has(option)) {\n const $panel = this.cache.get(option);\n inverseClass($panel, 'art-current');\n } else {\n const $panel = createElement('div');\n this.cache.set(option, $panel);\n addClass($panel, 'art-setting-panel');\n append(this.$parent, $panel);\n inverseClass($panel, 'art-current');\n\n if (option[0]?.$parent) {\n this.creatHeader(option[0]);\n }\n\n for (let index = 0; index < option.length; index++) {\n this.creatItem(option[index]);\n }\n }\n this.resize();\n }\n}\n","import { capitalize } from '../utils';\n\nexport default function flip(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, FLIP },\n } = art;\n\n function getI18n(value) {\n return i18n.get(capitalize(value));\n }\n\n function update() {\n const target = art.setting.find(`flip-${art.flip}`);\n art.setting.check(target);\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n name: 'flip',\n html: i18n.get('Video Flip'),\n tooltip: getI18n(art.flip),\n icon: icons.flip,\n selector: FLIP.map((item) => {\n return {\n value: item,\n name: `flip-${item}`,\n default: item === art.flip,\n html: getI18n(item),\n };\n }),\n onSelect(item) {\n art.flip = item.value;\n return item.html;\n },\n mounted: () => {\n update();\n art.on('flip', () => update());\n },\n };\n}\n","export default function aspectRatio(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, ASPECT_RATIO },\n } = art;\n\n function getI18n(value) {\n return value === 'default' ? i18n.get('Default') : value;\n }\n\n function update() {\n const target = art.setting.find(`aspect-ratio-${art.aspectRatio}`);\n art.setting.check(target);\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n name: 'aspect-ratio',\n html: i18n.get('Aspect Ratio'),\n icon: icons.aspectRatio,\n tooltip: getI18n(art.aspectRatio),\n selector: ASPECT_RATIO.map((item) => {\n return {\n value: item,\n name: `aspect-ratio-${item}`,\n default: item === art.aspectRatio,\n html: getI18n(item),\n };\n }),\n onSelect(item) {\n art.aspectRatio = item.value;\n return item.html;\n },\n mounted: () => {\n update();\n art.on('aspectRatio', () => update());\n },\n };\n}\n","export default function playbackRate(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, PLAYBACK_RATE },\n } = art;\n\n function getI18n(value) {\n return value === 1.0 ? i18n.get('Normal') : value.toFixed(1);\n }\n\n function update() {\n const target = art.setting.find(`playback-rate-${art.playbackRate}`);\n art.setting.check(target);\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n name: 'playback-rate',\n html: i18n.get('Play Speed'),\n tooltip: getI18n(art.playbackRate),\n icon: icons.playbackRate,\n selector: PLAYBACK_RATE.map((item) => {\n return {\n value: item,\n name: `playback-rate-${item}`,\n default: item === art.playbackRate,\n html: getI18n(item),\n };\n }),\n onSelect(item) {\n art.playbackRate = item.value;\n return item.html;\n },\n mounted: () => {\n update();\n art.on('video:ratechange', () => update());\n },\n };\n}\n","export default function subtitleOffset(art) {\n const { i18n, icons, constructor } = art;\n\n return {\n width: constructor.SETTING_ITEM_WIDTH,\n name: 'subtitle-offset',\n html: i18n.get('Subtitle Offset'),\n icon: icons.subtitle,\n tooltip: '0s',\n range: [0, -10, 10, 0.1],\n onChange(item) {\n art.subtitleOffset = item.range[0];\n return item.range[0] + 's';\n },\n mounted: (_, item) => {\n art.on('subtitleOffset', (value) => {\n item.$range.value = value;\n item.tooltip = value + 's';\n });\n },\n };\n}\n","export default class Storage {\n constructor() {\n this.name = 'artplayer_settings';\n this.settings = {};\n }\n\n get(key) {\n try {\n const storage = JSON.parse(window.localStorage.getItem(this.name)) || {};\n return key ? storage[key] : storage;\n // eslint-disable-next-line no-unused-vars\n } catch (error) {\n return key ? this.settings[key] : this.settings;\n }\n }\n\n set(key, value) {\n try {\n const storage = Object.assign({}, this.get(), {\n [key]: value,\n });\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n // eslint-disable-next-line no-unused-vars\n } catch (error) {\n this.settings[key] = value;\n }\n }\n\n del(key) {\n try {\n const storage = this.get();\n delete storage[key];\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n // eslint-disable-next-line no-unused-vars\n } catch (error) {\n delete this.settings[key];\n }\n }\n\n clear() {\n try {\n window.localStorage.removeItem(this.name);\n // eslint-disable-next-line no-unused-vars\n } catch (error) {\n this.settings = {};\n }\n }\n}\n","import { errorHandle, isMobile, has, def } from '../utils';\nimport miniProgressBar from './miniProgressBar';\nimport autoOrientation from './autoOrientation';\nimport autoPlayback from './autoPlayback';\nimport fastForward from './fastForward';\nimport lock from './lock';\n\nexport default class Plugins {\n constructor(art) {\n this.art = art;\n this.id = 0;\n\n const { option } = art;\n\n if (option.miniProgressBar && !option.isLive) {\n this.add(miniProgressBar);\n }\n\n if (option.lock && isMobile) {\n this.add(lock);\n }\n\n if (option.autoPlayback && !option.isLive) {\n this.add(autoPlayback);\n }\n\n if (option.autoOrientation && isMobile) {\n this.add(autoOrientation);\n }\n\n if (option.fastForward && isMobile && !option.isLive) {\n this.add(fastForward);\n }\n\n for (let index = 0; index < option.plugins.length; index++) {\n this.add(option.plugins[index]);\n }\n }\n\n add(plugin) {\n this.id += 1;\n const result = plugin.call(this.art, this.art);\n if (result instanceof Promise) {\n return result.then((res) => this.next(plugin, res));\n } else {\n return this.next(plugin, result);\n }\n }\n\n next(plugin, result) {\n const pluginName = (result && result.name) || plugin.name || `plugin${this.id}`;\n errorHandle(!has(this, pluginName), `Cannot add a plugin that already has the same name: ${pluginName}`);\n def(this, pluginName, {\n value: result,\n });\n return this;\n }\n}\n","import { addClass, removeClass } from '../utils';\n\nexport default function miniProgressBar(art) {\n art.on('control', (state) => {\n if (state) {\n removeClass(art.template.$player, 'art-mini-progress-bar');\n } else {\n addClass(art.template.$player, 'art-mini-progress-bar');\n }\n });\n\n return { name: 'mini-progress-bar' };\n}\n","import { setStyle, addClass, removeClass, hasClass } from '../utils';\n\nexport default function autoOrientation(art) {\n const {\n constructor,\n template: { $player, $video },\n } = art;\n\n art.on('fullscreenWeb', (state) => {\n if (state) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth: viewWidth, clientHeight: viewHeight } = document.documentElement;\n if (\n (videoWidth > videoHeight && viewWidth < viewHeight) ||\n (videoWidth < videoHeight && viewWidth > viewHeight)\n ) {\n // There is a conflict with the fullscreen event, and it is changed to asynchronous execution\n setTimeout(() => {\n setStyle($player, 'width', `${viewHeight}px`);\n setStyle($player, 'height', `${viewWidth}px`);\n setStyle($player, 'transform-origin', '0 0');\n setStyle($player, 'transform', `rotate(90deg) translate(0, -${viewWidth}px)`);\n addClass($player, 'art-auto-orientation');\n art.isRotate = true;\n art.emit('resize');\n }, constructor.AUTO_ORIENTATION_TIME);\n }\n } else {\n if (hasClass($player, 'art-auto-orientation')) {\n removeClass($player, 'art-auto-orientation');\n art.isRotate = false;\n art.emit('resize');\n }\n }\n });\n\n art.on('fullscreen', async (state) => {\n if (!screen?.orientation?.lock) return;\n\n const lastOrientation = screen.orientation.type;\n if (state) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth: viewWidth, clientHeight: viewHeight } = document.documentElement;\n if (\n (videoWidth > videoHeight && viewWidth < viewHeight) ||\n (videoWidth < videoHeight && viewWidth > viewHeight)\n ) {\n const oppositeOrientation = lastOrientation.startsWith('portrait') ? 'landscape' : 'portrait';\n await screen.orientation.lock(oppositeOrientation);\n addClass($player, 'art-auto-orientation-fullscreen');\n }\n } else {\n if (hasClass($player, 'art-auto-orientation-fullscreen')) {\n await screen.orientation.lock(lastOrientation);\n removeClass($player, 'art-auto-orientation-fullscreen');\n }\n }\n });\n\n return {\n name: 'autoOrientation',\n get state() {\n return hasClass($player, 'art-auto-orientation');\n },\n };\n}\n","import { secondToTime, setStyle, query, append } from '../utils';\n\nexport default function autoPlayback(art) {\n const {\n i18n,\n icons,\n storage,\n constructor,\n proxy,\n template: { $poster },\n } = art;\n\n const $autoPlayback = art.layers.add({\n name: 'auto-playback',\n html: `\n
\n
\n
\n `,\n });\n\n const $last = query('.art-auto-playback-last', $autoPlayback);\n const $jump = query('.art-auto-playback-jump', $autoPlayback);\n const $close = query('.art-auto-playback-close', $autoPlayback);\n append($close, icons.close);\n\n let timer = null;\n\n art.on('video:timeupdate', () => {\n if (art.playing) {\n const times = storage.get('times') || {};\n const keys = Object.keys(times);\n if (keys.length > constructor.AUTO_PLAYBACK_MAX) {\n delete times[keys[0]];\n }\n times[art.option.id || art.option.url] = art.currentTime;\n storage.set('times', times);\n }\n });\n\n function init() {\n const times = storage.get('times') || {};\n const currentTime = times[art.option.id || art.option.url];\n\n clearTimeout(timer);\n setStyle($autoPlayback, 'display', 'none');\n\n if (currentTime && currentTime >= constructor.AUTO_PLAYBACK_MIN) {\n setStyle($autoPlayback, 'display', 'flex');\n\n $last.innerText = `${i18n.get('Last Seen')} ${secondToTime(currentTime)}`;\n $jump.innerText = i18n.get('Jump Play');\n\n proxy($close, 'click', () => {\n setStyle($autoPlayback, 'display', 'none');\n });\n\n proxy($jump, 'click', () => {\n art.seek = currentTime;\n art.play();\n setStyle($poster, 'display', 'none');\n setStyle($autoPlayback, 'display', 'none');\n });\n\n art.once('video:timeupdate', () => {\n timer = setTimeout(() => {\n setStyle($autoPlayback, 'display', 'none');\n }, constructor.AUTO_PLAYBACK_TIMEOUT);\n });\n }\n }\n\n art.on('ready', init);\n art.on('restart', init);\n\n return {\n name: 'auto-playback',\n get times() {\n return storage.get('times') || {};\n },\n clear() {\n return storage.del('times');\n },\n delete(id) {\n const times = storage.get('times') || {};\n delete times[id];\n storage.set('times', times);\n return times;\n },\n };\n}\n","import { hasClass, addClass, removeClass } from '../utils';\n\nexport default function fastForward(art) {\n const {\n constructor,\n proxy,\n template: { $player, $video },\n } = art;\n\n let timer = null;\n let isPress = false;\n let lastPlaybackRate = 1;\n\n const onStart = (event) => {\n if (event.touches.length === 1 && art.playing && !art.isLock) {\n timer = setTimeout(() => {\n isPress = true;\n lastPlaybackRate = art.playbackRate;\n art.playbackRate = constructor.FAST_FORWARD_VALUE;\n addClass($player, 'art-fast-forward');\n }, constructor.FAST_FORWARD_TIME);\n }\n };\n\n const onStop = () => {\n clearTimeout(timer);\n if (isPress) {\n isPress = false;\n art.playbackRate = lastPlaybackRate;\n removeClass($player, 'art-fast-forward');\n }\n };\n\n proxy($video, 'touchstart', onStart);\n proxy(document, 'touchmove', onStop);\n proxy(document, 'touchend', onStop);\n\n return {\n name: 'fastForward',\n get state() {\n return hasClass($player, 'art-fast-forward');\n },\n };\n}\n","import { append, setStyle, hasClass, addClass, removeClass } from '../utils';\n\nexport default function lock(art) {\n const {\n layers,\n icons,\n template: { $player },\n } = art;\n\n function getState() {\n return hasClass($player, 'art-lock');\n }\n\n function setLock() {\n addClass($player, 'art-lock');\n art.isLock = true;\n art.emit('lock', true);\n }\n\n function setUnlock() {\n removeClass($player, 'art-lock');\n art.isLock = false;\n art.emit('lock', false);\n }\n\n layers.add({\n name: 'lock',\n mounted($el) {\n const $lock = append($el, icons.lock);\n const $unlock = append($el, icons.unlock);\n setStyle($lock, 'display', 'none');\n\n art.on('lock', (state) => {\n if (state) {\n setStyle($lock, 'display', 'inline-flex');\n setStyle($unlock, 'display', 'none');\n } else {\n setStyle($lock, 'display', 'none');\n setStyle($unlock, 'display', 'inline-flex');\n }\n });\n },\n click() {\n if (getState()) {\n setUnlock();\n } else {\n setLock();\n }\n },\n });\n\n return {\n name: 'lock',\n get state() {\n return getState();\n },\n set state(value) {\n if (value) {\n setLock();\n } else {\n setUnlock();\n }\n },\n };\n}\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"} \ No newline at end of file diff --git a/packages/artplayer-plugin-ads/dist/artplayer-plugin-ads.esm.js b/packages/artplayer-plugin-ads/dist/artplayer-plugin-ads.esm.js new file mode 100644 index 000000000..61b66b9dc --- /dev/null +++ b/packages/artplayer-plugin-ads/dist/artplayer-plugin-ads.esm.js @@ -0,0 +1,17 @@ + +/*! + * artplayer-plugin-ads.js v2.0.0 + * Github: https://github.com/zhw2590582/ArtPlayer + * (c) 2017-2025 Harvey Zack + * Released under the MIT License. + */ + +!function(e,n,l,t,i,a,r,o){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[t]&&d[t],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function y(n,l){if(!u[n]){if(!e[n]){if(i[n])return i[n];var a="function"==typeof d[t]&&d[t];if(!l&&a)return a(n,!0);if(p)return p(n,!0);if(c&&"string"==typeof n)return c(n);var r=Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}s.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},s.cache={};var o=u[n]=new y.Module(n);e[n][0].call(o.exports,s,o,o.exports,d)}return u[n].exports;function s(e){var n=s.resolve(e);return!1===n?{}:y(n)}}y.isParcelRequire=!0,y.Module=function(e){this.id=e,this.bundle=y,this.require=c,this.exports={}},y.modules=e,y.cache=u,y.parent=p,y.distDir=void 0,y.publicUrl=void 0,y.devServer=void 0,y.i=s,y.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(y,"root",{get:function(){return d[t]}}),d[t]=y;for(var f=0;fo);var a=e("bundle-text:./style.less"),r=i.interopDefault(a);function o(e){return n=>{let{version:l,utils:{errorHandle:t}}=n.constructor,i=l.split(".").map(Number);t(i[0]+i[1]/100>=5,`Artplayer.js@${l} is not compatible the artplayerPluginAds@${o.version}. Please update it to version Artplayer.js@5.x.x`);let{template:{$player:a},icons:{volume:r,volumeClose:d,fullscreenOn:p,fullscreenOff:s,loading:u},constructor:{validator:c,utils:{query:y,append:f,setStyle:g}}}=n;e=c({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"},...e},{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});let m=null,v=null,x=null,h=null,b=null,w=null,D=0,j=null,P=!1,$=!1,k=!1;function M(e,n){return n.replace("%s",e)}function O(){P=!0,n.play(),e.video&&m.pause(),g(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function A(){P||(j=setTimeout(()=>{D+=1;let n=e.playDuration-D;n>=1?x.innerHTML=M(n,e.i18n.canBeClosed):(x.innerHTML=e.i18n.close,k||(k=!0)),h.innerHTML=M(e.totalDuration-D,e.i18n.countdown),D>=e.totalDuration?O():A()},1e3))}function _(){P||clearTimeout(j)}function T(){$||($=!0,function(){n.template.$ads=f(a,'
'),m=f(n.template.$ads,e.video?``:`
${e.html}
`),w=f(n.template.$ads,'
'),f(w,u),x=y(".artplayer-plugin-ads-close",v=f(n.template.$ads,`
+
${e.playDuration<=0?e.i18n.close:M(e.playDuration,e.i18n.canBeClosed)}
+
${M(e.totalDuration,e.i18n.countdown)}
+
`)),h=y(".artplayer-plugin-ads-countdown",v),e.playDuration>=e.totalDuration&&g(x,"display","none"),n.proxy(x,"click",()=>{k&&O()});let l=y(".artplayer-plugin-ads-detail",b=f(n.template.$ads,`
+
${e.i18n.detail}
+
+
+
`)),t=y(".artplayer-plugin-ads-muted",b),i=y(".artplayer-plugin-ads-fullscreen",b);if(e.url?n.proxy(l,"click",()=>{window.open(e.url),n.emit("artplayerPluginAds:click",e)}):g(l,"display","none"),e.video){let l=f(t,r),i=f(t,d);g(i,"display","none"),e.muted&&(m.muted=!0,g(l,"display","none"),g(i,"display","inline-flex")),n.proxy(t,"click",()=>{m.muted=!m.muted,m.muted?(g(l,"display","none"),g(i,"display","inline-flex")):(g(l,"display","inline-flex"),g(i,"display","none"))})}else g(t,"display","none");let o=f(i,p),c=f(i,s);g(c,"display","none"),n.proxy(i,"click",()=>{n.fullscreen=!n.fullscreen,n.fullscreen?(g(o,"display","inline-flex"),g(c,"display","none")):(g(o,"display","none"),g(c,"display","inline-flex"))}),n.proxy(m,"click",()=>{e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)})}(),n.pause(),e.video?(n.proxy(m,"error",O),n.proxy(m,"loadedmetadata",()=>{A(),m.play(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")})):(A(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")),n.proxy(document,"visibilitychange",()=>{document.hidden?_():A()}))}return n.on("ready",()=>{n.once("play",T),n.once("video:playing",T)}),{name:"artplayerPluginAds",skip:O,pause:_,play:A}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-ads")){let e=document.createElement("style");e.id="artplayer-plugin-ads",e.textContent=r.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginAds=o)},{"bundle-text:./style.less":"1GXMH","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1GXMH":[function(e,n,l,t){n.exports=".artplayer-plugin-ads{z-index:150;color:#fff;background-color:#000;width:100%;height:100%;font-size:13px;line-height:1;position:absolute;inset:0;overflow:hidden}.artplayer-plugin-ads .artplayer-plugin-ads-html{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-video{width:100%;height:100%}.artplayer-plugin-ads .artplayer-plugin-ads-timer{display:none;position:absolute;top:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-timer>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control{display:none;position:absolute;bottom:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-control>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control .art-icon svg{width:20px;height:20px}.artplayer-plugin-ads .artplayer-plugin-ads-loading{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}"},{}],"5lQoW":[function(e,n,l,t){l.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},l.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},l.exportAll=function(e,n){return Object.keys(e).forEach(function(l){"default"===l||"__esModule"===l||Object.prototype.hasOwnProperty.call(n,l)||Object.defineProperty(n,l,{enumerable:!0,get:function(){return e[l]}})}),n},l.export=function(e,n,l){Object.defineProperty(e,n,{enumerable:!0,get:l})}},{}]},["2Uydo"],"2Uydo","parcelRequire4dc0",{});let{default:e}=parcelRequire4dc0("2Uydo");export{e as default}; +//# sourceMappingURL=index.js.map diff --git a/packages/artplayer-plugin-ads/dist/artplayer-plugin-ads.js b/packages/artplayer-plugin-ads/dist/artplayer-plugin-ads.js index 744ac59a0..16bc81deb 100644 --- a/packages/artplayer-plugin-ads/dist/artplayer-plugin-ads.js +++ b/packages/artplayer-plugin-ads/dist/artplayer-plugin-ads.js @@ -5,4 +5,4 @@ * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,n,l,t,i,r,a,o){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[t]&&d[t],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function y(n,l){if(!u[n]){if(!e[n]){if(i[n])return i[n];var r="function"==typeof d[t]&&d[t];if(!l&&r)return r(n,!0);if(p)return p(n,!0);if(c&&"string"==typeof n)return c(n);var a=Error("Cannot find module '"+n+"'");throw a.code="MODULE_NOT_FOUND",a}s.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},s.cache={};var o=u[n]=new y.Module(n);e[n][0].call(o.exports,s,o,o.exports,d)}return u[n].exports;function s(e){var n=s.resolve(e);return!1===n?{}:y(n)}}y.isParcelRequire=!0,y.Module=function(e){this.id=e,this.bundle=y,this.require=c,this.exports={}},y.modules=e,y.cache=u,y.parent=p,y.distDir=void 0,y.publicUrl=void 0,y.devServer=void 0,y.i=s,y.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(y,"root",{get:function(){return d[t]}}),d[t]=y;for(var f=0;fo);var r=e("bundle-text:./style.less"),a=i.interopDefault(r);function o(e){return n=>{let{version:l,utils:{errorHandle:t}}=n.constructor,i=l.split(".").map(Number);t(i[0]+i[1]/100>=5,`Artplayer.js@${l} is not compatible the artplayerPluginAds@${o.version}. Please update it to version Artplayer.js@5.x.x`);let{template:{$player:r},icons:{volume:a,volumeClose:d,fullscreenOn:p,fullscreenOff:s,loading:u},constructor:{validator:c,utils:{query:y,append:f,setStyle:g}}}=n;e=c({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"},...e},{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});let m=null,v=null,x=null,h=null,b=null,w=null,j=0,D=null,P=!1,$=!1,k=!1;function A(e,n){return n.replace("%s",e)}function O(){P=!0,n.play(),e.video&&m.pause(),g(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function C(){P||(D=setTimeout(()=>{j+=1;let n=e.playDuration-j;n>=1?x.innerHTML=A(n,e.i18n.canBeClosed):(x.innerHTML=e.i18n.close,k||(k=!0)),h.innerHTML=A(e.totalDuration-j,e.i18n.countdown),j>=e.totalDuration?O():C()},1e3))}function M(){P||clearTimeout(D)}function T(){$||($=!0,function(){n.template.$ads=f(r,'
'),m=f(n.template.$ads,e.video?``:`
${e.html}
`),w=f(n.template.$ads,'
'),f(w,u),x=y(".artplayer-plugin-ads-close",v=f(n.template.$ads,`
${e.playDuration<=0?e.i18n.close:A(e.playDuration,e.i18n.canBeClosed)}
${A(e.totalDuration,e.i18n.countdown)}
`)),h=y(".artplayer-plugin-ads-countdown",v),e.playDuration>=e.totalDuration&&g(x,"display","none"),n.proxy(x,"click",()=>{k&&O()});let l=y(".artplayer-plugin-ads-detail",b=f(n.template.$ads,`
${e.i18n.detail}
`)),t=y(".artplayer-plugin-ads-muted",b),i=y(".artplayer-plugin-ads-fullscreen",b);if(e.url?n.proxy(l,"click",()=>{window.open(e.url),n.emit("artplayerPluginAds:click",e)}):g(l,"display","none"),e.video){let l=f(t,a),i=f(t,d);g(i,"display","none"),e.muted&&(m.muted=!0,g(l,"display","none"),g(i,"display","inline-flex")),n.proxy(t,"click",()=>{m.muted=!m.muted,m.muted?(g(l,"display","none"),g(i,"display","inline-flex")):(g(l,"display","inline-flex"),g(i,"display","none"))})}else g(t,"display","none");let o=f(i,p),c=f(i,s);g(c,"display","none"),n.proxy(i,"click",()=>{n.fullscreen=!n.fullscreen,n.fullscreen?(g(o,"display","inline-flex"),g(c,"display","none")):(g(o,"display","none"),g(c,"display","inline-flex"))}),n.proxy(m,"click",()=>{e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)})}(),n.pause(),e.video?(n.proxy(m,"error",O),n.proxy(m,"loadedmetadata",()=>{C(),m.play(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")})):(C(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")),n.proxy(document,"visibilitychange",()=>{document.hidden?M():C()}))}return n.on("ready",()=>{n.once("play",T),n.once("video:playing",T)}),{name:"artplayerPluginAds",skip:O,pause:M,play:C}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-ads")){let e=document.createElement("style");e.id="artplayer-plugin-ads",e.textContent=a.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginAds=o)},{"bundle-text:./style.less":"jDrWj","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],jDrWj:[function(e,n,l,t){n.exports=".artplayer-plugin-ads{z-index:150;color:#fff;background-color:#000;width:100%;height:100%;font-size:13px;line-height:1;position:absolute;inset:0;overflow:hidden}.artplayer-plugin-ads .artplayer-plugin-ads-html{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-video{width:100%;height:100%}.artplayer-plugin-ads .artplayer-plugin-ads-timer{display:none;position:absolute;top:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-timer>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control{display:none;position:absolute;bottom:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-control>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control .art-icon svg{width:20px;height:20px}.artplayer-plugin-ads .artplayer-plugin-ads-loading{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}"},{}],"9pCYc":[function(e,n,l,t){l.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},l.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},l.exportAll=function(e,n){return Object.keys(e).forEach(function(l){"default"===l||"__esModule"===l||Object.prototype.hasOwnProperty.call(n,l)||Object.defineProperty(n,l,{enumerable:!0,get:function(){return e[l]}})}),n},l.export=function(e,n,l){Object.defineProperty(e,n,{enumerable:!0,get:l})}},{}]},["hUYA0"],"hUYA0","parcelRequire4dc0",{}); \ No newline at end of file +!function(e,n,l,t,i,a,r,o){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[t]&&d[t],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function y(n,l){if(!u[n]){if(!e[n]){if(i[n])return i[n];var a="function"==typeof d[t]&&d[t];if(!l&&a)return a(n,!0);if(p)return p(n,!0);if(c&&"string"==typeof n)return c(n);var r=Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}s.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},s.cache={};var o=u[n]=new y.Module(n);e[n][0].call(o.exports,s,o,o.exports,d)}return u[n].exports;function s(e){var n=s.resolve(e);return!1===n?{}:y(n)}}y.isParcelRequire=!0,y.Module=function(e){this.id=e,this.bundle=y,this.require=c,this.exports={}},y.modules=e,y.cache=u,y.parent=p,y.distDir=void 0,y.publicUrl=void 0,y.devServer=void 0,y.i=s,y.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(y,"root",{get:function(){return d[t]}}),d[t]=y;for(var f=0;fo);var a=e("bundle-text:./style.less"),r=i.interopDefault(a);function o(e){return n=>{let{version:l,utils:{errorHandle:t}}=n.constructor,i=l.split(".").map(Number);t(i[0]+i[1]/100>=5,`Artplayer.js@${l} is not compatible the artplayerPluginAds@${o.version}. Please update it to version Artplayer.js@5.x.x`);let{template:{$player:a},icons:{volume:r,volumeClose:d,fullscreenOn:p,fullscreenOff:s,loading:u},constructor:{validator:c,utils:{query:y,append:f,setStyle:g}}}=n;e=c({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"},...e},{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});let m=null,v=null,x=null,h=null,b=null,w=null,D=0,j=null,k=!1,P=!1,$=!1;function O(e,n){return n.replace("%s",e)}function A(){k=!0,n.play(),e.video&&m.pause(),g(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function M(){k||(j=setTimeout(()=>{D+=1;let n=e.playDuration-D;n>=1?x.innerHTML=O(n,e.i18n.canBeClosed):(x.innerHTML=e.i18n.close,$||($=!0)),h.innerHTML=O(e.totalDuration-D,e.i18n.countdown),D>=e.totalDuration?A():M()},1e3))}function T(){k||clearTimeout(j)}function _(){P||(P=!0,function(){n.template.$ads=f(a,'
'),m=f(n.template.$ads,e.video?``:`
${e.html}
`),w=f(n.template.$ads,'
'),f(w,u),x=y(".artplayer-plugin-ads-close",v=f(n.template.$ads,`
${e.playDuration<=0?e.i18n.close:O(e.playDuration,e.i18n.canBeClosed)}
${O(e.totalDuration,e.i18n.countdown)}
`)),h=y(".artplayer-plugin-ads-countdown",v),e.playDuration>=e.totalDuration&&g(x,"display","none"),n.proxy(x,"click",()=>{$&&A()});let l=y(".artplayer-plugin-ads-detail",b=f(n.template.$ads,`
${e.i18n.detail}
`)),t=y(".artplayer-plugin-ads-muted",b),i=y(".artplayer-plugin-ads-fullscreen",b);if(e.url?n.proxy(l,"click",()=>{window.open(e.url),n.emit("artplayerPluginAds:click",e)}):g(l,"display","none"),e.video){let l=f(t,r),i=f(t,d);g(i,"display","none"),e.muted&&(m.muted=!0,g(l,"display","none"),g(i,"display","inline-flex")),n.proxy(t,"click",()=>{m.muted=!m.muted,m.muted?(g(l,"display","none"),g(i,"display","inline-flex")):(g(l,"display","inline-flex"),g(i,"display","none"))})}else g(t,"display","none");let o=f(i,p),c=f(i,s);g(c,"display","none"),n.proxy(i,"click",()=>{n.fullscreen=!n.fullscreen,n.fullscreen?(g(o,"display","inline-flex"),g(c,"display","none")):(g(o,"display","none"),g(c,"display","inline-flex"))}),n.proxy(m,"click",()=>{e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)})}(),n.pause(),e.video?(n.proxy(m,"error",A),n.proxy(m,"loadedmetadata",()=>{M(),m.play(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")})):(M(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")),n.proxy(document,"visibilitychange",()=>{document.hidden?T():M()}))}return n.on("ready",()=>{n.once("play",_),n.once("video:playing",_)}),{name:"artplayerPluginAds",skip:A,pause:T,play:M}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-ads")){let e=document.createElement("style");e.id="artplayer-plugin-ads",e.textContent=r.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginAds=o)},{"bundle-text:./style.less":"1lYSU","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1lYSU":[function(e,n,l,t){n.exports=".artplayer-plugin-ads{z-index:150;color:#fff;background-color:#000;width:100%;height:100%;font-size:13px;line-height:1;position:absolute;inset:0;overflow:hidden}.artplayer-plugin-ads .artplayer-plugin-ads-html{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-video{width:100%;height:100%}.artplayer-plugin-ads .artplayer-plugin-ads-timer{display:none;position:absolute;top:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-timer>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control{display:none;position:absolute;bottom:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-control>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control .art-icon svg{width:20px;height:20px}.artplayer-plugin-ads .artplayer-plugin-ads-loading{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}"},{}],"6ykb1":[function(e,n,l,t){l.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},l.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},l.exportAll=function(e,n){return Object.keys(e).forEach(function(l){"default"===l||"__esModule"===l||Object.prototype.hasOwnProperty.call(n,l)||Object.defineProperty(n,l,{enumerable:!0,get:function(){return e[l]}})}),n},l.export=function(e,n,l){Object.defineProperty(e,n,{enumerable:!0,get:l})}},{}]},["ezZng"],"ezZng","parcelRequire4dc0",{}); \ No newline at end of file diff --git a/packages/artplayer-plugin-ads/dist/artplayer-plugin-ads.legacy.js b/packages/artplayer-plugin-ads/dist/artplayer-plugin-ads.legacy.js index 7815d74ac..c954eb795 100644 --- a/packages/artplayer-plugin-ads/dist/artplayer-plugin-ads.legacy.js +++ b/packages/artplayer-plugin-ads/dist/artplayer-plugin-ads.legacy.js @@ -5,4 +5,4 @@ * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,n,t,r,l,i,a,o){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof s[r]&&s[r],p=d.i||{},u=d.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(n,t){if(!u[n]){if(!e[n]){if(l[n])return l[n];var i="function"==typeof s[r]&&s[r];if(!t&&i)return i(n,!0);if(d)return d(n,!0);if(c&&"string"==typeof n)return c(n);var a=Error("Cannot find module '"+n+"'");throw a.code="MODULE_NOT_FOUND",a}p.resolve=function(t){var r=e[n][1][t];return null!=r?r:t},p.cache={};var o=u[n]=new f.Module(n);e[n][0].call(o.exports,p,o,o.exports,s)}return u[n].exports;function p(e){var n=p.resolve(e);return!1===n?{}:f(n)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=u,f.parent=d,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=p,f.register=function(n,t){e[n]=[function(e,n){n.exports=t},{}]},Object.defineProperty(f,"root",{get:function(){return s[r]}}),s[r]=f;for(var y=0;y=5,"Artplayer.js@".concat(r," is not compatible the artplayerPluginAds@").concat(s.version,". Please update it to version Artplayer.js@5.x.x"));var t,r,l,a=n.template.$player,o=n.icons,d=o.volume,p=o.volumeClose,u=o.fullscreenOn,c=o.fullscreenOff,f=o.loading,y=n.constructor,g=y.validator,m=y.utils,v=m.query,h=m.append,x=m.setStyle;e=g((0,i._)({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"}},e),{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});var b=null,w=null,j=null,D=null,_=null,O=null,P=0,k=null,A=!1,I=!1,M=!1;function C(e,n){return n.replace("%s",e)}function L(){A=!0,n.play(),e.video&&b.pause(),x(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function T(){A||(k=setTimeout(function(){P+=1;var n=e.playDuration-P;n>=1?j.innerHTML=C(n,e.i18n.canBeClosed):(j.innerHTML=e.i18n.close,M||(M=!0)),D.innerHTML=C(e.totalDuration-P,e.i18n.countdown),P>=e.totalDuration?L():T()},1e3))}function U(){A||clearTimeout(k)}function F(){I||(I=!0,function(){n.template.$ads=h(a,'
'),b=h(n.template.$ads,e.video?''):'
'.concat(e.html,"
")),O=h(n.template.$ads,'
'),h(O,f),j=v(".artplayer-plugin-ads-close",w=h(n.template.$ads,'
\n
'.concat(e.playDuration<=0?e.i18n.close:C(e.playDuration,e.i18n.canBeClosed),'
\n
').concat(C(e.totalDuration,e.i18n.countdown),"
\n
"))),D=v(".artplayer-plugin-ads-countdown",w),e.playDuration>=e.totalDuration&&x(j,"display","none"),n.proxy(j,"click",function(){M&&L()});var t=v(".artplayer-plugin-ads-detail",_=h(n.template.$ads,'
\n
'.concat(e.i18n.detail,'
\n
\n
\n
'))),r=v(".artplayer-plugin-ads-muted",_),l=v(".artplayer-plugin-ads-fullscreen",_);if(e.url?n.proxy(t,"click",function(){window.open(e.url),n.emit("artplayerPluginAds:click",e)}):x(t,"display","none"),e.video){var i=h(r,d),o=h(r,p);x(o,"display","none"),e.muted&&(b.muted=!0,x(i,"display","none"),x(o,"display","inline-flex")),n.proxy(r,"click",function(){b.muted=!b.muted,b.muted?(x(i,"display","none"),x(o,"display","inline-flex")):(x(i,"display","inline-flex"),x(o,"display","none"))})}else x(r,"display","none");var s=h(l,u),y=h(l,c);x(y,"display","none"),n.proxy(l,"click",function(){n.fullscreen=!n.fullscreen,n.fullscreen?(x(s,"display","inline-flex"),x(y,"display","none")):(x(s,"display","none"),x(y,"display","inline-flex"))}),n.proxy(b,"click",function(){e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)})}(),n.pause(),e.video?(n.proxy(b,"error",L),n.proxy(b,"loadedmetadata",function(){T(),b.play(),x(w,"display","flex"),x(_,"display","flex"),x(O,"display","none")})):(T(),x(w,"display","flex"),x(_,"display","flex"),x(O,"display","none")),n.proxy(document,"visibilitychange",function(){document.hidden?U():T()}))}return n.on("ready",function(){n.once("play",F),n.once("video:playing",F)}),{name:"artplayerPluginAds",skip:L,pause:U,play:T}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-ads")){var d=document.createElement("style");d.id="artplayer-plugin-ads",d.textContent=o.default,document.head.appendChild(d)}"undefined"!=typeof window&&(window.artplayerPluginAds=s)},{"@swc/helpers/_/_object_spread":"9agdF","bundle-text:./style.less":"1LZhU","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],"9agdF":[function(e,n,t,r){var l=e("@parcel/transformer-js/src/esmodule-helpers.js");l.defineInteropFlag(t),l.export(t,"_",function(){return a});var i=e("./_define_property.js");function a(e){for(var n=1;ndiv{cursor:pointer;background-color:rgba(0,0,0,.5);border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control{display:none;position:absolute;bottom:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-control>div{cursor:pointer;background-color:rgba(0,0,0,.5);border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control .art-icon svg{width:20px;height:20px}.artplayer-plugin-ads .artplayer-plugin-ads-loading{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}"},{}]},["69VIU"],"69VIU","parcelRequire4dc0",{}); \ No newline at end of file +!function(e,n,t,l,i,r,a,o){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof d[l]&&d[l],s=u.i||{},p=u.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(n,t){if(!p[n]){if(!e[n]){if(i[n])return i[n];var r="function"==typeof d[l]&&d[l];if(!t&&r)return r(n,!0);if(u)return u(n,!0);if(c&&"string"==typeof n)return c(n);var a=Error("Cannot find module '"+n+"'");throw a.code="MODULE_NOT_FOUND",a}s.resolve=function(t){var l=e[n][1][t];return null!=l?l:t},s.cache={};var o=p[n]=new f.Module(n);e[n][0].call(o.exports,s,o,o.exports,d)}return p[n].exports;function s(e){var n=s.resolve(e);return!1===n?{}:f(n)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=p,f.parent=u,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(n,t){e[n]=[function(e,n){n.exports=t},{}]},Object.defineProperty(f,"root",{get:function(){return d[l]}}),d[l]=f;for(var y=0;y=5,"Artplayer.js@".concat(l," is not compatible the artplayerPluginAds@").concat(d.version,". Please update it to version Artplayer.js@5.x.x"));var t,l,i,a=n.template.$player,o=n.icons,u=o.volume,s=o.volumeClose,p=o.fullscreenOn,c=o.fullscreenOff,f=o.loading,y=n.constructor,g=y.validator,m=y.utils,v=m.query,b=m.append,x=m.setStyle;e=g((0,r._)({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"}},e),{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});var h=null,w=null,j=null,O=null,P=null,k=null,D=0,_=null,M=!1,q=!1,A=!1;function C(e,n){return n.replace("%s",e)}function E(){M=!0,n.play(),e.video&&h.pause(),x(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function T(){M||(_=setTimeout(function(){D+=1;var n=e.playDuration-D;n>=1?j.innerHTML=C(n,e.i18n.canBeClosed):(j.innerHTML=e.i18n.close,A||(A=!0)),O.innerHTML=C(e.totalDuration-D,e.i18n.countdown),D>=e.totalDuration?E():T()},1e3))}function H(){M||clearTimeout(_)}function $(){q||(q=!0,function(){n.template.$ads=b(a,'
'),h=b(n.template.$ads,e.video?''):'
'.concat(e.html,"
")),k=b(n.template.$ads,'
'),b(k,f),j=v(".artplayer-plugin-ads-close",w=b(n.template.$ads,'
\n
'.concat(e.playDuration<=0?e.i18n.close:C(e.playDuration,e.i18n.canBeClosed),'
\n
').concat(C(e.totalDuration,e.i18n.countdown),"
\n
"))),O=v(".artplayer-plugin-ads-countdown",w),e.playDuration>=e.totalDuration&&x(j,"display","none"),n.proxy(j,"click",function(){A&&E()});var t=v(".artplayer-plugin-ads-detail",P=b(n.template.$ads,'
\n
'.concat(e.i18n.detail,'
\n
\n
\n
'))),l=v(".artplayer-plugin-ads-muted",P),i=v(".artplayer-plugin-ads-fullscreen",P);if(e.url?n.proxy(t,"click",function(){window.open(e.url),n.emit("artplayerPluginAds:click",e)}):x(t,"display","none"),e.video){var r=b(l,u),o=b(l,s);x(o,"display","none"),e.muted&&(h.muted=!0,x(r,"display","none"),x(o,"display","inline-flex")),n.proxy(l,"click",function(){h.muted=!h.muted,h.muted?(x(r,"display","none"),x(o,"display","inline-flex")):(x(r,"display","inline-flex"),x(o,"display","none"))})}else x(l,"display","none");var d=b(i,p),y=b(i,c);x(y,"display","none"),n.proxy(i,"click",function(){n.fullscreen=!n.fullscreen,n.fullscreen?(x(d,"display","inline-flex"),x(y,"display","none")):(x(d,"display","none"),x(y,"display","inline-flex"))}),n.proxy(h,"click",function(){e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)})}(),n.pause(),e.video?(n.proxy(h,"error",E),n.proxy(h,"loadedmetadata",function(){T(),h.play(),x(w,"display","flex"),x(P,"display","flex"),x(k,"display","none")})):(T(),x(w,"display","flex"),x(P,"display","flex"),x(k,"display","none")),n.proxy(document,"visibilitychange",function(){document.hidden?H():T()}))}return n.on("ready",function(){n.once("play",$),n.once("video:playing",$)}),{name:"artplayerPluginAds",skip:E,pause:H,play:T}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-ads")){var u=document.createElement("style");u.id="artplayer-plugin-ads",u.textContent=o.default,document.head.appendChild(u)}"undefined"!=typeof window&&(window.artplayerPluginAds=d)},{"@swc/helpers/cjs/_object_spread.cjs":"kyoEj","bundle-text:./style.less":"g8Z3k","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],kyoEj:[function(e,n,t,l){"use strict";var i=e("9f9b8a24218ee51e");t._=function(e){for(var n=1;ndiv{cursor:pointer;background-color:rgba(0,0,0,.5);border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control{display:none;position:absolute;bottom:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-control>div{cursor:pointer;background-color:rgba(0,0,0,.5);border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control .art-icon svg{width:20px;height:20px}.artplayer-plugin-ads .artplayer-plugin-ads-loading{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}"},{}],qpMMf:[function(e,n,t,l){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,n){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:function(){return e[t]}})}),n},t.export=function(e,n,t){Object.defineProperty(e,n,{enumerable:!0,get:t})}},{}]},["1qHWP"],"1qHWP","parcelRequire4dc0",{}); \ No newline at end of file diff --git a/packages/artplayer-plugin-ads/dist/index.js.map b/packages/artplayer-plugin-ads/dist/index.js.map new file mode 100644 index 000000000..20970ea4b --- /dev/null +++ b/packages/artplayer-plugin-ads/dist/index.js.map @@ -0,0 +1 @@ +{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCgBwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAhBxB,IAAA,EAAA,EAAA,4B,E,E,c,C,GAgBe,SAAS,EAAmB,CAAM,EAC7C,OAAO,AAAC,IAdR,GAAM,CACF,QAAA,CAAO,CACP,MAAO,CAAE,YAAA,CAAW,CAAE,CACzB,CAAG,AAYa,EAZT,WAAW,CACb,EAAM,EAAQ,KAAK,CAAC,KAAK,GAAG,CAAC,QAGnC,EACI,AAHU,CAAG,CAAC,EAAE,CACN,CAAG,CAAC,EAAE,CAAG,KAEF,EACjB,CAAC,aAAa,EAAE,EAAQ,0CAA0C,EAAE,EAAmB,OAAO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","sources":["","packages/artplayer-plugin-ads/src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-8bdb8791472ee09f.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcelRequireName,\n externals,\n distDir,\n publicUrl,\n devServer\n) {\n /* eslint-disable no-undef */\n var globalObject =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n /* eslint-enable no-undef */\n\n // Save the require from previous bundle to this closure if any\n var previousRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n\n var importMap = previousRequire.i || {};\n var cache = previousRequire.cache || {};\n // Do not use `require` to prevent Webpack from trying to bundle this call\n var nodeRequire =\n typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n\n function newRequire(name, jumped) {\n if (!cache[name]) {\n if (!modules[name]) {\n if (externals[name]) {\n return externals[name];\n }\n // if we cannot find the module within our internal map or\n // cache jump to the current global require ie. the last bundle\n // that was added to the page.\n var currentRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n if (!jumped && currentRequire) {\n return currentRequire(name, true);\n }\n\n // If there are other bundles on this page the require from the\n // previous one is saved to 'previousRequire'. Repeat this as\n // many times as there are bundles until the module is found or\n // we exhaust the require chain.\n if (previousRequire) {\n return previousRequire(name, true);\n }\n\n // Try the node require function if it exists.\n if (nodeRequire && typeof name === 'string') {\n return nodeRequire(name);\n }\n\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n }\n\n localRequire.resolve = resolve;\n localRequire.cache = {};\n\n var module = (cache[name] = new newRequire.Module(name));\n\n modules[name][0].call(\n module.exports,\n localRequire,\n module,\n module.exports,\n globalObject\n );\n }\n\n return cache[name].exports;\n\n function localRequire(x) {\n var res = localRequire.resolve(x);\n return res === false ? {} : newRequire(res);\n }\n\n function resolve(x) {\n var id = modules[name][1][x];\n return id != null ? id : x;\n }\n }\n\n function Module(moduleName) {\n this.id = moduleName;\n this.bundle = newRequire;\n this.require = nodeRequire;\n this.exports = {};\n }\n\n newRequire.isParcelRequire = true;\n newRequire.Module = Module;\n newRequire.modules = modules;\n newRequire.cache = cache;\n newRequire.parent = previousRequire;\n newRequire.distDir = distDir;\n newRequire.publicUrl = publicUrl;\n newRequire.devServer = devServer;\n newRequire.i = importMap;\n newRequire.register = function (id, exports) {\n modules[id] = [\n function (require, module) {\n module.exports = exports;\n },\n {},\n ];\n };\n\n // Only insert newRequire.load when it is actually used.\n // The code in this file is linted against ES5, so dynamic import is not allowed.\n // INSERT_LOAD_HERE\n\n Object.defineProperty(newRequire, 'root', {\n get: function () {\n return globalObject[parcelRequireName];\n },\n });\n\n globalObject[parcelRequireName] = newRequire;\n\n for (var i = 0; i < entry.length; i++) {\n newRequire(entry[i]);\n }\n\n if (mainEntry) {\n // Expose entry point to Node, AMD or browser globals\n // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js\n var mainExports = newRequire(mainEntry);\n\n // CommonJS\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = mainExports;\n\n // RequireJS\n } else if (typeof define === 'function' && define.amd) {\n define(function () {\n return mainExports;\n });\n }\n }\n})({\"2Uydo\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>artplayerPluginAds);\nvar _styleLess = require(\"bundle-text:./style.less\");\nvar _styleLessDefault = parcelHelpers.interopDefault(_styleLess);\nfunction checkVersion(art) {\n const { version, utils: { errorHandle } } = art.constructor;\n const arr = version.split('.').map(Number);\n const major = arr[0];\n const minor = arr[1] / 100;\n errorHandle(major + minor >= 5, `Artplayer.js@${version} is not compatible the artplayerPluginAds@${artplayerPluginAds.version}. Please update it to version Artplayer.js@5.x.x`);\n}\nfunction artplayerPluginAds(option) {\n return (art)=>{\n checkVersion(art);\n const { template: { $player }, icons: { volume, volumeClose, fullscreenOn, fullscreenOff, loading }, constructor: { validator, utils: { query, append, setStyle } } } = art;\n option = validator({\n html: '',\n video: '',\n url: '',\n playDuration: 5,\n totalDuration: 10,\n muted: false,\n i18n: {\n close: \"\\u5173\\u95ED\\u5E7F\\u544A\",\n countdown: \"%s\\u79D2\",\n detail: \"\\u67E5\\u770B\\u8BE6\\u60C5\",\n canBeClosed: \"%s\\u79D2\\u540E\\u53EF\\u5173\\u95ED\\u5E7F\\u544A\"\n },\n ...option\n }, {\n html: '?string',\n video: '?string',\n url: '?string',\n playDuration: 'number',\n totalDuration: 'number',\n muted: '?boolean',\n i18n: {\n close: 'string',\n countdown: 'string',\n detail: 'string',\n canBeClosed: 'string'\n }\n });\n let $ads = null;\n let $timer = null;\n let $close = null;\n let $countdown = null;\n let $control = null;\n let $loading = null;\n let time = 0;\n let timer = null;\n let isEnd = false;\n let isInit = false;\n let isCanClose = false;\n function getI18n(val, str) {\n return str.replace('%s', val);\n }\n function skip() {\n isEnd = true;\n art.play();\n if (option.video) $ads.pause();\n setStyle(art.template.$ads, 'display', 'none');\n art.emit('artplayerPluginAds:skip', option);\n }\n function play() {\n if (isEnd) return;\n timer = setTimeout(()=>{\n time += 1;\n const playDuration = option.playDuration - time;\n if (playDuration >= 1) $close.innerHTML = getI18n(playDuration, option.i18n.canBeClosed);\n else {\n $close.innerHTML = option.i18n.close;\n if (!isCanClose) isCanClose = true;\n }\n $countdown.innerHTML = getI18n(option.totalDuration - time, option.i18n.countdown);\n if (time >= option.totalDuration) skip();\n else play();\n }, 1000);\n }\n function pause() {\n if (isEnd) return;\n clearTimeout(timer);\n }\n function show() {\n art.template.$ads = append($player, '
');\n $ads = append(art.template.$ads, option.video ? `` : `
${option.html}
`);\n $loading = append(art.template.$ads, '
');\n append($loading, loading);\n $timer = append(art.template.$ads, `
\n
${option.playDuration <= 0 ? option.i18n.close : getI18n(option.playDuration, option.i18n.canBeClosed)}
\n
${getI18n(option.totalDuration, option.i18n.countdown)}
\n
`);\n $close = query('.artplayer-plugin-ads-close', $timer);\n $countdown = query('.artplayer-plugin-ads-countdown', $timer);\n if (option.playDuration >= option.totalDuration) setStyle($close, 'display', 'none');\n art.proxy($close, 'click', ()=>{\n if (isCanClose) skip();\n });\n $control = append(art.template.$ads, `
\n
${option.i18n.detail}
\n
\n
\n
`);\n const $detail = query('.artplayer-plugin-ads-detail', $control);\n const $muted = query('.artplayer-plugin-ads-muted', $control);\n const $fullscreen = query('.artplayer-plugin-ads-fullscreen', $control);\n if (option.url) art.proxy($detail, 'click', ()=>{\n window.open(option.url);\n art.emit('artplayerPluginAds:click', option);\n });\n else setStyle($detail, 'display', 'none');\n if (option.video) {\n const $volume = append($muted, volume);\n const $volumeClose = append($muted, volumeClose);\n setStyle($volumeClose, 'display', 'none');\n // If the ad was set to muted initially, match the icon\n if (option.muted) {\n $ads.muted = true;\n setStyle($volume, 'display', 'none');\n setStyle($volumeClose, 'display', 'inline-flex');\n }\n art.proxy($muted, 'click', ()=>{\n $ads.muted = !$ads.muted;\n if ($ads.muted) {\n setStyle($volume, 'display', 'none');\n setStyle($volumeClose, 'display', 'inline-flex');\n } else {\n setStyle($volume, 'display', 'inline-flex');\n setStyle($volumeClose, 'display', 'none');\n }\n });\n } else setStyle($muted, 'display', 'none');\n const $fullscreenOn = append($fullscreen, fullscreenOn);\n const $fullscreenOff = append($fullscreen, fullscreenOff);\n setStyle($fullscreenOff, 'display', 'none');\n art.proxy($fullscreen, 'click', ()=>{\n art.fullscreen = !art.fullscreen;\n if (art.fullscreen) {\n setStyle($fullscreenOn, 'display', 'inline-flex');\n setStyle($fullscreenOff, 'display', 'none');\n } else {\n setStyle($fullscreenOn, 'display', 'none');\n setStyle($fullscreenOff, 'display', 'inline-flex');\n }\n });\n art.proxy($ads, 'click', ()=>{\n if (option.url) window.open(option.url);\n art.emit('artplayerPluginAds:click', option);\n });\n }\n function init() {\n if (isInit) return;\n isInit = true;\n show();\n art.pause();\n if (option.video) {\n art.proxy($ads, 'error', skip);\n art.proxy($ads, 'loadedmetadata', ()=>{\n play();\n $ads.play();\n setStyle($timer, 'display', 'flex');\n setStyle($control, 'display', 'flex');\n setStyle($loading, 'display', 'none');\n });\n } else {\n play();\n setStyle($timer, 'display', 'flex');\n setStyle($control, 'display', 'flex');\n setStyle($loading, 'display', 'none');\n }\n art.proxy(document, 'visibilitychange', ()=>{\n if (document.hidden) pause();\n else play();\n });\n }\n art.on('ready', ()=>{\n art.once('play', init);\n art.once('video:playing', init);\n });\n return {\n name: 'artplayerPluginAds',\n skip,\n pause,\n play\n };\n };\n}\nif (typeof document !== 'undefined') {\n if (!document.getElementById('artplayer-plugin-ads')) {\n const $style = document.createElement('style');\n $style.id = 'artplayer-plugin-ads';\n $style.textContent = (0, _styleLessDefault.default);\n document.head.appendChild($style);\n }\n}\nif (typeof window !== 'undefined') window['artplayerPluginAds'] = artplayerPluginAds;\n\n},{\"bundle-text:./style.less\":\"1GXMH\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"5lQoW\"}],\"1GXMH\":[function(require,module,exports,__globalThis) {\nmodule.exports = \".artplayer-plugin-ads{z-index:150;color:#fff;background-color:#000;width:100%;height:100%;font-size:13px;line-height:1;position:absolute;inset:0;overflow:hidden}.artplayer-plugin-ads .artplayer-plugin-ads-html{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-video{width:100%;height:100%}.artplayer-plugin-ads .artplayer-plugin-ads-timer{display:none;position:absolute;top:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-timer>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control{display:none;position:absolute;bottom:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-control>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control .art-icon svg{width:20px;height:20px}.artplayer-plugin-ads .artplayer-plugin-ads-loading{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}\";\n\n},{}],\"5lQoW\":[function(require,module,exports,__globalThis) {\nexports.interopDefault = function(a) {\n return a && a.__esModule ? a : {\n default: a\n };\n};\nexports.defineInteropFlag = function(a) {\n Object.defineProperty(a, '__esModule', {\n value: true\n });\n};\nexports.exportAll = function(source, dest) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) return;\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function() {\n return source[key];\n }\n });\n });\n return dest;\n};\nexports.export = function(dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get\n });\n};\n\n},{}]},[\"2Uydo\"], \"2Uydo\", \"parcelRequire4dc0\", {})\nlet {default: _default, } = parcelRequire4dc0(\"2Uydo\");\nexport {_default as default, };\n\n//# sourceMappingURL=index.js.map\n","import style from 'bundle-text:./style.less';\n\nfunction checkVersion(art) {\n const {\n version,\n utils: { errorHandle },\n } = art.constructor;\n const arr = version.split('.').map(Number);\n const major = arr[0];\n const minor = arr[1] / 100;\n errorHandle(\n major + minor >= 5,\n `Artplayer.js@${version} is not compatible the artplayerPluginAds@${artplayerPluginAds.version}. Please update it to version Artplayer.js@5.x.x`,\n );\n}\n\nexport default function artplayerPluginAds(option) {\n return (art) => {\n checkVersion(art);\n\n const {\n template: { $player },\n icons: { volume, volumeClose, fullscreenOn, fullscreenOff, loading },\n constructor: {\n validator,\n utils: { query, append, setStyle },\n },\n } = art;\n\n option = validator(\n {\n html: '',\n video: '',\n url: '',\n playDuration: 5,\n totalDuration: 10,\n muted: false,\n i18n: {\n close: '关闭广告',\n countdown: '%s秒',\n detail: '查看详情',\n canBeClosed: '%s秒后可关闭广告',\n },\n ...option,\n },\n {\n html: '?string',\n video: '?string',\n url: '?string',\n playDuration: 'number',\n totalDuration: 'number',\n muted: '?boolean',\n i18n: {\n close: 'string',\n countdown: 'string',\n detail: 'string',\n canBeClosed: 'string',\n },\n },\n );\n\n let $ads = null;\n let $timer = null;\n let $close = null;\n let $countdown = null;\n let $control = null;\n let $loading = null;\n\n let time = 0;\n let timer = null;\n let isEnd = false;\n let isInit = false;\n let isCanClose = false;\n\n function getI18n(val, str) {\n return str.replace('%s', val);\n }\n\n function skip() {\n isEnd = true;\n art.play();\n if (option.video) $ads.pause();\n setStyle(art.template.$ads, 'display', 'none');\n art.emit('artplayerPluginAds:skip', option);\n }\n\n function play() {\n if (isEnd) return;\n\n timer = setTimeout(() => {\n time += 1;\n\n const playDuration = option.playDuration - time;\n if (playDuration >= 1) {\n $close.innerHTML = getI18n(playDuration, option.i18n.canBeClosed);\n } else {\n $close.innerHTML = option.i18n.close;\n if (!isCanClose) {\n isCanClose = true;\n }\n }\n\n $countdown.innerHTML = getI18n(option.totalDuration - time, option.i18n.countdown);\n\n if (time >= option.totalDuration) {\n skip();\n } else {\n play();\n }\n }, 1000);\n }\n\n function pause() {\n if (isEnd) return;\n clearTimeout(timer);\n }\n\n function show() {\n art.template.$ads = append($player, '
');\n\n $ads = append(\n art.template.$ads,\n option.video\n ? ``\n : `
${option.html}
`,\n );\n\n $loading = append(art.template.$ads, '
');\n append($loading, loading);\n\n $timer = append(\n art.template.$ads,\n `
\n
${\n option.playDuration <= 0\n ? option.i18n.close\n : getI18n(option.playDuration, option.i18n.canBeClosed)\n }
\n
${getI18n(\n option.totalDuration,\n option.i18n.countdown,\n )}
\n
`,\n );\n\n $close = query('.artplayer-plugin-ads-close', $timer);\n $countdown = query('.artplayer-plugin-ads-countdown', $timer);\n\n if (option.playDuration >= option.totalDuration) {\n setStyle($close, 'display', 'none');\n }\n\n art.proxy($close, 'click', () => {\n if (isCanClose) {\n skip();\n }\n });\n\n $control = append(\n art.template.$ads,\n `
\n
${option.i18n.detail}
\n
\n
\n
`,\n );\n\n const $detail = query('.artplayer-plugin-ads-detail', $control);\n const $muted = query('.artplayer-plugin-ads-muted', $control);\n const $fullscreen = query('.artplayer-plugin-ads-fullscreen', $control);\n\n if (option.url) {\n art.proxy($detail, 'click', () => {\n window.open(option.url);\n art.emit('artplayerPluginAds:click', option);\n });\n } else {\n setStyle($detail, 'display', 'none');\n }\n\n if (option.video) {\n const $volume = append($muted, volume);\n const $volumeClose = append($muted, volumeClose);\n setStyle($volumeClose, 'display', 'none');\n\n // If the ad was set to muted initially, match the icon\n if (option.muted) {\n $ads.muted = true;\n setStyle($volume, 'display', 'none');\n setStyle($volumeClose, 'display', 'inline-flex');\n }\n\n art.proxy($muted, 'click', () => {\n $ads.muted = !$ads.muted;\n if ($ads.muted) {\n setStyle($volume, 'display', 'none');\n setStyle($volumeClose, 'display', 'inline-flex');\n } else {\n setStyle($volume, 'display', 'inline-flex');\n setStyle($volumeClose, 'display', 'none');\n }\n });\n } else {\n setStyle($muted, 'display', 'none');\n }\n\n const $fullscreenOn = append($fullscreen, fullscreenOn);\n const $fullscreenOff = append($fullscreen, fullscreenOff);\n setStyle($fullscreenOff, 'display', 'none');\n\n art.proxy($fullscreen, 'click', () => {\n art.fullscreen = !art.fullscreen;\n if (art.fullscreen) {\n setStyle($fullscreenOn, 'display', 'inline-flex');\n setStyle($fullscreenOff, 'display', 'none');\n } else {\n setStyle($fullscreenOn, 'display', 'none');\n setStyle($fullscreenOff, 'display', 'inline-flex');\n }\n });\n\n art.proxy($ads, 'click', () => {\n if (option.url) window.open(option.url);\n art.emit('artplayerPluginAds:click', option);\n });\n }\n\n function init() {\n if (isInit) return;\n isInit = true;\n\n show();\n art.pause();\n\n if (option.video) {\n art.proxy($ads, 'error', skip);\n art.proxy($ads, 'loadedmetadata', () => {\n play();\n $ads.play();\n setStyle($timer, 'display', 'flex');\n setStyle($control, 'display', 'flex');\n setStyle($loading, 'display', 'none');\n });\n } else {\n play();\n setStyle($timer, 'display', 'flex');\n setStyle($control, 'display', 'flex');\n setStyle($loading, 'display', 'none');\n }\n\n art.proxy(document, 'visibilitychange', () => {\n if (document.hidden) {\n pause();\n } else {\n play();\n }\n });\n }\n\n art.on('ready', () => {\n art.once('play', init);\n art.once('video:playing', init);\n });\n\n return {\n name: 'artplayerPluginAds',\n skip,\n pause,\n play,\n };\n };\n}\n\nif (typeof document !== 'undefined') {\n if (!document.getElementById('artplayer-plugin-ads')) {\n const $style = document.createElement('style');\n $style.id = 'artplayer-plugin-ads';\n $style.textContent = style;\n document.head.appendChild($style);\n }\n}\n\nif (typeof window !== 'undefined') {\n window['artplayerPluginAds'] = artplayerPluginAds;\n}\n","module.exports = \"e140a0ba961ecae5\";","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (\n key === 'default' ||\n key === '__esModule' ||\n Object.prototype.hasOwnProperty.call(dest, key)\n ) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n"],"names":["modules","entry","mainEntry","parcelRequireName","externals","distDir","publicUrl","devServer","globalObject","globalThis","self","window","global","previousRequire","importMap","i","cache","nodeRequire","module","require","bind","newRequire","name","jumped","currentRequire","err","Error","code","localRequire","resolve","x","id","Module","call","exports","res","isParcelRequire","moduleName","bundle","parent","register","Object","defineProperty","get","length","mainExports","define","amd","__globalThis","parcelHelpers","defineInteropFlag","export","artplayerPluginAds","_styleLess","_styleLessDefault","interopDefault","option","art","version","utils","errorHandle","constructor","arr","split","map","Number","major","template","$player","icons","volume","volumeClose","fullscreenOn","fullscreenOff","loading","validator","query","append","setStyle","html","video","url","playDuration","totalDuration","muted","i18n","close","countdown","detail","canBeClosed","$ads","$timer","$close","$countdown","$control","$loading","time","timer","isEnd","isInit","isCanClose","getI18n","val","str","replace","skip","play","pause","emit","setTimeout","innerHTML","clearTimeout","init","show","proxy","$detail","$muted","$fullscreen","open","$volume","$volumeClose","$fullscreenOn","$fullscreenOff","fullscreen","document","hidden","on","once","getElementById","$style","createElement","textContent","default","head","appendChild","a","__esModule","value","exportAll","source","dest","keys","forEach","key","prototype","hasOwnProperty","enumerable","destName","_default","parcelRequire4dc0"],"version":3,"file":"index.js.map"} \ No newline at end of file diff --git a/packages/artplayer-plugin-ads/package.json b/packages/artplayer-plugin-ads/package.json index 1c87b843a..56cd7b4dc 100644 --- a/packages/artplayer-plugin-ads/package.json +++ b/packages/artplayer-plugin-ads/package.json @@ -2,10 +2,16 @@ "license": "MIT", "version": "2.0.0", "name": "artplayer-plugin-ads", - "types": "types/artplayer-plugin-ads.d.ts", "description": "Ads plugin for ArtPlayer", "main": "dist/artplayer-plugin-ads.js", "legacy": "dist/artplayer-plugin-ads.legacy.js", + "module": "dist/artplayer-plugin-ads.esm.js", + "types": "types/artplayer-plugin-ads.d.ts", + "exports": { + "import": "./dist/artplayer-plugin-ads.esm.js", + "require": "./dist/artplayer-plugin-ads.js", + "default": "./dist/artplayer-plugin-ads.js" + }, "author": "Harvey Zack ", "browserslist": "last 1 Chrome version", "homepage": "https://artplayer.org", @@ -21,4 +27,4 @@ "video", "player" ] -} +} \ No newline at end of file diff --git a/packages/artplayer-plugin-ambilight/dist/artplayer-plugin-ambilight.esm.js b/packages/artplayer-plugin-ambilight/dist/artplayer-plugin-ambilight.esm.js new file mode 100644 index 000000000..962aaae78 --- /dev/null +++ b/packages/artplayer-plugin-ambilight/dist/artplayer-plugin-ambilight.esm.js @@ -0,0 +1,10 @@ + +/*! + * artplayer-plugin-ambilight.js v1.0.0 + * Github: https://github.com/zhw2590582/ArtPlayer + * (c) 2017-2025 Harvey Zack + * Released under the MIT License. + */ + +!function(e,r,t,n,o,i,l,u){var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},a="function"==typeof f[n]&&f[n],d=a.i||{},c=a.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(r,t){if(!c[r]){if(!e[r]){if(o[r])return o[r];var i="function"==typeof f[n]&&f[n];if(!t&&i)return i(r,!0);if(a)return a(r,!0);if(s&&"string"==typeof r)return s(r);var l=Error("Cannot find module '"+r+"'");throw l.code="MODULE_NOT_FOUND",l}d.resolve=function(t){var n=e[r][1][t];return null!=n?n:t},d.cache={};var u=c[r]=new p.Module(r);e[r][0].call(u.exports,d,u,u.exports,f)}return c[r].exports;function d(e){var r=d.resolve(e);return!1===r?{}:p(r)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=c,p.parent=a,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=d,p.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]},Object.defineProperty(p,"root",{get:function(){return f[n]}}),f[n]=p;for(var m=0;m{var t,n,o,i,l,u,f;let{$video:a}=r.template,{createElement:d,addClass:c,setStyles:s}=r.constructor.utils,{blur:p="50px",opacity:m=.5,frequency:g=10,duration:y=.3}=e,h=d("div"),b=((t=h).innerHTML=Array(9).fill("
").join(""),Array.from(t.children));n=h,o=a,c(n,"artplayer-plugin-ambilight"),o.parentNode.insertBefore(n,o),s(n,{position:"absolute",top:0,left:0,zIndex:9,inset:0,display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gridTemplateRows:"1fr 1fr 1fr"}),i=b,l=p,u=m,f=y,i.forEach(e=>{s(e,{opacity:u,filter:`blur(${l})`,transition:`background-color ${f}s ease`})});let v=function(e,t,n){let o=d("canvas"),i=o.getContext("2d");o.width=3,o.height=3;let l=0;return function o(){let u=performance.now();if(u-l<1e3/n||!r.playing){w=requestAnimationFrame(o);return}l=u;let f=e.videoWidth/3,a=e.videoHeight/3,d=[[0,0],[f,0],[2*f,0],[0,a],[f,a],[2*f,a],[0,2*a],[f,2*a],[2*f,2*a]].map(([r,t])=>(function(r,t,n,o){i.drawImage(e,r,t,n,o,0,0,1,1);let[l,u,f]=i.getImageData(0,0,1,1).data;return`rgb(${l}, ${u}, ${f})`})(r,t,f,a));t.forEach((e,r)=>{e.style.backgroundColor=d[r]}),w=requestAnimationFrame(o)}}(a,b,g),w=null;function x(){w||v()}function j(){w&&(cancelAnimationFrame(w),w=null)}return r.on("ready",x),r.on("destroy",j),{name:"artplayerPluginAmbilight",start:x,stop:j}}}o.defineInteropFlag(t),o.export(t,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginAmbilight=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5lQoW":[function(e,r,t,n){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,r){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(r,t)||Object.defineProperty(r,t,{enumerable:!0,get:function(){return e[t]}})}),r},t.export=function(e,r,t){Object.defineProperty(e,r,{enumerable:!0,get:t})}},{}]},["9P7rs"],"9P7rs","parcelRequire4dc0",{});let{default:e}=parcelRequire4dc0("9P7rs");export{e as default}; +//# sourceMappingURL=index.js.map diff --git a/packages/artplayer-plugin-ambilight/dist/artplayer-plugin-ambilight.js b/packages/artplayer-plugin-ambilight/dist/artplayer-plugin-ambilight.js index 9f24a629c..bfac77de6 100644 --- a/packages/artplayer-plugin-ambilight/dist/artplayer-plugin-ambilight.js +++ b/packages/artplayer-plugin-ambilight/dist/artplayer-plugin-ambilight.js @@ -5,4 +5,4 @@ * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,r,t,n,o,i,u,l){var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},a="function"==typeof f[n]&&f[n],d=a.i||{},c=a.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(r,t){if(!c[r]){if(!e[r]){if(o[r])return o[r];var i="function"==typeof f[n]&&f[n];if(!t&&i)return i(r,!0);if(a)return a(r,!0);if(p&&"string"==typeof r)return p(r);var u=Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}d.resolve=function(t){var n=e[r][1][t];return null!=n?n:t},d.cache={};var l=c[r]=new s.Module(r);e[r][0].call(l.exports,d,l,l.exports,f)}return c[r].exports;function d(e){var r=d.resolve(e);return!1===r?{}:s(r)}}s.isParcelRequire=!0,s.Module=function(e){this.id=e,this.bundle=s,this.require=p,this.exports={}},s.modules=e,s.cache=c,s.parent=a,s.distDir=void 0,s.publicUrl=void 0,s.devServer=void 0,s.i=d,s.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]},Object.defineProperty(s,"root",{get:function(){return f[n]}}),f[n]=s;for(var m=0;m{var t,n,o,i,u,l,f;let{$video:a}=r.template,{createElement:d,addClass:c,setStyles:p}=r.constructor.utils,{blur:s="50px",opacity:m=.5,frequency:g=10,duration:y=.3}=e,h=d("div"),b=((t=h).innerHTML=Array(9).fill("
").join(""),Array.from(t.children));n=h,o=a,c(n,"artplayer-plugin-ambilight"),o.parentNode.insertBefore(n,o),p(n,{position:"absolute",top:0,left:0,zIndex:9,inset:0,display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gridTemplateRows:"1fr 1fr 1fr"}),i=b,u=s,l=m,f=y,i.forEach(e=>{p(e,{opacity:l,filter:`blur(${u})`,transition:`background-color ${f}s ease`})});let v=function(e,t,n){let o=d("canvas"),i=o.getContext("2d");o.width=3,o.height=3;let u=0;return function o(){let l=performance.now();if(l-u<1e3/n||!r.playing){w=requestAnimationFrame(o);return}u=l;let f=e.videoWidth/3,a=e.videoHeight/3,d=[[0,0],[f,0],[2*f,0],[0,a],[f,a],[2*f,a],[0,2*a],[f,2*a],[2*f,2*a]].map(([r,t])=>(function(r,t,n,o){i.drawImage(e,r,t,n,o,0,0,1,1);let[u,l,f]=i.getImageData(0,0,1,1).data;return`rgb(${u}, ${l}, ${f})`})(r,t,f,a));t.forEach((e,r)=>{e.style.backgroundColor=d[r]}),w=requestAnimationFrame(o)}}(a,b,g),w=null;function x(){w||v()}function j(){w&&(cancelAnimationFrame(w),w=null)}return r.on("ready",x),r.on("destroy",j),{name:"artplayerPluginAmbilight",start:x,stop:j}}}o.defineInteropFlag(t),o.export(t,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginAmbilight=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"9pCYc":[function(e,r,t,n){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,r){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(r,t)||Object.defineProperty(r,t,{enumerable:!0,get:function(){return e[t]}})}),r},t.export=function(e,r,t){Object.defineProperty(e,r,{enumerable:!0,get:t})}},{}]},["4TtJY"],"4TtJY","parcelRequire4dc0",{}); \ No newline at end of file +!function(e,r,t,n,o,i,u,l){var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},a="function"==typeof f[n]&&f[n],d=a.i||{},c=a.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(r,t){if(!c[r]){if(!e[r]){if(o[r])return o[r];var i="function"==typeof f[n]&&f[n];if(!t&&i)return i(r,!0);if(a)return a(r,!0);if(s&&"string"==typeof r)return s(r);var u=Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}d.resolve=function(t){var n=e[r][1][t];return null!=n?n:t},d.cache={};var l=c[r]=new p.Module(r);e[r][0].call(l.exports,d,l,l.exports,f)}return c[r].exports;function d(e){var r=d.resolve(e);return!1===r?{}:p(r)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=c,p.parent=a,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=d,p.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]},Object.defineProperty(p,"root",{get:function(){return f[n]}}),f[n]=p;for(var m=0;m{var t,n,o,i,u,l,f;let{$video:a}=r.template,{createElement:d,addClass:c,setStyles:s}=r.constructor.utils,{blur:p="50px",opacity:m=.5,frequency:y=10,duration:g=.3}=e,b=d("div"),h=((t=b).innerHTML=Array(9).fill("
").join(""),Array.from(t.children));n=b,o=a,c(n,"artplayer-plugin-ambilight"),o.parentNode.insertBefore(n,o),s(n,{position:"absolute",top:0,left:0,zIndex:9,inset:0,display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gridTemplateRows:"1fr 1fr 1fr"}),i=h,u=p,l=m,f=g,i.forEach(e=>{s(e,{opacity:l,filter:`blur(${u})`,transition:`background-color ${f}s ease`})});let v=function(e,t,n){let o=d("canvas"),i=o.getContext("2d");o.width=3,o.height=3;let u=0;return function o(){let l=performance.now();if(l-u<1e3/n||!r.playing){w=requestAnimationFrame(o);return}u=l;let f=e.videoWidth/3,a=e.videoHeight/3,d=[[0,0],[f,0],[2*f,0],[0,a],[f,a],[2*f,a],[0,2*a],[f,2*a],[2*f,2*a]].map(([r,t])=>(function(r,t,n,o){i.drawImage(e,r,t,n,o,0,0,1,1);let[u,l,f]=i.getImageData(0,0,1,1).data;return`rgb(${u}, ${l}, ${f})`})(r,t,f,a));t.forEach((e,r)=>{e.style.backgroundColor=d[r]}),w=requestAnimationFrame(o)}}(a,h,y),w=null;function x(){w||v()}function j(){w&&(cancelAnimationFrame(w),w=null)}return r.on("ready",x),r.on("destroy",j),{name:"artplayerPluginAmbilight",start:x,stop:j}}}o.defineInteropFlag(t),o.export(t,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginAmbilight=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6ykb1":[function(e,r,t,n){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,r){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(r,t)||Object.defineProperty(r,t,{enumerable:!0,get:function(){return e[t]}})}),r},t.export=function(e,r,t){Object.defineProperty(e,r,{enumerable:!0,get:t})}},{}]},["2PWBI"],"2PWBI","parcelRequire4dc0",{}); \ No newline at end of file diff --git a/packages/artplayer-plugin-ambilight/dist/artplayer-plugin-ambilight.legacy.js b/packages/artplayer-plugin-ambilight/dist/artplayer-plugin-ambilight.legacy.js index 6d71e7a2a..f3e622e5d 100644 --- a/packages/artplayer-plugin-ambilight/dist/artplayer-plugin-ambilight.legacy.js +++ b/packages/artplayer-plugin-ambilight/dist/artplayer-plugin-ambilight.legacy.js @@ -5,4 +5,4 @@ * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,r,t,n,o,i,a,l){var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof u[n]&&u[n],f=s.i||{},c=s.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(r,t){if(!c[r]){if(!e[r]){if(o[r])return o[r];var i="function"==typeof u[n]&&u[n];if(!t&&i)return i(r,!0);if(s)return s(r,!0);if(d&&"string"==typeof r)return d(r);var a=Error("Cannot find module '"+r+"'");throw a.code="MODULE_NOT_FOUND",a}f.resolve=function(t){var n=e[r][1][t];return null!=n?n:t},f.cache={};var l=c[r]=new p.Module(r);e[r][0].call(l.exports,f,l,l.exports,u)}return c[r].exports;function f(e){var r=f.resolve(e);return!1===r?{}:p(r)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=d,this.exports={}},p.modules=e,p.cache=c,p.parent=s,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=f,p.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]},Object.defineProperty(p,"root",{get:function(){return u[n]}}),u[n]=p;for(var m=0;m0&&void 0!==arguments[0]?arguments[0]:{};return function(r){var t,n,o,a,l,u,s,f,c,d,p,m,y,_=r.template.$video,h=r.constructor.utils,j=h.createElement,v=h.addClass,g=h.setStyles,b=e.blur,w=e.opacity,x=e.frequency,D=e.duration,A=j("div"),F=((t=A).innerHTML=Array(9).fill("
").join(""),Array.from(t.children));n=A,o=_,v(n,"artplayer-plugin-ambilight"),o.parentNode.insertBefore(n,o),g(n,{position:"absolute",top:0,left:0,zIndex:9,inset:0,display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gridTemplateRows:"1fr 1fr 1fr"}),a=F,l=void 0===b?"50px":b,u=void 0===w?.5:w,s=void 0===D?.3:D,a.forEach(function(e){g(e,{opacity:u,filter:"blur(".concat(l,")"),transition:"background-color ".concat(s,"s ease")})});var I=(f=_,c=F,d=void 0===x?10:x,m=(p=j("canvas")).getContext("2d"),p.width=3,p.height=3,y=0,function e(){var t=performance.now();if(t-y<1e3/d||!r.playing){M=requestAnimationFrame(e);return}y=t;var n=f.videoWidth/3,o=f.videoHeight/3,a=[[0,0],[n,0],[2*n,0],[0,o],[n,o],[2*n,o],[0,2*o],[n,2*o],[2*n,2*o]].map(function(e){var r,t,a,l,u=(0,i._)(e,2),s=u[0],c=u[1];return m.drawImage(f,s,c,n,o,0,0,1,1),t=(r=(0,i._)(m.getImageData(0,0,1,1).data,3))[0],a=r[1],l=r[2],"rgb(".concat(t,", ").concat(a,", ").concat(l,")")});c.forEach(function(e,r){e.style.backgroundColor=a[r]}),M=requestAnimationFrame(e)}),M=null;function O(){M||I()}function W(){M&&(cancelAnimationFrame(M),M=null)}return r.on("ready",O),r.on("destroy",W),{name:"artplayerPluginAmbilight",start:O,stop:W}}}"undefined"!=typeof window&&(window.artplayerPluginAmbilight=a)},{"@swc/helpers/_/_sliced_to_array":"uVQht","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],uVQht:[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(t),o.export(t,"_",function(){return s});var i=e("./_array_with_holes.js"),a=e("./_iterable_to_array_limit.js"),l=e("./_non_iterable_rest.js"),u=e("./_unsupported_iterable_to_array.js");function s(e,r){return(0,i._)(e)||(0,a._)(e,r)||(0,u._)(e,r)||(0,l._)()}},{"./_array_with_holes.js":"hF14e","./_iterable_to_array_limit.js":"loYCM","./_non_iterable_rest.js":"2Mjp1","./_unsupported_iterable_to_array.js":"5m31D","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],hF14e:[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){if(Array.isArray(e))return e}o.defineInteropFlag(t),o.export(t,"_",function(){return i})},{"@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],iWrD0:[function(e,r,t,n){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,r){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(r,t)||Object.defineProperty(r,t,{enumerable:!0,get:function(){return e[t]}})}),r},t.export=function(e,r,t){Object.defineProperty(e,r,{enumerable:!0,get:t})}},{}],loYCM:[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,r){var t,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,l=!1;try{for(o=o.call(e);!(a=(t=o.next()).done)&&(i.push(t.value),!r||i.length!==r);a=!0);}catch(e){l=!0,n=e}finally{try{a||null==o.return||o.return()}finally{if(l)throw n}}return i}}o.defineInteropFlag(t),o.export(t,"_",function(){return i})},{"@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],"2Mjp1":[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}o.defineInteropFlag(t),o.export(t,"_",function(){return i})},{"@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],"5m31D":[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(t),o.export(t,"_",function(){return a});var i=e("./_array_like_to_array.js");function a(e,r){if(e){if("string"==typeof e)return(0,i._)(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return(0,i._)(e,r)}}},{"./_array_like_to_array.js":"djwRR","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],djwRR:[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t0&&void 0!==arguments[0]?arguments[0]:{};return function(r){var t,n,o,a,u,f,c,l,d,s,p,y,m,v=r.template.$video,h=r.constructor.utils,b=h.createElement,g=h.addClass,_=h.setStyles,j=e.blur,w=e.opacity,x=e.frequency,A=e.duration,S=b("div"),O=((t=S).innerHTML=Array(9).fill("
").join(""),Array.from(t.children));n=S,o=v,g(n,"artplayer-plugin-ambilight"),o.parentNode.insertBefore(n,o),_(n,{position:"absolute",top:0,left:0,zIndex:9,inset:0,display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gridTemplateRows:"1fr 1fr 1fr"}),a=O,u=void 0===j?"50px":j,f=void 0===w?.5:w,c=void 0===A?.3:A,a.forEach(function(e){_(e,{opacity:f,filter:"blur(".concat(u,")"),transition:"background-color ".concat(c,"s ease")})});var M=(l=v,d=O,s=void 0===x?10:x,y=(p=b("canvas")).getContext("2d"),p.width=3,p.height=3,m=0,function e(){var t=performance.now();if(t-m<1e3/s||!r.playing){q=requestAnimationFrame(e);return}m=t;var n=l.videoWidth/3,o=l.videoHeight/3,a=[[0,0],[n,0],[2*n,0],[0,o],[n,o],[2*n,o],[0,2*o],[n,2*o],[2*n,2*o]].map(function(e){var r,t,a,u,f=(0,i._)(e,2),c=f[0],d=f[1];return y.drawImage(l,c,d,n,o,0,0,1,1),t=(r=(0,i._)(y.getImageData(0,0,1,1).data,3))[0],a=r[1],u=r[2],"rgb(".concat(t,", ").concat(a,", ").concat(u,")")});d.forEach(function(e,r){e.style.backgroundColor=a[r]}),q=requestAnimationFrame(e)}),q=null;function I(){q||M()}function P(){q&&(cancelAnimationFrame(q),q=null)}return r.on("ready",I),r.on("destroy",P),{name:"artplayerPluginAmbilight",start:I,stop:P}}}"undefined"!=typeof window&&(window.artplayerPluginAmbilight=a)},{"@swc/helpers/cjs/_sliced_to_array.cjs":"gIQTH","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],gIQTH:[function(e,r,t,n){"use strict";var o=e("d7c30a5ae0c1ab2"),i=e("3aacfce52f67defd"),a=e("f0dae09a1a08b16a"),u=e("83f3648e614d0830");t._=function(e,r){return o._(e)||i._(e,r)||u._(e,r)||a._()}},{d7c30a5ae0c1ab2:"3QSPl","3aacfce52f67defd":"5SSeo",f0dae09a1a08b16a:"heYSj","83f3648e614d0830":"fh7mx"}],"3QSPl":[function(e,r,t,n){"use strict";t._=function(e){if(Array.isArray(e))return e}},{}],"5SSeo":[function(e,r,t,n){"use strict";t._=function(e,r){var t,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,u=!1;try{for(o=o.call(e);!(a=(t=o.next()).done)&&(i.push(t.value),!r||i.length!==r);a=!0);}catch(e){u=!0,n=e}finally{try{a||null==o.return||o.return()}finally{if(u)throw n}}return i}}},{}],heYSj:[function(e,r,t,n){"use strict";t._=function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},{}],fh7mx:[function(e,r,t,n){"use strict";var o=e("3ee51b7dc02d0c44");t._=function(e,r){if(e){if("string"==typeof e)return o._(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return o._(e,r)}}},{"3ee51b7dc02d0c44":"1WOAB"}],"1WOAB":[function(e,r,t,n){"use strict";t._=function(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t","packages/artplayer-plugin-ambilight/src/index.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcelRequireName,\n externals,\n distDir,\n publicUrl,\n devServer\n) {\n /* eslint-disable no-undef */\n var globalObject =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n /* eslint-enable no-undef */\n\n // Save the require from previous bundle to this closure if any\n var previousRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n\n var importMap = previousRequire.i || {};\n var cache = previousRequire.cache || {};\n // Do not use `require` to prevent Webpack from trying to bundle this call\n var nodeRequire =\n typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n\n function newRequire(name, jumped) {\n if (!cache[name]) {\n if (!modules[name]) {\n if (externals[name]) {\n return externals[name];\n }\n // if we cannot find the module within our internal map or\n // cache jump to the current global require ie. the last bundle\n // that was added to the page.\n var currentRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n if (!jumped && currentRequire) {\n return currentRequire(name, true);\n }\n\n // If there are other bundles on this page the require from the\n // previous one is saved to 'previousRequire'. Repeat this as\n // many times as there are bundles until the module is found or\n // we exhaust the require chain.\n if (previousRequire) {\n return previousRequire(name, true);\n }\n\n // Try the node require function if it exists.\n if (nodeRequire && typeof name === 'string') {\n return nodeRequire(name);\n }\n\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n }\n\n localRequire.resolve = resolve;\n localRequire.cache = {};\n\n var module = (cache[name] = new newRequire.Module(name));\n\n modules[name][0].call(\n module.exports,\n localRequire,\n module,\n module.exports,\n globalObject\n );\n }\n\n return cache[name].exports;\n\n function localRequire(x) {\n var res = localRequire.resolve(x);\n return res === false ? {} : newRequire(res);\n }\n\n function resolve(x) {\n var id = modules[name][1][x];\n return id != null ? id : x;\n }\n }\n\n function Module(moduleName) {\n this.id = moduleName;\n this.bundle = newRequire;\n this.require = nodeRequire;\n this.exports = {};\n }\n\n newRequire.isParcelRequire = true;\n newRequire.Module = Module;\n newRequire.modules = modules;\n newRequire.cache = cache;\n newRequire.parent = previousRequire;\n newRequire.distDir = distDir;\n newRequire.publicUrl = publicUrl;\n newRequire.devServer = devServer;\n newRequire.i = importMap;\n newRequire.register = function (id, exports) {\n modules[id] = [\n function (require, module) {\n module.exports = exports;\n },\n {},\n ];\n };\n\n // Only insert newRequire.load when it is actually used.\n // The code in this file is linted against ES5, so dynamic import is not allowed.\n // INSERT_LOAD_HERE\n\n Object.defineProperty(newRequire, 'root', {\n get: function () {\n return globalObject[parcelRequireName];\n },\n });\n\n globalObject[parcelRequireName] = newRequire;\n\n for (var i = 0; i < entry.length; i++) {\n newRequire(entry[i]);\n }\n\n if (mainEntry) {\n // Expose entry point to Node, AMD or browser globals\n // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js\n var mainExports = newRequire(mainEntry);\n\n // CommonJS\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = mainExports;\n\n // RequireJS\n } else if (typeof define === 'function' && define.amd) {\n define(function () {\n return mainExports;\n });\n }\n }\n})({\"9P7rs\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>artplayerPluginAmbilight);\nfunction artplayerPluginAmbilight(option = {}) {\n return (art)=>{\n const { $video } = art.template;\n const { createElement, addClass, setStyles } = art.constructor.utils;\n const { blur = '50px', opacity = 0.5, frequency = 10, duration = 0.3 } = option;\n const $ambilight = createElement('div');\n const gridItems = createGridItems($ambilight);\n setupAmbilight($ambilight, $video);\n setupGridItems(gridItems, blur, opacity, duration);\n const updateColors = createColorUpdater($video, gridItems, frequency);\n let animationFrameId = null;\n function start() {\n if (!animationFrameId) updateColors();\n }\n function stop() {\n if (animationFrameId) {\n cancelAnimationFrame(animationFrameId);\n animationFrameId = null;\n }\n }\n art.on('ready', start);\n art.on('destroy', stop);\n return {\n name: 'artplayerPluginAmbilight',\n start,\n stop\n };\n function createGridItems($ambilight) {\n $ambilight.innerHTML = Array(9).fill('
').join('');\n return Array.from($ambilight.children);\n }\n function setupAmbilight($ambilight, $video) {\n addClass($ambilight, 'artplayer-plugin-ambilight');\n $video.parentNode.insertBefore($ambilight, $video);\n setStyles($ambilight, {\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: 9,\n inset: 0,\n display: 'grid',\n gridTemplateColumns: '1fr 1fr 1fr',\n gridTemplateRows: '1fr 1fr 1fr'\n });\n }\n function setupGridItems(gridItems, blur, opacity, duration) {\n gridItems.forEach(($item)=>{\n setStyles($item, {\n opacity,\n filter: `blur(${blur})`,\n transition: `background-color ${duration}s ease`\n });\n });\n }\n function createColorUpdater($video, gridItems, frequency) {\n const canvas = createElement('canvas');\n const ctx = canvas.getContext('2d');\n canvas.width = 3;\n canvas.height = 3;\n function getAverageColor(x, y, w, h) {\n ctx.drawImage($video, x, y, w, h, 0, 0, 1, 1);\n const [r, g, b] = ctx.getImageData(0, 0, 1, 1).data;\n return `rgb(${r}, ${g}, ${b})`;\n }\n let lastUpdateTime = 0;\n return function updateColors() {\n const now = performance.now();\n if (now - lastUpdateTime < 1000 / frequency || !art.playing) {\n animationFrameId = requestAnimationFrame(updateColors);\n return;\n }\n lastUpdateTime = now;\n const w = $video.videoWidth / 3;\n const h = $video.videoHeight / 3;\n const colors = [\n [\n 0,\n 0\n ],\n [\n w,\n 0\n ],\n [\n 2 * w,\n 0\n ],\n [\n 0,\n h\n ],\n [\n w,\n h\n ],\n [\n 2 * w,\n h\n ],\n [\n 0,\n 2 * h\n ],\n [\n w,\n 2 * h\n ],\n [\n 2 * w,\n 2 * h\n ]\n ].map(([x, y])=>getAverageColor(x, y, w, h));\n gridItems.forEach(($item, index)=>{\n $item.style.backgroundColor = colors[index];\n });\n animationFrameId = requestAnimationFrame(updateColors);\n };\n }\n };\n}\nif (typeof window !== 'undefined') window['artplayerPluginAmbilight'] = artplayerPluginAmbilight;\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"5lQoW\"}],\"5lQoW\":[function(require,module,exports,__globalThis) {\nexports.interopDefault = function(a) {\n return a && a.__esModule ? a : {\n default: a\n };\n};\nexports.defineInteropFlag = function(a) {\n Object.defineProperty(a, '__esModule', {\n value: true\n });\n};\nexports.exportAll = function(source, dest) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) return;\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function() {\n return source[key];\n }\n });\n });\n return dest;\n};\nexports.export = function(dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get\n });\n};\n\n},{}]},[\"9P7rs\"], \"9P7rs\", \"parcelRequire4dc0\", {})\nlet {default: _default, } = parcelRequire4dc0(\"9P7rs\");\nexport {_default as default, };\n\n//# sourceMappingURL=index.js.map\n","export default function artplayerPluginAmbilight(option = {}) {\n return (art) => {\n const { $video } = art.template;\n const { createElement, addClass, setStyles } = art.constructor.utils;\n const { blur = '50px', opacity = 0.5, frequency = 10, duration = 0.3 } = option;\n\n const $ambilight = createElement('div');\n const gridItems = createGridItems($ambilight);\n\n setupAmbilight($ambilight, $video);\n setupGridItems(gridItems, blur, opacity, duration);\n\n const updateColors = createColorUpdater($video, gridItems, frequency);\n\n let animationFrameId = null;\n\n function start() {\n if (!animationFrameId) {\n updateColors();\n }\n }\n\n function stop() {\n if (animationFrameId) {\n cancelAnimationFrame(animationFrameId);\n animationFrameId = null;\n }\n }\n\n art.on('ready', start);\n art.on('destroy', stop);\n\n return {\n name: 'artplayerPluginAmbilight',\n start,\n stop,\n };\n\n function createGridItems($ambilight) {\n $ambilight.innerHTML = Array(9).fill('
').join('');\n return Array.from($ambilight.children);\n }\n\n function setupAmbilight($ambilight, $video) {\n addClass($ambilight, 'artplayer-plugin-ambilight');\n $video.parentNode.insertBefore($ambilight, $video);\n setStyles($ambilight, {\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: 9,\n inset: 0,\n display: 'grid',\n gridTemplateColumns: '1fr 1fr 1fr',\n gridTemplateRows: '1fr 1fr 1fr',\n });\n }\n\n function setupGridItems(gridItems, blur, opacity, duration) {\n gridItems.forEach(($item) => {\n setStyles($item, {\n opacity,\n filter: `blur(${blur})`,\n transition: `background-color ${duration}s ease`,\n });\n });\n }\n\n function createColorUpdater($video, gridItems, frequency) {\n const canvas = createElement('canvas');\n const ctx = canvas.getContext('2d');\n canvas.width = 3;\n canvas.height = 3;\n\n function getAverageColor(x, y, w, h) {\n ctx.drawImage($video, x, y, w, h, 0, 0, 1, 1);\n const [r, g, b] = ctx.getImageData(0, 0, 1, 1).data;\n return `rgb(${r}, ${g}, ${b})`;\n }\n\n let lastUpdateTime = 0;\n\n return function updateColors() {\n const now = performance.now();\n if (now - lastUpdateTime < 1000 / frequency || !art.playing) {\n animationFrameId = requestAnimationFrame(updateColors);\n return;\n }\n\n lastUpdateTime = now;\n\n const w = $video.videoWidth / 3;\n const h = $video.videoHeight / 3;\n\n const colors = [\n [0, 0],\n [w, 0],\n [2 * w, 0],\n [0, h],\n [w, h],\n [2 * w, h],\n [0, 2 * h],\n [w, 2 * h],\n [2 * w, 2 * h],\n ].map(([x, y]) => getAverageColor(x, y, w, h));\n\n gridItems.forEach(($item, index) => {\n $item.style.backgroundColor = colors[index];\n });\n\n animationFrameId = requestAnimationFrame(updateColors);\n };\n }\n };\n}\n\nif (typeof window !== 'undefined') {\n window['artplayerPluginAmbilight'] = artplayerPluginAmbilight;\n}\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (\n key === 'default' ||\n key === '__esModule' ||\n Object.prototype.hasOwnProperty.call(dest, key)\n ) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n"],"names":["modules","entry","mainEntry","parcelRequireName","externals","distDir","publicUrl","devServer","globalObject","globalThis","self","window","global","previousRequire","importMap","i","cache","nodeRequire","module","require","bind","newRequire","name","jumped","currentRequire","err","Error","code","localRequire","resolve","x","id","Module","call","exports","res","isParcelRequire","moduleName","bundle","parent","register","Object","defineProperty","get","length","mainExports","define","amd","__globalThis","parcelHelpers","artplayerPluginAmbilight","option","art","$ambilight","$video","gridItems","blur","opacity","duration","template","createElement","addClass","setStyles","constructor","utils","frequency","innerHTML","Array","fill","join","from","children","parentNode","insertBefore","position","top","left","zIndex","inset","display","gridTemplateColumns","gridTemplateRows","forEach","$item","filter","transition","updateColors","createColorUpdater","canvas","ctx","getContext","width","height","lastUpdateTime","now","performance","playing","animationFrameId","requestAnimationFrame","w","videoWidth","h","videoHeight","colors","map","y","getAverageColor","drawImage","r","g","b","getImageData","data","index","style","backgroundColor","start","stop","cancelAnimationFrame","on","defineInteropFlag","export","interopDefault","a","__esModule","default","value","exportAll","source","dest","keys","key","prototype","hasOwnProperty","enumerable","destName","_default","parcelRequire4dc0"],"version":3,"file":"index.js.map"} \ No newline at end of file diff --git a/packages/artplayer-plugin-ambilight/package.json b/packages/artplayer-plugin-ambilight/package.json index 6a070aec2..b21c480a9 100644 --- a/packages/artplayer-plugin-ambilight/package.json +++ b/packages/artplayer-plugin-ambilight/package.json @@ -2,10 +2,16 @@ "license": "MIT", "version": "1.0.0", "name": "artplayer-plugin-ambilight", - "types": "types/artplayer-plugin-ambilight.d.ts", "description": "ambilight plugin for ArtPlayer", "main": "dist/artplayer-plugin-ambilight.js", "legacy": "dist/artplayer-plugin-ambilight.legacy.js", + "module": "dist/artplayer-plugin-ambilight.esm.js", + "types": "types/artplayer-plugin-ambilight.d.ts", + "exports": { + "import": "./dist/artplayer-plugin-ambilight.esm.js", + "require": "./dist/artplayer-plugin-ambilight.js", + "default": "./dist/artplayer-plugin-ambilight.js" + }, "author": "Harvey Zack ", "browserslist": "last 1 Chrome version", "homepage": "https://artplayer.org", @@ -21,4 +27,4 @@ "video", "player" ] -} +} \ No newline at end of file diff --git a/packages/artplayer-plugin-auto-thumbnail/dist/artplayer-plugin-auto-thumbnail.esm.js b/packages/artplayer-plugin-auto-thumbnail/dist/artplayer-plugin-auto-thumbnail.esm.js new file mode 100644 index 000000000..e2cd392bc --- /dev/null +++ b/packages/artplayer-plugin-auto-thumbnail/dist/artplayer-plugin-auto-thumbnail.esm.js @@ -0,0 +1,10 @@ + +/*! + * artplayer-plugin-auto-thumbnail.js v1.0.1 + * Github: https://github.com/zhw2590582/ArtPlayer + * (c) 2017-2025 Harvey Zack + * Released under the MIT License. + */ + +!function(e,t,n,o,r,i,u,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},f="function"==typeof d[o]&&d[o],a=f.i||{},c=f.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!c[t]){if(!e[t]){if(r[t])return r[t];var i="function"==typeof d[o]&&d[o];if(!n&&i)return i(t,!0);if(f)return f(t,!0);if(s&&"string"==typeof t)return s(t);var u=Error("Cannot find module '"+t+"'");throw u.code="MODULE_NOT_FOUND",u}a.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},a.cache={};var l=c[t]=new p.Module(t);e[t][0].call(l.exports,a,l,l.exports,d)}return c[t].exports;function a(e){var t=a.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=c,p.parent=f,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=a,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return d[o]}}),d[o]=p;for(var m=0;m(t.on("video:loadedmetadata",()=>{let n=e.url||t.option.url,o=e.width||160,r=e.number||100,i=e.scale||1;!function({url:e,width:t,number:n},o){let r=document.createElement("video");r.crossOrigin="anonymous",r.src=e,r.onloadedmetadata=()=>{let e=r.duration,i=document.createElement("canvas"),u=i.getContext("2d"),l=Math.floor(t*r.videoHeight/r.videoWidth);i.width=10*t,i.height=l*Math.ceil(n/10);let d=0,f=null;!function a(c){i.toBlob(e=>{URL.revokeObjectURL(f),o({url:f=URL.createObjectURL(e),height:l})},"image/jpeg"),c>=n||(r.currentTime=e*c/n,r.onseeked=()=>{u.drawImage(r,c%10*t,Math.floor(c/10)*l,t,l),d++,a(c+1)})}(0)}}({url:n,width:o,number:r},e=>{t.thumbnails={...e,column:10,number:r,width:o,scale:i}})}),{name:"artplayerPluginAutoThumbnail"})}r.defineInteropFlag(n),r.export(n,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginAutoThumbnail=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5lQoW":[function(e,t,n,o){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach(function(n){"default"===n||"__esModule"===n||Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})}),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["guSFC"],"guSFC","parcelRequire4dc0",{});let{default:e}=parcelRequire4dc0("guSFC");export{e as default}; +//# sourceMappingURL=index.js.map diff --git a/packages/artplayer-plugin-auto-thumbnail/dist/artplayer-plugin-auto-thumbnail.js b/packages/artplayer-plugin-auto-thumbnail/dist/artplayer-plugin-auto-thumbnail.js index 882661215..1c92680b9 100644 --- a/packages/artplayer-plugin-auto-thumbnail/dist/artplayer-plugin-auto-thumbnail.js +++ b/packages/artplayer-plugin-auto-thumbnail/dist/artplayer-plugin-auto-thumbnail.js @@ -5,4 +5,4 @@ * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,t,n,o,r,i,u,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},f="function"==typeof d[o]&&d[o],a=f.i||{},c=f.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!c[t]){if(!e[t]){if(r[t])return r[t];var i="function"==typeof d[o]&&d[o];if(!n&&i)return i(t,!0);if(f)return f(t,!0);if(s&&"string"==typeof t)return s(t);var u=Error("Cannot find module '"+t+"'");throw u.code="MODULE_NOT_FOUND",u}a.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},a.cache={};var l=c[t]=new p.Module(t);e[t][0].call(l.exports,a,l,l.exports,d)}return c[t].exports;function a(e){var t=a.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=c,p.parent=f,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=a,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return d[o]}}),d[o]=p;for(var m=0;m(t.on("video:loadedmetadata",()=>{let n=e.url||t.option.url,o=e.width||160,r=e.number||100,i=e.scale||1;!function({url:e,width:t,number:n},o){let r=document.createElement("video");r.crossOrigin="anonymous",r.src=e,r.onloadedmetadata=()=>{let e=r.duration,i=document.createElement("canvas"),u=i.getContext("2d"),l=Math.floor(t*r.videoHeight/r.videoWidth);i.width=10*t,i.height=l*Math.ceil(n/10);let d=0,f=null;!function a(c){i.toBlob(e=>{URL.revokeObjectURL(f),o({url:f=URL.createObjectURL(e),height:l})},"image/jpeg"),c>=n||(r.currentTime=e*c/n,r.onseeked=()=>{u.drawImage(r,c%10*t,Math.floor(c/10)*l,t,l),d++,a(c+1)})}(0)}}({url:n,width:o,number:r},e=>{t.thumbnails={...e,column:10,number:r,width:o,scale:i}})}),{name:"artplayerPluginAutoThumbnail"})}r.defineInteropFlag(n),r.export(n,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginAutoThumbnail=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"9pCYc":[function(e,t,n,o){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach(function(n){"default"===n||"__esModule"===n||Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})}),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["gj1wy"],"gj1wy","parcelRequire4dc0",{}); \ No newline at end of file +!function(e,t,n,o,r,i,u,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},f="function"==typeof d[o]&&d[o],a=f.i||{},c=f.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!c[t]){if(!e[t]){if(r[t])return r[t];var i="function"==typeof d[o]&&d[o];if(!n&&i)return i(t,!0);if(f)return f(t,!0);if(s&&"string"==typeof t)return s(t);var u=Error("Cannot find module '"+t+"'");throw u.code="MODULE_NOT_FOUND",u}a.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},a.cache={};var l=c[t]=new p.Module(t);e[t][0].call(l.exports,a,l,l.exports,d)}return c[t].exports;function a(e){var t=a.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=c,p.parent=f,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=a,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return d[o]}}),d[o]=p;for(var m=0;m(t.on("video:loadedmetadata",()=>{let n=e.url||t.option.url,o=e.width||160,r=e.number||100,i=e.scale||1;!function({url:e,width:t,number:n},o){let r=document.createElement("video");r.crossOrigin="anonymous",r.src=e,r.onloadedmetadata=()=>{let e=r.duration,i=document.createElement("canvas"),u=i.getContext("2d"),l=Math.floor(t*r.videoHeight/r.videoWidth);i.width=10*t,i.height=l*Math.ceil(n/10);let d=0,f=null;!function a(c){i.toBlob(e=>{URL.revokeObjectURL(f),o({url:f=URL.createObjectURL(e),height:l})},"image/jpeg"),c>=n||(r.currentTime=e*c/n,r.onseeked=()=>{u.drawImage(r,c%10*t,Math.floor(c/10)*l,t,l),d++,a(c+1)})}(0)}}({url:n,width:o,number:r},e=>{t.thumbnails={...e,column:10,number:r,width:o,scale:i}})}),{name:"artplayerPluginAutoThumbnail"})}r.defineInteropFlag(n),r.export(n,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginAutoThumbnail=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6ykb1":[function(e,t,n,o){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach(function(n){"default"===n||"__esModule"===n||Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})}),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["6MsoC"],"6MsoC","parcelRequire4dc0",{}); \ No newline at end of file diff --git a/packages/artplayer-plugin-auto-thumbnail/dist/artplayer-plugin-auto-thumbnail.legacy.js b/packages/artplayer-plugin-auto-thumbnail/dist/artplayer-plugin-auto-thumbnail.legacy.js index 88b0a720e..e643f722a 100644 --- a/packages/artplayer-plugin-auto-thumbnail/dist/artplayer-plugin-auto-thumbnail.legacy.js +++ b/packages/artplayer-plugin-auto-thumbnail/dist/artplayer-plugin-auto-thumbnail.legacy.js @@ -5,4 +5,4 @@ * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,r,t,n,o,i,c,u){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof a[n]&&a[n],f=s.i||{},l=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(r,t){if(!l[r]){if(!e[r]){if(o[r])return o[r];var i="function"==typeof a[n]&&a[n];if(!t&&i)return i(r,!0);if(s)return s(r,!0);if(p&&"string"==typeof r)return p(r);var c=Error("Cannot find module '"+r+"'");throw c.code="MODULE_NOT_FOUND",c}f.resolve=function(t){var n=e[r][1][t];return null!=n?n:t},f.cache={};var u=l[r]=new d.Module(r);e[r][0].call(u.exports,f,u,u.exports,a)}return l[r].exports;function f(e){var r=f.resolve(e);return!1===r?{}:d(r)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=p,this.exports={}},d.modules=e,d.cache=l,d.parent=s,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=f,d.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]},Object.defineProperty(d,"root",{get:function(){return a[n]}}),a[n]=d;for(var _=0;_=a||(s.currentTime=e*l/a,s.onseeked=function(){t.drawImage(s,l%10*i,Math.floor(l/10)*o,i,o),c++,f(l+1)})}(0)}}),[2,{name:"artplayerPluginAutoThumbnail"}]})}),function(e){return r.apply(this,arguments)}}"undefined"!=typeof window&&(window.artplayerPluginAutoThumbnail=s)},{"@swc/helpers/_/_async_to_generator":"eONSn","@swc/helpers/_/_object_spread":"9agdF","@swc/helpers/_/_object_spread_props":"gJNH2","@swc/helpers/_/_ts_generator":"6Xyd0","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],eONSn:[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,r,t,n,o,i,c){try{var u=e[i](c),a=u.value}catch(e){t(e);return}u.done?r(a):Promise.resolve(a).then(n,o)}function c(e){return function(){var r=this,t=arguments;return new Promise(function(n,o){var c=e.apply(r,t);function u(e){i(c,n,o,u,a,"next",e)}function a(e){i(c,n,o,u,a,"throw",e)}u(void 0)})}}o.defineInteropFlag(t),o.export(t,"_",function(){return c})},{"@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],iWrD0:[function(e,r,t,n){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,r){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(r,t)||Object.defineProperty(r,t,{enumerable:!0,get:function(){return e[t]}})}),r},t.export=function(e,r,t){Object.defineProperty(e,r,{enumerable:!0,get:t})}},{}],"9agdF":[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(t),o.export(t,"_",function(){return c});var i=e("./_define_property.js");function c(e){for(var r=1;rr.indexOf(n)&&(t[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);or.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(t[n[o]]=e[n[o]]);return t}function f(e,r,t,n){var o,c=arguments.length,u=c<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,t):n;if(("undefined"==typeof Reflect?"undefined":(0,i._)(Reflect))==="object"&&"function"==typeof Reflect.decorate)u=Reflect.decorate(e,r,t,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(u=(c<3?o(u):c>3?o(r,t,u):o(r,t))||u);return c>3&&u&&Object.defineProperty(r,t,u),u}function l(e,r){return function(t,n){r(t,n,e)}}function p(e,r,t,n,o,c){function u(e){if(void 0!==e&&"function"!=typeof e)throw TypeError("Function expected");return e}for(var a,s=n.kind,f="getter"===s?"get":"setter"===s?"set":"value",l=!r&&e?n.static?e:e.prototype:null,p=r||(l?Object.getOwnPropertyDescriptor(l,n.name):{}),d=!1,_=t.length-1;_>=0;_--){var y={};for(var h in n)y[h]="access"===h?{}:n[h];for(var h in n.access)y.access[h]=n.access[h];y.addInitializer=function(e){if(d)throw TypeError("Cannot add initializers after decoration has completed");c.push(u(e||null))};var v=(0,t[_])("accessor"===s?{get:p.get,set:p.set}:p[f],y);if("accessor"===s){if(void 0===v)continue;if(null===v||(void 0===v?"undefined":(0,i._)(v))!=="object")throw TypeError("Object expected");(a=u(v.get))&&(p.get=a),(a=u(v.set))&&(p.set=a),(a=u(v.init))&&o.unshift(a)}else(a=u(v))&&("field"===s?o.unshift(a):p[f]=a)}l&&Object.defineProperty(l,n.name,p),d=!0}function d(e,r,t){for(var n=arguments.length>2,o=0;o0&&o[o.length-1])&&(6===s[0]||2===s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")}function g(e,r){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var n,o,i=t.call(e),c=[];try{for(;(void 0===r||r-- >0)&&!(n=i.next()).done;)c.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return c}function O(){for(var e=[],r=0;r1||u(e,r)})},r&&(n[e]=r(n[e])))}function u(e,r){try{var t;(t=o[e](r)).value instanceof S?Promise.resolve(t.value.v).then(a,s):f(i[0][2],t)}catch(e){f(i[0][3],e)}}function a(e){u("next",e)}function s(e){u("throw",e)}function f(e,r){e(r),i.shift(),i.length&&u(i[0][0],i[0][1])}}function D(e){var r,t;return r={},n("next"),n("throw",function(e){throw e}),n("return"),r[Symbol.iterator]=function(){return this},r;function n(n,o){r[n]=e[n]?function(r){return(t=!t)?{value:S(e[n](r)),done:!1}:o?o(r):r}:o}}function I(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var r,t=e[Symbol.asyncIterator];return t?t.call(e):(e=w(e),r={},n("next"),n("throw"),n("return"),r[Symbol.asyncIterator]=function(){return this},r);function n(t){r[t]=e[t]&&function(r){return new Promise(function(n,o){var i,c,u;i=n,c=o,u=(r=e[t](r)).done,Promise.resolve(r.value).then(function(e){i({value:e,done:u})},c)})}}}function T(e,r){return Object.defineProperty?Object.defineProperty(e,"raw",{value:r}):e.raw=r,e}var F=Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r},R=function(e){return(R=Object.getOwnPropertyNames||function(e){var r=[];for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[r.length]=t);return r})(e)};function k(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t=R(e),n=0;n=a||(s.currentTime=e*l/a,s.onseeked=function(){r.drawImage(s,l%10*i,Math.floor(l/10)*o,i,o),c++,f(l+1)})}(0)}}),[2,{name:"artplayerPluginAutoThumbnail"}]})}),function(e){return t.apply(this,arguments)}}"undefined"!=typeof window&&(window.artplayerPluginAutoThumbnail=s)},{"@swc/helpers/cjs/_async_to_generator.cjs":"cZn0e","@swc/helpers/cjs/_object_spread.cjs":"kyoEj","@swc/helpers/cjs/_object_spread_props.cjs":"3G1wX","@swc/helpers/cjs/_ts_generator.cjs":"eltGh","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],cZn0e:[function(e,t,r,n){"use strict";function o(e,t,r,n,o,i,c){try{var u=e[i](c),a=u.value}catch(e){r(e);return}u.done?t(a):Promise.resolve(a).then(n,o)}r._=function(e){return function(){var t=this,r=arguments;return new Promise(function(n,i){var c=e.apply(t,r);function u(e){o(c,n,i,u,a,"next",e)}function a(e){o(c,n,i,u,a,"throw",e)}u(void 0)})}}},{}],kyoEj:[function(e,t,r,n){"use strict";var o=e("9f9b8a24218ee51e");r._=function(e){for(var t=1;tt.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r}function f(e,t,r,n){var o,c=arguments.length,u=c<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if(("undefined"==typeof Reflect?"undefined":(0,i._)(Reflect))==="object"&&"function"==typeof Reflect.decorate)u=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(u=(c<3?o(u):c>3?o(t,r,u):o(t,r))||u);return c>3&&u&&Object.defineProperty(t,r,u),u}function l(e,t){return function(r,n){t(r,n,e)}}function p(e,t,r,n,o,c){function u(e){if(void 0!==e&&"function"!=typeof e)throw TypeError("Function expected");return e}for(var a,s=n.kind,f="getter"===s?"get":"setter"===s?"set":"value",l=!t&&e?n.static?e:e.prototype:null,p=t||(l?Object.getOwnPropertyDescriptor(l,n.name):{}),d=!1,y=r.length-1;y>=0;y--){var _={};for(var h in n)_[h]="access"===h?{}:n[h];for(var h in n.access)_.access[h]=n.access[h];_.addInitializer=function(e){if(d)throw TypeError("Cannot add initializers after decoration has completed");c.push(u(e||null))};var b=(0,r[y])("accessor"===s?{get:p.get,set:p.set}:p[f],_);if("accessor"===s){if(void 0===b)continue;if(null===b||(void 0===b?"undefined":(0,i._)(b))!=="object")throw TypeError("Object expected");(a=u(b.get))&&(p.get=a),(a=u(b.set))&&(p.set=a),(a=u(b.init))&&o.unshift(a)}else(a=u(b))&&("field"===s?o.unshift(a):p[f]=a)}l&&Object.defineProperty(l,n.name,p),d=!0}function d(e,t,r){for(var n=arguments.length>2,o=0;o0&&o[o.length-1])&&(6===s[0]||2===s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function g(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),c=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)c.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return c}function O(){for(var e=[],t=0;t1||u(e,t)})},t&&(n[e]=t(n[e])))}function u(e,t){try{var r;(r=o[e](t)).value instanceof S?Promise.resolve(r.value.v).then(a,s):f(i[0][2],r)}catch(e){f(i[0][3],e)}}function a(e){u("next",e)}function s(e){u("throw",e)}function f(e,t){e(t),i.shift(),i.length&&u(i[0][0],i[0][1])}}function T(e){var t,r;return t={},n("next"),n("throw",function(e){throw e}),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:S(e[n](t)),done:!1}:o?o(t):t}:o}}function I(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=j(e),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise(function(n,o){var i,c,u;i=n,c=o,u=(t=e[r](t)).done,Promise.resolve(t.value).then(function(e){i({value:e,done:u})},c)})}}}function D(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var R=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},k=function(e){return(k=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t})(e)};function M(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=k(e),n=0;n","packages/artplayer-plugin-auto-thumbnail/src/index.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcelRequireName,\n externals,\n distDir,\n publicUrl,\n devServer\n) {\n /* eslint-disable no-undef */\n var globalObject =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n /* eslint-enable no-undef */\n\n // Save the require from previous bundle to this closure if any\n var previousRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n\n var importMap = previousRequire.i || {};\n var cache = previousRequire.cache || {};\n // Do not use `require` to prevent Webpack from trying to bundle this call\n var nodeRequire =\n typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n\n function newRequire(name, jumped) {\n if (!cache[name]) {\n if (!modules[name]) {\n if (externals[name]) {\n return externals[name];\n }\n // if we cannot find the module within our internal map or\n // cache jump to the current global require ie. the last bundle\n // that was added to the page.\n var currentRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n if (!jumped && currentRequire) {\n return currentRequire(name, true);\n }\n\n // If there are other bundles on this page the require from the\n // previous one is saved to 'previousRequire'. Repeat this as\n // many times as there are bundles until the module is found or\n // we exhaust the require chain.\n if (previousRequire) {\n return previousRequire(name, true);\n }\n\n // Try the node require function if it exists.\n if (nodeRequire && typeof name === 'string') {\n return nodeRequire(name);\n }\n\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n }\n\n localRequire.resolve = resolve;\n localRequire.cache = {};\n\n var module = (cache[name] = new newRequire.Module(name));\n\n modules[name][0].call(\n module.exports,\n localRequire,\n module,\n module.exports,\n globalObject\n );\n }\n\n return cache[name].exports;\n\n function localRequire(x) {\n var res = localRequire.resolve(x);\n return res === false ? {} : newRequire(res);\n }\n\n function resolve(x) {\n var id = modules[name][1][x];\n return id != null ? id : x;\n }\n }\n\n function Module(moduleName) {\n this.id = moduleName;\n this.bundle = newRequire;\n this.require = nodeRequire;\n this.exports = {};\n }\n\n newRequire.isParcelRequire = true;\n newRequire.Module = Module;\n newRequire.modules = modules;\n newRequire.cache = cache;\n newRequire.parent = previousRequire;\n newRequire.distDir = distDir;\n newRequire.publicUrl = publicUrl;\n newRequire.devServer = devServer;\n newRequire.i = importMap;\n newRequire.register = function (id, exports) {\n modules[id] = [\n function (require, module) {\n module.exports = exports;\n },\n {},\n ];\n };\n\n // Only insert newRequire.load when it is actually used.\n // The code in this file is linted against ES5, so dynamic import is not allowed.\n // INSERT_LOAD_HERE\n\n Object.defineProperty(newRequire, 'root', {\n get: function () {\n return globalObject[parcelRequireName];\n },\n });\n\n globalObject[parcelRequireName] = newRequire;\n\n for (var i = 0; i < entry.length; i++) {\n newRequire(entry[i]);\n }\n\n if (mainEntry) {\n // Expose entry point to Node, AMD or browser globals\n // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js\n var mainExports = newRequire(mainEntry);\n\n // CommonJS\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = mainExports;\n\n // RequireJS\n } else if (typeof define === 'function' && define.amd) {\n define(function () {\n return mainExports;\n });\n }\n }\n})({\"guSFC\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>artplayerPluginAutoThumbnail);\nfunction create({ url, width, number }, callback) {\n const video = document.createElement('video');\n video.crossOrigin = 'anonymous';\n video.src = url;\n video.onloadedmetadata = ()=>{\n const duration = video.duration;\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const height = Math.floor(width * video.videoHeight / video.videoWidth);\n canvas.width = width * 10;\n canvas.height = height * Math.ceil(number / 10);\n let loadedCount = 0;\n let blobUrl = null;\n function seekAndDraw(index) {\n canvas.toBlob((blob)=>{\n URL.revokeObjectURL(blobUrl);\n blobUrl = URL.createObjectURL(blob);\n callback({\n url: blobUrl,\n height: height\n });\n }, 'image/jpeg');\n if (index >= number) return;\n video.currentTime = duration * index / number;\n video.onseeked = ()=>{\n ctx.drawImage(video, index % 10 * width, Math.floor(index / 10) * height, width, height);\n loadedCount++;\n seekAndDraw(index + 1);\n };\n }\n seekAndDraw(0);\n };\n}\nfunction artplayerPluginAutoThumbnail(option) {\n return async (art)=>{\n art.on('video:loadedmetadata', ()=>{\n const url = option.url || art.option.url;\n const width = option.width || 160;\n const number = option.number || 100;\n const scale = option.scale || 1;\n create({\n url,\n width,\n number\n }, (config)=>{\n art.thumbnails = {\n ...config,\n column: 10,\n number,\n width,\n scale\n };\n });\n });\n return {\n name: 'artplayerPluginAutoThumbnail'\n };\n };\n}\nif (typeof window !== 'undefined') window['artplayerPluginAutoThumbnail'] = artplayerPluginAutoThumbnail;\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"5lQoW\"}],\"5lQoW\":[function(require,module,exports,__globalThis) {\nexports.interopDefault = function(a) {\n return a && a.__esModule ? a : {\n default: a\n };\n};\nexports.defineInteropFlag = function(a) {\n Object.defineProperty(a, '__esModule', {\n value: true\n });\n};\nexports.exportAll = function(source, dest) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) return;\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function() {\n return source[key];\n }\n });\n });\n return dest;\n};\nexports.export = function(dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get\n });\n};\n\n},{}]},[\"guSFC\"], \"guSFC\", \"parcelRequire4dc0\", {})\nlet {default: _default, } = parcelRequire4dc0(\"guSFC\");\nexport {_default as default, };\n\n//# sourceMappingURL=index.js.map\n","function create({ url, width, number }, callback) {\n const video = document.createElement('video');\n video.crossOrigin = 'anonymous';\n video.src = url;\n\n video.onloadedmetadata = () => {\n const duration = video.duration;\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const height = Math.floor((width * video.videoHeight) / video.videoWidth);\n\n canvas.width = width * 10;\n canvas.height = height * Math.ceil(number / 10);\n\n let loadedCount = 0;\n let blobUrl = null;\n\n function seekAndDraw(index) {\n canvas.toBlob((blob) => {\n URL.revokeObjectURL(blobUrl);\n blobUrl = URL.createObjectURL(blob);\n\n callback({\n url: blobUrl,\n height: height,\n });\n }, 'image/jpeg');\n\n if (index >= number) return;\n video.currentTime = (duration * index) / number;\n\n video.onseeked = () => {\n ctx.drawImage(video, (index % 10) * width, Math.floor(index / 10) * height, width, height);\n loadedCount++;\n seekAndDraw(index + 1);\n };\n }\n\n seekAndDraw(0);\n };\n}\n\nexport default function artplayerPluginAutoThumbnail(option) {\n return async (art) => {\n art.on('video:loadedmetadata', () => {\n const url = option.url || art.option.url;\n const width = option.width || 160;\n const number = option.number || 100;\n const scale = option.scale || 1;\n create({ url, width, number }, (config) => {\n art.thumbnails = {\n ...config,\n column: 10,\n number,\n width,\n scale,\n };\n });\n });\n\n return {\n name: 'artplayerPluginAutoThumbnail',\n };\n };\n}\n\nif (typeof window !== 'undefined') {\n window['artplayerPluginAutoThumbnail'] = artplayerPluginAutoThumbnail;\n}\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (\n key === 'default' ||\n key === '__esModule' ||\n Object.prototype.hasOwnProperty.call(dest, key)\n ) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n"],"names":["modules","entry","mainEntry","parcelRequireName","externals","distDir","publicUrl","devServer","globalObject","globalThis","self","window","global","previousRequire","importMap","i","cache","nodeRequire","module","require","bind","newRequire","name","jumped","currentRequire","err","Error","code","localRequire","resolve","x","id","Module","call","exports","res","isParcelRequire","moduleName","bundle","parent","register","Object","defineProperty","get","length","mainExports","define","amd","__globalThis","parcelHelpers","artplayerPluginAutoThumbnail","option","art","on","url","width","number","scale","create","callback","video","document","createElement","crossOrigin","src","onloadedmetadata","duration","canvas","ctx","getContext","height","Math","floor","videoHeight","videoWidth","ceil","loadedCount","blobUrl","seekAndDraw","index","toBlob","blob","URL","revokeObjectURL","createObjectURL","currentTime","onseeked","drawImage","config","thumbnails","column","defineInteropFlag","export","interopDefault","a","__esModule","default","value","exportAll","source","dest","keys","forEach","key","prototype","hasOwnProperty","enumerable","destName","_default","parcelRequire4dc0"],"version":3,"file":"index.js.map"} \ No newline at end of file diff --git a/packages/artplayer-plugin-auto-thumbnail/package.json b/packages/artplayer-plugin-auto-thumbnail/package.json index 7a4d950a3..d6f4e17f0 100644 --- a/packages/artplayer-plugin-auto-thumbnail/package.json +++ b/packages/artplayer-plugin-auto-thumbnail/package.json @@ -2,10 +2,16 @@ "license": "MIT", "version": "1.0.1", "name": "artplayer-plugin-auto-thumbnail", - "types": "types/artplayer-plugin-auto-thumbnail.d.ts", "description": "auto-thumbnail plugin for ArtPlayer", "main": "dist/artplayer-plugin-auto-thumbnail.js", "legacy": "dist/artplayer-plugin-auto-thumbnail.legacy.js", + "module": "dist/artplayer-plugin-auto-thumbnail.esm.js", + "types": "types/artplayer-plugin-auto-thumbnail.d.ts", + "exports": { + "import": "./dist/artplayer-plugin-auto-thumbnail.esm.js", + "require": "./dist/artplayer-plugin-auto-thumbnail.js", + "default": "./dist/artplayer-plugin-auto-thumbnail.js" + }, "author": "Harvey Zack ", "browserslist": "last 1 Chrome version", "homepage": "https://artplayer.org", @@ -21,4 +27,4 @@ "video", "player" ] -} +} \ No newline at end of file diff --git a/packages/artplayer-plugin-chapter/dist/artplayer-plugin-chapter.esm.js b/packages/artplayer-plugin-chapter/dist/artplayer-plugin-chapter.esm.js new file mode 100644 index 000000000..2b4cedd2b --- /dev/null +++ b/packages/artplayer-plugin-chapter/dist/artplayer-plugin-chapter.esm.js @@ -0,0 +1,18 @@ + +/*! + * artplayer-plugin-chapter.js v1.0.1 + * Github: https://github.com/zhw2590582/ArtPlayer + * (c) 2017-2025 Harvey Zack + * Released under the MIT License. + */ + +!function(e,t,r,a,n,o,i,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[a]&&d[a],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(n[t])return n[t];var o="function"==typeof d[a]&&d[a];if(!r&&o)return o(t,!0);if(p)return p(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}s.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},s.cache={};var l=u[t]=new f.Module(t);e[t][0].call(l.exports,s,l,l.exports,d)}return u[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=u,f.parent=p,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return d[a]}}),d[a]=f;for(var h=0;hl);var o=e("bundle-text:./style.less"),i=n.interopDefault(o);function l(e={}){return t=>{let{$player:r}=t.template,{setStyle:a,append:n,clamp:o,query:i,isMobile:l,addClass:d,removeClass:p}=t.constructor.utils,s=` +
+
+
+
+
+
+
+ `,u=null,c=[],f=t.query(".art-control-progress"),h=t.query(".art-control-progress-inner"),g=n(h,'
'),y=n(h,'
');function m({$chapter:e,width:t}){let r=e.dataset.title.trim();if(r){a(y,"display","flex"),y.innerText=r;let e=y.clientWidth;t<=e/2?a(y,"left",0):t>h.clientWidth-e/2?a(y,"left",`${h.clientWidth-e}px`):a(y,"left",`${t-e/2}px`)}else a(y,"display","none")}function v(e=[]){if((c=[],g.innerText="",p(r,"artplayer-plugin-chapter"),Array.isArray(e)&&e.length)&&t.duration){e=e.sort((e,t)=>e.start-t.start);for(let r=0;rt.duration||a.start>=a.end||n&&a.end>n.start)throw Error("Illegal chapter time point")}e[0].start>0&&e.unshift({start:0,end:e[0].start,title:""}),e[e.length-1].end{let r=n(g,s),a=o(e.start,0,t.duration),l=o(e.end,0,t.duration),d=l-a,p=d/t.duration;return r.dataset.start=a,r.dataset.end=l,r.dataset.duration=d,r.dataset.title=e.title.trim(),r.style.width=`${100*p}%`,{$chapter:r,$hover:i(".art-progress-hover",r),$loaded:i(".art-progress-loaded",r),$played:i(".art-progress-played",r)}}),d(r,"artplayer-plugin-chapter"),t.emit("setBar","loaded",t.loaded||0)}}return t.on("setBar",(e,r,n)=>{if(c.length)for(let o=0;ow&&a(f,"width","100%"),v>=x&&v<=w){let t=(v-x)/b;a(f,"width",`${100*t}%`),l?"played"===e&&n&&(m({$chapter:i,width:h}),clearTimeout(u),u=setTimeout(()=>{a(y,"display","none")},500)):"hover"===e&&m({$chapter:i,width:h})}}}),l||t.proxy(f,"mouseleave",()=>{c.length&&a(y,"display","none")}),t.once("video:loadedmetadata",()=>v(e.chapters)),{name:"artplayerPluginChapter",update:({chapters:e})=>v(e)}}}if("undefined"!=typeof document){let e="artplayer-plugin-chapter",t=document.getElementById(e);t||((t=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{document.head.appendChild(t)}):(document.head||document.documentElement).appendChild(t)),t.textContent=i.default}"undefined"!=typeof window&&(window.artplayerPluginChapter=l)},{"bundle-text:./style.less":"e5E4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],e5E4m:[function(e,t,r,a){t.exports=".artplayer-plugin-chapter .art-control-progress-inner{background-color:#0000!important;height:100%!important}.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-hover,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-loaded,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-played{display:none!important}.artplayer-plugin-chapter .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 64px)!important}.artplayer-plugin-chapter .art-chapters{z-index:0;align-items:center;gap:4px;height:100%;display:flex;position:absolute;inset:0;transform:scaleY(1.25)}.artplayer-plugin-chapter .art-chapters .art-chapter{align-items:center;height:100%;display:flex}.artplayer-plugin-chapter .art-chapters .art-chapter .art-chapter-inner{cursor:pointer;width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);border-radius:10px;position:relative;overflow:hidden}.artplayer-plugin-chapter .art-chapters .art-chapter:hover .art-chapter-inner{height:100%}.artplayer-plugin-chapter .art-chapter-title{z-index:70;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:14px;line-height:1;display:none;position:absolute;top:-50px;left:0}"},{}],"5lQoW":[function(e,t,r,a){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})}),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}]},["1LLzi"],"1LLzi","parcelRequire4dc0",{});let{default:e}=parcelRequire4dc0("1LLzi");export{e as default}; +//# sourceMappingURL=index.js.map diff --git a/packages/artplayer-plugin-chapter/dist/artplayer-plugin-chapter.js b/packages/artplayer-plugin-chapter/dist/artplayer-plugin-chapter.js index 4c378abb2..225ace5e4 100644 --- a/packages/artplayer-plugin-chapter/dist/artplayer-plugin-chapter.js +++ b/packages/artplayer-plugin-chapter/dist/artplayer-plugin-chapter.js @@ -5,4 +5,4 @@ * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,t,r,a,n,o,i,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[a]&&d[a],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(n[t])return n[t];var o="function"==typeof d[a]&&d[a];if(!r&&o)return o(t,!0);if(p)return p(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}s.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},s.cache={};var l=u[t]=new f.Module(t);e[t][0].call(l.exports,s,l,l.exports,d)}return u[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=u,f.parent=p,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return d[a]}}),d[a]=f;for(var h=0;hl);var o=e("bundle-text:./style.less"),i=n.interopDefault(o);function l(e={}){return t=>{let{$player:r}=t.template,{setStyle:a,append:n,clamp:o,query:i,isMobile:l,addClass:d,removeClass:p}=t.constructor.utils,s=`
`,u=null,c=[],f=t.query(".art-control-progress"),h=t.query(".art-control-progress-inner"),g=n(h,'
'),y=n(h,'
');function m({$chapter:e,width:t}){let r=e.dataset.title.trim();if(r){a(y,"display","flex"),y.innerText=r;let e=y.clientWidth;t<=e/2?a(y,"left",0):t>h.clientWidth-e/2?a(y,"left",`${h.clientWidth-e}px`):a(y,"left",`${t-e/2}px`)}else a(y,"display","none")}function v(e=[]){if((c=[],g.innerText="",p(r,"artplayer-plugin-chapter"),Array.isArray(e)&&e.length)&&t.duration){e=e.sort((e,t)=>e.start-t.start);for(let r=0;rt.duration||a.start>=a.end||n&&a.end>n.start)throw Error("Illegal chapter time point")}e[0].start>0&&e.unshift({start:0,end:e[0].start,title:""}),e[e.length-1].end{let r=n(g,s),a=o(e.start,0,t.duration),l=o(e.end,0,t.duration),d=l-a,p=d/t.duration;return r.dataset.start=a,r.dataset.end=l,r.dataset.duration=d,r.dataset.title=e.title.trim(),r.style.width=`${100*p}%`,{$chapter:r,$hover:i(".art-progress-hover",r),$loaded:i(".art-progress-loaded",r),$played:i(".art-progress-played",r)}}),d(r,"artplayer-plugin-chapter"),t.emit("setBar","loaded",t.loaded||0)}}return t.on("setBar",(e,r,n)=>{if(c.length)for(let o=0;ow&&a(f,"width","100%"),v>=x&&v<=w){let t=(v-x)/b;a(f,"width",`${100*t}%`),l?"played"===e&&n&&(m({$chapter:i,width:h}),clearTimeout(u),u=setTimeout(()=>{a(y,"display","none")},500)):"hover"===e&&m({$chapter:i,width:h})}}}),l||t.proxy(f,"mouseleave",()=>{c.length&&a(y,"display","none")}),t.once("video:loadedmetadata",()=>v(e.chapters)),{name:"artplayerPluginChapter",update:({chapters:e})=>v(e)}}}if("undefined"!=typeof document){let e="artplayer-plugin-chapter",t=document.getElementById(e);t||((t=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{document.head.appendChild(t)}):(document.head||document.documentElement).appendChild(t)),t.textContent=i.default}"undefined"!=typeof window&&(window.artplayerPluginChapter=l)},{"bundle-text:./style.less":"9CXLk","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"9CXLk":[function(e,t,r,a){t.exports=".artplayer-plugin-chapter .art-control-progress-inner{background-color:#0000!important;height:100%!important}.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-hover,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-loaded,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-played{display:none!important}.artplayer-plugin-chapter .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 64px)!important}.artplayer-plugin-chapter .art-chapters{z-index:0;align-items:center;gap:4px;height:100%;display:flex;position:absolute;inset:0;transform:scaleY(1.25)}.artplayer-plugin-chapter .art-chapters .art-chapter{align-items:center;height:100%;display:flex}.artplayer-plugin-chapter .art-chapters .art-chapter .art-chapter-inner{cursor:pointer;width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);border-radius:10px;position:relative;overflow:hidden}.artplayer-plugin-chapter .art-chapters .art-chapter:hover .art-chapter-inner{height:100%}.artplayer-plugin-chapter .art-chapter-title{z-index:70;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:14px;line-height:1;display:none;position:absolute;top:-50px;left:0}"},{}],"9pCYc":[function(e,t,r,a){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})}),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}]},["eSFsM"],"eSFsM","parcelRequire4dc0",{}); \ No newline at end of file +!function(e,t,r,a,n,o,i,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[a]&&d[a],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(n[t])return n[t];var o="function"==typeof d[a]&&d[a];if(!r&&o)return o(t,!0);if(p)return p(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}s.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},s.cache={};var l=u[t]=new f.Module(t);e[t][0].call(l.exports,s,l,l.exports,d)}return u[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=u,f.parent=p,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return d[a]}}),d[a]=f;for(var h=0;hl);var o=e("bundle-text:./style.less"),i=n.interopDefault(o);function l(e={}){return t=>{let{$player:r}=t.template,{setStyle:a,append:n,clamp:o,query:i,isMobile:l,addClass:d,removeClass:p}=t.constructor.utils,s=`
`,u=null,c=[],f=t.query(".art-control-progress"),h=t.query(".art-control-progress-inner"),g=n(h,'
'),y=n(h,'
');function m({$chapter:e,width:t}){let r=e.dataset.title.trim();if(r){a(y,"display","flex"),y.innerText=r;let e=y.clientWidth;t<=e/2?a(y,"left",0):t>h.clientWidth-e/2?a(y,"left",`${h.clientWidth-e}px`):a(y,"left",`${t-e/2}px`)}else a(y,"display","none")}function v(e=[]){if((c=[],g.innerText="",p(r,"artplayer-plugin-chapter"),Array.isArray(e)&&e.length)&&t.duration){e=e.sort((e,t)=>e.start-t.start);for(let r=0;rt.duration||a.start>=a.end||n&&a.end>n.start)throw Error("Illegal chapter time point")}e[0].start>0&&e.unshift({start:0,end:e[0].start,title:""}),e[e.length-1].end{let r=n(g,s),a=o(e.start,0,t.duration),l=o(e.end,0,t.duration),d=l-a,p=d/t.duration;return r.dataset.start=a,r.dataset.end=l,r.dataset.duration=d,r.dataset.title=e.title.trim(),r.style.width=`${100*p}%`,{$chapter:r,$hover:i(".art-progress-hover",r),$loaded:i(".art-progress-loaded",r),$played:i(".art-progress-played",r)}}),d(r,"artplayer-plugin-chapter"),t.emit("setBar","loaded",t.loaded||0)}}return t.on("setBar",(e,r,n)=>{if(c.length)for(let o=0;ow&&a(f,"width","100%"),v>=x&&v<=w){let t=(v-x)/b;a(f,"width",`${100*t}%`),l?"played"===e&&n&&(m({$chapter:i,width:h}),clearTimeout(u),u=setTimeout(()=>{a(y,"display","none")},500)):"hover"===e&&m({$chapter:i,width:h})}}}),l||t.proxy(f,"mouseleave",()=>{c.length&&a(y,"display","none")}),t.once("video:loadedmetadata",()=>v(e.chapters)),{name:"artplayerPluginChapter",update:({chapters:e})=>v(e)}}}if("undefined"!=typeof document){let e="artplayer-plugin-chapter",t=document.getElementById(e);t||((t=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{document.head.appendChild(t)}):(document.head||document.documentElement).appendChild(t)),t.textContent=i.default}"undefined"!=typeof window&&(window.artplayerPluginChapter=l)},{"bundle-text:./style.less":"emPWt","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],emPWt:[function(e,t,r,a){t.exports=".artplayer-plugin-chapter .art-control-progress-inner{background-color:#0000!important;height:100%!important}.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-hover,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-loaded,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-played{display:none!important}.artplayer-plugin-chapter .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 64px)!important}.artplayer-plugin-chapter .art-chapters{z-index:0;align-items:center;gap:4px;height:100%;display:flex;position:absolute;inset:0;transform:scaleY(1.25)}.artplayer-plugin-chapter .art-chapters .art-chapter{align-items:center;height:100%;display:flex}.artplayer-plugin-chapter .art-chapters .art-chapter .art-chapter-inner{cursor:pointer;width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);border-radius:10px;position:relative;overflow:hidden}.artplayer-plugin-chapter .art-chapters .art-chapter:hover .art-chapter-inner{height:100%}.artplayer-plugin-chapter .art-chapter-title{z-index:70;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:14px;line-height:1;display:none;position:absolute;top:-50px;left:0}"},{}],"6ykb1":[function(e,t,r,a){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})}),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}]},["3VfEb"],"3VfEb","parcelRequire4dc0",{}); \ No newline at end of file diff --git a/packages/artplayer-plugin-chapter/dist/artplayer-plugin-chapter.legacy.js b/packages/artplayer-plugin-chapter/dist/artplayer-plugin-chapter.legacy.js index 0303a1e69..d72e740f9 100644 --- a/packages/artplayer-plugin-chapter/dist/artplayer-plugin-chapter.legacy.js +++ b/packages/artplayer-plugin-chapter/dist/artplayer-plugin-chapter.legacy.js @@ -5,4 +5,4 @@ * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,t,r,a,n,o,i,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[a]&&d[a],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(n[t])return n[t];var o="function"==typeof d[a]&&d[a];if(!r&&o)return o(t,!0);if(p)return p(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}s.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},s.cache={};var l=u[t]=new f.Module(t);e[t][0].call(l.exports,s,l,l.exports,d)}return u[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=u,f.parent=p,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return d[a]}}),d[a]=f;for(var h=0;h0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var r=t.template.$player,a=t.constructor.utils,n=a.setStyle,o=a.append,i=a.clamp,l=a.query,d=a.isMobile,p=a.addClass,s=a.removeClass,u=null,c=[],f=t.query(".art-control-progress"),h=t.query(".art-control-progress-inner"),g=o(h,'
'),y=o(h,'
');function v(e){var t=e.$chapter,r=e.width,a=t.dataset.title.trim();if(a){n(y,"display","flex"),y.innerText=a;var o=y.clientWidth;r<=o/2?n(y,"left",0):r>h.clientWidth-o/2?n(y,"left","".concat(h.clientWidth-o,"px")):n(y,"left","".concat(r-o/2,"px"))}else n(y,"display","none")}function m(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if((c=[],g.innerText="",s(r,"artplayer-plugin-chapter"),Array.isArray(e)&&e.length)&&t.duration){e=e.sort(function(e,t){return e.start-t.start});for(var a=0;at.duration||n.start>=n.end||d&&n.end>d.start)throw Error("Illegal chapter time point")}e[0].start>0&&e.unshift({start:0,end:e[0].start,title:""}),e[e.length-1].end\n
\n
\n
\n
\n
\n
\n '),a=i(e.start,0,t.duration),n=i(e.end,0,t.duration),d=n-a,p=d/t.duration;return r.dataset.start=a,r.dataset.end=n,r.dataset.duration=d,r.dataset.title=e.title.trim(),r.style.width="".concat(100*p,"%"),{$chapter:r,$hover:l(".art-progress-hover",r),$loaded:l(".art-progress-loaded",r),$played:l(".art-progress-played",r)}}),p(r,"artplayer-plugin-chapter"),t.emit("setBar","loaded",t.loaded||0)}}return t.on("setBar",function(e,r,a){if(c.length)for(var o=0;ow&&n(f,"width","100%"),m>=x&&m<=w){var j=(m-x)/b;n(f,"width","".concat(100*j,"%")),d?"played"===e&&a&&(v({$chapter:l,width:h}),clearTimeout(u),u=setTimeout(function(){n(y,"display","none")},500)):"hover"===e&&v({$chapter:l,width:h})}}}),d||t.proxy(f,"mouseleave",function(){c.length&&n(y,"display","none")}),t.once("video:loadedmetadata",function(){return m(e.chapters)}),{name:"artplayerPluginChapter",update:function(e){return m(e.chapters)}}}}if("undefined"!=typeof document){var d="artplayer-plugin-chapter",p=document.getElementById(d);p||((p=document.createElement("style")).id=d,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",function(){document.head.appendChild(p)}):(document.head||document.documentElement).appendChild(p)),p.textContent=i.default}"undefined"!=typeof window&&(window.artplayerPluginChapter=l)},{"bundle-text:./style.less":"4jhrf","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],"4jhrf":[function(e,t,r,a){t.exports=".artplayer-plugin-chapter .art-control-progress-inner{background-color:transparent!important;height:100%!important}.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-hover,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-loaded,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-played{display:none!important}.artplayer-plugin-chapter .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 64px)!important}.artplayer-plugin-chapter .art-chapters{z-index:0;align-items:center;gap:4px;height:100%;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;transform:scaleY(1.25)}.artplayer-plugin-chapter .art-chapters .art-chapter{align-items:center;height:100%;display:flex}.artplayer-plugin-chapter .art-chapters .art-chapter .art-chapter-inner{cursor:pointer;width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);border-radius:10px;position:relative;overflow:hidden}.artplayer-plugin-chapter .art-chapters .art-chapter:hover .art-chapter-inner{height:100%}.artplayer-plugin-chapter .art-chapter-title{z-index:70;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:14px;line-height:1;display:none;position:absolute;top:-50px;left:0}"},{}],iWrD0:[function(e,t,r,a){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})}),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}]},["9rqDr"],"9rqDr","parcelRequire4dc0",{}); \ No newline at end of file +!function(e,t,r,a,n,o,i,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[a]&&d[a],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(n[t])return n[t];var o="function"==typeof d[a]&&d[a];if(!r&&o)return o(t,!0);if(p)return p(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}s.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},s.cache={};var l=u[t]=new f.Module(t);e[t][0].call(l.exports,s,l,l.exports,d)}return u[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=u,f.parent=p,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return d[a]}}),d[a]=f;for(var h=0;h0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var r=t.template.$player,a=t.constructor.utils,n=a.setStyle,o=a.append,i=a.clamp,l=a.query,d=a.isMobile,p=a.addClass,s=a.removeClass,u=null,c=[],f=t.query(".art-control-progress"),h=t.query(".art-control-progress-inner"),g=o(h,'
'),y=o(h,'
');function v(e){var t=e.$chapter,r=e.width,a=t.dataset.title.trim();if(a){n(y,"display","flex"),y.innerText=a;var o=y.clientWidth;r<=o/2?n(y,"left",0):r>h.clientWidth-o/2?n(y,"left","".concat(h.clientWidth-o,"px")):n(y,"left","".concat(r-o/2,"px"))}else n(y,"display","none")}function m(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if((c=[],g.innerText="",s(r,"artplayer-plugin-chapter"),Array.isArray(e)&&e.length)&&t.duration){e=e.sort(function(e,t){return e.start-t.start});for(var a=0;at.duration||n.start>=n.end||d&&n.end>d.start)throw Error("Illegal chapter time point")}e[0].start>0&&e.unshift({start:0,end:e[0].start,title:""}),e[e.length-1].end\n
\n
\n
\n
\n
\n
\n '),a=i(e.start,0,t.duration),n=i(e.end,0,t.duration),d=n-a,p=d/t.duration;return r.dataset.start=a,r.dataset.end=n,r.dataset.duration=d,r.dataset.title=e.title.trim(),r.style.width="".concat(100*p,"%"),{$chapter:r,$hover:l(".art-progress-hover",r),$loaded:l(".art-progress-loaded",r),$played:l(".art-progress-played",r)}}),p(r,"artplayer-plugin-chapter"),t.emit("setBar","loaded",t.loaded||0)}}return t.on("setBar",function(e,r,a){if(c.length)for(var o=0;ow&&n(f,"width","100%"),m>=x&&m<=w){var M=(m-x)/b;n(f,"width","".concat(100*M,"%")),d?"played"===e&&a&&(v({$chapter:l,width:h}),clearTimeout(u),u=setTimeout(function(){n(y,"display","none")},500)):"hover"===e&&v({$chapter:l,width:h})}}}),d||t.proxy(f,"mouseleave",function(){c.length&&n(y,"display","none")}),t.once("video:loadedmetadata",function(){return m(e.chapters)}),{name:"artplayerPluginChapter",update:function(e){return m(e.chapters)}}}}if("undefined"!=typeof document){var d="artplayer-plugin-chapter",p=document.getElementById(d);p||((p=document.createElement("style")).id=d,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",function(){document.head.appendChild(p)}):(document.head||document.documentElement).appendChild(p)),p.textContent=i.default}"undefined"!=typeof window&&(window.artplayerPluginChapter=l)},{"bundle-text:./style.less":"fcXWB","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],fcXWB:[function(e,t,r,a){t.exports=".artplayer-plugin-chapter .art-control-progress-inner{background-color:transparent!important;height:100%!important}.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-hover,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-loaded,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-played{display:none!important}.artplayer-plugin-chapter .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 64px)!important}.artplayer-plugin-chapter .art-chapters{z-index:0;align-items:center;gap:4px;height:100%;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;transform:scaleY(1.25)}.artplayer-plugin-chapter .art-chapters .art-chapter{align-items:center;height:100%;display:flex}.artplayer-plugin-chapter .art-chapters .art-chapter .art-chapter-inner{cursor:pointer;width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);border-radius:10px;position:relative;overflow:hidden}.artplayer-plugin-chapter .art-chapters .art-chapter:hover .art-chapter-inner{height:100%}.artplayer-plugin-chapter .art-chapter-title{z-index:70;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:14px;line-height:1;display:none;position:absolute;top:-50px;left:0}"},{}],qpMMf:[function(e,t,r,a){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})}),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}]},["7hySu"],"7hySu","parcelRequire4dc0",{}); \ No newline at end of file diff --git a/packages/artplayer-plugin-chapter/dist/index.js.map b/packages/artplayer-plugin-chapter/dist/index.js.map new file mode 100644 index 000000000..4ef1d5cf9 --- /dev/null +++ b/packages/artplayer-plugin-chapter/dist/index.js.map @@ -0,0 +1 @@ +{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCEwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,4B,E,E,c,C,GAEe,SAAS,EAAuB,EAAS,CAAC,CAAC,EACtD,OAAO,AAAC,IACJ,GAAM,CAAE,QAAA,CAAO,CAAE,CAAG,EAAI,QAAQ,CAC1B,CAAE,SAAA,CAAQ,CAAE,OAAA,CAAM,CAAE,MAAA,CAAK,CAAE,MAAA,CAAK,CAAE,SAAA,CAAQ,CAAE,SAAA,CAAQ,CAAE,YAAA,CAAW,CAAE,CAAG,EAAI,WAAW,CAAC,KAAK,CAE3F,EAAO;A;A;A;A;A;A;A;AAQb,QAAA,CA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","sources":["","packages/artplayer-plugin-chapter/src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-3d3e8628bac64a11.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcelRequireName,\n externals,\n distDir,\n publicUrl,\n devServer\n) {\n /* eslint-disable no-undef */\n var globalObject =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n /* eslint-enable no-undef */\n\n // Save the require from previous bundle to this closure if any\n var previousRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n\n var importMap = previousRequire.i || {};\n var cache = previousRequire.cache || {};\n // Do not use `require` to prevent Webpack from trying to bundle this call\n var nodeRequire =\n typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n\n function newRequire(name, jumped) {\n if (!cache[name]) {\n if (!modules[name]) {\n if (externals[name]) {\n return externals[name];\n }\n // if we cannot find the module within our internal map or\n // cache jump to the current global require ie. the last bundle\n // that was added to the page.\n var currentRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n if (!jumped && currentRequire) {\n return currentRequire(name, true);\n }\n\n // If there are other bundles on this page the require from the\n // previous one is saved to 'previousRequire'. Repeat this as\n // many times as there are bundles until the module is found or\n // we exhaust the require chain.\n if (previousRequire) {\n return previousRequire(name, true);\n }\n\n // Try the node require function if it exists.\n if (nodeRequire && typeof name === 'string') {\n return nodeRequire(name);\n }\n\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n }\n\n localRequire.resolve = resolve;\n localRequire.cache = {};\n\n var module = (cache[name] = new newRequire.Module(name));\n\n modules[name][0].call(\n module.exports,\n localRequire,\n module,\n module.exports,\n globalObject\n );\n }\n\n return cache[name].exports;\n\n function localRequire(x) {\n var res = localRequire.resolve(x);\n return res === false ? {} : newRequire(res);\n }\n\n function resolve(x) {\n var id = modules[name][1][x];\n return id != null ? id : x;\n }\n }\n\n function Module(moduleName) {\n this.id = moduleName;\n this.bundle = newRequire;\n this.require = nodeRequire;\n this.exports = {};\n }\n\n newRequire.isParcelRequire = true;\n newRequire.Module = Module;\n newRequire.modules = modules;\n newRequire.cache = cache;\n newRequire.parent = previousRequire;\n newRequire.distDir = distDir;\n newRequire.publicUrl = publicUrl;\n newRequire.devServer = devServer;\n newRequire.i = importMap;\n newRequire.register = function (id, exports) {\n modules[id] = [\n function (require, module) {\n module.exports = exports;\n },\n {},\n ];\n };\n\n // Only insert newRequire.load when it is actually used.\n // The code in this file is linted against ES5, so dynamic import is not allowed.\n // INSERT_LOAD_HERE\n\n Object.defineProperty(newRequire, 'root', {\n get: function () {\n return globalObject[parcelRequireName];\n },\n });\n\n globalObject[parcelRequireName] = newRequire;\n\n for (var i = 0; i < entry.length; i++) {\n newRequire(entry[i]);\n }\n\n if (mainEntry) {\n // Expose entry point to Node, AMD or browser globals\n // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js\n var mainExports = newRequire(mainEntry);\n\n // CommonJS\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = mainExports;\n\n // RequireJS\n } else if (typeof define === 'function' && define.amd) {\n define(function () {\n return mainExports;\n });\n }\n }\n})({\"1LLzi\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>artplayerPluginChapter);\nvar _styleLess = require(\"bundle-text:./style.less\");\nvar _styleLessDefault = parcelHelpers.interopDefault(_styleLess);\nfunction artplayerPluginChapter(option = {}) {\n return (art)=>{\n const { $player } = art.template;\n const { setStyle, append, clamp, query, isMobile, addClass, removeClass } = art.constructor.utils;\n const html = `\n
\n
\n
\n
\n
\n
\n
\n `;\n let titleTimer = null;\n let $chapters = [];\n const $progress = art.query('.art-control-progress');\n const $inner = art.query('.art-control-progress-inner');\n const $control = append($inner, '
');\n const $title = append($inner, '
');\n function showTitle({ $chapter, width }) {\n const title = $chapter.dataset.title.trim();\n if (title) {\n setStyle($title, 'display', 'flex');\n $title.innerText = title;\n const titleWidth = $title.clientWidth;\n if (width <= titleWidth / 2) setStyle($title, 'left', 0);\n else if (width > $inner.clientWidth - titleWidth / 2) setStyle($title, 'left', `${$inner.clientWidth - titleWidth}px`);\n else setStyle($title, 'left', `${width - titleWidth / 2}px`);\n } else setStyle($title, 'display', 'none');\n }\n function update(chapters = []) {\n $chapters = [];\n $control.innerText = '';\n removeClass($player, 'artplayer-plugin-chapter');\n if (!Array.isArray(chapters)) return;\n if (!chapters.length) return;\n if (!art.duration) return;\n chapters = chapters.sort((a, b)=>a.start - b.start);\n for(let i = 0; i < chapters.length; i++){\n const chapter = chapters[i];\n const nextChapter = chapters[i + 1];\n if (chapter.end === Infinity) chapter.end = art.duration;\n if (typeof chapter.start !== 'number' || typeof chapter.end !== 'number' || typeof chapter.title !== 'string') throw new Error('Illegal chapter data type');\n if (chapter.start < 0 || chapter.end > art.duration || chapter.start >= chapter.end) throw new Error('Illegal chapter time point');\n if (nextChapter && chapter.end > nextChapter.start) throw new Error('Illegal chapter time point');\n }\n if (chapters[0].start > 0) chapters.unshift({\n start: 0,\n end: chapters[0].start,\n title: ''\n });\n if (chapters[chapters.length - 1].end < art.duration) chapters.push({\n start: chapters[chapters.length - 1].end,\n end: art.duration,\n title: ''\n });\n for(let i = 0; i < chapters.length - 1; i++)if (chapters[i].end !== chapters[i + 1].start) chapters.splice(i + 1, 0, {\n start: chapters[i].end,\n end: chapters[i + 1].start,\n title: ''\n });\n $chapters = chapters.map((chapter)=>{\n const $chapter = append($control, html);\n const start = clamp(chapter.start, 0, art.duration);\n const end = clamp(chapter.end, 0, art.duration);\n const duration = end - start;\n const percentage = duration / art.duration;\n $chapter.dataset.start = start;\n $chapter.dataset.end = end;\n $chapter.dataset.duration = duration;\n $chapter.dataset.title = chapter.title.trim();\n $chapter.style.width = `${percentage * 100}%`;\n return {\n $chapter,\n $hover: query('.art-progress-hover', $chapter),\n $loaded: query('.art-progress-loaded', $chapter),\n $played: query('.art-progress-played', $chapter)\n };\n });\n addClass($player, 'artplayer-plugin-chapter');\n art.emit('setBar', 'loaded', art.loaded || 0);\n }\n art.on('setBar', (type, percentage, event)=>{\n if (!$chapters.length) return;\n for(let i = 0; i < $chapters.length; i++){\n const { $chapter, $loaded, $played, $hover } = $chapters[i];\n const $target = {\n hover: $hover,\n loaded: $loaded,\n played: $played\n }[type];\n if (!$target) return;\n const width = $control.clientWidth * percentage;\n const currentTime = art.duration * percentage;\n const duration = parseFloat($chapter.dataset.duration);\n const start = parseFloat($chapter.dataset.start);\n const end = parseFloat($chapter.dataset.end);\n if (currentTime < start) setStyle($target, 'width', 0);\n if (currentTime > end) setStyle($target, 'width', '100%');\n if (currentTime >= start && currentTime <= end) {\n const percentage = (currentTime - start) / duration;\n setStyle($target, 'width', `${percentage * 100}%`);\n if (isMobile) {\n if (type === 'played' && event) {\n showTitle({\n $chapter,\n width\n });\n clearTimeout(titleTimer);\n titleTimer = setTimeout(()=>{\n setStyle($title, 'display', 'none');\n }, 500);\n }\n } else if (type === 'hover') showTitle({\n $chapter,\n width\n });\n }\n }\n });\n if (!isMobile) art.proxy($progress, 'mouseleave', ()=>{\n if (!$chapters.length) return;\n setStyle($title, 'display', 'none');\n });\n art.once('video:loadedmetadata', ()=>update(option.chapters));\n return {\n name: 'artplayerPluginChapter',\n update: ({ chapters })=>update(chapters)\n };\n };\n}\nif (typeof document !== 'undefined') {\n const id = 'artplayer-plugin-chapter';\n let $style = document.getElementById(id);\n if (!$style) {\n $style = document.createElement('style');\n $style.id = id;\n if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', ()=>{\n document.head.appendChild($style);\n });\n else (document.head || document.documentElement).appendChild($style);\n }\n $style.textContent = (0, _styleLessDefault.default);\n}\nif (typeof window !== 'undefined') window['artplayerPluginChapter'] = artplayerPluginChapter;\n\n},{\"bundle-text:./style.less\":\"e5E4m\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"5lQoW\"}],\"e5E4m\":[function(require,module,exports,__globalThis) {\nmodule.exports = \".artplayer-plugin-chapter .art-control-progress-inner{background-color:#0000!important;height:100%!important}.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-hover,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-loaded,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-played{display:none!important}.artplayer-plugin-chapter .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 64px)!important}.artplayer-plugin-chapter .art-chapters{z-index:0;align-items:center;gap:4px;height:100%;display:flex;position:absolute;inset:0;transform:scaleY(1.25)}.artplayer-plugin-chapter .art-chapters .art-chapter{align-items:center;height:100%;display:flex}.artplayer-plugin-chapter .art-chapters .art-chapter .art-chapter-inner{cursor:pointer;width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);border-radius:10px;position:relative;overflow:hidden}.artplayer-plugin-chapter .art-chapters .art-chapter:hover .art-chapter-inner{height:100%}.artplayer-plugin-chapter .art-chapter-title{z-index:70;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:14px;line-height:1;display:none;position:absolute;top:-50px;left:0}\";\n\n},{}],\"5lQoW\":[function(require,module,exports,__globalThis) {\nexports.interopDefault = function(a) {\n return a && a.__esModule ? a : {\n default: a\n };\n};\nexports.defineInteropFlag = function(a) {\n Object.defineProperty(a, '__esModule', {\n value: true\n });\n};\nexports.exportAll = function(source, dest) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) return;\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function() {\n return source[key];\n }\n });\n });\n return dest;\n};\nexports.export = function(dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get\n });\n};\n\n},{}]},[\"1LLzi\"], \"1LLzi\", \"parcelRequire4dc0\", {})\nlet {default: _default, } = parcelRequire4dc0(\"1LLzi\");\nexport {_default as default, };\n\n//# sourceMappingURL=index.js.map\n","import style from 'bundle-text:./style.less';\n\nexport default function artplayerPluginChapter(option = {}) {\n return (art) => {\n const { $player } = art.template;\n const { setStyle, append, clamp, query, isMobile, addClass, removeClass } = art.constructor.utils;\n\n const html = `\n
\n
\n
\n
\n
\n
\n
\n `;\n\n let titleTimer = null;\n let $chapters = [];\n\n const $progress = art.query('.art-control-progress');\n const $inner = art.query('.art-control-progress-inner');\n const $control = append($inner, '
');\n const $title = append($inner, '
');\n\n function showTitle({ $chapter, width }) {\n const title = $chapter.dataset.title.trim();\n if (title) {\n setStyle($title, 'display', 'flex');\n $title.innerText = title;\n const titleWidth = $title.clientWidth;\n if (width <= titleWidth / 2) {\n setStyle($title, 'left', 0);\n } else if (width > $inner.clientWidth - titleWidth / 2) {\n setStyle($title, 'left', `${$inner.clientWidth - titleWidth}px`);\n } else {\n setStyle($title, 'left', `${width - titleWidth / 2}px`);\n }\n } else {\n setStyle($title, 'display', 'none');\n }\n }\n\n function update(chapters = []) {\n $chapters = [];\n $control.innerText = '';\n removeClass($player, 'artplayer-plugin-chapter');\n\n if (!Array.isArray(chapters)) return;\n if (!chapters.length) return;\n if (!art.duration) return;\n\n chapters = chapters.sort((a, b) => a.start - b.start);\n\n for (let i = 0; i < chapters.length; i++) {\n const chapter = chapters[i];\n const nextChapter = chapters[i + 1];\n\n if (chapter.end === Infinity) {\n chapter.end = art.duration;\n }\n\n if (\n typeof chapter.start !== 'number' ||\n typeof chapter.end !== 'number' ||\n typeof chapter.title !== 'string'\n ) {\n throw new Error('Illegal chapter data type');\n }\n\n if (chapter.start < 0 || chapter.end > art.duration || chapter.start >= chapter.end) {\n throw new Error('Illegal chapter time point');\n }\n\n if (nextChapter && chapter.end > nextChapter.start) {\n throw new Error('Illegal chapter time point');\n }\n }\n\n if (chapters[0].start > 0) {\n chapters.unshift({ start: 0, end: chapters[0].start, title: '' });\n }\n\n if (chapters[chapters.length - 1].end < art.duration) {\n chapters.push({ start: chapters[chapters.length - 1].end, end: art.duration, title: '' });\n }\n\n for (let i = 0; i < chapters.length - 1; i++) {\n if (chapters[i].end !== chapters[i + 1].start) {\n chapters.splice(i + 1, 0, {\n start: chapters[i].end,\n end: chapters[i + 1].start,\n title: '',\n });\n }\n }\n\n $chapters = chapters.map((chapter) => {\n const $chapter = append($control, html);\n const start = clamp(chapter.start, 0, art.duration);\n const end = clamp(chapter.end, 0, art.duration);\n const duration = end - start;\n const percentage = duration / art.duration;\n $chapter.dataset.start = start;\n $chapter.dataset.end = end;\n $chapter.dataset.duration = duration;\n $chapter.dataset.title = chapter.title.trim();\n $chapter.style.width = `${percentage * 100}%`;\n\n return {\n $chapter,\n $hover: query('.art-progress-hover', $chapter),\n $loaded: query('.art-progress-loaded', $chapter),\n $played: query('.art-progress-played', $chapter),\n };\n });\n\n addClass($player, 'artplayer-plugin-chapter');\n art.emit('setBar', 'loaded', art.loaded || 0);\n }\n\n art.on('setBar', (type, percentage, event) => {\n if (!$chapters.length) return;\n\n for (let i = 0; i < $chapters.length; i++) {\n const { $chapter, $loaded, $played, $hover } = $chapters[i];\n\n const $target = {\n hover: $hover,\n loaded: $loaded,\n played: $played,\n }[type];\n\n if (!$target) return;\n\n const width = $control.clientWidth * percentage;\n const currentTime = art.duration * percentage;\n const duration = parseFloat($chapter.dataset.duration);\n const start = parseFloat($chapter.dataset.start);\n const end = parseFloat($chapter.dataset.end);\n\n if (currentTime < start) {\n setStyle($target, 'width', 0);\n }\n\n if (currentTime > end) {\n setStyle($target, 'width', '100%');\n }\n\n if (currentTime >= start && currentTime <= end) {\n const percentage = (currentTime - start) / duration;\n setStyle($target, 'width', `${percentage * 100}%`);\n\n if (isMobile) {\n if (type === 'played' && event) {\n showTitle({ $chapter, width });\n clearTimeout(titleTimer);\n titleTimer = setTimeout(() => {\n setStyle($title, 'display', 'none');\n }, 500);\n }\n } else {\n if (type === 'hover') {\n showTitle({ $chapter, width });\n }\n }\n }\n }\n });\n\n if (!isMobile) {\n art.proxy($progress, 'mouseleave', () => {\n if (!$chapters.length) return;\n setStyle($title, 'display', 'none');\n });\n }\n\n art.once('video:loadedmetadata', () => update(option.chapters));\n\n return {\n name: 'artplayerPluginChapter',\n update: ({ chapters }) => update(chapters),\n };\n };\n}\n\nif (typeof document !== 'undefined') {\n const id = 'artplayer-plugin-chapter';\n let $style = document.getElementById(id);\n if (!$style) {\n $style = document.createElement('style');\n $style.id = id;\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', () => {\n document.head.appendChild($style);\n });\n } else {\n (document.head || document.documentElement).appendChild($style);\n }\n }\n $style.textContent = style;\n}\n\nif (typeof window !== 'undefined') {\n window['artplayerPluginChapter'] = artplayerPluginChapter;\n}\n","module.exports = \"78c751325fe725df\";","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (\n key === 'default' ||\n key === '__esModule' ||\n Object.prototype.hasOwnProperty.call(dest, key)\n ) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n"],"names":["modules","entry","mainEntry","parcelRequireName","externals","distDir","publicUrl","devServer","globalObject","globalThis","self","window","global","previousRequire","importMap","i","cache","nodeRequire","module","require","bind","newRequire","name","jumped","currentRequire","err","Error","code","localRequire","resolve","x","id","Module","call","exports","res","isParcelRequire","moduleName","bundle","parent","register","Object","defineProperty","get","length","mainExports","define","amd","__globalThis","parcelHelpers","defineInteropFlag","export","artplayerPluginChapter","_styleLess","_styleLessDefault","interopDefault","option","art","$player","template","setStyle","append","clamp","query","isMobile","addClass","removeClass","constructor","utils","html","titleTimer","$chapters","$progress","$inner","$control","$title","showTitle","$chapter","width","title","dataset","trim","innerText","titleWidth","clientWidth","update","chapters","Array","isArray","duration","sort","a","b","start","chapter","nextChapter","end","Infinity","unshift","push","splice","map","percentage","style","$hover","$loaded","$played","emit","loaded","on","type","event","$target","hover","played","currentTime","parseFloat","clearTimeout","setTimeout","proxy","once","document","$style","getElementById","createElement","readyState","addEventListener","head","appendChild","documentElement","textContent","default","__esModule","value","exportAll","source","dest","keys","forEach","key","prototype","hasOwnProperty","enumerable","destName","_default","parcelRequire4dc0"],"version":3,"file":"index.js.map"} \ No newline at end of file diff --git a/packages/artplayer-plugin-chapter/package.json b/packages/artplayer-plugin-chapter/package.json index 37467b52c..94e0abc91 100644 --- a/packages/artplayer-plugin-chapter/package.json +++ b/packages/artplayer-plugin-chapter/package.json @@ -2,10 +2,16 @@ "license": "MIT", "version": "1.0.1", "name": "artplayer-plugin-chapter", - "types": "types/artplayer-plugin-chapter.d.ts", "description": "chapter plugin for ArtPlayer", "main": "dist/artplayer-plugin-chapter.js", "legacy": "dist/artplayer-plugin-chapter.legacy.js", + "module": "dist/artplayer-plugin-chapter.esm.js", + "types": "types/artplayer-plugin-chapter.d.ts", + "exports": { + "import": "./dist/artplayer-plugin-chapter.esm.js", + "require": "./dist/artplayer-plugin-chapter.js", + "default": "./dist/artplayer-plugin-chapter.js" + }, "author": "Harvey Zack ", "browserslist": "last 1 Chrome version", "homepage": "https://artplayer.org", @@ -21,4 +27,4 @@ "video", "player" ] -} +} \ No newline at end of file diff --git a/packages/artplayer-plugin-chromecast/dist/artplayer-plugin-chromecast.esm.js b/packages/artplayer-plugin-chromecast/dist/artplayer-plugin-chromecast.esm.js new file mode 100644 index 000000000..00e3442c9 --- /dev/null +++ b/packages/artplayer-plugin-chromecast/dist/artplayer-plugin-chromecast.esm.js @@ -0,0 +1,10 @@ + +/*! + * artplayer-plugin-chromecast.js v1.0.1 + * Github: https://github.com/zhw2590582/ArtPlayer + * (c) 2017-2025 Harvey Zack + * Released under the MIT License. + */ + +!function(e,t,o,n,i,r,a,c){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof s[n]&&s[n],l=d.i||{},u=d.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,o){if(!u[t]){if(!e[t]){if(i[t])return i[t];var r="function"==typeof s[n]&&s[n];if(!o&&r)return r(t,!0);if(d)return d(t,!0);if(f&&"string"==typeof t)return f(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(o){var n=e[t][1][o];return null!=n?n:o},l.cache={};var c=u[t]=new p.Module(t);e[t][0].call(c.exports,l,c,c.exports,s)}return u[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=f,this.exports={}},p.modules=e,p.cache=u,p.parent=d,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=l,p.register=function(t,o){e[t]=[function(e,t){t.exports=o},{}]},Object.defineProperty(p,"root",{get:function(){return s[n]}}),s[n]=p;for(var w=0;wc);let r=e=>new Promise((t,o)=>{let n=document.createElement("script");n.src=e,n.onload=t,n.onerror=o,document.body.appendChild(n)}),a=e=>({mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",ogv:"video/ogg",mp3:"audio/mp3",wav:"audio/wav",flv:"video/x-flv",mov:"video/quicktime",avi:"video/x-msvideo",wmv:"video/x-ms-wmv",mpd:"application/dash+xml",m3u8:"application/x-mpegURL"})[e.split("?")[0].split("#")[0].split(".").pop().toLowerCase()]||"application/octet-stream";function c(e){let t=!1,o=null,n=null,i=()=>new Promise((i,a)=>{window.__onGCastApiAvailable=r=>{if(r){let r=window.cast.framework.CastContext.getInstance();r.setOptions({receiverApplicationId:window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),r.addEventListener(window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,t=>{let i=window.cast.framework.SessionState;switch(n=t.sessionState,o=t.session,t.sessionState){case i.NO_SESSION:e.onStateChange?.("disconnected"),s("disconnected");break;case i.SESSION_STARTING:e.onStateChange?.("connecting"),s("connecting");break;case i.SESSION_STARTED:e.onStateChange?.("connected"),s("connected");break;case i.SESSION_ENDING:e.onStateChange?.("disconnecting"),s("disconnecting");break;case i.SESSION_RESUMED:e.onStateChange?.("connected"),s("connected")}}),r.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED,t=>{let o=window.cast.framework.CastState;switch(t.castState){case o.NO_DEVICES_AVAILABLE:e.onCastAvailable?.(!1);break;case o.NOT_CONNECTED:case o.CONNECTING:case o.CONNECTED:e.onCastAvailable?.(!0)}}),t=!0,i()}else a(Error("Cast API is not available"))},window.chrome&&window.chrome.cast||r(e.sdk||"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(a)}),c=(t,o)=>{let n=e.url||t.option.url,i=new window.chrome.cast.media.MediaInfo(n,e.mimeType||a(n)),r=new window.chrome.cast.media.LoadRequest(i);o.loadMedia(r).then(()=>{t.notice.show="Casting started",e.onCastStart?.()}).catch(o=>{throw t.notice.show="Error casting media",e.onError?.(o),o})},s=e=>{let t=document.querySelector(".art-icon-cast");if(t)switch(e){case"connected":t.style.color="red";break;case"connecting":case"disconnecting":t.style.color="orange";break;default:t.style.color="white"}};return async r=>(r.controls.add({name:"chromecast",position:"right",tooltip:"Chromecast",html:`${e.icon||''}`,click:async()=>{if(!t)try{await i()}catch(t){throw r.notice.show="Failed to initialize Cast API",e.onError?.(t),t}let n=window.cast.framework.CastContext.getInstance();if(o)c(r,o);else try{let e=await n.requestSession();c(r,e)}catch(t){throw r.notice.show="Error connecting to cast session",e.onError?.(t),t}}}),{name:"artplayerPluginChromecast",getCastState:()=>n,isCasting:()=>null!==o})}"undefined"!=typeof window&&(window.artplayerPluginChromecast=c)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5lQoW":[function(e,t,o,n){o.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},o.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},o.exportAll=function(e,t){return Object.keys(e).forEach(function(o){"default"===o||"__esModule"===o||Object.prototype.hasOwnProperty.call(t,o)||Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[o]}})}),t},o.export=function(e,t,o){Object.defineProperty(e,t,{enumerable:!0,get:o})}},{}]},["cv67D"],"cv67D","parcelRequire4dc0",{});let{default:e}=parcelRequire4dc0("cv67D");export{e as default}; +//# sourceMappingURL=index.js.map diff --git a/packages/artplayer-plugin-chromecast/dist/artplayer-plugin-chromecast.js b/packages/artplayer-plugin-chromecast/dist/artplayer-plugin-chromecast.js index becbbcc00..0c89f9487 100644 --- a/packages/artplayer-plugin-chromecast/dist/artplayer-plugin-chromecast.js +++ b/packages/artplayer-plugin-chromecast/dist/artplayer-plugin-chromecast.js @@ -5,4 +5,4 @@ * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,t,o,n,i,r,a,c){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof s[n]&&s[n],l=d.i||{},u=d.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function w(t,o){if(!u[t]){if(!e[t]){if(i[t])return i[t];var r="function"==typeof s[n]&&s[n];if(!o&&r)return r(t,!0);if(d)return d(t,!0);if(f&&"string"==typeof t)return f(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(o){var n=e[t][1][o];return null!=n?n:o},l.cache={};var c=u[t]=new w.Module(t);e[t][0].call(c.exports,l,c,c.exports,s)}return u[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:w(t)}}w.isParcelRequire=!0,w.Module=function(e){this.id=e,this.bundle=w,this.require=f,this.exports={}},w.modules=e,w.cache=u,w.parent=d,w.distDir=void 0,w.publicUrl=void 0,w.devServer=void 0,w.i=l,w.register=function(t,o){e[t]=[function(e,t){t.exports=o},{}]},Object.defineProperty(w,"root",{get:function(){return s[n]}}),s[n]=w;for(var p=0;pc);let r=e=>new Promise((t,o)=>{let n=document.createElement("script");n.src=e,n.onload=t,n.onerror=o,document.body.appendChild(n)}),a=e=>({mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",ogv:"video/ogg",mp3:"audio/mp3",wav:"audio/wav",flv:"video/x-flv",mov:"video/quicktime",avi:"video/x-msvideo",wmv:"video/x-ms-wmv",mpd:"application/dash+xml",m3u8:"application/x-mpegURL"})[e.split("?")[0].split("#")[0].split(".").pop().toLowerCase()]||"application/octet-stream";function c(e){let t=!1,o=null,n=null,i=()=>new Promise((i,a)=>{window.__onGCastApiAvailable=r=>{if(r){let r=window.cast.framework.CastContext.getInstance();r.setOptions({receiverApplicationId:window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),r.addEventListener(window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,t=>{let i=window.cast.framework.SessionState;switch(n=t.sessionState,o=t.session,t.sessionState){case i.NO_SESSION:e.onStateChange?.("disconnected"),s("disconnected");break;case i.SESSION_STARTING:e.onStateChange?.("connecting"),s("connecting");break;case i.SESSION_STARTED:e.onStateChange?.("connected"),s("connected");break;case i.SESSION_ENDING:e.onStateChange?.("disconnecting"),s("disconnecting");break;case i.SESSION_RESUMED:e.onStateChange?.("connected"),s("connected")}}),r.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED,t=>{let o=window.cast.framework.CastState;switch(t.castState){case o.NO_DEVICES_AVAILABLE:e.onCastAvailable?.(!1);break;case o.NOT_CONNECTED:case o.CONNECTING:case o.CONNECTED:e.onCastAvailable?.(!0)}}),t=!0,i()}else a(Error("Cast API is not available"))},window.chrome&&window.chrome.cast||r(e.sdk||"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(a)}),c=(t,o)=>{let n=e.url||t.option.url,i=new window.chrome.cast.media.MediaInfo(n,e.mimeType||a(n)),r=new window.chrome.cast.media.LoadRequest(i);o.loadMedia(r).then(()=>{t.notice.show="Casting started",e.onCastStart?.()}).catch(o=>{throw t.notice.show="Error casting media",e.onError?.(o),o})},s=e=>{let t=document.querySelector(".art-icon-cast");if(t)switch(e){case"connected":t.style.color="red";break;case"connecting":case"disconnecting":t.style.color="orange";break;default:t.style.color="white"}};return async r=>(r.controls.add({name:"chromecast",position:"right",tooltip:"Chromecast",html:`${e.icon||''}`,click:async()=>{if(!t)try{await i()}catch(t){throw r.notice.show="Failed to initialize Cast API",e.onError?.(t),t}let n=window.cast.framework.CastContext.getInstance();if(o)c(r,o);else try{let e=await n.requestSession();c(r,e)}catch(t){throw r.notice.show="Error connecting to cast session",e.onError?.(t),t}}}),{name:"artplayerPluginChromecast",getCastState:()=>n,isCasting:()=>null!==o})}"undefined"!=typeof window&&(window.artplayerPluginChromecast=c)},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"9pCYc":[function(e,t,o,n){o.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},o.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},o.exportAll=function(e,t){return Object.keys(e).forEach(function(o){"default"===o||"__esModule"===o||Object.prototype.hasOwnProperty.call(t,o)||Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[o]}})}),t},o.export=function(e,t,o){Object.defineProperty(e,t,{enumerable:!0,get:o})}},{}]},["3wl5Y"],"3wl5Y","parcelRequire4dc0",{}); \ No newline at end of file +!function(e,t,o,n,i,r,a,c){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof s[n]&&s[n],l=d.i||{},u=d.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function w(t,o){if(!u[t]){if(!e[t]){if(i[t])return i[t];var r="function"==typeof s[n]&&s[n];if(!o&&r)return r(t,!0);if(d)return d(t,!0);if(f&&"string"==typeof t)return f(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(o){var n=e[t][1][o];return null!=n?n:o},l.cache={};var c=u[t]=new w.Module(t);e[t][0].call(c.exports,l,c,c.exports,s)}return u[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:w(t)}}w.isParcelRequire=!0,w.Module=function(e){this.id=e,this.bundle=w,this.require=f,this.exports={}},w.modules=e,w.cache=u,w.parent=d,w.distDir=void 0,w.publicUrl=void 0,w.devServer=void 0,w.i=l,w.register=function(t,o){e[t]=[function(e,t){t.exports=o},{}]},Object.defineProperty(w,"root",{get:function(){return s[n]}}),s[n]=w;for(var p=0;pc);let r=e=>new Promise((t,o)=>{let n=document.createElement("script");n.src=e,n.onload=t,n.onerror=o,document.body.appendChild(n)}),a=e=>({mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",ogv:"video/ogg",mp3:"audio/mp3",wav:"audio/wav",flv:"video/x-flv",mov:"video/quicktime",avi:"video/x-msvideo",wmv:"video/x-ms-wmv",mpd:"application/dash+xml",m3u8:"application/x-mpegURL"})[e.split("?")[0].split("#")[0].split(".").pop().toLowerCase()]||"application/octet-stream";function c(e){let t=!1,o=null,n=null,i=()=>new Promise((i,a)=>{window.__onGCastApiAvailable=r=>{if(r){let r=window.cast.framework.CastContext.getInstance();r.setOptions({receiverApplicationId:window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),r.addEventListener(window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,t=>{let i=window.cast.framework.SessionState;switch(n=t.sessionState,o=t.session,t.sessionState){case i.NO_SESSION:e.onStateChange?.("disconnected"),s("disconnected");break;case i.SESSION_STARTING:e.onStateChange?.("connecting"),s("connecting");break;case i.SESSION_STARTED:e.onStateChange?.("connected"),s("connected");break;case i.SESSION_ENDING:e.onStateChange?.("disconnecting"),s("disconnecting");break;case i.SESSION_RESUMED:e.onStateChange?.("connected"),s("connected")}}),r.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED,t=>{let o=window.cast.framework.CastState;switch(t.castState){case o.NO_DEVICES_AVAILABLE:e.onCastAvailable?.(!1);break;case o.NOT_CONNECTED:case o.CONNECTING:case o.CONNECTED:e.onCastAvailable?.(!0)}}),t=!0,i()}else a(Error("Cast API is not available"))},window.chrome&&window.chrome.cast||r(e.sdk||"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(a)}),c=(t,o)=>{let n=e.url||t.option.url,i=new window.chrome.cast.media.MediaInfo(n,e.mimeType||a(n)),r=new window.chrome.cast.media.LoadRequest(i);o.loadMedia(r).then(()=>{t.notice.show="Casting started",e.onCastStart?.()}).catch(o=>{throw t.notice.show="Error casting media",e.onError?.(o),o})},s=e=>{let t=document.querySelector(".art-icon-cast");if(t)switch(e){case"connected":t.style.color="red";break;case"connecting":case"disconnecting":t.style.color="orange";break;default:t.style.color="white"}};return async r=>(r.controls.add({name:"chromecast",position:"right",tooltip:"Chromecast",html:`${e.icon||''}`,click:async()=>{if(!t)try{await i()}catch(t){throw r.notice.show="Failed to initialize Cast API",e.onError?.(t),t}let n=window.cast.framework.CastContext.getInstance();if(o)c(r,o);else try{let e=await n.requestSession();c(r,e)}catch(t){throw r.notice.show="Error connecting to cast session",e.onError?.(t),t}}}),{name:"artplayerPluginChromecast",getCastState:()=>n,isCasting:()=>null!==o})}"undefined"!=typeof window&&(window.artplayerPluginChromecast=c)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6ykb1":[function(e,t,o,n){o.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},o.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},o.exportAll=function(e,t){return Object.keys(e).forEach(function(o){"default"===o||"__esModule"===o||Object.prototype.hasOwnProperty.call(t,o)||Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[o]}})}),t},o.export=function(e,t,o){Object.defineProperty(e,t,{enumerable:!0,get:o})}},{}]},["18Aaf"],"18Aaf","parcelRequire4dc0",{}); \ No newline at end of file diff --git a/packages/artplayer-plugin-chromecast/dist/artplayer-plugin-chromecast.legacy.js b/packages/artplayer-plugin-chromecast/dist/artplayer-plugin-chromecast.legacy.js index 86dfe2a45..1c079ce83 100644 --- a/packages/artplayer-plugin-chromecast/dist/artplayer-plugin-chromecast.legacy.js +++ b/packages/artplayer-plugin-chromecast/dist/artplayer-plugin-chromecast.legacy.js @@ -5,4 +5,4 @@ * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,t,r,n,o,i,a,c){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof s[n]&&s[n],l=u.i||{},f=u.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!f[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof s[n]&&s[n];if(!r&&i)return i(t,!0);if(u)return u(t,!0);if(p&&"string"==typeof t)return p(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},l.cache={};var c=f[t]=new d.Module(t);e[t][0].call(c.exports,l,c,c.exports,s)}return f[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=p,this.exports={}},d.modules=e,d.cache=f,d.parent=u,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=l,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return s[n]}}),s[n]=d;for(var _=0;_'.concat(e.icon||'',""),click:(0,i._)(function(){var i,u,l,f,p;return(0,a._)(this,function(a){switch(a.label){case 0:if(r)return[3,4];a.label=1;case 1:return a.trys.push([1,3,,4]),[4,new Promise(function(t,i){var a;window.__onGCastApiAvailable=function(a){if(a){var c=window.cast.framework.CastContext.getInstance();c.setOptions({receiverApplicationId:window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),c.addEventListener(window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,function(t){var r,i,a,c,u,l=window.cast.framework.SessionState;switch(o=t.sessionState,n=t.session,t.sessionState){case l.NO_SESSION:null==(r=e.onStateChange)||r.call(e,"disconnected"),s("disconnected");break;case l.SESSION_STARTING:null==(i=e.onStateChange)||i.call(e,"connecting"),s("connecting");break;case l.SESSION_STARTED:null==(a=e.onStateChange)||a.call(e,"connected"),s("connected");break;case l.SESSION_ENDING:null==(c=e.onStateChange)||c.call(e,"disconnecting"),s("disconnecting");break;case l.SESSION_RESUMED:null==(u=e.onStateChange)||u.call(e,"connected"),s("connected")}}),c.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED,function(t){var r,n,o,i=window.cast.framework.CastState;switch(t.castState){case i.NO_DEVICES_AVAILABLE:null==(r=e.onCastAvailable)||r.call(e,!1);break;case i.NOT_CONNECTED:null==(n=e.onCastAvailable)||n.call(e,!0);break;case i.CONNECTING:case i.CONNECTED:null==(o=e.onCastAvailable)||o.call(e,!0)}}),r=!0,t()}else i(Error("Cast API is not available"))},window.chrome&&window.chrome.cast||(a=e.sdk||"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1",new Promise(function(e,t){var r=document.createElement("script");r.src=a,r.onload=e,r.onerror=t,document.body.appendChild(r)})).catch(i)})];case 2:return a.sent(),[3,4];case 3:throw i=a.sent(),t.notice.show="Failed to initialize Cast API",null==(u=e.onError)||u.call(e,i),i;case 4:if(l=window.cast.framework.CastContext.getInstance(),!n)return[3,5];return c(t,n),[3,8];case 5:return a.trys.push([5,7,,8]),[4,l.requestSession()];case 6:return c(t,a.sent()),[3,8];case 7:throw f=a.sent(),t.notice.show="Error connecting to cast session",null==(p=e.onError)||p.call(e,f),f;case 8:return[2]}})})}),[2,{name:"artplayerPluginChromecast",getCastState:function(){return o},isCasting:function(){return null!==n}}]})}),function(e){return t.apply(this,arguments)}}"undefined"!=typeof window&&(window.artplayerPluginChromecast=c)},{"@swc/helpers/_/_async_to_generator":"eONSn","@swc/helpers/_/_ts_generator":"6Xyd0","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],eONSn:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t,r,n,o,i,a){try{var c=e[i](a),s=c.value}catch(e){r(e);return}c.done?t(s):Promise.resolve(s).then(n,o)}function a(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var a=e.apply(t,r);function c(e){i(a,n,o,c,s,"next",e)}function s(e){i(a,n,o,c,s,"throw",e)}c(void 0)})}}o.defineInteropFlag(r),o.export(r,"_",function(){return a})},{"@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],iWrD0:[function(e,t,r,n){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})}),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}],"6Xyd0":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"_",function(){return i.__generator});var i=e("tslib")},{tslib:"c0d7h","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],c0d7h:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"__extends",function(){return c}),o.export(r,"__assign",function(){return s}),o.export(r,"__rest",function(){return u}),o.export(r,"__decorate",function(){return l}),o.export(r,"__param",function(){return f}),o.export(r,"__esDecorate",function(){return p}),o.export(r,"__runInitializers",function(){return d}),o.export(r,"__propKey",function(){return _}),o.export(r,"__setFunctionName",function(){return y}),o.export(r,"__metadata",function(){return h}),o.export(r,"__awaiter",function(){return v}),o.export(r,"__generator",function(){return m}),o.export(r,"__createBinding",function(){return w}),o.export(r,"__exportStar",function(){return b}),o.export(r,"__values",function(){return g}),o.export(r,"__read",function(){return x}),o.export(r,"__spread",function(){return S}),o.export(r,"__spreadArrays",function(){return j}),o.export(r,"__spreadArray",function(){return O}),o.export(r,"__await",function(){return E}),o.export(r,"__asyncGenerator",function(){return P}),o.export(r,"__asyncDelegator",function(){return C}),o.export(r,"__asyncValues",function(){return I}),o.export(r,"__makeTemplateObject",function(){return T}),o.export(r,"__importStar",function(){return k}),o.export(r,"__importDefault",function(){return N}),o.export(r,"__classPrivateFieldGet",function(){return R}),o.export(r,"__classPrivateFieldSet",function(){return F}),o.export(r,"__classPrivateFieldIn",function(){return M}),o.export(r,"__addDisposableResource",function(){return G}),o.export(r,"__disposeResources",function(){return q}),o.export(r,"__rewriteRelativeImportExtension",function(){return z});var i=e("@swc/helpers/_/_type_of"),a=function(e,t){return(a=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)};function c(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}a(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var s=function(){return(s=Object.assign||function(e){for(var t,r=1,n=arguments.length;rt.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r}function l(e,t,r,n){var o,a=arguments.length,c=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if(("undefined"==typeof Reflect?"undefined":(0,i._)(Reflect))==="object"&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(c=(a<3?o(c):a>3?o(t,r,c):o(t,r))||c);return a>3&&c&&Object.defineProperty(t,r,c),c}function f(e,t){return function(r,n){t(r,n,e)}}function p(e,t,r,n,o,a){function c(e){if(void 0!==e&&"function"!=typeof e)throw TypeError("Function expected");return e}for(var s,u=n.kind,l="getter"===u?"get":"setter"===u?"set":"value",f=!t&&e?n.static?e:e.prototype:null,p=t||(f?Object.getOwnPropertyDescriptor(f,n.name):{}),d=!1,_=r.length-1;_>=0;_--){var y={};for(var h in n)y[h]="access"===h?{}:n[h];for(var h in n.access)y.access[h]=n.access[h];y.addInitializer=function(e){if(d)throw TypeError("Cannot add initializers after decoration has completed");a.push(c(e||null))};var v=(0,r[_])("accessor"===u?{get:p.get,set:p.set}:p[l],y);if("accessor"===u){if(void 0===v)continue;if(null===v||(void 0===v?"undefined":(0,i._)(v))!=="object")throw TypeError("Object expected");(s=c(v.get))&&(p.get=s),(s=c(v.set))&&(p.set=s),(s=c(v.init))&&o.unshift(s)}else(s=c(v))&&("field"===u?o.unshift(s):p[l]=s)}f&&Object.defineProperty(f,n.name,p),d=!0}function d(e,t,r){for(var n=arguments.length>2,o=0;o0&&o[o.length-1])&&(6===u[0]||2===u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function x(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a}function S(){for(var e=[],t=0;t1||c(e,t)})},t&&(n[e]=t(n[e])))}function c(e,t){try{var r;(r=o[e](t)).value instanceof E?Promise.resolve(r.value.v).then(s,u):l(i[0][2],r)}catch(e){l(i[0][3],e)}}function s(e){c("next",e)}function u(e){c("throw",e)}function l(e,t){e(t),i.shift(),i.length&&c(i[0][0],i[0][1])}}function C(e){var t,r;return t={},n("next"),n("throw",function(e){throw e}),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:E(e[n](t)),done:!1}:o?o(t):t}:o}}function I(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=g(e),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise(function(n,o){var i,a,c;i=n,a=o,c=(t=e[r](t)).done,Promise.resolve(t.value).then(function(e){i({value:e,done:c})},a)})}}}function T(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var D=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},A=function(e){return(A=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t})(e)};function k(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=A(e),n=0;n'.concat(e.icon||'',""),click:(0,i._)(function(){var i,u,l,f,p;return(0,c._)(this,function(c){switch(c.label){case 0:if(r)return[3,4];c.label=1;case 1:return c.trys.push([1,3,,4]),[4,new Promise(function(t,i){var c;window.__onGCastApiAvailable=function(c){if(c){var a=window.cast.framework.CastContext.getInstance();a.setOptions({receiverApplicationId:window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),a.addEventListener(window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,function(t){var r,i,c,a,u,l=window.cast.framework.SessionState;switch(o=t.sessionState,n=t.session,t.sessionState){case l.NO_SESSION:null==(r=e.onStateChange)||r.call(e,"disconnected"),s("disconnected");break;case l.SESSION_STARTING:null==(i=e.onStateChange)||i.call(e,"connecting"),s("connecting");break;case l.SESSION_STARTED:null==(c=e.onStateChange)||c.call(e,"connected"),s("connected");break;case l.SESSION_ENDING:null==(a=e.onStateChange)||a.call(e,"disconnecting"),s("disconnecting");break;case l.SESSION_RESUMED:null==(u=e.onStateChange)||u.call(e,"connected"),s("connected")}}),a.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED,function(t){var r,n,o,i=window.cast.framework.CastState;switch(t.castState){case i.NO_DEVICES_AVAILABLE:null==(r=e.onCastAvailable)||r.call(e,!1);break;case i.NOT_CONNECTED:null==(n=e.onCastAvailable)||n.call(e,!0);break;case i.CONNECTING:case i.CONNECTED:null==(o=e.onCastAvailable)||o.call(e,!0)}}),r=!0,t()}else i(Error("Cast API is not available"))},window.chrome&&window.chrome.cast||(c=e.sdk||"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1",new Promise(function(e,t){var r=document.createElement("script");r.src=c,r.onload=e,r.onerror=t,document.body.appendChild(r)})).catch(i)})];case 2:return c.sent(),[3,4];case 3:throw i=c.sent(),t.notice.show="Failed to initialize Cast API",null==(u=e.onError)||u.call(e,i),i;case 4:if(l=window.cast.framework.CastContext.getInstance(),!n)return[3,5];return a(t,n),[3,8];case 5:return c.trys.push([5,7,,8]),[4,l.requestSession()];case 6:return a(t,c.sent()),[3,8];case 7:throw f=c.sent(),t.notice.show="Error connecting to cast session",null==(p=e.onError)||p.call(e,f),f;case 8:return[2]}})})}),[2,{name:"artplayerPluginChromecast",getCastState:function(){return o},isCasting:function(){return null!==n}}]})}),function(e){return t.apply(this,arguments)}}"undefined"!=typeof window&&(window.artplayerPluginChromecast=a)},{"@swc/helpers/cjs/_async_to_generator.cjs":"cZn0e","@swc/helpers/cjs/_ts_generator.cjs":"eltGh","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],cZn0e:[function(e,t,r,n){"use strict";function o(e,t,r,n,o,i,c){try{var a=e[i](c),s=a.value}catch(e){r(e);return}a.done?t(s):Promise.resolve(s).then(n,o)}r._=function(e){return function(){var t=this,r=arguments;return new Promise(function(n,i){var c=e.apply(t,r);function a(e){o(c,n,i,a,s,"next",e)}function s(e){o(c,n,i,a,s,"throw",e)}a(void 0)})}}},{}],eltGh:[function(e,t,r,n){"use strict";r._=e("eb260df52bffddd").__generator},{eb260df52bffddd:"6yrAu"}],"6yrAu":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"__extends",function(){return a}),o.export(r,"__assign",function(){return s}),o.export(r,"__rest",function(){return u}),o.export(r,"__decorate",function(){return l}),o.export(r,"__param",function(){return f}),o.export(r,"__esDecorate",function(){return p}),o.export(r,"__runInitializers",function(){return d}),o.export(r,"__propKey",function(){return _}),o.export(r,"__setFunctionName",function(){return y}),o.export(r,"__metadata",function(){return h}),o.export(r,"__awaiter",function(){return v}),o.export(r,"__generator",function(){return w}),o.export(r,"__createBinding",function(){return m}),o.export(r,"__exportStar",function(){return b}),o.export(r,"__values",function(){return g}),o.export(r,"__read",function(){return x}),o.export(r,"__spread",function(){return S}),o.export(r,"__spreadArrays",function(){return j}),o.export(r,"__spreadArray",function(){return O}),o.export(r,"__await",function(){return E}),o.export(r,"__asyncGenerator",function(){return P}),o.export(r,"__asyncDelegator",function(){return C}),o.export(r,"__asyncValues",function(){return I}),o.export(r,"__makeTemplateObject",function(){return T}),o.export(r,"__importStar",function(){return D}),o.export(r,"__importDefault",function(){return N}),o.export(r,"__classPrivateFieldGet",function(){return R}),o.export(r,"__classPrivateFieldSet",function(){return M}),o.export(r,"__classPrivateFieldIn",function(){return G}),o.export(r,"__addDisposableResource",function(){return F}),o.export(r,"__disposeResources",function(){return L}),o.export(r,"__rewriteRelativeImportExtension",function(){return z});var i=e("@swc/helpers/cjs/_type_of.cjs"),c=function(e,t){return(c=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}c(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var s=function(){return(s=Object.assign||function(e){for(var t,r=1,n=arguments.length;rt.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r}function l(e,t,r,n){var o,c=arguments.length,a=c<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if(("undefined"==typeof Reflect?"undefined":(0,i._)(Reflect))==="object"&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(c<3?o(a):c>3?o(t,r,a):o(t,r))||a);return c>3&&a&&Object.defineProperty(t,r,a),a}function f(e,t){return function(r,n){t(r,n,e)}}function p(e,t,r,n,o,c){function a(e){if(void 0!==e&&"function"!=typeof e)throw TypeError("Function expected");return e}for(var s,u=n.kind,l="getter"===u?"get":"setter"===u?"set":"value",f=!t&&e?n.static?e:e.prototype:null,p=t||(f?Object.getOwnPropertyDescriptor(f,n.name):{}),d=!1,_=r.length-1;_>=0;_--){var y={};for(var h in n)y[h]="access"===h?{}:n[h];for(var h in n.access)y.access[h]=n.access[h];y.addInitializer=function(e){if(d)throw TypeError("Cannot add initializers after decoration has completed");c.push(a(e||null))};var v=(0,r[_])("accessor"===u?{get:p.get,set:p.set}:p[l],y);if("accessor"===u){if(void 0===v)continue;if(null===v||(void 0===v?"undefined":(0,i._)(v))!=="object")throw TypeError("Object expected");(s=a(v.get))&&(p.get=s),(s=a(v.set))&&(p.set=s),(s=a(v.init))&&o.unshift(s)}else(s=a(v))&&("field"===u?o.unshift(s):p[l]=s)}f&&Object.defineProperty(f,n.name,p),d=!0}function d(e,t,r){for(var n=arguments.length>2,o=0;o0&&o[o.length-1])&&(6===u[0]||2===u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function x(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),c=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)c.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return c}function S(){for(var e=[],t=0;t1||a(e,t)})},t&&(n[e]=t(n[e])))}function a(e,t){try{var r;(r=o[e](t)).value instanceof E?Promise.resolve(r.value.v).then(s,u):l(i[0][2],r)}catch(e){l(i[0][3],e)}}function s(e){a("next",e)}function u(e){a("throw",e)}function l(e,t){e(t),i.shift(),i.length&&a(i[0][0],i[0][1])}}function C(e){var t,r;return t={},n("next"),n("throw",function(e){throw e}),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:E(e[n](t)),done:!1}:o?o(t):t}:o}}function I(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=g(e),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise(function(n,o){var i,c,a;i=n,c=o,a=(t=e[r](t)).done,Promise.resolve(t.value).then(function(e){i({value:e,done:a})},c)})}}}function T(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var A=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},k=function(e){return(k=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t})(e)};function D(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=k(e),n=0;n","packages/artplayer-plugin-chromecast/src/index.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcelRequireName,\n externals,\n distDir,\n publicUrl,\n devServer\n) {\n /* eslint-disable no-undef */\n var globalObject =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n /* eslint-enable no-undef */\n\n // Save the require from previous bundle to this closure if any\n var previousRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n\n var importMap = previousRequire.i || {};\n var cache = previousRequire.cache || {};\n // Do not use `require` to prevent Webpack from trying to bundle this call\n var nodeRequire =\n typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n\n function newRequire(name, jumped) {\n if (!cache[name]) {\n if (!modules[name]) {\n if (externals[name]) {\n return externals[name];\n }\n // if we cannot find the module within our internal map or\n // cache jump to the current global require ie. the last bundle\n // that was added to the page.\n var currentRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n if (!jumped && currentRequire) {\n return currentRequire(name, true);\n }\n\n // If there are other bundles on this page the require from the\n // previous one is saved to 'previousRequire'. Repeat this as\n // many times as there are bundles until the module is found or\n // we exhaust the require chain.\n if (previousRequire) {\n return previousRequire(name, true);\n }\n\n // Try the node require function if it exists.\n if (nodeRequire && typeof name === 'string') {\n return nodeRequire(name);\n }\n\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n }\n\n localRequire.resolve = resolve;\n localRequire.cache = {};\n\n var module = (cache[name] = new newRequire.Module(name));\n\n modules[name][0].call(\n module.exports,\n localRequire,\n module,\n module.exports,\n globalObject\n );\n }\n\n return cache[name].exports;\n\n function localRequire(x) {\n var res = localRequire.resolve(x);\n return res === false ? {} : newRequire(res);\n }\n\n function resolve(x) {\n var id = modules[name][1][x];\n return id != null ? id : x;\n }\n }\n\n function Module(moduleName) {\n this.id = moduleName;\n this.bundle = newRequire;\n this.require = nodeRequire;\n this.exports = {};\n }\n\n newRequire.isParcelRequire = true;\n newRequire.Module = Module;\n newRequire.modules = modules;\n newRequire.cache = cache;\n newRequire.parent = previousRequire;\n newRequire.distDir = distDir;\n newRequire.publicUrl = publicUrl;\n newRequire.devServer = devServer;\n newRequire.i = importMap;\n newRequire.register = function (id, exports) {\n modules[id] = [\n function (require, module) {\n module.exports = exports;\n },\n {},\n ];\n };\n\n // Only insert newRequire.load when it is actually used.\n // The code in this file is linted against ES5, so dynamic import is not allowed.\n // INSERT_LOAD_HERE\n\n Object.defineProperty(newRequire, 'root', {\n get: function () {\n return globalObject[parcelRequireName];\n },\n });\n\n globalObject[parcelRequireName] = newRequire;\n\n for (var i = 0; i < entry.length; i++) {\n newRequire(entry[i]);\n }\n\n if (mainEntry) {\n // Expose entry point to Node, AMD or browser globals\n // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js\n var mainExports = newRequire(mainEntry);\n\n // CommonJS\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = mainExports;\n\n // RequireJS\n } else if (typeof define === 'function' && define.amd) {\n define(function () {\n return mainExports;\n });\n }\n }\n})({\"cv67D\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>artplayerPluginChromecast);\nconst loadScript = (src)=>new Promise((resolve, reject)=>{\n const script = document.createElement('script');\n script.src = src;\n script.onload = resolve;\n script.onerror = reject;\n document.body.appendChild(script);\n });\nconst getMimeType = (url)=>{\n const extension = url.split('?')[0].split('#')[0].split('.').pop().toLowerCase();\n const mimeTypes = {\n mp4: 'video/mp4',\n webm: 'video/webm',\n ogg: 'video/ogg',\n ogv: 'video/ogg',\n mp3: 'audio/mp3',\n wav: 'audio/wav',\n flv: 'video/x-flv',\n mov: 'video/quicktime',\n avi: 'video/x-msvideo',\n wmv: 'video/x-ms-wmv',\n mpd: 'application/dash+xml',\n m3u8: 'application/x-mpegURL'\n };\n return mimeTypes[extension] || 'application/octet-stream';\n};\nfunction artplayerPluginChromecast(option) {\n const DEFAULT_ICON = ``;\n const DEFAULT_SDK = 'https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1';\n let isCastInitialized = false;\n let castSession = null;\n let castState = null;\n const initializeCastApi = ()=>{\n return new Promise((resolve, reject)=>{\n window['__onGCastApiAvailable'] = (isAvailable)=>{\n if (isAvailable) {\n const context = window.cast.framework.CastContext.getInstance();\n context.setOptions({\n receiverApplicationId: window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,\n autoJoinPolicy: window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED\n });\n // Listen for session state changes\n context.addEventListener(window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED, (event)=>{\n const SessionState = window.cast.framework.SessionState;\n castState = event.sessionState;\n castSession = event.session;\n switch(event.sessionState){\n case SessionState.NO_SESSION:\n option.onStateChange?.('disconnected');\n updateCastButton('disconnected');\n break;\n case SessionState.SESSION_STARTING:\n option.onStateChange?.('connecting');\n updateCastButton('connecting');\n break;\n case SessionState.SESSION_STARTED:\n option.onStateChange?.('connected');\n updateCastButton('connected');\n break;\n case SessionState.SESSION_ENDING:\n option.onStateChange?.('disconnecting');\n updateCastButton('disconnecting');\n break;\n case SessionState.SESSION_RESUMED:\n option.onStateChange?.('connected');\n updateCastButton('connected');\n break;\n }\n });\n // Listen for cast state changes\n context.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED, (event)=>{\n const CastState = window.cast.framework.CastState;\n switch(event.castState){\n case CastState.NO_DEVICES_AVAILABLE:\n option.onCastAvailable?.(false);\n break;\n case CastState.NOT_CONNECTED:\n option.onCastAvailable?.(true);\n break;\n case CastState.CONNECTING:\n case CastState.CONNECTED:\n option.onCastAvailable?.(true);\n break;\n }\n });\n isCastInitialized = true;\n resolve();\n } else reject(new Error('Cast API is not available'));\n };\n if (!window.chrome || !window.chrome.cast) loadScript(option.sdk || DEFAULT_SDK).catch(reject);\n });\n };\n const castVideo = (art, session)=>{\n const url = option.url || art.option.url;\n const mediaInfo = new window.chrome.cast.media.MediaInfo(url, option.mimeType || getMimeType(url));\n const request = new window.chrome.cast.media.LoadRequest(mediaInfo);\n session.loadMedia(request).then(()=>{\n art.notice.show = 'Casting started';\n option.onCastStart?.();\n }).catch((error)=>{\n art.notice.show = 'Error casting media';\n option.onError?.(error);\n throw error;\n });\n };\n const updateCastButton = (state)=>{\n const button = document.querySelector('.art-icon-cast');\n if (button) switch(state){\n case 'connected':\n button.style.color = 'red';\n break;\n case 'connecting':\n case 'disconnecting':\n button.style.color = 'orange';\n break;\n case 'disconnected':\n default:\n button.style.color = 'white';\n break;\n }\n };\n return async (art)=>{\n art.controls.add({\n name: 'chromecast',\n position: 'right',\n tooltip: 'Chromecast',\n html: `${option.icon || DEFAULT_ICON}`,\n click: async ()=>{\n if (!isCastInitialized) try {\n await initializeCastApi();\n } catch (error) {\n art.notice.show = 'Failed to initialize Cast API';\n option.onError?.(error);\n throw error;\n }\n const context = window.cast.framework.CastContext.getInstance();\n if (castSession) castVideo(art, castSession);\n else try {\n const session = await context.requestSession();\n castVideo(art, session);\n } catch (error) {\n art.notice.show = 'Error connecting to cast session';\n option.onError?.(error);\n throw error;\n }\n }\n });\n return {\n name: 'artplayerPluginChromecast',\n getCastState: ()=>castState,\n isCasting: ()=>castSession !== null\n };\n };\n}\nif (typeof window !== 'undefined') window['artplayerPluginChromecast'] = artplayerPluginChromecast;\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"5lQoW\"}],\"5lQoW\":[function(require,module,exports,__globalThis) {\nexports.interopDefault = function(a) {\n return a && a.__esModule ? a : {\n default: a\n };\n};\nexports.defineInteropFlag = function(a) {\n Object.defineProperty(a, '__esModule', {\n value: true\n });\n};\nexports.exportAll = function(source, dest) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) return;\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function() {\n return source[key];\n }\n });\n });\n return dest;\n};\nexports.export = function(dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get\n });\n};\n\n},{}]},[\"cv67D\"], \"cv67D\", \"parcelRequire4dc0\", {})\nlet {default: _default, } = parcelRequire4dc0(\"cv67D\");\nexport {_default as default, };\n\n//# sourceMappingURL=index.js.map\n","const loadScript = (src) =>\n new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = src;\n script.onload = resolve;\n script.onerror = reject;\n document.body.appendChild(script);\n });\n\nconst getMimeType = (url) => {\n const extension = url.split('?')[0].split('#')[0].split('.').pop().toLowerCase();\n const mimeTypes = {\n mp4: 'video/mp4',\n webm: 'video/webm',\n ogg: 'video/ogg',\n ogv: 'video/ogg',\n mp3: 'audio/mp3',\n wav: 'audio/wav',\n flv: 'video/x-flv',\n mov: 'video/quicktime',\n avi: 'video/x-msvideo',\n wmv: 'video/x-ms-wmv',\n mpd: 'application/dash+xml',\n m3u8: 'application/x-mpegURL',\n };\n return mimeTypes[extension] || 'application/octet-stream';\n};\n\nexport default function artplayerPluginChromecast(option) {\n const DEFAULT_ICON = ``;\n const DEFAULT_SDK = 'https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1';\n\n let isCastInitialized = false;\n let castSession = null;\n let castState = null;\n\n const initializeCastApi = () => {\n return new Promise((resolve, reject) => {\n window['__onGCastApiAvailable'] = (isAvailable) => {\n if (isAvailable) {\n const context = window.cast.framework.CastContext.getInstance();\n context.setOptions({\n receiverApplicationId: window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,\n autoJoinPolicy: window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED,\n });\n\n // Listen for session state changes\n context.addEventListener(\n window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,\n (event) => {\n const SessionState = window.cast.framework.SessionState;\n castState = event.sessionState;\n castSession = event.session;\n\n switch (event.sessionState) {\n case SessionState.NO_SESSION:\n option.onStateChange?.('disconnected');\n updateCastButton('disconnected');\n break;\n case SessionState.SESSION_STARTING:\n option.onStateChange?.('connecting');\n updateCastButton('connecting');\n break;\n case SessionState.SESSION_STARTED:\n option.onStateChange?.('connected');\n updateCastButton('connected');\n break;\n case SessionState.SESSION_ENDING:\n option.onStateChange?.('disconnecting');\n updateCastButton('disconnecting');\n break;\n case SessionState.SESSION_RESUMED:\n option.onStateChange?.('connected');\n updateCastButton('connected');\n break;\n }\n },\n );\n\n // Listen for cast state changes\n context.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED, (event) => {\n const CastState = window.cast.framework.CastState;\n switch (event.castState) {\n case CastState.NO_DEVICES_AVAILABLE:\n option.onCastAvailable?.(false);\n break;\n case CastState.NOT_CONNECTED:\n option.onCastAvailable?.(true);\n break;\n case CastState.CONNECTING:\n case CastState.CONNECTED:\n option.onCastAvailable?.(true);\n break;\n }\n });\n\n isCastInitialized = true;\n resolve();\n } else {\n reject(new Error('Cast API is not available'));\n }\n };\n if (!window.chrome || !window.chrome.cast) {\n loadScript(option.sdk || DEFAULT_SDK).catch(reject);\n }\n });\n };\n\n const castVideo = (art, session) => {\n const url = option.url || art.option.url;\n const mediaInfo = new window.chrome.cast.media.MediaInfo(url, option.mimeType || getMimeType(url));\n const request = new window.chrome.cast.media.LoadRequest(mediaInfo);\n session\n .loadMedia(request)\n .then(() => {\n art.notice.show = 'Casting started';\n option.onCastStart?.();\n })\n .catch((error) => {\n art.notice.show = 'Error casting media';\n option.onError?.(error);\n throw error;\n });\n };\n\n const updateCastButton = (state) => {\n const button = document.querySelector('.art-icon-cast');\n if (button) {\n switch (state) {\n case 'connected':\n button.style.color = 'red';\n break;\n case 'connecting':\n case 'disconnecting':\n button.style.color = 'orange';\n break;\n case 'disconnected':\n default:\n button.style.color = 'white';\n break;\n }\n }\n };\n\n return async (art) => {\n art.controls.add({\n name: 'chromecast',\n position: 'right',\n tooltip: 'Chromecast',\n html: `${option.icon || DEFAULT_ICON}`,\n click: async () => {\n if (!isCastInitialized) {\n try {\n await initializeCastApi();\n } catch (error) {\n art.notice.show = 'Failed to initialize Cast API';\n option.onError?.(error);\n throw error;\n }\n }\n\n const context = window.cast.framework.CastContext.getInstance();\n if (castSession) {\n castVideo(art, castSession);\n } else {\n try {\n const session = await context.requestSession();\n castVideo(art, session);\n } catch (error) {\n art.notice.show = 'Error connecting to cast session';\n option.onError?.(error);\n throw error;\n }\n }\n },\n });\n\n return {\n name: 'artplayerPluginChromecast',\n getCastState: () => castState,\n isCasting: () => castSession !== null,\n };\n };\n}\n\nif (typeof window !== 'undefined') {\n window['artplayerPluginChromecast'] = artplayerPluginChromecast;\n}\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (\n key === 'default' ||\n key === '__esModule' ||\n Object.prototype.hasOwnProperty.call(dest, key)\n ) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n"],"names":["modules","entry","mainEntry","parcelRequireName","externals","distDir","publicUrl","devServer","globalObject","globalThis","self","window","global","previousRequire","importMap","i","cache","nodeRequire","module","require","bind","newRequire","name","jumped","currentRequire","err","Error","code","localRequire","resolve","x","id","Module","call","exports","res","isParcelRequire","moduleName","bundle","parent","register","Object","defineProperty","get","length","mainExports","define","amd","__globalThis","parcelHelpers","defineInteropFlag","export","artplayerPluginChromecast","loadScript","src","Promise","reject","script","document","createElement","onload","onerror","body","appendChild","getMimeType","url","mimeTypes","mp4","webm","ogg","ogv","mp3","wav","flv","mov","avi","wmv","mpd","m3u8","split","pop","toLowerCase","option","isCastInitialized","castSession","castState","initializeCastApi","isAvailable","context","cast","framework","CastContext","getInstance","setOptions","receiverApplicationId","chrome","media","DEFAULT_MEDIA_RECEIVER_APP_ID","autoJoinPolicy","AutoJoinPolicy","ORIGIN_SCOPED","addEventListener","CastContextEventType","SESSION_STATE_CHANGED","event","SessionState","sessionState","session","NO_SESSION","onStateChange","updateCastButton","SESSION_STARTING","SESSION_STARTED","SESSION_ENDING","SESSION_RESUMED","CAST_STATE_CHANGED","CastState","NO_DEVICES_AVAILABLE","onCastAvailable","NOT_CONNECTED","CONNECTING","CONNECTED","sdk","catch","castVideo","art","mediaInfo","MediaInfo","mimeType","request","LoadRequest","loadMedia","then","notice","show","onCastStart","error","onError","state","button","querySelector","style","color","controls","add","position","tooltip","html","icon","click","requestSession","getCastState","isCasting","interopDefault","a","__esModule","default","value","exportAll","source","dest","keys","forEach","key","prototype","hasOwnProperty","enumerable","destName","_default","parcelRequire4dc0"],"version":3,"file":"index.js.map"} \ No newline at end of file diff --git a/packages/artplayer-plugin-chromecast/package.json b/packages/artplayer-plugin-chromecast/package.json index 1e5d81577..894344617 100644 --- a/packages/artplayer-plugin-chromecast/package.json +++ b/packages/artplayer-plugin-chromecast/package.json @@ -2,10 +2,16 @@ "license": "MIT", "version": "1.0.1", "name": "artplayer-plugin-chromecast", - "types": "types/artplayer-plugin-chromecast.d.ts", "description": "Chromecast plugin for ArtPlayer", "main": "dist/artplayer-plugin-chromecast.js", "legacy": "dist/artplayer-plugin-chromecast.legacy.js", + "module": "dist/artplayer-plugin-chromecast.esm.js", + "types": "types/artplayer-plugin-chromecast.d.ts", + "exports": { + "import": "./dist/artplayer-plugin-chromecast.esm.js", + "require": "./dist/artplayer-plugin-chromecast.js", + "default": "./dist/artplayer-plugin-chromecast.js" + }, "author": "Harvey Zack ", "browserslist": "last 1 Chrome version", "homepage": "https://artplayer.org", @@ -21,4 +27,4 @@ "video", "player" ] -} +} \ No newline at end of file diff --git a/packages/artplayer-plugin-danmuku-mask/dist/artplayer-plugin-danmuku-mask.esm.js b/packages/artplayer-plugin-danmuku-mask/dist/artplayer-plugin-danmuku-mask.esm.js new file mode 100644 index 000000000..3970b48f7 --- /dev/null +++ b/packages/artplayer-plugin-danmuku-mask/dist/artplayer-plugin-danmuku-mask.esm.js @@ -0,0 +1,4981 @@ + +/*! + * artplayer-plugin-danmuku-mask.js v1.0.0 + * Github: https://github.com/zhw2590582/ArtPlayer + * (c) 2017-2025 Harvey Zack + * Released under the MIT License. + */ + +!function(e,t,r,n,s,a,o,l){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof i[n]&&i[n],p=u.i||{},c=u.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!c[t]){if(!e[t]){if(s[t])return s[t];var a="function"==typeof i[n]&&i[n];if(!r&&a)return a(t,!0);if(u)return u(t,!0);if(d&&"string"==typeof t)return d(t);var o=Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}p.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},p.cache={};var l=c[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,i)}return c[t].exports;function p(e){var t=p.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=d,this.exports={}},f.modules=e,f.cache=c,f.parent=u,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=p,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return i[n]}}),i[n]=f;for(var m=0;ml);var a=e("@tensorflow/tfjs-core");e("@tensorflow/tfjs-backend-webgl"),e("@tensorflow/tfjs-backend-cpu");var o=e("@tensorflow-models/body-segmentation");function l(e={}){return t=>{let{template:{$video:r,$danmuku:n}}=t,s=null,l=null,i=null,u=null,p=!1,c={solutionPath:e.solutionPath||"https://cdn.jsdelivr.net/npm/@mediapipe/selfie_segmentation",modelSelection:e.modelSelection||1,smoothSegmentation:void 0===e.smoothSegmentation||e.smoothSegmentation,minDetectionConfidence:e.minDetectionConfidence||.5,minTrackingConfidence:e.minTrackingConfidence||.5,selfieMode:e.selfieMode||!1,drawContour:e.drawContour||!1,foregroundThreshold:e.foregroundThreshold||.5,opacity:e.opacity||1,maskBlurAmount:e.maskBlurAmount||3};async function d(){try{await a.setBackend("webgl")}catch(e){console.warn("WebGL backend not available, falling back to CPU"),await a.setBackend("cpu")}}async function f(){await d();let e=o.SupportedModels.MediaPipeSelfieSegmentation,t={runtime:"mediapipe",modelType:"general",solutionPath:c.solutionPath,modelSelection:c.modelSelection,smoothSegmentation:c.smoothSegmentation,minDetectionConfidence:c.minDetectionConfidence,minTrackingConfidence:c.minTrackingConfidence,selfieMode:c.selfieMode};try{s=await o.createSegmenter(e,t),console.log("Segmenter initialized:",s),p=!0}catch(e){console.error("Error initializing segmenter:",e),p=!1}}async function m(){if(!p||r.paused||r.ended){u=requestAnimationFrame(m);return}try{l.width=r.videoWidth,l.height=r.videoHeight;let e=await s.segmentPeople(r);if(!e||0===e.length){u=requestAnimationFrame(m);return}let t=await o.toBinaryMask(e,{r:255,g:255,b:255,a:255},{r:0,g:0,b:0,a:255},c.drawContour,c.foregroundThreshold);await o.drawMask(l,r,t,c.opacity,c.maskBlurAmount);let a=i.getImageData(0,0,l.width,l.height);i.putImageData(function(e){let t=e.data;for(let e=0;e250&&t[e+1]>250&&t[e+2]>250&&(t[e+3]=0);return e}(a),0,0),n.style.maskImage=`url(${l.toDataURL()})`}catch(e){console.error("Error in segmentBody:",e)}u=requestAnimationFrame(m)}async function h(){p||await f(),l||(i=(l=document.createElement("canvas")).getContext("2d")),Object.assign(n.style,{maskMode:"alpha",maskSize:"contain",maskRepeat:"no-repeat",backgroundSize:"contain",backgroundRepeat:"no-repeat"}),m()}function g(){n.style.maskImage="none",u&&(cancelAnimationFrame(u),u=null)}return t.on("ready",h),t.on("destroy",g),{name:"artplayerPluginDanmukuMask",start:h,stop:g}}}"undefined"!=typeof window&&(window.artplayerPluginDanmukuMask=l)},{"@tensorflow/tfjs-core":"biUij","@tensorflow/tfjs-backend-webgl":"c8bRp","@tensorflow/tfjs-backend-cpu":"hOvdB","@tensorflow-models/body-segmentation":"lcmzA","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],biUij:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),e("./base_side_effects");var a=e("./optimizers/register_optimizers"),o=e("./base");s.exportAll(o,r),(0,a.registerOptimizers)()},{"./base_side_effects":"gTsb3","./optimizers/register_optimizers":"1NAAy","./base":"2mOyX","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gTsb3:[function(e,t,r,n){var s=e("./engine");e("./flags"),e("./platforms/platform_browser"),e("./platforms/platform_node");var a=e("./ops/buffer"),o=e("./ops/cast"),l=e("./ops/clone"),i=e("./ops/print"),u=e("./tensor");(0,s.getOrMakeEngine)();let p={buffer:a.buffer,cast:o.cast,clone:l.clone,print:i.print};(0,u.setOpHandler)(p)},{"./engine":"c6qwc","./flags":"8o4LZ","./platforms/platform_browser":"brkqc","./platforms/platform_node":"a3UX5","./ops/buffer":"1EiiB","./ops/cast":"juFUN","./ops/clone":"lH8Rn","./ops/print":"l1jud","./tensor":"cfIkd"}],c6qwc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Engine",()=>v),s.export(r,"getOrMakeEngine",()=>y),s.export(r,"ENGINE",()=>b),s.export(r,"add",()=>_);var a=e("./backends/backend"),o=e("./environment"),l=e("./global_util"),i=e("./kernel_names"),u=e("./kernel_registry"),p=e("./log"),c=e("./profiler"),d=e("./tape"),f=e("./tensor"),m=e("./tensor_util"),h=e("./util");function g(e){return null!=e.kernelName}class x{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(e=>e.name)))}}}dispose(){for(let e in this.registeredVariables)this.registeredVariables[e].dispose()}}class v{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new x}async ready(){if(null!=this.pendingBackendInit)return this.pendingBackendInit.then(()=>{});if(null!=this.backendInstance)return;let e=this.getSortedBackends();for(let t=0;t{null!=e.setupFunc&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){(0,u.getKernelsForBackend)(e).forEach(t=>{null!=t.disposeFunc&&t.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(null==t)throw Error(`Cannot initialize backend ${e}, no registration found.`);try{let r=t.factory();if(!r||r instanceof a.KernelBackend||"function"!=typeof r.then)return this.registry[e]=r,{success:!0,asyncInit:!1};{let t=++this.pendingBackendInitId,n=r.then(r=>!(t!(tthis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(n),()=>this.endScope(r),()=>((r=t())instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),r))}scopedRun(e,t,r){e();try{let e=r();return t(),e}catch(e){throw t(),e}}nextTensorId(){return v.nextTensorId++}nextVariableId(){return v.nextVariableId++}clone(e){let t=b.runKernel(i.Identity,{x:e});return this.addTapeNode(this.state.activeScope.name,{x:e},[t],e=>({x:()=>b.runKernel(i.Cast,{x:e},{dtype:"float32"})}),[],{}),t}runKernel(e,t,r){if(null==this.backendName&&this.backend,null==(0,u.getKernel)(e,this.backendName))throw Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:r})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,r){let n=this.backend.numDataIds(),s=0;r.forEach(e=>{s+="complex64"===e.dtype?3:1});let a=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],o=n-t-s-a;if(o>0)throw Error(`Backend '${this.backendName}' has an internal memory leak (${o} data ids) after running '${e}'`)}runKernelFunc(e){let t,r,n,s,a=[],o=this.isTapeOn(),l=this.state.numBytes,i=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0),null==this.backendName&&this.backend;let p=g(e)?e.kernelName:null!=this.state.activeScope?this.state.activeScope.name:"";if(g(e)){let{kernelName:t,inputs:s,attrs:l}=e;null==this.backendName&&this.backend;let i=(0,u.getKernel)(t,this.backendName);h.assert(null!=i,()=>`Cannot find registered kernel '${t}' for backend '${this.backendName}'`),r=()=>{let e=this.backend.numDataIds(),r=Array.isArray(n=i.kernelFunc({inputs:s,attrs:l,backend:this.backend}))?n:[n];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(t,e,r);let u=r.map(e=>null!=e.rank?e:this.makeTensorFromTensorInfo(e));if(o){let e=this.getTensorsForGradient(t,s,u);a=this.saveTensorsForBackwardMode(e)}return u}}else{let{forwardFunc:t}=e,s=e=>{o&&(a=e.map(e=>this.keep(this.clone(e))))};r=()=>{let e=this.backend.numDataIds(),r=Array.isArray(n=this.tidy(()=>t(this.backend,s)))?n:[n];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(p,e,r),r}}let{inputs:c,attrs:d}=e,f=g(e)?null:e.backwardsFunc;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{this.ENV.getBool("DEBUG")||this.state.profiling?(s=this.profiler.profileKernel(p,c,()=>r()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(s),t=s.outputs):t=r()}),o&&this.addTapeNode(p,c,t,f,a,d),this.state.profiling&&this.state.activeProfile.kernels.push({name:p,bytesAdded:this.state.numBytes-l,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(e=>null!=c[e]?c[e].shape:null),outputShapes:t.map(e=>e.shape),kernelTimeMs:s.timeMs,extraInfo:s.extraInfo}),Array.isArray(n)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(e=>this.keep(this.clone(e)))}getTensorsForGradient(e,t,r){let n=(0,u.getGradient)(e);if(null!=n){let e,s=n.inputsToSave||[],a=n.outputsToSave||[];n.saveAllInputs?(h.assert(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),e=Object.keys(t).map(e=>t[e])):e=s.map(e=>t[e]);let o=r.filter((e,t)=>a[t]);return e.concat(o)}return[]}makeTensor(e,t,r,n){if(null==e)throw Error("Values passed to engine.makeTensor() are null");r=r||"float32",n=n||this.backend;let s=e;"string"===r&&h.isString(e[0])&&(s=e.map(e=>h.encodeString(e)));let a=n.write(s,t,r),o=new(0,f.Tensor)(t,r,a,this.nextTensorId());if(this.trackTensor(o,n),"string"===r){let e=this.state.tensorInfo.get(a),t=(0,h.bytesFromStringArray)(s);this.state.numBytes+=t-e.bytes,e.bytes=t}return o}makeTensorFromDataId(e,t,r,n){let s={dataId:e,shape:t,dtype:r=r||"float32"};return this.makeTensorFromTensorInfo(s,n)}makeTensorFromTensorInfo(e,t){let{dataId:r,shape:n,dtype:s}=e,a=new(0,f.Tensor)(n,s,r,this.nextTensorId());return this.trackTensor(a,t),a}makeVariable(e,t=!0,r,n){r=r||this.nextVariableId().toString(),null!=n&&n!==e.dtype&&(e=e.cast(n));let s=new(0,f.Variable)(e,t,r,this.nextTensorId());if(null!=this.state.registeredVariables[s.name])throw Error(`Variable with name ${s.name} was already registered`);return this.state.registeredVariables[s.name]=s,this.incRef(s,this.backend),s}trackTensor(e,t){this.state.numTensors++,"string"===e.dtype&&this.state.numStringTensors++;let r=0;"complex64"!==e.dtype&&"string"!==e.dtype&&(r=e.size*h.bytesPerElement(e.dtype)),this.state.numBytes+=r,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:r})),e instanceof f.Variable||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;let t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,"string"===e.dtype&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),"complex64"!==e.dtype&&"string"!==e.dtype){let t=e.size*h.bytesPerElement(e.dtype);this.state.numBytes-=t}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),null!=this.state.registeredVariables[e.name]&&delete this.state.registeredVariables[e.name]}memory(){let e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,null==e.reasons&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let t=this.state.numBytes,r=this.state.numTensors;for(let n of(this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(e=>e.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-r,this.state.activeProfile.kernels))n.kernelTimeMs=await n.kernelTimeMs,n.extraInfo=await n.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&0===this.state.kernelDepth}addTapeNode(e,t,r,n,s,a){let o={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:r,saved:s},l=(0,u.getGradient)(e);null!=l&&(n=l.gradFunc),null!=n&&(o.gradient=e=>(e=e.map((e,t)=>{if(null==e){let e=r[t],n=h.makeZerosTypedArray(e.size,e.dtype);return this.makeTensor(n,e.shape,e.dtype)}return e}),n(e.length>1?e:e[0],s,a))),this.state.activeTape.push(o)}keep(e){return e.kept=!0,e}startTape(){0===this.state.gradientDepth&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=(0,m.getTensorsInContainer)(e),r=new Set(t.map(e=>e.id));for(let e=0;e{e.kept||e.scopeId!==n.id||this.track(e)})}gradients(e,t,r,n=!1){if(h.assert(t.length>0,()=>"gradients() received an empty list of xs."),null!=r&&"float32"!==r.dtype)throw Error(`dy must have 'float32' dtype, but has '${r.dtype}'`);let s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));h.assert(s instanceof f.Tensor,()=>"The result y returned by f() must be a tensor.");let a=(0,d.getFilteredNodesXToY)(this.state.activeTape,t,s);if(!n&&0===a.length&&t.length>0)throw Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let e={};e[s.id]=null==r?function(e){let t=(0,h.makeOnesTypedArray)((0,h.sizeFromShape)(e),"float32");return b.makeTensor(t,e,"float32")}(s.shape):r,(0,d.backpropagateGradients)(e,a,e=>this.tidy(e),_);let n=t.map(t=>e[t.id]);return 0===this.state.gradientDepth&&(this.state.activeTape.forEach(e=>{for(let t of e.saved)t.dispose()}),this.state.activeTape=null),{value:s,grads:n}})}customGrad(e){return h.assert(h.isFunction(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{let r;h.assert(t.every(e=>e instanceof f.Tensor),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n={};return t.forEach((e,t)=>{n[t]=e}),this.runKernelFunc({forwardFunc:(n,s)=>(r=e(...t,s),h.assert(r.value instanceof f.Tensor,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),h.assert(h.isFunction(r.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),r.value),backwardsFunc:(e,n)=>{let s=r.gradFunc(e,n),a=Array.isArray(s)?s:[s];h.assert(a.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),h.assert(a.every(e=>e instanceof f.Tensor),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let o={};return a.forEach((e,t)=>{o[t]=()=>e}),o},inputs:n})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}readToGPU(e,t){return this.state.tensorInfo.get(e).backend.readToGPU(e,t)}async time(e){let t=(0,h.now)(),r=await this.backend.time(e);return r.wallMs=(0,h.now)()-t,r}track(e){return null!=this.state.activeScope&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){for(let e in this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new x,this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}}function y(){let e=(0,l.getGlobalNamespace)();if(null==e._tfengine){let t=new(0,o.Environment)(e);e._tfengine=new v(t)}return(0,o.setEnvironmentGlobal)(e._tfengine.ENV),(0,f.setTensorTracker)(()=>e._tfengine),e._tfengine}v.nextTensorId=0,v.nextVariableId=0;let b=y();function _(e,t){return b.runKernel(i.Add,{a:e,b:t})}},{"./backends/backend":"4gYBc","./environment":"h8BWL","./global_util":"b45Tz","./kernel_names":"349aa","./kernel_registry":"11iA6","./log":"dvDGk","./profiler":"d83tJ","./tape":"fvtMq","./tensor":"cfIkd","./tensor_util":"7PL4y","./util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4gYBc":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EPSILON_FLOAT32",()=>a),s.export(r,"EPSILON_FLOAT16",()=>o),s.export(r,"DataStorage",()=>l),s.export(r,"KernelBackend",()=>i);let a=1e-7,o=1e-4;class l{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}}class i{refCount(e){return u("refCount")}incRef(e){return u("incRef")}timerAvailable(){return!0}time(e){return u("time")}read(e){return u("read")}readSync(e){return u("readSync")}readToGPU(e,t){return u("readToGPU")}numDataIds(){return u("numDataIds")}disposeData(e,t){return u("disposeData")}write(e,t,r){return u("write")}move(e,t,r,n,s){return u("move")}createTensorFromGPUData(e,t,r){return u("createTensorFromGPUData")}memory(){return u("memory")}floatPrecision(){return u("floatPrecision")}epsilon(){return 32===this.floatPrecision()?a:o}dispose(){return u("dispose")}}function u(e){throw Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5lQoW":[function(e,t,r,n){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})}),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}],h8BWL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Environment",()=>l),s.export(r,"getQueryParams",()=>i),s.export(r,"env",()=>u),s.export(r,"ENV",()=>p),s.export(r,"setEnvironmentGlobal",()=>c);var a=e("./util_base");let o="tfjsflags";class l{constructor(e){this.global=e,this.flags={},this.flagRegistry={},this.urlFlags={},this.getQueryParams=i,this.populateURLFlags()}setPlatform(e,t){null==this.platform||p.getBool("IS_TEST")||p.getBool("PROD")||console.warn(`Platform ${this.platformName} has already been set. Overwriting the platform with ${e}.`),this.platformName=e,this.platform=t}registerFlag(e,t,r){if(this.flagRegistry[e]={evaluationFn:t,setHook:r},null!=this.urlFlags[e]){let t=this.urlFlags[e];p.getBool("IS_TEST")||p.getBool("PROD")||console.warn(`Setting feature override from URL ${e}: ${t}.`),this.set(e,t)}}async getAsync(e){return e in this.flags||(this.flags[e]=await this.evaluateFlag(e)),this.flags[e]}get(e){if(e in this.flags)return this.flags[e];let t=this.evaluateFlag(e);if((0,a.isPromise)(t))throw Error(`Flag ${e} cannot be synchronously evaluated. Please use getAsync() instead.`);return this.flags[e]=t,this.flags[e]}getNumber(e){return this.get(e)}getBool(e){return this.get(e)}getString(e){return this.get(e)}getFlags(){return this.flags}get features(){return this.flags}set(e,t){if(null==this.flagRegistry[e])throw Error(`Cannot set flag ${e} as it has not been registered.`);this.flags[e]=t,null!=this.flagRegistry[e].setHook&&this.flagRegistry[e].setHook(t)}evaluateFlag(e){if(null==this.flagRegistry[e])throw Error(`Cannot evaluate flag '${e}': no evaluation function found.`);return this.flagRegistry[e].evaluationFn()}setFlags(e){this.flags=Object.assign({},e)}reset(){this.flags={},this.urlFlags={},this.populateURLFlags()}populateURLFlags(){if(void 0===this.global||void 0===this.global.location||void 0===this.global.location.search)return;let e=this.getQueryParams(this.global.location.search);o in e&&e[o].split(",").forEach(e=>{let[t,r]=e.split(":");this.urlFlags[t]=function(e,t){let r=t.toLowerCase();return"true"===r||"false"===r?"true"===r:`${+r}`===r?+r:t}(0,r)})}}function i(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...r)=>{var n,s,a;return n=t,s=r[0],a=r[1],n[decodeURIComponent(s)]=decodeURIComponent(a||""),r.join("=")}),t}function u(){return p}let p=null;function c(e){p=e}},{"./util_base":"bNQH0","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bNQH0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let t=e.length,r=0;for(;t>0;)r=Math.random()*t|0,u(e,--t,r)}function o(e,t){if(e.length!==t.length)throw Error(`Array sizes must match to be shuffled together First array length was ${e.length}Second array length was ${t.length}`);let r=e.length,n=0;for(;r>0;)n=Math.random()*r|0,u(e,--r,n),u(t,r,n)}function l(e,t,r){return Math.max(e,Math.min(t,r))}function i(e){return e%2==0?e:e+1}function u(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}function p(e){let t=0;for(let r=0;rr+` Shapes ${e} and ${t} must match`)}function h(e){f(null!=e,()=>"The input to the tensor constructor must be a non-null value.")}function g(e){if(0===e.length)return 1;let t=e[0];for(let r=1;r0,r,n){return new Promise((s,a)=>{let o=0,l=()=>{if(e())return void s();let i=t(++o);if(null!=r&&o>=r)return void a();null!=n?n(l,i):setTimeout(l,i)};l()})}function T(e,t){let r=1,n=-1;for(let t=0;t=0)r*=e[t];else if(-1===e[t]){if(-1!==n)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${t}`);n=t}else if(e[t]<0)throw Error(`Shapes can not be < 0. Found ${e[t]} at dim ${t}`);if(-1===n){if(t>0&&t!==r)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(0===r)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%r!=0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${r}`);let s=e.slice();return s[n]=t/r,s}function N(e,t){let r=t.length;return f((e=null==e?t.map((e,t)=>t):[].concat(e)).every(e=>e>=-r&&e`All values in axis param must be in range [-${r}, ${r}) but got axis ${e}`),f(e.every(e=>b(e)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(e=>e<0?r+e:e)}function S(e,t){let r=[],n=[],s=null!=t&&Array.isArray(t)&&0===t.length,a=null==t||s?null:N(t,e).sort(),o=0;for(let t=0;tt)&&1===e[t]&&(r.push(e[t]),n.push(t)),a[o]<=t&&o++}1!==e[t]&&(r.push(e[t]),n.push(t))}return{newShape:r,keptDims:n}}function C(e,t){return E(e,t)}function E(e,t){let r=null;if(null==e||"float32"===e)r=new Float32Array(t);else if("int32"===e)r=new Int32Array(t);else if("bool"===e)r=new Uint8Array(t);else if("string"===e)r=Array(t);else throw Error(`Unknown data type ${e}`);return r}function F(e,t){for(let r=0;rt+=e.length),t}function $(e){return"string"==typeof e||e instanceof String}function O(e){return"boolean"==typeof e}function M(e){return"number"==typeof e}function W(e){return!!(e&&e.constructor&&e.call&&e.apply)}function B(e,t){for(let r=t;r=0;--n)r[n]=r[n+1]*e[n+1];return r}function V(e,t,r=!1){if(0===e.length)return t[0];let n=e.reduce((e,t)=>e*t)*(r?2:1);if(0===n)return[];if(n!==t.length)throw Error(`[${e}] does not match the input size ${t.length}${r?" for a complex tensor":""}.`);return function e(t,r,n,s=!1){let a=[];if(1===r.length){let e=r[0]*(s?2:1);for(let r=0;re*t)*(s?2:1);for(let r=0;re*t,1);if(null==t||"float32"===t)return V(e,new Float32Array(r));if("int32"===t)return V(e,new Int32Array(r));if("bool"===t)return V(e,new Uint8Array(r));throw Error(`Unknown data type ${t}`)}function q(e){e.forEach(t=>{f(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function H(e,t,r){if(0===t)return 0;if(1===t)return e[0];let n=e[e.length-1];for(let t=0;ta),s.export(r,"shuffleCombo",()=>o),s.export(r,"clamp",()=>l),s.export(r,"nearestLargerEven",()=>i),s.export(r,"swap",()=>u),s.export(r,"sum",()=>p),s.export(r,"randUniform",()=>c),s.export(r,"distSquared",()=>d),s.export(r,"assert",()=>f),s.export(r,"assertShapesMatch",()=>m),s.export(r,"assertNonNull",()=>h),s.export(r,"sizeFromShape",()=>g),s.export(r,"isScalarShape",()=>x),s.export(r,"arraysEqualWithNull",()=>v),s.export(r,"arraysEqual",()=>y),s.export(r,"isInt",()=>b),s.export(r,"tanh",()=>_),s.export(r,"sizeToSquarishShape",()=>k),s.export(r,"createShuffledIndices",()=>j),s.export(r,"rightPad",()=>I),s.export(r,"repeatedTry",()=>w),s.export(r,"inferFromImplicitShape",()=>T),s.export(r,"parseAxisParam",()=>N),s.export(r,"squeezeShape",()=>S),s.export(r,"getTypedArrayFromDType",()=>C),s.export(r,"getArrayFromDType",()=>E),s.export(r,"checkConversionForErrors",()=>F),s.export(r,"isValidDtype",()=>A),s.export(r,"hasEncodingLoss",()=>R),s.export(r,"bytesPerElement",()=>P),s.export(r,"bytesFromStringArray",()=>D),s.export(r,"isString",()=>$),s.export(r,"isBoolean",()=>O),s.export(r,"isNumber",()=>M),s.export(r,"inferDtype",()=>function e(t){if(Array.isArray(t))return e(t[0]);if(t instanceof Float32Array);else if(t instanceof Int32Array||t instanceof Uint8Array||t instanceof Uint8ClampedArray)return"int32";else if(M(t));else if($(t))return"string";else if(O(t))return"bool";return"float32"}),s.export(r,"isFunction",()=>W),s.export(r,"nearestDivisor",()=>B),s.export(r,"computeStrides",()=>L),s.export(r,"toNestedArray",()=>V),s.export(r,"convertBackendValuesAndArrayBuffer",()=>U),s.export(r,"makeOnesTypedArray",()=>G),s.export(r,"makeZerosTypedArray",()=>z),s.export(r,"makeZerosNestedTypedArray",()=>Q),s.export(r,"assertNonNegativeIntegerDimensions",()=>q),s.export(r,"locToIndex",()=>H),s.export(r,"indexToLoc",()=>K),s.export(r,"isPromise",()=>X)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],b45Tz:[function(e,t,r,n){let s;var a=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(){if(null==s){let e;if("undefined"!=typeof window)e=window;else if("undefined"!=typeof global)e=global;else if("undefined"!=typeof process)e=process;else if("undefined"!=typeof self)e=self;else throw Error("Could not find a global object");s=e}return s}function l(e,t){let r=function(){let e=o();return null==e._tfGlobals&&(e._tfGlobals=new Map),e._tfGlobals}();if(r.has(e))return r.get(e);{let n=t();return r.set(e,n),r.get(e)}}a.defineInteropFlag(r),a.export(r,"getGlobalNamespace",()=>o),a.export(r,"getGlobal",()=>l)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"349aa":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Abs",()=>a),s.export(r,"Acos",()=>o),s.export(r,"Acosh",()=>l),s.export(r,"Add",()=>i),s.export(r,"AddN",()=>u),s.export(r,"All",()=>p),s.export(r,"Any",()=>c),s.export(r,"ArgMax",()=>d),s.export(r,"ArgMin",()=>f),s.export(r,"Asin",()=>m),s.export(r,"Asinh",()=>h),s.export(r,"Atan",()=>g),s.export(r,"Atanh",()=>x),s.export(r,"Atan2",()=>v),s.export(r,"AvgPool",()=>y),s.export(r,"AvgPoolGrad",()=>b),s.export(r,"AvgPool3D",()=>_),s.export(r,"AvgPool3DGrad",()=>k),s.export(r,"BatchMatMul",()=>j),s.export(r,"BatchToSpaceND",()=>I),s.export(r,"Bincount",()=>w),s.export(r,"BitwiseAnd",()=>T),s.export(r,"BroadcastTo",()=>N),s.export(r,"BroadcastArgs",()=>S),s.export(r,"Cast",()=>C),s.export(r,"Ceil",()=>E),s.export(r,"ClipByValue",()=>F),s.export(r,"Complex",()=>A),s.export(r,"ComplexAbs",()=>R),s.export(r,"Concat",()=>P),s.export(r,"Conv2D",()=>D),s.export(r,"Conv2DBackpropFilter",()=>$),s.export(r,"Conv2DBackpropInput",()=>O),s.export(r,"Conv3D",()=>M),s.export(r,"Conv3DBackpropFilterV2",()=>W),s.export(r,"Conv3DBackpropInputV2",()=>B),s.export(r,"Cos",()=>L),s.export(r,"Cosh",()=>V),s.export(r,"Cumprod",()=>U),s.export(r,"Cumsum",()=>G),s.export(r,"CropAndResize",()=>z),s.export(r,"DenseBincount",()=>Q),s.export(r,"DepthToSpace",()=>q),s.export(r,"DepthwiseConv2dNative",()=>H),s.export(r,"DepthwiseConv2dNativeBackpropFilter",()=>K),s.export(r,"DepthwiseConv2dNativeBackpropInput",()=>X),s.export(r,"Diag",()=>Y),s.export(r,"Dilation2D",()=>J),s.export(r,"Dilation2DBackpropInput",()=>Z),s.export(r,"Dilation2DBackpropFilter",()=>ee),s.export(r,"Draw",()=>et),s.export(r,"RealDiv",()=>er),s.export(r,"Einsum",()=>en),s.export(r,"Elu",()=>es),s.export(r,"EluGrad",()=>ea),s.export(r,"Erf",()=>eo),s.export(r,"Equal",()=>el),s.export(r,"Exp",()=>ei),s.export(r,"ExpandDims",()=>eu),s.export(r,"Expm1",()=>ep),s.export(r,"FFT",()=>ec),s.export(r,"Fill",()=>ed),s.export(r,"FlipLeftRight",()=>ef),s.export(r,"Floor",()=>em),s.export(r,"FloorDiv",()=>eh),s.export(r,"FusedBatchNorm",()=>eg),s.export(r,"GatherV2",()=>ex),s.export(r,"GatherNd",()=>ev),s.export(r,"Greater",()=>ey),s.export(r,"GreaterEqual",()=>eb),s.export(r,"Identity",()=>e_),s.export(r,"IFFT",()=>ek),s.export(r,"Imag",()=>ej),s.export(r,"IsFinite",()=>eI),s.export(r,"IsInf",()=>ew),s.export(r,"IsNan",()=>eT),s.export(r,"LeakyRelu",()=>eN),s.export(r,"Less",()=>eS),s.export(r,"LessEqual",()=>eC),s.export(r,"LinSpace",()=>eE),s.export(r,"Log",()=>eF),s.export(r,"Log1p",()=>eA),s.export(r,"LogicalAnd",()=>eR),s.export(r,"LogicalNot",()=>eP),s.export(r,"LogicalOr",()=>eD),s.export(r,"LogicalXor",()=>e$),s.export(r,"LogSoftmax",()=>eO),s.export(r,"LowerBound",()=>eM),s.export(r,"LRN",()=>eW),s.export(r,"LRNGrad",()=>eB),s.export(r,"MatrixBandPart",()=>eL),s.export(r,"Max",()=>eV),s.export(r,"Maximum",()=>eU),s.export(r,"MaxPool",()=>eG),s.export(r,"MaxPoolGrad",()=>ez),s.export(r,"MaxPool3D",()=>eQ),s.export(r,"MaxPool3DGrad",()=>eq),s.export(r,"MaxPoolWithArgmax",()=>eH),s.export(r,"Mean",()=>eK),s.export(r,"Min",()=>eX),s.export(r,"Minimum",()=>eY),s.export(r,"MirrorPad",()=>eJ),s.export(r,"Mod",()=>eZ),s.export(r,"Multinomial",()=>e0),s.export(r,"Multiply",()=>e1),s.export(r,"Neg",()=>e2),s.export(r,"NotEqual",()=>e3),s.export(r,"NonMaxSuppressionV3",()=>e5),s.export(r,"NonMaxSuppressionV4",()=>e4),s.export(r,"NonMaxSuppressionV5",()=>e6),s.export(r,"OnesLike",()=>e8),s.export(r,"OneHot",()=>e9),s.export(r,"Pack",()=>e7),s.export(r,"PadV2",()=>te),s.export(r,"Pool",()=>tt),s.export(r,"Pow",()=>tr),s.export(r,"Prelu",()=>tn),s.export(r,"Prod",()=>ts),s.export(r,"RaggedGather",()=>ta),s.export(r,"RaggedRange",()=>to),s.export(r,"RaggedTensorToTensor",()=>tl),s.export(r,"Range",()=>ti),s.export(r,"Real",()=>tu),s.export(r,"Reciprocal",()=>tp),s.export(r,"Relu",()=>tc),s.export(r,"Reshape",()=>td),s.export(r,"ResizeNearestNeighbor",()=>tf),s.export(r,"ResizeNearestNeighborGrad",()=>tm),s.export(r,"ResizeBilinear",()=>th),s.export(r,"ResizeBilinearGrad",()=>tg),s.export(r,"Relu6",()=>tx),s.export(r,"Reverse",()=>tv),s.export(r,"Round",()=>ty),s.export(r,"Rsqrt",()=>tb),s.export(r,"ScatterNd",()=>t_),s.export(r,"TensorScatterUpdate",()=>tk),s.export(r,"SearchSorted",()=>tj),s.export(r,"Select",()=>tI),s.export(r,"Selu",()=>tw),s.export(r,"Slice",()=>tT),s.export(r,"Sin",()=>tN),s.export(r,"Sinh",()=>tS),s.export(r,"Sign",()=>tC),s.export(r,"Sigmoid",()=>tE),s.export(r,"Softplus",()=>tF),s.export(r,"Sqrt",()=>tA),s.export(r,"Sum",()=>tR),s.export(r,"SpaceToBatchND",()=>tP),s.export(r,"SplitV",()=>tD),s.export(r,"Softmax",()=>t$),s.export(r,"SparseFillEmptyRows",()=>tO),s.export(r,"SparseReshape",()=>tM),s.export(r,"SparseSegmentMean",()=>tW),s.export(r,"SparseSegmentSum",()=>tB),s.export(r,"SparseToDense",()=>tL),s.export(r,"SquaredDifference",()=>tV),s.export(r,"Square",()=>tU),s.export(r,"StaticRegexReplace",()=>tG),s.export(r,"StridedSlice",()=>tz),s.export(r,"StringNGrams",()=>tQ),s.export(r,"StringSplit",()=>tq),s.export(r,"StringToHashBucketFast",()=>tH),s.export(r,"Sub",()=>tK),s.export(r,"Tan",()=>tX),s.export(r,"Tanh",()=>tY),s.export(r,"Tile",()=>tJ),s.export(r,"TopK",()=>tZ),s.export(r,"Transform",()=>t0),s.export(r,"Transpose",()=>t1),s.export(r,"Unique",()=>t2),s.export(r,"Unpack",()=>t3),s.export(r,"UnsortedSegmentSum",()=>t5),s.export(r,"UpperBound",()=>t4),s.export(r,"ZerosLike",()=>t6),s.export(r,"Step",()=>t8),s.export(r,"FromPixels",()=>t9),s.export(r,"RotateWithOffset",()=>t7),s.export(r,"_FusedMatMul",()=>re),s.export(r,"FusedConv2D",()=>rt),s.export(r,"FusedDepthwiseConv2D",()=>rr);let a="Abs",o="Acos",l="Acosh",i="Add",u="AddN",p="All",c="Any",d="ArgMax",f="ArgMin",m="Asin",h="Asinh",g="Atan",x="Atanh",v="Atan2",y="AvgPool",b="AvgPoolGrad",_="AvgPool3D",k="AvgPool3DGrad",j="BatchMatMul",I="BatchToSpaceND",w="Bincount",T="BitwiseAnd",N="BroadcastTo",S="BroadcastArgs",C="Cast",E="Ceil",F="ClipByValue",A="Complex",R="ComplexAbs",P="Concat",D="Conv2D",$="Conv2DBackpropFilter",O="Conv2DBackpropInput",M="Conv3D",W="Conv3DBackpropFilterV2",B="Conv3DBackpropInputV2",L="Cos",V="Cosh",U="Cumprod",G="Cumsum",z="CropAndResize",Q="DenseBincount",q="DepthToSpace",H="DepthwiseConv2dNative",K="DepthwiseConv2dNativeBackpropFilter",X="DepthwiseConv2dNativeBackpropInput",Y="Diag",J="Dilation2D",Z="Dilation2DBackpropInput",ee="Dilation2DBackpropFilter",et="Draw",er="RealDiv",en="Einsum",es="Elu",ea="EluGrad",eo="Erf",el="Equal",ei="Exp",eu="ExpandDims",ep="Expm1",ec="FFT",ed="Fill",ef="FlipLeftRight",em="Floor",eh="FloorDiv",eg="FusedBatchNorm",ex="GatherV2",ev="GatherNd",ey="Greater",eb="GreaterEqual",e_="Identity",ek="IFFT",ej="Imag",eI="IsFinite",ew="IsInf",eT="IsNan",eN="LeakyRelu",eS="Less",eC="LessEqual",eE="LinSpace",eF="Log",eA="Log1p",eR="LogicalAnd",eP="LogicalNot",eD="LogicalOr",e$="LogicalXor",eO="LogSoftmax",eM="LowerBound",eW="LRN",eB="LRNGrad",eL="MatrixBandPart",eV="Max",eU="Maximum",eG="MaxPool",ez="MaxPoolGrad",eQ="MaxPool3D",eq="MaxPool3DGrad",eH="MaxPoolWithArgmax",eK="Mean",eX="Min",eY="Minimum",eJ="MirrorPad",eZ="Mod",e0="Multinomial",e1="Multiply",e2="Neg",e3="NotEqual",e5="NonMaxSuppressionV3",e4="NonMaxSuppressionV4",e6="NonMaxSuppressionV5",e8="OnesLike",e9="OneHot",e7="Pack",te="PadV2",tt="Pool",tr="Pow",tn="Prelu",ts="Prod",ta="RaggedGather",to="RaggedRange",tl="RaggedTensorToTensor",ti="Range",tu="Real",tp="Reciprocal",tc="Relu",td="Reshape",tf="ResizeNearestNeighbor",tm="ResizeNearestNeighborGrad",th="ResizeBilinear",tg="ResizeBilinearGrad",tx="Relu6",tv="Reverse",ty="Round",tb="Rsqrt",t_="ScatterNd",tk="TensorScatterUpdate",tj="SearchSorted",tI="Select",tw="Selu",tT="Slice",tN="Sin",tS="Sinh",tC="Sign",tE="Sigmoid",tF="Softplus",tA="Sqrt",tR="Sum",tP="SpaceToBatchND",tD="SplitV",t$="Softmax",tO="SparseFillEmptyRows",tM="SparseReshape",tW="SparseSegmentMean",tB="SparseSegmentSum",tL="SparseToDense",tV="SquaredDifference",tU="Square",tG="StaticRegexReplace",tz="StridedSlice",tQ="StringNGrams",tq="StringSplit",tH="StringToHashBucketFast",tK="Sub",tX="Tan",tY="Tanh",tJ="Tile",tZ="TopK",t0="Transform",t1="Transpose",t2="Unique",t3="Unpack",t5="UnsortedSegmentSum",t4="UpperBound",t6="ZerosLike",t8="Step",t9="FromPixels",t7="RotateWithOffset",re="_FusedMatMul",rt="FusedConv2D",rr="FusedDepthwiseConv2D"},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"11iA6":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getKernel",()=>p),s.export(r,"getGradient",()=>c),s.export(r,"getKernelsForBackend",()=>d),s.export(r,"registerKernel",()=>f),s.export(r,"registerGradient",()=>m),s.export(r,"unregisterKernel",()=>h),s.export(r,"unregisterGradient",()=>g),s.export(r,"copyRegisteredKernels",()=>x);var a=e("./environment"),o=e("./global_util"),l=e("./log");let i=(0,o.getGlobal)("kernelRegistry",()=>new Map),u=(0,o.getGlobal)("gradRegistry",()=>new Map);function p(e,t){let r=v(e,t);return i.get(r)}function c(e){return u.get(e)}function d(e){let t=i.entries(),r=[];for(;;){let{done:n,value:s}=t.next();if(n)break;let[a,o]=s,[l]=a.split("_");l===e&&r.push(o)}return r}function f(e){let{kernelName:t,backendName:r}=e,n=v(t,r);i.has(n)&&l.warn(`The kernel '${t}' for backend '${r}' is already registered`),i.set(n,e)}function m(e){let{kernelName:t}=e;u.has(t)&&(0,a.env)().getBool("DEBUG")&&l.warn(`Overriding the gradient for '${t}'`),u.set(t,e)}function h(e,t){let r=v(e,t);if(!i.has(r))throw Error(`The kernel '${e}' for backend '${t}' is not registered`);i.delete(r)}function g(e){if(!u.has(e))throw Error(`The gradient '${e}' for backend is not registered`);u.delete(e)}function x(e,t){d(e).forEach(e=>{f(Object.assign({},e,{backendName:t}))})}function v(e,t){return`${t}_${e}`}},{"./environment":"h8BWL","./global_util":"b45Tz","./log":"dvDGk","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dvDGk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"warn",()=>o),s.export(r,"log",()=>l);var a=e("./environment");function o(...e){(0,a.env)().getBool("IS_TEST")||(0,a.env)().getBool("PROD")||console.warn(...e)}function l(...e){(0,a.env)().getBool("IS_TEST")||(0,a.env)().getBool("PROD")||console.log(...e)}},{"./environment":"h8BWL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],d83tJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Profiler",()=>l),s.export(r,"checkComputationForErrors",()=>i),s.export(r,"Logger",()=>u);var a=e("./environment"),o=e("./util");class l{constructor(e,t){this.backendTimer=e,this.logger=t,null==t&&(this.logger=new u)}profileKernel(e,t,r){let n,s,l=()=>{n=r()},u=o.now();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(l);else{for(let e of(l(),n))e.dataSync();s=Promise.resolve({kernelMs:o.now()-u})}if((0,a.env)().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let t=0;t{i(t,r.dtype,e)})}return{kernelName:e,outputs:n,inputs:t,timeMs:s.then(e=>e.kernelMs),extraInfo:s.then(e=>null!=e.getExtraProfileInfo?e.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:r,timeMs:n,inputs:s,extraInfo:a}=e;r.forEach(e=>{Promise.all([e.data(),n,a]).then(r=>{this.logger.logKernelProfile(t,e,r[0],r[1],s,r[2])})})}}function i(e,t,r){if("float32"!==t)return!1;for(let t=0;t0?n:""} `}}console.log(`%c${i} %c${l} %c${u}D ${c} %c${p} %c${d} %c${a}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}}},{"./environment":"h8BWL","./util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],icflD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"createScalarValue",()=>u),s.export(r,"toTypedArray",()=>p),s.export(r,"now",()=>c),s.export(r,"fetch",()=>d),s.export(r,"encodeString",()=>f),s.export(r,"decodeString",()=>m),s.export(r,"isTypedArray",()=>h),s.export(r,"flatten",()=>g);var a=e("./environment"),o=e("./platforms/is_typed_array_browser"),l=e("./util_base");s.exportAll(l,r);var i=e("./hash_util");function u(e,t){return"string"===t?f(e):p([e],t)}function p(e,t){var r;if("string"===t)throw Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=g(e)),(0,a.env)().getBool("DEBUG")&&l.checkConversionForErrors(e,t),(r=e)instanceof Float32Array&&"float32"===t||r instanceof Int32Array&&"int32"===t||r instanceof Uint8Array&&"bool"===t)return e;if(null==t||"float32"===t||"complex64"===t)return new Float32Array(e);if("int32"===t)return new Int32Array(e);if("bool"===t){let t=new Uint8Array(e.length);for(let r=0;ra)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2vzeg":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"hexToLong",()=>l),s.export(r,"fingerPrint64",()=>x);var a=e("long");let o=a.default||a;function l(e){return o.fromString(e,!0,16)}let i=l("c3a5c85c97cb3127"),u=l("b492b66fbe98f273"),p=l("9ae16a3b2f90404f");function c(e){return e.xor(e.shru(47))}function d(e,t,r){let n=e.slice(t,t+r);return o.fromBytes(Array.from(n),!0,!0)}function f(e,t){return d(e,t,8)}function m(e,t){return 0===t?e:e.shru(t).or(e.shl(64-t))}function h(e,t,r=l("9ddfea08eb382d69")){let n=e.xor(t).mul(r);n=n.xor(n.shru(47));let s=t.xor(n).mul(r);return(s=s.xor(s.shru(47))).mul(r)}function g(e,t,r,n){return function(e,t,r,n,s,a){s=s.add(e),a=m(a.add(s).add(n),21);let o=s;return s=(s=s.add(t)).add(r),a=a.add(m(s,44)),[s.add(n),a.add(o)]}(f(e,t),f(e,t+8),f(e,t+16),f(e,t+24),r,n)}function x(e,t=e.length){let r=o.fromNumber(81,!0);if(t<=32)if(t<=16)return function(e,t=e.length){if(t>=8){let r=p.add(2*t),n=f(e,0).add(p),s=f(e,t-8);return h(m(s,37).mul(r).add(n),m(n,25).add(s).mul(r),r)}if(t>=4){let r=p.add(2*t);return h(d(e,0,4).shl(3).add(t),d(e,t-4,4),r)}if(t>0){let r=e[0],n=e[t>>1],s=e[t-1];return c(p.mul(r+(n<<8)).xor(i.mul(t+(s<<2)))).mul(p)}return p}(e,t);else return function(e,t=e.length){let r=p.add(2*t),n=f(e,0).mul(u),s=f(e,8),a=f(e,t-8).mul(r),o=f(e,t-16).mul(p);return h(m(n.add(s),43).add(m(a,30)).add(o),n.add(m(s.add(p),18)).add(a),r)}(e,t);if(t<=64)return function(e,t=e.length){let r=p.add(2*t),n=f(e,0).mul(p),s=f(e,8),a=f(e,t-8).mul(r),o=f(e,t-16).mul(p),l=m(n.add(s),43).add(m(a,30)).add(o),i=h(l,n.add(m(s.add(p),18)).add(a),r),u=f(e,16).mul(r),c=f(e,24),d=l.add(f(e,t-32)).mul(r),g=i.add(f(e,t-24)).mul(r);return h(m(u.add(c),43).add(m(d,30)).add(g),u.add(m(c.add(n),18)).add(d),r)}(e,t);let n=r,s=r.mul(u).add(113),a=c(s.mul(p).add(113)).mul(p),l=[o.UZERO,o.UZERO],v=[o.UZERO,o.UZERO];n=n.mul(p).add(f(e,0));let y=0,b=(t-1>>6)*64,_=b+(t-1&63)-63;do n=m(n.add(s).add(l[0]).add(f(e,y+8)),37).mul(u),s=m(s.add(l[1]).add(f(e,y+48)),42).mul(u),n=n.xor(v[1]),s=s.add(l[0]).add(f(e,y+40)),a=m(a.add(v[0]),33).mul(u),l=g(e,y,l[1].mul(u),n.add(v[0])),v=g(e,y+32,a.add(v[1]),s.add(f(e,y+16))),[a,n]=[n,a],y+=64;while(y!==b)let k=u.add(a.and(255).shl(1));return y=_,v[0]=v[0].add(t-1&63),l[0]=l[0].add(v[0]),v[0]=v[0].add(l[0]),n=m(n.add(s).add(l[0]).add(f(e,y+8)),37).mul(k),s=m(s.add(l[1]).add(f(e,y+48)),42).mul(k),n=n.xor(v[1].mul(9)),s=s.add(l[0].mul(9).add(f(e,y+40))),a=m(a.add(v[0]),33).mul(k),l=g(e,y,l[1].mul(k),n.add(v[0])),v=g(e,y+32,a.add(v[1]),s.add(f(e,y+16))),[a,n]=[n,a],h(h(l[0],v[0],k).add(c(s).mul(i)).add(a),h(l[1],v[1],k).add(n),k)}},{long:"bDzCi","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bDzCi:[function(e,t,r,n){t.exports=a;var s=null;try{s=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(e){}function a(e,t,r){this.low=0|e,this.high=0|t,this.unsigned=!!r}function o(e){return!0===(e&&e.__isLong__)}a.prototype.__isLong__,Object.defineProperty(a.prototype,"__isLong__",{value:!0}),a.isLong=o;var l={},i={};function u(e,t){var r,n,s;if(t)return(e>>>=0,(s=0<=e&&e<256)&&(n=i[e]))?n:(r=c(e,(0|e)<0?-1:0,!0),s&&(i[e]=r),r);return(e|=0,(s=-128<=e&&e<128)&&(n=l[e]))?n:(r=c(e,e<0?-1:0,!1),s&&(l[e]=r),r)}function p(e,t){if(isNaN(e))return t?b:y;if(t){if(e<0)return b;if(e>=g)return w}else{if(e<=-x)return T;if(e+1>=x)return I}return e<0?p(-e,t).neg():c(e%h|0,e/h|0,t)}function c(e,t,r){return new a(e,t,r)}a.fromInt=u,a.fromNumber=p,a.fromBits=c;var d=Math.pow;function f(e,t,r){if(0===e.length)throw Error("empty string");if("NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return y;if("number"==typeof t?(r=t,t=!1):t=!!t,(r=r||10)<2||360)throw Error("interior hyphen");if(0===n)return f(e.substring(1),t,r).neg();for(var n,s=p(d(r,8)),a=y,o=0;o>>0:this.low},N.toNumber=function(){return this.unsigned?(this.high>>>0)*h+(this.low>>>0):this.high*h+(this.low>>>0)},N.toString=function(e){if((e=e||10)<2||36>>0).toString(e);if((a=l).isZero())return i+o;for(;i.length<6;)i="0"+i;o=""+i+o}},N.getHighBits=function(){return this.high},N.getHighBitsUnsigned=function(){return this.high>>>0},N.getLowBits=function(){return this.low},N.getLowBitsUnsigned=function(){return this.low>>>0},N.getNumBitsAbs=function(){if(this.isNegative())return this.eq(T)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&(e&1<=0},N.isOdd=function(){return(1&this.low)==1},N.isEven=function(){return(1&this.low)==0},N.equals=function(e){return o(e)||(e=m(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&this.high===e.high&&this.low===e.low},N.eq=N.equals,N.notEquals=function(e){return!this.eq(e)},N.neq=N.notEquals,N.ne=N.notEquals,N.lessThan=function(e){return 0>this.comp(e)},N.lt=N.lessThan,N.lessThanOrEqual=function(e){return 0>=this.comp(e)},N.lte=N.lessThanOrEqual,N.le=N.lessThanOrEqual,N.greaterThan=function(e){return this.comp(e)>0},N.gt=N.greaterThan,N.greaterThanOrEqual=function(e){return this.comp(e)>=0},N.gte=N.greaterThanOrEqual,N.ge=N.greaterThanOrEqual,N.compare=function(e){if(o(e)||(e=m(e)),this.eq(e))return 0;var t=this.isNegative(),r=e.isNegative();return t&&!r?-1:!t&&r?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},N.comp=N.compare,N.negate=function(){return!this.unsigned&&this.eq(T)?T:this.not().add(_)},N.neg=N.negate,N.add=function(e){o(e)||(e=m(e));var t,r,n=this.high>>>16,s=65535&this.high,a=this.low>>>16,l=65535&this.low,i=e.high>>>16,u=65535&e.high,p=e.low>>>16,d=65535&e.low,f=0,h=0;return t=0+((r=0+(l+d))>>>16),r&=65535,t+=a+p,h+=t>>>16,t&=65535,h+=s+u,f+=h>>>16,h&=65535,f+=n+i,c(t<<16|r,(f&=65535)<<16|h,this.unsigned)},N.subtract=function(e){return o(e)||(e=m(e)),this.add(e.neg())},N.sub=N.subtract,N.multiply=function(e){if(this.isZero())return y;if(o(e)||(e=m(e)),s)return c(s.mul(this.low,this.high,e.low,e.high),s.get_high(),this.unsigned);if(e.isZero())return y;if(this.eq(T))return e.isOdd()?T:y;if(e.eq(T))return this.isOdd()?T:y;if(this.isNegative())if(e.isNegative())return this.neg().mul(e.neg());else return this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(v)&&e.lt(v))return p(this.toNumber()*e.toNumber(),this.unsigned);var t,r,n=this.high>>>16,a=65535&this.high,l=this.low>>>16,i=65535&this.low,u=e.high>>>16,d=65535&e.high,f=e.low>>>16,h=65535&e.low,g=0,x=0;return t=0+((r=0+i*h)>>>16),r&=65535,t+=l*h,x+=t>>>16,t&=65535,t+=i*f,x+=t>>>16,t&=65535,x+=a*h,g+=x>>>16,x&=65535,x+=l*f,g+=x>>>16,x&=65535,x+=i*d,g+=x>>>16,x&=65535,g+=n*h+a*f+l*d+i*u,c(t<<16|r,(g&=65535)<<16|x,this.unsigned)},N.mul=N.multiply,N.divide=function(e){if(o(e)||(e=m(e)),e.isZero())throw Error("division by zero");if(s){var t,r,n;return this.unsigned||-0x80000000!==this.high||-1!==e.low||-1!==e.high?c((this.unsigned?s.div_u:s.div_s)(this.low,this.high,e.low,e.high),s.get_high(),this.unsigned):this}if(this.isZero())return this.unsigned?b:y;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return b;if(e.gt(this.shru(1)))return k;n=b}else{if(this.eq(T))if(e.eq(_)||e.eq(j))return T;else return e.eq(T)?_:(t=this.shr(1).div(e).shl(1)).eq(y)?e.isNegative()?_:j:(r=this.sub(e.mul(t)),n=t.add(r.div(e)));if(e.eq(T))return this.unsigned?b:y;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();n=y}for(r=this;r.gte(e);){for(var a=Math.ceil(Math.log(t=Math.max(1,Math.floor(r.toNumber()/e.toNumber())))/Math.LN2),l=a<=48?1:d(2,a-48),i=p(t),u=i.mul(e);u.isNegative()||u.gt(r);)t-=l,u=(i=p(t,this.unsigned)).mul(e);i.isZero()&&(i=_),n=n.add(i),r=r.sub(u)}return n},N.div=N.divide,N.modulo=function(e){return(o(e)||(e=m(e)),s)?c((this.unsigned?s.rem_u:s.rem_s)(this.low,this.high,e.low,e.high),s.get_high(),this.unsigned):this.sub(this.div(e).mul(e))},N.mod=N.modulo,N.rem=N.modulo,N.not=function(){return c(~this.low,~this.high,this.unsigned)},N.and=function(e){return o(e)||(e=m(e)),c(this.low&e.low,this.high&e.high,this.unsigned)},N.or=function(e){return o(e)||(e=m(e)),c(this.low|e.low,this.high|e.high,this.unsigned)},N.xor=function(e){return o(e)||(e=m(e)),c(this.low^e.low,this.high^e.high,this.unsigned)},N.shiftLeft=function(e){return(o(e)&&(e=e.toInt()),0==(e&=63))?this:e<32?c(this.low<>>32-e,this.unsigned):c(0,this.low<>>e|this.high<<32-e,this.high>>e,this.unsigned):c(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},N.shr=N.shiftRight,N.shiftRightUnsigned=function(e){if(o(e)&&(e=e.toInt()),0==(e&=63))return this;var t=this.high;return e<32?c(this.low>>>e|t<<32-e,t>>>e,this.unsigned):32===e?c(t,0,this.unsigned):c(t>>>e-32,0,this.unsigned)},N.shru=N.shiftRightUnsigned,N.shr_u=N.shiftRightUnsigned,N.toSigned=function(){return this.unsigned?c(this.low,this.high,!1):this},N.toUnsigned=function(){return this.unsigned?this:c(this.low,this.high,!0)},N.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},N.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},N.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},a.fromBytes=function(e,t,r){return r?a.fromBytesLE(e,t):a.fromBytesBE(e,t)},a.fromBytesLE=function(e,t){return new a(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)},a.fromBytesBE=function(e,t){return new a(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)}},{}],fvtMq:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getFilteredNodesXToY",()=>o),s.export(r,"backpropagateGradients",()=>l);var a=e("./util");function o(e,t,r){let n={},s={};for(let e=0;en[e.id]=!0),l=!0,s[a.id]=!0;break}if(l)break}}let a={};a[r.id]=!0;let o={};for(let t=e.length-1;t>=0;t--){let r=e[t],n=r.inputs;for(let e=0;e=0;s--){let o=t[s],l=[];if(o.outputs.forEach(t=>{let r=e[t.id];null!=r?l.push(r):l.push(null)}),null==o.gradient)throw Error(`Cannot compute gradient: gradient function not found for ${o.kernelName}.`);let i=o.gradient(l);for(let t in o.inputs){if(!(t in i))throw Error(`Cannot backprop through input ${t}. Available gradients found: ${Object.keys(i)}.`);let s=r(()=>i[t]());if("float32"!==s.dtype)throw Error(`Error in gradient for op ${o.kernelName}. The gradient of input ${t} must have 'float32' dtype, but has '${s.dtype}'`);let l=o.inputs[t];if(!a.arraysEqual(s.shape,l.shape))throw Error(`Error in gradient for op ${o.kernelName}. The gradient of input '${t}' has shape '${s.shape}', which does not match the shape of the input '${l.shape}'`);if(null==e[l.id])e[l.id]=s;else{let t=e[l.id];e[l.id]=n(t,s),t.dispose()}}}}},{"./util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cfIkd:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TensorBuffer",()=>i),s.export(r,"setTensorTracker",()=>c),s.export(r,"setOpHandler",()=>d),s.export(r,"setDeprecationWarningFn",()=>f),s.export(r,"Tensor",()=>m),s.export(r,"getGlobalTensorClass",()=>h),s.export(r,"Variable",()=>g);var a=e("./global_util"),o=e("./tensor_format"),l=e("./util");class i{constructor(e,t,r){if(this.dtype=t,this.shape=e.slice(),this.size=l.sizeFromShape(e),null!=r){let e=r.length;l.assert(e===this.size,()=>`Length of values '${e}' does not match the size inferred by the shape '${this.size}'.`)}if("complex64"===t)throw Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=r||l.getArrayFromDType(t,this.size),this.strides=(0,l.computeStrides)(e)}set(e,...t){0===t.length&&(t=[0]),l.assert(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);let r=this.locToIndex(t);this.values[r]=e}get(...e){0===e.length&&(e=[0]);let t=0;for(let r of e){if(r<0||r>=this.shape[t])throw Error(`Requested out of range element at ${e}. Buffer shape=${this.shape}`);t++}let r=e[e.length-1];for(let t=0;tl.decodeString(e))}catch(e){throw Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataToGPU(e){return this.throwIfDisposed(),u().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=u().readSync(this.dataId);if("string"===this.dtype)try{return e.map(e=>l.decodeString(e))}catch(e){throw Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();let e=await u().read(this.dataId);return"string"===this.dtype?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(this.kerasMask&&this.kerasMask.dispose(),u().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw Error("Tensor is disposed.")}print(e=!1){return p.print(this,e)}clone(){return this.throwIfDisposed(),p.clone(this)}toString(e=!1){let t=this.dataSync();return(0,o.tensorToString)(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),p.cast(this,e)}variable(e=!0,t,r){return this.throwIfDisposed(),u().makeVariable(this,e,t,r)}}function h(){return(0,a.getGlobal)("Tensor",()=>m)}Object.defineProperty(m,Symbol.hasInstance,{value:e=>!!e&&null!=e.data&&null!=e.dataSync&&null!=e.throwIfDisposed}),h();class g extends m{constructor(e,t,r,n){super(e.shape,e.dtype,e.dataId,n),this.trainable=t,this.name=r}assign(e){if(e.dtype!==this.dtype)throw Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!l.arraysEqual(e.shape,this.shape))throw Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);u().disposeTensor(this),this.dataId=e.dataId,u().incRef(this,null)}dispose(){u().disposeVariable(this),this.isDisposedInternal=!0}}Object.defineProperty(g,Symbol.hasInstance,{value:e=>e instanceof m&&null!=e.assign&&e.assign instanceof Function})},{"./global_util":"b45Tz","./tensor_format":"bLvwc","./util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bLvwc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensorToString",()=>o);var a=e("./util");function o(e,t,r,n){let s=(0,a.computeStrides)(t),o=function(e,t,r,n){let s=(0,a.sizeFromShape)(t),o=n[n.length-1],i=Array(o).fill(0),p=t.length,c="complex64"===r?u(e):e;if(p>1)for(let e=0;e20){let e=Array.from(t.slice(0,3*p)),r=Array.from(t.slice((c-3)*p,c*p));return"complex64"===n&&(e=u(e),r=u(r)),["["+e.map((e,t)=>l(e,a[t],n)).join(", ")+", ..., "+r.map((e,t)=>l(e,a[c-3+t],n)).join(", ")+"]"]}return["["+("complex64"===n?u(t):Array.from(t)).map((e,t)=>l(e,a[t],n)).join(", ")+"]"]}let f=r.slice(1),m=s.slice(1),h=s[0]*p,g=[];if(c>20){for(let r=0;r<3;r++){let s=r*h,o=s+h;g.push(...e(t.slice(s,o),f,n,m,a,!1))}g.push("...");for(let r=c-3;r0?g[0]+x:"");for(let e=1;e" "+e).join("\n")),d.join("\n")}function l(e,t,r){let n;return n=Array.isArray(e)?`${parseFloat(e[0].toFixed(7))} + ${parseFloat(e[1].toFixed(7))}j`:(0,a.isString)(e)?`'${e}'`:"bool"===r?i(e):parseFloat(e.toFixed(7)).toString(),(0,a.rightPad)(n,t)}function i(e){return 0===e?"false":"true"}function u(e){let t=[];for(let r=0;ri),s.export(r,"assertTypesMatch",()=>u),s.export(r,"isTensorInList",()=>p),s.export(r,"getTensorsInContainer",()=>c);var a=e("./tensor"),o=e("./types"),l=e("./util");function i(e,t){if(e.dtype===t.dtype)return[e,t];let r=(0,o.upcastType)(e.dtype,t.dtype);return[e.cast(r),t.cast(r)]}function u(e,t){(0,l.assert)(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function p(e,t){return t.some(t=>t.id===e.id)}function c(e){let t=[];return function e(t,r,n){var s;if(null!=t){if(t instanceof a.Tensor)return void r.push(t);if(Array.isArray(s=t)||"object"==typeof s)for(let s in t){let a=t[s];n.has(a)||(n.add(a),e(a,r,n))}}}(e,t,new Set),t}},{"./tensor":"cfIkd","./types":"huvyT","./util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],huvyT:[function(e,t,r,n){var s,a,o,l,i,u,p,c,d,f,m=e("@parcel/transformer-js/src/esmodule-helpers.js");m.defineInteropFlag(r),m.export(r,"Rank",()=>u),m.export(r,"upcastType",()=>g),m.export(r,"sumOutType",()=>x),m.export(r,"isWebGLData",()=>v),m.export(r,"isWebGPUData",()=>y),(s=u||(u={})).R0="R0",s.R1="R1",s.R2="R2",s.R3="R3",s.R4="R4",s.R5="R5",s.R6="R6",(a=p||(p={})).float32="float32",a.int32="int32",a.bool="int32",a.complex64="complex64",(o=c||(c={})).float32="float32",o.int32="int32",o.bool="bool",o.complex64="complex64",(l=d||(d={})).float32="float32",l.int32="float32",l.bool="float32",l.complex64="complex64",(i=f||(f={})).float32="complex64",i.int32="complex64",i.bool="complex64",i.complex64="complex64";let h={float32:d,int32:p,bool:c,complex64:f};function g(e,t){if("string"===e||"string"===t){if("string"===e&&"string"===t)return"string";throw Error(`Can not upcast ${e} with ${t}`)}return h[e][t]}function x(e){return g(e,"int32")}function v(e){return null!=e&&"object"==typeof e&&"texture"in e&&e.texture instanceof WebGLTexture}function y(e){return"undefined"!=typeof GPUBuffer&&null!=e&&"object"==typeof e&&"buffer"in e&&e.buffer instanceof GPUBuffer}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8o4LZ":[function(e,t,r,n){e("./engine");var s=e("./device_util");let a=(0,e("./environment").env)();a.registerFlag("DEBUG",()=>!1,e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")}),a.registerFlag("IS_BROWSER",()=>s.isBrowser()),a.registerFlag("IS_NODE",()=>!1),a.registerFlag("IS_CHROME",()=>"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)),a.registerFlag("IS_SAFARI",()=>"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor)),a.registerFlag("PROD",()=>!1),a.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>a.getBool("DEBUG")),a.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0),a.registerFlag("IS_TEST",()=>!1),a.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>a.getBool("DEBUG")),a.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1),a.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1),a.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1)},{"./engine":"c6qwc","./device_util":"dDH0G","./environment":"h8BWL"}],dDH0G:[function(e,t,r,n){let s;var a=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e){s=e}function l(e){if(void 0!==s)return s;if(e||"undefined"!=typeof navigator&&null!=navigator){if(e||(e=navigator),"ReactNative"===e.product)return!0;let t=e.userAgent||e.vendor||("undefined"!=typeof window?window.opera:"");if(!t){let t=e;return t.userAgentData&&t.userAgentData.mobile}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.test(t)||/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.test(t.substr(0,4))}return!1}function i(){return"undefined"!=typeof window&&null!=window.document||"undefined"!=typeof WorkerGlobalScope}a.defineInteropFlag(r),a.export(r,"mockIsMobile",()=>o),a.export(r,"isMobile",()=>l),a.export(r,"isBrowser",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],brkqc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"PlatformBrowser",()=>p),e("../flags");var a=e("../environment"),o=e("../io/indexed_db"),l=e("../io/local_storage"),i=e("../io/model_management"),u=e("./is_typed_array_browser");class p{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if("utf-8"!==t&&"utf8"!==t)throw Error(`Browser's encoder only supports utf-8, but got ${t}`);return null==this.textEncoder&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}setTimeoutCustom(e,t){if("undefined"==typeof window||!(0,a.env)().getBool("USE_SETTIMEOUTCUSTOM"))return void setTimeout(e,t);this.functionRefs.push(e),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},t),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",e=>{e.source===window&&e.data.name===this.messageName&&(e.stopPropagation(),(0,this.functionRefs[e.data.index])(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0))},!0))}isTypedArray(e){return(0,u.isTypedArrayBrowser)(e)}}if((0,a.env)().get("IS_BROWSER")){(0,a.env)().setPlatform("browser",new p);try{i.ModelStoreManagerRegistry.registerManager(l.BrowserLocalStorage.URL_SCHEME,new(0,l.BrowserLocalStorageManager))}catch(e){}try{i.ModelStoreManagerRegistry.registerManager(o.BrowserIndexedDB.URL_SCHEME,new(0,o.BrowserIndexedDBManager))}catch(e){}}},{"../flags":"8o4LZ","../environment":"h8BWL","../io/indexed_db":"aOV6O","../io/local_storage":"fYfpb","../io/model_management":"1lmNR","./is_typed_array_browser":"4W7WA","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aOV6O:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"deleteDatabase",()=>d),s.export(r,"BrowserIndexedDB",()=>h),s.export(r,"indexedDBRouter",()=>g),s.export(r,"browserIndexedDB",()=>x),s.export(r,"BrowserIndexedDBManager",()=>v),e("../flags");var a=e("../environment"),o=e("./io_utils"),l=e("./router_registry"),i=e("./composite_array_buffer");let u="tensorflowjs",p="models_store",c="model_info_store";async function d(){let e=f();return new Promise((t,r)=>{let n=e.deleteDatabase(u);n.onsuccess=()=>t(),n.onerror=e=>r(e)})}function f(){if(!(0,a.env)().getBool("IS_BROWSER"))throw Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let e="undefined"==typeof window?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(null==t)throw Error("The current browser does not appear to support IndexedDB.");return t}function m(e){let t=e.result;t.createObjectStore(p,{keyPath:"modelPath"}),t.createObjectStore(c,{keyPath:"modelPath"})}class h{constructor(e){if(this.indexedDB=f(),null==e||!e)throw Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise((e,r)=>{let n=this.indexedDB.open(u,1);n.onupgradeneeded=()=>m(n),n.onsuccess=()=>{let s=n.result;if(null==t){let t=s.transaction(p,"readonly"),n=t.objectStore(p).get(this.modelPath);n.onsuccess=()=>{if(null==n.result)return s.close(),r(Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));e(n.result.modelArtifacts)},n.onerror=e=>(s.close(),r(n.error)),t.oncomplete=()=>s.close()}else{let n,a;t.weightData=i.CompositeArrayBuffer.join(t.weightData);let l=(0,o.getModelArtifactsInfoForJSON)(t),u=s.transaction(c,"readwrite"),d=u.objectStore(c);try{n=d.put({modelPath:this.modelPath,modelArtifactsInfo:l})}catch(e){return r(e)}n.onsuccess=()=>{let n,o=(a=s.transaction(p,"readwrite")).objectStore(p);try{n=o.put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:l})}catch(e){return r(e)}n.onsuccess=()=>e({modelArtifactsInfo:l}),n.onerror=e=>{let t=(d=u.objectStore(c)).delete(this.modelPath);t.onsuccess=()=>(s.close(),r(n.error)),t.onerror=e=>(s.close(),r(n.error))}},n.onerror=e=>(s.close(),r(n.error)),u.oncomplete=()=>{null==a?s.close():a.oncomplete=()=>s.close()}}},n.onerror=e=>r(n.error)})}}h.URL_SCHEME="indexeddb://";let g=e=>(0,a.env)().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(h.URL_SCHEME)?x(e.slice(h.URL_SCHEME.length)):null;function x(e){return new h(e)}l.IORouterRegistry.registerSaveRouter(g),l.IORouterRegistry.registerLoadRouter(g);class v{constructor(){this.indexedDB=f()}async listModels(){return new Promise((e,t)=>{let r=this.indexedDB.open(u,1);r.onupgradeneeded=()=>m(r),r.onsuccess=()=>{let n=r.result,s=n.transaction(c,"readonly"),a=s.objectStore(c).getAll();a.onsuccess=()=>{let t={};for(let e of a.result)t[e.modelPath]=e.modelArtifactsInfo;e(t)},a.onerror=e=>(n.close(),t(a.error)),s.oncomplete=()=>n.close()},r.onerror=e=>t(r.error)})}async removeModel(e){var t;return e=(t=e).startsWith(h.URL_SCHEME)?t.slice(h.URL_SCHEME.length):t,new Promise((t,r)=>{let n=this.indexedDB.open(u,1);n.onupgradeneeded=()=>m(n),n.onsuccess=()=>{let s,a=n.result,o=a.transaction(c,"readwrite"),l=o.objectStore(c),i=l.get(e);i.onsuccess=()=>{if(null==i.result)return a.close(),r(Error(`Cannot find model with path '${e}' in IndexedDB.`));{let n=l.delete(e),o=()=>{let n=(s=a.transaction(p,"readwrite")).objectStore(p).delete(e);n.onsuccess=()=>t(i.result.modelArtifactsInfo),n.onerror=e=>r(i.error)};n.onsuccess=o,n.onerror=e=>(o(),a.close(),r(i.error))}},i.onerror=e=>(a.close(),r(i.error)),o.oncomplete=()=>{null==s?a.close():s.oncomplete=()=>a.close()}},n.onerror=e=>r(n.error)})}}},{"../flags":"8o4LZ","../environment":"h8BWL","./io_utils":"I1MAO","./router_registry":"luXuJ","./composite_array_buffer":"d6FlQ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],I1MAO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"encodeWeights",()=>d),s.export(r,"decodeWeights",()=>f),s.export(r,"decodeWeightsStream",()=>x),s.export(r,"concatenateTypedArrays",()=>v),s.export(r,"stringByteLength",()=>b),s.export(r,"arrayBufferToBase64String",()=>_),s.export(r,"base64StringToArrayBuffer",()=>k),s.export(r,"concatenateArrayBuffers",()=>j),s.export(r,"basename",()=>I),s.export(r,"getModelJSONForModelArtifacts",()=>w),s.export(r,"getModelArtifactsForJSONSync",()=>T),s.export(r,"getModelArtifactsForJSON",()=>N),s.export(r,"getModelArtifactsInfoForJSON",()=>S),s.export(r,"getWeightSpecs",()=>C),s.export(r,"getFloat16Decoder",()=>E);var a=e("../ops/complex"),o=e("../ops/tensor"),l=e("../util"),i=e("./types"),u=e("./composite_array_buffer"),p=e("../globals"),c=e("../environment");async function d(e,t){let r=[],n=[],s=Array.isArray(e)?e.map(e=>e.name):Object.keys(e);for(let a=0;a{let t=await l.bytes(),r=new Uint8Array(t.reduce((e,t)=>e+t.length,0)+4*t.length),n=0;for(let e=0;er.slice(s+e,s+t));n[e.name]=h(e,r.slice(s,s+t)),s+=t}return n}async function m(e,t){let r,n=(0,l.sizeFromShape)(e.shape);if("quantization"in e){let t=e.quantization;r=i.DTYPE_VALUE_SIZE_MAP[t.dtype]}else if("string"===e.dtype){let e=0;for(let r=0;r(s=await g(n,s,t)).slice(e,t)),a=(s=await g(n,s,t)).slice(0,t);s=s.slice(t);let o=h(e,a);if(r[e.name]=o,"webgpu"===(0,p.getBackend)()){let e=(0,p.backend)();"uploadToGPU"in e&&(0,l.sizeFromShape)(o.shape)>=(0,c.env)().get("WEBGPU_CPU_HANDOFF_SIZE_THRESHOLD")&&e.uploadToGPU(o.dataId)}}return r}function v(e){if(null===e)throw Error(`Invalid input value: ${JSON.stringify(e)}`);let t=0,r=[];e.forEach(e=>{if(t+=e.byteLength,r.push(e.byteLength===e.buffer.byteLength?e:new e.constructor(e)),!(e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array))throw Error(`Unsupported TypedArray subtype: ${e.constructor.name}`)});let n=new Uint8Array(t),s=0;return r.forEach(e=>{n.set(new Uint8Array(e.buffer),s),s+=e.byteLength}),n.buffer}let y="undefined"!=typeof Buffer&&("undefined"==typeof Blob||"undefined"==typeof atob||"undefined"==typeof btoa);function b(e){return y?Buffer.byteLength(e,"utf8"):new Blob([e]).size}function _(e){if(y)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),r="";for(let e=0,n=t.length;e{let t=e<<13,r=0;for(;(8388608&t)==0;)r-=8388608,t<<=1;return(t&=-8388609)|(r+=0x38800000)},t=new Uint32Array(2048);t[0]=0;for(let r=1;r<1024;r++)t[r]=e(r);for(let e=1024;e<2048;e++)t[e]=0x38000000+(e-1024<<13);return t}(),t=function(){let e=new Uint32Array(64);e[0]=0,e[31]=0x47800000,e[32]=0x80000000,e[63]=0xc7800000;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=0x80000000+(t-32<<23);return e}(),r=function(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}();return n=>{let s=new ArrayBuffer(4*n.length),a=new Uint32Array(s);for(let s=0;s>10]+(1023&o)]+t[o>>10];a[s]=l}return new Float32Array(s)}}},{"../ops/complex":"5ASH6","../ops/tensor":"7c5MK","../util":"icflD","./types":"8bskX","./composite_array_buffer":"d6FlQ","../globals":"kUewM","../environment":"h8BWL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5ASH6":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"complex",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({complex_:function(e,t){let r=(0,l.convertToTensor)(e,"real","complex"),n=(0,l.convertToTensor)(t,"imag","complex");return i.assertShapesMatch(r.shape,n.shape,`real and imag shapes, ${r.shape} and ${n.shape}, must match in call to tf.complex().`),a.ENGINE.runKernel(o.Complex,{real:r,imag:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5isXB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"inferShape",()=>c),s.export(r,"convertToTensor",()=>f),s.export(r,"convertToTensorArray",()=>m);var a=e("./engine"),o=e("./environment"),l=e("./tensor"),i=e("./types"),u=e("./util"),p=e("./util_base");function c(e,t){let r=e;if((0,u.isTypedArray)(e))return"string"===t?[]:[e.length];if((0,i.isWebGLData)(e)){let t=e.channels||"RGBA";return[e.height,e.width*t.length]}if((0,i.isWebGPUData)(e))return[e.buffer.size/(null==t?4:(0,p.bytesPerElement)(t))];if(!Array.isArray(e))return[];let n=[];for(;Array.isArray(r)||(0,u.isTypedArray)(r)&&"string"!==t;)n.push(r.length),r=r[0];return Array.isArray(e)&&(0,o.env)().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&function e(t,r,n){if(n=n||[],!Array.isArray(t)&&!(0,u.isTypedArray)(t))return void(0,u.assert)(0===r.length,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${r[0]} elements`);(0,u.assert)(r.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${t.length} elements`),(0,u.assert)(t.length===r[0],()=>`Element arr[${n.join("][")}] should have ${r[0]} elements, but has ${t.length} elements`);let s=r.slice(1);for(let r=0;r=0&&(s=n),d(n,s,t,r),null==e||!(0,u.isTypedArray)(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e){let n=null==e?"null":e.constructor.name;throw Error(`Argument '${t}' passed to '${r}' must be a Tensor or TensorLike, but got '${n}'`)}let o=c(e,s);(0,u.isTypedArray)(e)||Array.isArray(e)||(e=[e]);let i="string"!==s?(0,u.toTypedArray)(e,s):(0,u.flatten)(e,[],!0);return a.ENGINE.makeTensor(i,o,s)}function m(e,t,r,n="numeric"){if(!Array.isArray(e))throw Error(`Argument ${t} passed to ${r} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map((e,s)=>f(e,`${t}[${s}]`,r,n))}},{"./engine":"c6qwc","./environment":"h8BWL","./tensor":"cfIkd","./types":"huvyT","./util":"icflD","./util_base":"bNQH0","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2me4m":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"OP_SCOPE_SUFFIX",()=>l),s.export(r,"op",()=>i);var a=e("../engine"),o=e("../util");let l="__op";function i(e){let t=Object.keys(e);if(1!==t.length)throw Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let r=t[0],n=e[r];r.endsWith("_")&&(r=r.substring(0,r.length-1));let s=(...e)=>{a.ENGINE.startScope(r);try{let t=n(...e);return(0,o.isPromise)(t)&&console.error("Cannot return a Promise inside of tidy."),a.ENGINE.endScope(t),t}catch(e){throw a.ENGINE.endScope(null),e}};return Object.defineProperty(s,"name",{value:r+=l,configurable:!0}),s}},{"../engine":"c6qwc","../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7c5MK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor",()=>l);var a=e("../tensor_util_env"),o=e("./tensor_ops_util");function l(e,t,r){let n=(0,a.inferShape)(e,r);return(0,o.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"5isXB","./tensor_ops_util":"7gShZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7gShZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"makeTensor",()=>i);var a=e("../engine"),o=e("../types"),l=e("../util");function i(e,t,r,n){if(null==n)n=(0,l.inferDtype)(e);else if("complex64"===n)throw Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if((0,o.isWebGPUData)(e)||(0,o.isWebGLData)(e)){if("float32"!==n&&"int32"!==n)throw Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${n}.`);return a.ENGINE.backend.createTensorFromGPUData(e,t||r,n)}if(!(0,l.isTypedArray)(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e)throw Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(null!=t){(0,l.assertNonNegativeIntegerDimensions)(t);let e=(0,l.sizeFromShape)(t),n=(0,l.sizeFromShape)(r);(0,l.assert)(e===n,()=>`Based on the provided shape, [${t}], the tensor should have ${e} values but has ${n}`);for(let e=0;e`Error creating a new Tensor. Inferred shape (${r}) does not match the provided shape (${t}). `)}}return(0,l.isTypedArray)(e)||Array.isArray(e)||(e=[e]),t=t||r,e="string"!==n?(0,l.toTypedArray)(e,n):(0,l.flatten)(e,[],!0),a.ENGINE.makeTensor(e,t,n)}},{"../engine":"c6qwc","../types":"huvyT","../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8bskX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DTYPE_VALUE_SIZE_MAP",()=>a);let a={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],d6FlQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"CompositeArrayBuffer",()=>o),s.export(r,"search",()=>l);var a=e("../util");class o{static join(e){return new o(e).slice()}constructor(e){if(this.shards=[],this.previousShardIndex=0,null==e||(e instanceof Array||(e=[e]),0===(e=e.map(e=>a.isTypedArray(e)?e.buffer:e)).length))return;this.bufferUniformSize=e[0].byteLength;let t=0;for(let r=0;r=this.byteLength)return -1;if(null!=this.bufferUniformSize)return this.previousShardIndex=Math.floor(e/this.bufferUniformSize),this.previousShardIndex;function t(t){return e=t.end)}if(0===t(this.shards[this.previousShardIndex]))return this.previousShardIndex;let r=l(this.shards,t);return -1===r?-1:(this.previousShardIndex=r,this.previousShardIndex)}}function l(e,t){let r=0,n=e.length;for(;r<=n;){let s=Math.floor((n-r)/2)+r,a=t(e[s]);if(0===a)return s;a<0?n=s:r=s+1}return -1}},{"../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kUewM:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"enableProdMode",()=>u),s.export(r,"enableDebugMode",()=>p),s.export(r,"disableDeprecationWarnings",()=>c),s.export(r,"deprecationWarn",()=>d),s.export(r,"disposeVariables",()=>f),s.export(r,"engine",()=>m),s.export(r,"memory",()=>h),s.export(r,"profile",()=>g),s.export(r,"tidy",()=>x),s.export(r,"dispose",()=>v),s.export(r,"keep",()=>y),s.export(r,"time",()=>b),s.export(r,"setBackend",()=>_),s.export(r,"ready",()=>k),s.export(r,"getBackend",()=>j),s.export(r,"removeBackend",()=>I),s.export(r,"findBackend",()=>w),s.export(r,"findBackendFactory",()=>T),s.export(r,"registerBackend",()=>N),s.export(r,"backend",()=>S),s.export(r,"setPlatform",()=>C);var a=e("./engine"),o=e("./environment"),l=e("./tensor"),i=e("./tensor_util");function u(){(0,o.env)().set("PROD",!0)}function p(){(0,o.env)().set("DEBUG",!0)}function c(){(0,o.env)().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function d(e){(0,o.env)().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}function f(){a.ENGINE.disposeVariables()}function m(){return a.ENGINE}function h(){return a.ENGINE.memory()}function g(e){return a.ENGINE.profile(e)}function x(e,t){return a.ENGINE.tidy(e,t)}function v(e){(0,i.getTensorsInContainer)(e).forEach(e=>e.dispose())}function y(e){return a.ENGINE.keep(e)}function b(e){return a.ENGINE.time(e)}function _(e){return a.ENGINE.setBackend(e)}function k(){return a.ENGINE.ready()}function j(){return a.ENGINE.backendName}function I(e){a.ENGINE.removeBackend(e)}function w(e){return a.ENGINE.findBackend(e)}function T(e){return a.ENGINE.findBackendFactory(e)}function N(e,t,r=1){return a.ENGINE.registerBackend(e,t,r)}function S(){return a.ENGINE.backend}function C(e,t){(0,o.env)().setPlatform(e,t)}(0,l.setDeprecationWarningFn)(d)},{"./engine":"c6qwc","./environment":"h8BWL","./tensor":"cfIkd","./tensor_util":"7PL4y","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],luXuJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"IORouterRegistry",()=>a),s.export(r,"registerSaveRouter",()=>o),s.export(r,"registerLoadRouter",()=>l),s.export(r,"getSaveHandlers",()=>i),s.export(r,"getLoadHandlers",()=>u);class a{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return null==a.instance&&(a.instance=new a),a.instance}static registerSaveRouter(e){a.getInstance().saveRouters.push(e)}static registerLoadRouter(e){a.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return a.getHandlers(e,"save")}static getLoadHandlers(e,t){return a.getHandlers(e,"load",t)}static getHandlers(e,t,r){let n=[];return("load"===t?a.getInstance().loadRouters:a.getInstance().saveRouters).forEach(t=>{let s=t(e,r);null!==s&&n.push(s)}),n}}let o=e=>a.registerSaveRouter(e),l=e=>a.registerLoadRouter(e),i=e=>a.getSaveHandlers(e),u=(e,t)=>a.getLoadHandlers(e,t)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fYfpb:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"purgeLocalStorageArtifacts",()=>d),s.export(r,"BrowserLocalStorage",()=>g),s.export(r,"localStorageRouter",()=>x),s.export(r,"browserLocalStorage",()=>v),s.export(r,"BrowserLocalStorageManager",()=>y),e("../flags");var a=e("../environment"),o=e("../util"),l=e("./io_utils"),i=e("./composite_array_buffer"),u=e("./router_registry");let p="tensorflowjs_models",c="info";function d(){if(!(0,a.env)().getBool("IS_BROWSER")||"undefined"==typeof window||void 0===window.localStorage)throw Error("purgeLocalStorageModels() cannot proceed because local storage is unavailable in the current environment.");let e=window.localStorage,t=[];for(let r=0;rs.length){e.removeItem(n);let r=h(n);-1===t.indexOf(r)&&t.push(r)}}return t}function f(e){return{info:[p,e,c].join("/"),topology:[p,e,"model_topology"].join("/"),weightSpecs:[p,e,"weight_specs"].join("/"),weightData:[p,e,"weight_data"].join("/"),modelMetadata:[p,e,"model_metadata"].join("/")}}function m(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function h(e){let t=e.split("/");if(t.length<3)throw Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join("/")}class g{constructor(e){if(!(0,a.env)().getBool("IS_BROWSER")||"undefined"==typeof window||void 0===window.localStorage)throw Error("The current environment does not support local storage.");if(this.LS=window.localStorage,null==e||!e)throw Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=f(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let t=JSON.stringify(e.modelTopology),r=JSON.stringify(e.weightSpecs),n=(0,l.getModelArtifactsInfoForJSON)(e),s=i.CompositeArrayBuffer.join(e.weightData);try{this.LS.setItem(this.keys.info,JSON.stringify(n)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,r),this.LS.setItem(this.keys.weightData,(0,l.arrayBufferToBase64String)(s));let a={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,signature:null!=e.signature?e.signature:void 0,userDefinedMetadata:null!=e.userDefinedMetadata?e.userDefinedMetadata:void 0,modelInitializer:null!=e.modelInitializer?e.modelInitializer:void 0,initializerSignature:null!=e.initializerSignature?e.initializerSignature:void 0,trainingConfig:null!=e.trainingConfig?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(a)),{modelArtifactsInfo:n}}catch(e){throw m(this.keys),Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${n.modelTopologyBytes}, weightSpecsBytes=${n.weightSpecsBytes}, weightDataBytes=${n.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(null==e)throw Error(`In local storage, there is no model with name '${this.modelPath}'`);if("JSON"!==e.modelTopologyType)throw Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},r=JSON.parse(this.LS.getItem(this.keys.topology));if(null==r)throw Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=r;let n=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(null==n)throw Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=n;let s=this.LS.getItem(this.keys.modelMetadata);if(null!=s){let e=JSON.parse(s);t.format=e.format,t.generatedBy=e.generatedBy,t.convertedBy=e.convertedBy,null!=e.signature&&(t.signature=e.signature),null!=e.userDefinedMetadata&&(t.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(t.modelInitializer=e.modelInitializer),null!=e.initializerSignature&&(t.initializerSignature=e.initializerSignature),null!=e.trainingConfig&&(t.trainingConfig=e.trainingConfig)}let a=this.LS.getItem(this.keys.weightData);if(null==a)throw Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=(0,l.base64StringToArrayBuffer)(a),t}}g.URL_SCHEME="localstorage://";let x=e=>(0,a.env)().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(g.URL_SCHEME)?v(e.slice(g.URL_SCHEME.length)):null;function v(e){return new g(e)}u.IORouterRegistry.registerSaveRouter(x),u.IORouterRegistry.registerLoadRouter(x);class y{constructor(){(0,o.assert)((0,a.env)().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),(0,o.assert)("undefined"==typeof window||void 0!==window.localStorage,()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=p+"/",r="/"+c;for(let n=0;nl),s.export(r,"moveModel",()=>f),s.export(r,"copyModel",()=>d),s.export(r,"removeModel",()=>c),s.export(r,"listModels",()=>p);var a=e("../util"),o=e("./router_registry");class l{constructor(){this.managers={}}static getInstance(){return null==l.instance&&(l.instance=new l),l.instance}static registerManager(e,t){(0,a.assert)(null!=e,()=>"scheme must not be undefined or null."),e.endsWith("://")&&(e=e.slice(0,e.indexOf("://"))),(0,a.assert)(e.length>0,()=>"scheme must not be an empty string.");let r=l.getInstance();(0,a.assert)(null==r.managers[e],()=>`A model store manager is already registered for scheme '${e}'.`),r.managers[e]=t}static getManager(e){let t=l.getInstance().managers[e];if(null==t)throw Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(l.getInstance().managers)}}function i(e){if(-1===e.indexOf("://"))throw Error(`The url string provided does not contain a scheme. Supported schemes are: ${l.getSchemes().join(",")}`);return{scheme:e.split("://")[0],path:e.split("://")[1]}}async function u(e,t,r=!1){(0,a.assert)(e!==t,()=>`Old path and new path are the same: '${e}'`);let n=o.IORouterRegistry.getLoadHandlers(e);(0,a.assert)(n.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),(0,a.assert)(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${e}.`);let s=n[0],p=o.IORouterRegistry.getSaveHandlers(t);(0,a.assert)(p.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),(0,a.assert)(p.length<2,()=>`Copying failed because more than one (${n.length}) save handlers for destination URL ${t}.`);let c=p[0],d=i(e).scheme,f=i(e).path,m=d===i(e).scheme,h=await s.load();r&&m&&await l.getManager(d).removeModel(f);let g=await c.save(h);return r&&!m&&await l.getManager(d).removeModel(f),g.modelArtifactsInfo}async function p(){let e=l.getSchemes(),t={};for(let r of e){let e=await l.getManager(r).listModels();for(let n in e)t[r+"://"+n]=e[n]}return t}async function c(e){let t=i(e);return l.getManager(t.scheme).removeModel(t.path)}async function d(e,t){return u(e,t,!1)}async function f(e,t){return u(e,t,!0)}},{"../util":"icflD","./router_registry":"luXuJ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],a3UX5:[function(e,t,r,n){let s;var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"getNodeFetch",()=>l),a.export(r,"resetSystemFetch",()=>i),a.export(r,"setSystemFetch",()=>u),a.export(r,"getSystemFetch",()=>p),a.export(r,"PlatformNode",()=>c);var o=e("../environment");let l={importFetch:()=>e("dfcdb939bb56fbb8")};function i(){s=null}function u(e){s=e}function p(){return s}class c{constructor(){this.util=e("3818a9dc927c4605"),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return null!=(0,o.env)().global.fetch?(0,o.env)().global.fetch(e,t):(null==s&&(s=l.importFetch()),s(e,t))}now(){let e=process.hrtime();return 1e3*e[0]+e[1]/1e6}encode(e,t){if("utf-8"!==t&&"utf8"!==t)throw Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return 0===e.length?"":new this.util.TextDecoder(t).decode(e)}isTypedArray(e){return this.util.types.isFloat32Array(e)||this.util.types.isInt32Array(e)||this.util.types.isUint8Array(e)||this.util.types.isUint8ClampedArray(e)}}(0,o.env)().get("IS_NODE")&&!(0,o.env)().get("IS_BROWSER")&&(0,o.env)().setPlatform("node",new c)},{"../environment":"h8BWL",dfcdb939bb56fbb8:"9xOkC","3818a9dc927c4605":"9xOkC","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9xOkC":[function(e,t,r,n){},{}],"1EiiB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"buffer",()=>l);var a=e("../tensor"),o=e("../util");function l(e,t="float32",r){return t=t||"float32",o.assertNonNegativeIntegerDimensions(e),new(0,a.TensorBuffer)(e,t,r)}},{"../tensor":"cfIkd","../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],juFUN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cast",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({cast_:function(e,t){let r=(0,l.convertToTensor)(e,"x","cast");if(!i.isValidDtype(t))throw Error(`Failed to cast to unknown dtype ${t}`);if("string"===t&&"string"!==r.dtype||"string"!==t&&"string"===r.dtype)throw Error("Only strings can be casted to strings");return a.ENGINE.runKernel(o.Cast,{x:r},{dtype:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lH8Rn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"clone",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({clone_:function(e){let t=(0,l.convertToTensor)(e,"x","clone","string_or_numeric");return a.ENGINE.runKernel(o.Identity,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],l1jud:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t=!1){console.log(e.toString(t))}s.defineInteropFlag(r),s.export(r,"print",()=>a)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1NAAy":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"registerOptimizers",()=>m);var a=e("./adadelta_optimizer"),o=e("./adagrad_optimizer"),l=e("./adam_optimizer"),i=e("./adamax_optimizer"),u=e("./momentum_optimizer"),p=e("./rmsprop_optimizer"),c=e("./sgd_optimizer"),d=e("../serialization");let f=[a.AdadeltaOptimizer,o.AdagradOptimizer,l.AdamOptimizer,i.AdamaxOptimizer,u.MomentumOptimizer,p.RMSPropOptimizer,c.SGDOptimizer];function m(){for(let e of f)(0,d.registerClass)(e)}},{"./adadelta_optimizer":"j1AeL","./adagrad_optimizer":"4w9Rg","./adam_optimizer":"f7FpJ","./adamax_optimizer":"aoq0y","./momentum_optimizer":"68FSY","./rmsprop_optimizer":"jahoj","./sgd_optimizer":"h6aU6","../serialization":"3f8fL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],j1AeL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AdadeltaOptimizer",()=>m);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/div"),u=e("../ops/mul"),p=e("../ops/ops"),c=e("../ops/square"),d=e("../ops/zeros_like"),f=e("./optimizer");class m extends f.Optimizer{static get className(){return"Adadelta"}constructor(e,t,r=null){super(),this.learningRate=e,this.rho=t,this.epsilon=r,this.accumulatedGrads=[],this.accumulatedUpdates=[],null==r&&(this.epsilon=a.ENGINE.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(e=>e.name):Object.keys(e)).forEach((t,r)=>{let n=a.ENGINE.registeredVariables[t];null==this.accumulatedGrads[r]&&(this.accumulatedGrads[r]={originalName:`${t}/accum_grad`,variable:(0,o.tidy)(()=>(0,d.zerosLike)(n).variable(!1))}),null==this.accumulatedUpdates[r]&&(this.accumulatedUpdates[r]={originalName:`${t}/accum_var`,variable:(0,o.tidy)(()=>(0,d.zerosLike)(n).variable(!1))});let s=Array.isArray(e)?e[r].tensor:e[t];if(null==s)return;let f=this.accumulatedGrads[r].variable,m=this.accumulatedUpdates[r].variable;(0,o.tidy)(()=>{let e=(0,l.add)((0,u.mul)(f,this.rho),(0,u.mul)((0,c.square)(s),1-this.rho)),t=(0,u.mul)((0,i.div)((0,p.sqrt)((0,l.add)(m,this.epsilon)),(0,p.sqrt)((0,l.add)(f,this.epsilon))),s),r=(0,l.add)((0,u.mul)(m,this.rho),(0,u.mul)((0,c.square)(t),1-this.rho));f.assign(e),m.assign(r);let a=(0,l.add)((0,u.mul)(t,-this.learningRate),n);n.assign(a)})}),this.incrementIterations()}dispose(){null!=this.accumulatedUpdates&&((0,o.dispose)(this.accumulatedGrads.map(e=>e.variable)),(0,o.dispose)(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){let t=(e=await this.extractIterations(e)).length/2;this.accumulatedGrads=e.slice(0,t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)})),this.accumulatedUpdates=e.slice(t,2*t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}}},{"../engine":"c6qwc","../globals":"kUewM","../ops/add":"dX80O","../ops/div":"lbTan","../ops/mul":"3233B","../ops/ops":"165HQ","../ops/square":"kNrd2","../ops/zeros_like":"1peA5","./optimizer":"kmErF","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dX80O:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"add",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({add_:function(e,t){let r=(0,i.convertToTensor)(e,"a","add"),n=(0,i.convertToTensor)(t,"b","add");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Add,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lbTan:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"div",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./floorDiv");let p=(0,e("./operation").op)({div_:function(e,t){let r=(0,i.convertToTensor)(e,"a","div"),n=(0,i.convertToTensor)(t,"b","div");if([r,n]=(0,l.makeTypesMatch)(r,n),"int32"===r.dtype&&"int32"===n.dtype)return(0,u.floorDiv)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.RealDiv,s,{})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./floorDiv":"hd4UF","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hd4UF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floorDiv",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({floorDiv_:function(e,t){let r=(0,i.convertToTensor)(e,"a","floorDiv"),n=(0,i.convertToTensor)(t,"b","floorDiv");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.FloorDiv,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3233B":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mul",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({mul_:function(e,t){let r=(0,i.convertToTensor)(e,"a","mul"),n=(0,i.convertToTensor)(t,"b","mul");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Multiply,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"165HQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"abs",()=>a.abs),s.export(r,"acos",()=>o.acos),s.export(r,"acosh",()=>l.acosh),s.export(r,"add",()=>i.add),s.export(r,"addN",()=>u.addN),s.export(r,"all",()=>p.all),s.export(r,"any",()=>c.any),s.export(r,"argMax",()=>d.argMax),s.export(r,"argMin",()=>f.argMin),s.export(r,"asin",()=>m.asin),s.export(r,"asinh",()=>h.asinh),s.export(r,"atan",()=>g.atan),s.export(r,"atan2",()=>x.atan2),s.export(r,"atanh",()=>v.atanh),s.export(r,"avgPool",()=>y.avgPool),s.export(r,"avgPool3d",()=>b.avgPool3d),s.export(r,"basicLSTMCell",()=>_.basicLSTMCell),s.export(r,"batchToSpaceND",()=>k.batchToSpaceND),s.export(r,"batchNorm",()=>j.batchNorm),s.export(r,"batchNorm2d",()=>I.batchNorm2d),s.export(r,"batchNorm3d",()=>w.batchNorm3d),s.export(r,"batchNorm4d",()=>T.batchNorm4d),s.export(r,"bincount",()=>N.bincount),s.export(r,"bitwiseAnd",()=>S.bitwiseAnd),s.export(r,"broadcastArgs",()=>C.broadcastArgs),s.export(r,"broadcastTo",()=>E.broadcastTo),s.export(r,"buffer",()=>F.buffer),s.export(r,"cast",()=>A.cast),s.export(r,"ceil",()=>R.ceil),s.export(r,"clipByValue",()=>P.clipByValue),s.export(r,"clone",()=>D.clone),s.export(r,"complex",()=>$.complex),s.export(r,"concat",()=>O.concat),s.export(r,"concat1d",()=>M.concat1d),s.export(r,"concat2d",()=>W.concat2d),s.export(r,"concat3d",()=>B.concat3d),s.export(r,"concat4d",()=>L.concat4d),s.export(r,"conv1d",()=>V.conv1d),s.export(r,"conv2d",()=>U.conv2d),s.export(r,"conv2dTranspose",()=>G.conv2dTranspose),s.export(r,"conv3d",()=>z.conv3d),s.export(r,"conv3dTranspose",()=>Q.conv3dTranspose),s.export(r,"cos",()=>q.cos),s.export(r,"cosh",()=>H.cosh),s.export(r,"cumprod",()=>K.cumprod),s.export(r,"cumsum",()=>X.cumsum),s.export(r,"denseBincount",()=>Y.denseBincount),s.export(r,"depthToSpace",()=>J.depthToSpace),s.export(r,"depthwiseConv2d",()=>Z.depthwiseConv2d),s.export(r,"diag",()=>ee.diag),s.export(r,"dilation2d",()=>et.dilation2d),s.export(r,"div",()=>er.div),s.export(r,"divNoNan",()=>en.divNoNan),s.export(r,"dot",()=>es.dot),s.export(r,"einsum",()=>ea.einsum),s.export(r,"elu",()=>eo.elu),s.export(r,"ensureShape",()=>el.ensureShape),s.export(r,"equal",()=>ei.equal),s.export(r,"erf",()=>eu.erf),s.export(r,"euclideanNorm",()=>ep.euclideanNorm),s.export(r,"exp",()=>ec.exp),s.export(r,"expandDims",()=>ed.expandDims),s.export(r,"expm1",()=>ef.expm1),s.export(r,"eye",()=>em.eye),s.export(r,"fill",()=>eh.fill),s.export(r,"floor",()=>eg.floor),s.export(r,"floorDiv",()=>ex.floorDiv),s.export(r,"gather",()=>ev.gather),s.export(r,"greater",()=>ey.greater),s.export(r,"greaterEqual",()=>eb.greaterEqual),s.export(r,"imag",()=>e_.imag),s.export(r,"isFinite",()=>ek.isFinite),s.export(r,"isInf",()=>ej.isInf),s.export(r,"isNaN",()=>eI.isNaN),s.export(r,"leakyRelu",()=>ew.leakyRelu),s.export(r,"less",()=>eT.less),s.export(r,"lessEqual",()=>eN.lessEqual),s.export(r,"linspace",()=>eS.linspace),s.export(r,"localResponseNormalization",()=>eC.localResponseNormalization),s.export(r,"log",()=>eE.log),s.export(r,"log1p",()=>eF.log1p),s.export(r,"logSigmoid",()=>eA.logSigmoid),s.export(r,"logSoftmax",()=>eR.logSoftmax),s.export(r,"logSumExp",()=>eP.logSumExp),s.export(r,"logicalAnd",()=>eD.logicalAnd),s.export(r,"logicalNot",()=>e$.logicalNot),s.export(r,"logicalOr",()=>eO.logicalOr),s.export(r,"logicalXor",()=>eM.logicalXor),s.export(r,"lowerBound",()=>eW.lowerBound),s.export(r,"matMul",()=>eB.matMul),s.export(r,"max",()=>eL.max),s.export(r,"maxPool",()=>eV.maxPool),s.export(r,"maxPool3d",()=>eU.maxPool3d),s.export(r,"maxPoolWithArgmax",()=>eG.maxPoolWithArgmax),s.export(r,"maximum",()=>ez.maximum),s.export(r,"mean",()=>eQ.mean),s.export(r,"meshgrid",()=>eq.meshgrid),s.export(r,"min",()=>eH.min),s.export(r,"minimum",()=>eK.minimum),s.export(r,"mirrorPad",()=>eX.mirrorPad),s.export(r,"mod",()=>eY.mod),s.export(r,"moments",()=>eJ.moments),s.export(r,"mul",()=>eZ.mul),s.export(r,"multiRNNCell",()=>e0.multiRNNCell),s.export(r,"multinomial",()=>e1.multinomial),s.export(r,"neg",()=>e2.neg),s.export(r,"notEqual",()=>e3.notEqual),s.export(r,"oneHot",()=>e5.oneHot),s.export(r,"ones",()=>e4.ones),s.export(r,"onesLike",()=>e6.onesLike),s.export(r,"outerProduct",()=>e8.outerProduct),s.export(r,"pad",()=>e9.pad),s.export(r,"pad1d",()=>e7.pad1d),s.export(r,"pad2d",()=>te.pad2d),s.export(r,"pad3d",()=>tt.pad3d),s.export(r,"pad4d",()=>tr.pad4d),s.export(r,"pool",()=>tn.pool),s.export(r,"pow",()=>ts.pow),s.export(r,"prelu",()=>ta.prelu),s.export(r,"print",()=>to.print),s.export(r,"prod",()=>tl.prod),s.export(r,"raggedGather",()=>ti.raggedGather),s.export(r,"raggedRange",()=>tu.raggedRange),s.export(r,"raggedTensorToTensor",()=>tp.raggedTensorToTensor),s.export(r,"rand",()=>tc.rand),s.export(r,"randomGamma",()=>td.randomGamma),s.export(r,"randomNormal",()=>tf.randomNormal),s.export(r,"randomStandardNormal",()=>tm.randomStandardNormal),s.export(r,"randomUniform",()=>th.randomUniform),s.export(r,"randomUniformInt",()=>tg.randomUniformInt),s.export(r,"range",()=>tx.range),s.export(r,"real",()=>tv.real),s.export(r,"reciprocal",()=>ty.reciprocal),s.export(r,"relu",()=>tb.relu),s.export(r,"relu6",()=>t_.relu6),s.export(r,"reshape",()=>tk.reshape),s.export(r,"reverse",()=>tj.reverse),s.export(r,"reverse1d",()=>tI.reverse1d),s.export(r,"reverse2d",()=>tw.reverse2d),s.export(r,"reverse3d",()=>tT.reverse3d),s.export(r,"reverse4d",()=>tN.reverse4d),s.export(r,"round",()=>tS.round),s.export(r,"rsqrt",()=>tC.rsqrt),s.export(r,"scalar",()=>tE.scalar),s.export(r,"selu",()=>tF.selu),s.export(r,"separableConv2d",()=>tA.separableConv2d),s.export(r,"setdiff1dAsync",()=>tR.setdiff1dAsync),s.export(r,"sigmoid",()=>tP.sigmoid),s.export(r,"sign",()=>tD.sign),s.export(r,"sin",()=>t$.sin),s.export(r,"sinh",()=>tO.sinh),s.export(r,"slice",()=>tM.slice),s.export(r,"slice1d",()=>tW.slice1d),s.export(r,"slice2d",()=>tB.slice2d),s.export(r,"slice3d",()=>tL.slice3d),s.export(r,"slice4d",()=>tV.slice4d),s.export(r,"softmax",()=>tU.softmax),s.export(r,"softplus",()=>tG.softplus),s.export(r,"spaceToBatchND",()=>tz.spaceToBatchND),s.export(r,"fft",()=>tQ.fft),s.export(r,"ifft",()=>tq.ifft),s.export(r,"irfft",()=>tH.irfft),s.export(r,"rfft",()=>tK.rfft),s.export(r,"split",()=>tX.split),s.export(r,"sqrt",()=>tY.sqrt),s.export(r,"square",()=>tJ.square),s.export(r,"squaredDifference",()=>tZ.squaredDifference),s.export(r,"squeeze",()=>t0.squeeze),s.export(r,"stack",()=>t1.stack),s.export(r,"step",()=>t2.step),s.export(r,"stridedSlice",()=>t3.stridedSlice),s.export(r,"sub",()=>t5.sub),s.export(r,"sum",()=>t4.sum),s.export(r,"tan",()=>t6.tan),s.export(r,"tanh",()=>t8.tanh),s.export(r,"tensor",()=>t9.tensor),s.export(r,"tensor1d",()=>t7.tensor1d),s.export(r,"tensor2d",()=>re.tensor2d),s.export(r,"tensor3d",()=>rt.tensor3d),s.export(r,"tensor4d",()=>rr.tensor4d),s.export(r,"tensor5d",()=>rn.tensor5d),s.export(r,"tensor6d",()=>rs.tensor6d),s.export(r,"tensorScatterUpdate",()=>ra.tensorScatterUpdate),s.export(r,"tile",()=>ro.tile),s.export(r,"topk",()=>rl.topk),s.export(r,"truncatedNormal",()=>ri.truncatedNormal),s.export(r,"unique",()=>ru.unique),s.export(r,"unsortedSegmentSum",()=>rp.unsortedSegmentSum),s.export(r,"unstack",()=>rc.unstack),s.export(r,"upperBound",()=>rd.upperBound),s.export(r,"variable",()=>rf.variable),s.export(r,"where",()=>rm.where),s.export(r,"whereAsync",()=>rh.whereAsync),s.export(r,"zeros",()=>rg.zeros),s.export(r,"zerosLike",()=>rx.zerosLike),s.export(r,"op",()=>rC.op),s.export(r,"OP_SCOPE_SUFFIX",()=>rC.OP_SCOPE_SUFFIX),s.export(r,"image",()=>ni),s.export(r,"linalg",()=>nu),s.export(r,"losses",()=>np),s.export(r,"spectral",()=>no),s.export(r,"fused",()=>rE),s.export(r,"signal",()=>nl),s.export(r,"sparse",()=>nc),s.export(r,"string",()=>nd);var a=e("./abs"),o=e("./acos"),l=e("./acosh"),i=e("./add"),u=e("./add_n"),p=e("./all"),c=e("./any"),d=e("./arg_max"),f=e("./arg_min"),m=e("./asin"),h=e("./asinh"),g=e("./atan"),x=e("./atan2"),v=e("./atanh"),y=e("./avg_pool"),b=e("./avg_pool_3d"),_=e("./basic_lstm_cell"),k=e("./batch_to_space_nd"),j=e("./batchnorm"),I=e("./batchnorm2d"),w=e("./batchnorm3d"),T=e("./batchnorm4d"),N=e("./bincount"),S=e("./bitwise_and"),C=e("./broadcast_args"),E=e("./broadcast_to"),F=e("./buffer"),A=e("./cast"),R=e("./ceil"),P=e("./clip_by_value"),D=e("./clone"),$=e("./complex"),O=e("./concat"),M=e("./concat_1d"),W=e("./concat_2d"),B=e("./concat_3d"),L=e("./concat_4d"),V=e("./conv1d"),U=e("./conv2d"),G=e("./conv2d_transpose"),z=e("./conv3d"),Q=e("./conv3d_transpose"),q=e("./cos"),H=e("./cosh"),K=e("./cumprod"),X=e("./cumsum"),Y=e("./dense_bincount"),J=e("./depth_to_space"),Z=e("./depthwise_conv2d"),ee=e("./diag"),et=e("./dilation2d"),er=e("./div"),en=e("./div_no_nan"),es=e("./dot"),ea=e("./einsum"),eo=e("./elu"),el=e("./ensure_shape"),ei=e("./equal"),eu=e("./erf"),ep=e("./euclidean_norm"),ec=e("./exp"),ed=e("./expand_dims"),ef=e("./expm1"),em=e("./eye"),eh=e("./fill"),eg=e("./floor"),ex=e("./floorDiv"),ev=e("./gather"),ey=e("./greater"),eb=e("./greater_equal"),e_=e("./imag"),ek=e("./is_finite"),ej=e("./is_inf"),eI=e("./is_nan"),ew=e("./leaky_relu"),eT=e("./less"),eN=e("./less_equal"),eS=e("./linspace"),eC=e("./local_response_normalization"),eE=e("./log"),eF=e("./log1p"),eA=e("./log_sigmoid"),eR=e("./log_softmax"),eP=e("./log_sum_exp"),eD=e("./logical_and"),e$=e("./logical_not"),eO=e("./logical_or"),eM=e("./logical_xor"),eW=e("./lower_bound"),eB=e("./mat_mul"),eL=e("./max"),eV=e("./max_pool"),eU=e("./max_pool_3d"),eG=e("./max_pool_with_argmax"),ez=e("./maximum"),eQ=e("./mean"),eq=e("./meshgrid"),eH=e("./min"),eK=e("./minimum"),eX=e("./mirror_pad"),eY=e("./mod"),eJ=e("./moments"),eZ=e("./mul"),e0=e("./multi_rnn_cell"),e1=e("./multinomial"),e2=e("./neg"),e3=e("./not_equal"),e5=e("./one_hot"),e4=e("./ones"),e6=e("./ones_like"),e8=e("./outer_product"),e9=e("./pad"),e7=e("./pad1d"),te=e("./pad2d"),tt=e("./pad3d"),tr=e("./pad4d"),tn=e("./pool"),ts=e("./pow"),ta=e("./prelu"),to=e("./print"),tl=e("./prod"),ti=e("./ragged_gather"),tu=e("./ragged_range"),tp=e("./ragged_tensor_to_tensor"),tc=e("./rand"),td=e("./random_gamma"),tf=e("./random_normal"),tm=e("./random_standard_normal"),th=e("./random_uniform"),tg=e("./random_uniform_int"),tx=e("./range"),tv=e("./real"),ty=e("./reciprocal"),tb=e("./relu"),t_=e("./relu6"),tk=e("./reshape"),tj=e("./reverse"),tI=e("./reverse_1d"),tw=e("./reverse_2d"),tT=e("./reverse_3d"),tN=e("./reverse_4d"),tS=e("./round"),tC=e("./rsqrt"),tE=e("./scalar"),tF=e("./selu"),tA=e("./separable_conv2d"),tR=e("./setdiff1d_async"),tP=e("./sigmoid"),tD=e("./sign"),t$=e("./sin"),tO=e("./sinh"),tM=e("./slice"),tW=e("./slice1d"),tB=e("./slice2d"),tL=e("./slice3d"),tV=e("./slice4d"),tU=e("./softmax"),tG=e("./softplus"),tz=e("./space_to_batch_nd"),tQ=e("./spectral/fft"),tq=e("./spectral/ifft"),tH=e("./spectral/irfft"),tK=e("./spectral/rfft"),tX=e("./split"),tY=e("./sqrt"),tJ=e("./square"),tZ=e("./squared_difference"),t0=e("./squeeze"),t1=e("./stack"),t2=e("./step"),t3=e("./strided_slice"),t5=e("./sub"),t4=e("./sum"),t6=e("./tan"),t8=e("./tanh"),t9=e("./tensor"),t7=e("./tensor1d"),re=e("./tensor2d"),rt=e("./tensor3d"),rr=e("./tensor4d"),rn=e("./tensor5d"),rs=e("./tensor6d"),ra=e("./tensor_scatter_update"),ro=e("./tile"),rl=e("./topk"),ri=e("./truncated_normal"),ru=e("./unique"),rp=e("./unsorted_segment_sum"),rc=e("./unstack"),rd=e("./upper_bound"),rf=e("./variable"),rm=e("./where"),rh=e("./where_async"),rg=e("./zeros"),rx=e("./zeros_like"),rv=e("./boolean_mask");s.exportAll(rv,r);var ry=e("./transpose");s.exportAll(ry,r);var rb=e("./norm");s.exportAll(rb,r);var r_=e("./moving_average");s.exportAll(r_,r);var rk=e("./scatter_nd");s.exportAll(rk,r);var rj=e("./search_sorted");s.exportAll(rj,r);var rI=e("./sparse_to_dense");s.exportAll(rI,r);var rw=e("./gather_nd");s.exportAll(rw,r);var rT=e("./dropout");s.exportAll(rT,r);var rN=e("./signal_ops_util");s.exportAll(rN,r);var rS=e("./in_top_k");s.exportAll(rS,r);var rC=e("./operation"),rE=e("./fused_ops"),rF=e("./signal/hamming_window"),rA=e("./signal/hann_window"),rR=e("./signal/frame"),rP=e("./signal/stft"),rD=e("./image/crop_and_resize"),r$=e("./image/flip_left_right"),rO=e("./image/grayscale_to_rgb"),rM=e("./image/rgb_to_grayscale"),rW=e("./image/rotate_with_offset"),rB=e("./image/non_max_suppression"),rL=e("./image/non_max_suppression_async"),rV=e("./image/non_max_suppression_with_score"),rU=e("./image/non_max_suppression_with_score_async"),rG=e("./image/non_max_suppression_padded"),rz=e("./image/non_max_suppression_padded_async"),rQ=e("./image/resize_bilinear"),rq=e("./image/resize_nearest_neighbor"),rH=e("./image/threshold"),rK=e("./image/transform"),rX=e("./linalg/band_part"),rY=e("./linalg/gram_schmidt"),rJ=e("./linalg/qr"),rZ=e("./losses/absolute_difference"),r0=e("./losses/compute_weighted_loss"),r1=e("./losses/cosine_distance"),r2=e("./losses/hinge_loss"),r3=e("./losses/huber_loss"),r5=e("./losses/log_loss"),r4=e("./losses/mean_squared_error"),r6=e("./losses/sigmoid_cross_entropy"),r8=e("./losses/softmax_cross_entropy"),r9=e("./sparse/sparse_fill_empty_rows"),r7=e("./sparse/sparse_reshape"),ne=e("./sparse/sparse_segment_mean"),nt=e("./sparse/sparse_segment_sum"),nr=e("./string/string_n_grams"),nn=e("./string/string_split"),ns=e("./string/string_to_hash_bucket_fast"),na=e("./string/static_regex_replace");let no={fft:tQ.fft,ifft:tq.ifft,rfft:tK.rfft,irfft:tH.irfft},nl={hammingWindow:rF.hammingWindow,hannWindow:rA.hannWindow,frame:rR.frame,stft:rP.stft},ni={flipLeftRight:r$.flipLeftRight,grayscaleToRGB:rO.grayscaleToRGB,resizeNearestNeighbor:rq.resizeNearestNeighbor,resizeBilinear:rQ.resizeBilinear,rgbToGrayscale:rM.rgbToGrayscale,rotateWithOffset:rW.rotateWithOffset,cropAndResize:rD.cropAndResize,nonMaxSuppression:rB.nonMaxSuppression,nonMaxSuppressionAsync:rL.nonMaxSuppressionAsync,nonMaxSuppressionWithScore:rV.nonMaxSuppressionWithScore,nonMaxSuppressionWithScoreAsync:rU.nonMaxSuppressionWithScoreAsync,nonMaxSuppressionPadded:rG.nonMaxSuppressionPadded,nonMaxSuppressionPaddedAsync:rz.nonMaxSuppressionPaddedAsync,threshold:rH.threshold,transform:rK.transform},nu={bandPart:rX.bandPart,gramSchmidt:rY.gramSchmidt,qr:rJ.qr},np={absoluteDifference:rZ.absoluteDifference,computeWeightedLoss:r0.computeWeightedLoss,cosineDistance:r1.cosineDistance,hingeLoss:r2.hingeLoss,huberLoss:r3.huberLoss,logLoss:r5.logLoss,meanSquaredError:r4.meanSquaredError,sigmoidCrossEntropy:r6.sigmoidCrossEntropy,softmaxCrossEntropy:r8.softmaxCrossEntropy},nc={sparseFillEmptyRows:r9.sparseFillEmptyRows,sparseReshape:r7.sparseReshape,sparseSegmentMean:ne.sparseSegmentMean,sparseSegmentSum:nt.sparseSegmentSum},nd={stringNGrams:nr.stringNGrams,stringSplit:nn.stringSplit,stringToHashBucketFast:ns.stringToHashBucketFast,staticRegexReplace:na.staticRegexReplace}},{"./abs":"9L54v","./acos":"3F3Au","./acosh":"e95zu","./add":"dX80O","./add_n":"5lntY","./all":"aCEYc","./any":"b6liB","./arg_max":"8W1JY","./arg_min":"1RlxL","./asin":"4OGEM","./asinh":"dvHGj","./atan":"2RiRW","./atan2":"8Y0P5","./atanh":"5WGMQ","./avg_pool":"jw2jw","./avg_pool_3d":"3n4qA","./basic_lstm_cell":"7RBRT","./batch_to_space_nd":"48Xl7","./batchnorm":"7fvnN","./batchnorm2d":"jQqu2","./batchnorm3d":"jVTK1","./batchnorm4d":"eQRnY","./bincount":"87h6O","./bitwise_and":"99SCY","./broadcast_args":"e160q","./broadcast_to":"4YYa0","./buffer":"1EiiB","./cast":"juFUN","./ceil":"hFqEA","./clip_by_value":"31hx8","./clone":"lH8Rn","./complex":"5ASH6","./concat":"56PTj","./concat_1d":"kkDXR","./concat_2d":"llNx8","./concat_3d":"a0OBC","./concat_4d":"h700a","./conv1d":"7NGKU","./conv2d":"iHP9e","./conv2d_transpose":"c5wsu","./conv3d":"aflLe","./conv3d_transpose":"5RHpg","./cos":"bj03v","./cosh":"24JjO","./cumprod":"5RZdI","./cumsum":"4ULzW","./dense_bincount":"cOTcl","./depth_to_space":"8r7gw","./depthwise_conv2d":"ffu4I","./diag":"bS9J2","./dilation2d":"lPY76","./div":"lbTan","./div_no_nan":"8msU1","./dot":"1Be6D","./einsum":"bFs63","./elu":"elRT9","./ensure_shape":"6l9tH","./equal":"4fBRt","./erf":"gmOa2","./euclidean_norm":"aYQZA","./exp":"aYtA8","./expand_dims":"6YWDL","./expm1":"ak9I4","./eye":"j8T5c","./fill":"d4iwa","./floor":"Urqox","./floorDiv":"hd4UF","./gather":"9M6NX","./greater":"3KUcR","./greater_equal":"ai7qe","./imag":"iepBk","./is_finite":"bOC6f","./is_inf":"d61Qv","./is_nan":"jOr5d","./leaky_relu":"bECmF","./less":"3qq9g","./less_equal":"hEbcw","./linspace":"8RguN","./local_response_normalization":"jRGtA","./log":"bjj59","./log1p":"acqft","./log_sigmoid":"3aDHP","./log_softmax":"7nk63","./log_sum_exp":"gPZz6","./logical_and":"8lNbb","./logical_not":"cYHsS","./logical_or":"jhe6h","./logical_xor":"crgLh","./lower_bound":"f4R9w","./mat_mul":"hHb0J","./max":"erFBB","./max_pool":"2rPA7","./max_pool_3d":"3kM0r","./max_pool_with_argmax":"1yBgJ","./maximum":"4zHPo","./mean":"9PJXN","./meshgrid":"6E9wv","./min":"1qUuZ","./minimum":"74TYW","./mirror_pad":"6rahc","./mod":"7txgC","./moments":"gJMJe","./mul":"3233B","./multi_rnn_cell":"9EDr2","./multinomial":"kzL7d","./neg":"8HIhG","./not_equal":"h3Wiz","./one_hot":"iJ8nQ","./ones":"eYvGK","./ones_like":"5sNCT","./outer_product":"hI835","./pad":"5dL6W","./pad1d":"hehEW","./pad2d":"6X05W","./pad3d":"eFaKt","./pad4d":"5JIjy","./pool":"fa7rV","./pow":"aku8e","./prelu":"97Biq","./print":"l1jud","./prod":"iMnCC","./ragged_gather":"6u9WD","./ragged_range":"4Ep5b","./ragged_tensor_to_tensor":"aUd7A","./rand":"45bji","./random_gamma":"4Shud","./random_normal":"bxT1q","./random_standard_normal":"S4qSH","./random_uniform":"gjT1I","./random_uniform_int":"bebcB","./range":"df8SO","./real":"7sSnd","./reciprocal":"7nJ8T","./relu":"iPhge","./relu6":"9bTwM","./reshape":"2znRS","./reverse":"7nB8F","./reverse_1d":"dpiTC","./reverse_2d":"lVjOl","./reverse_3d":"9WHF4","./reverse_4d":"ejR4t","./round":"akrBk","./rsqrt":"kIOsn","./scalar":"aCdNN","./selu":"8dfci","./separable_conv2d":"98wnK","./setdiff1d_async":"lXzGk","./sigmoid":"kgtAa","./sign":"l9avF","./sin":"kIvC3","./sinh":"7qO0g","./slice":"eDdeL","./slice1d":"fzEWF","./slice2d":"1igm0","./slice3d":"l7XO8","./slice4d":"9lnOO","./softmax":"5nqhK","./softplus":"G5sKZ","./space_to_batch_nd":"kCZXN","./spectral/fft":"2AXDW","./spectral/ifft":"8tqLN","./spectral/irfft":"108TA","./spectral/rfft":"6UY7r","./split":"FQ7hs","./sqrt":"946JS","./square":"kNrd2","./squared_difference":"9w0IR","./squeeze":"cax9N","./stack":"bvpof","./step":"dvB2o","./strided_slice":"XZiX6","./sub":"2lFei","./sum":"jlBkb","./tan":"4b9dJ","./tanh":"2zyri","./tensor":"7c5MK","./tensor1d":"6BeOV","./tensor2d":"j7yj8","./tensor3d":"3ETxr","./tensor4d":"15kDt","./tensor5d":"hh1Z7","./tensor6d":"IJCsh","./tensor_scatter_update":"71ZFi","./tile":"3a2L4","./topk":"jG0aG","./truncated_normal":"8FsVR","./unique":"3NcUJ","./unsorted_segment_sum":"dICgF","./unstack":"2NrdB","./upper_bound":"aVzg8","./variable":"j3GC4","./where":"a7ZmF","./where_async":"50k91","./zeros":"fqUNT","./zeros_like":"1peA5","./boolean_mask":"9mTHW","./transpose":"dg4Sa","./norm":"auKpd","./moving_average":"hMyFI","./scatter_nd":"9xCLq","./search_sorted":"csM1s","./sparse_to_dense":"4Xh7i","./gather_nd":"zaSfo","./dropout":"iU4Ut","./signal_ops_util":"bnGKH","./in_top_k":"c5mnV","./operation":"2me4m","./fused_ops":"6pHdS","./signal/hamming_window":"bVvte","./signal/hann_window":"hNFU5","./signal/frame":"ecqbq","./signal/stft":"pizDp","./image/crop_and_resize":"lY1MB","./image/flip_left_right":"fA264","./image/grayscale_to_rgb":"fFavm","./image/rgb_to_grayscale":"ayeQE","./image/rotate_with_offset":"y0vWr","./image/non_max_suppression":"6Pae6","./image/non_max_suppression_async":"bvRV1","./image/non_max_suppression_with_score":"cE23C","./image/non_max_suppression_with_score_async":"913WB","./image/non_max_suppression_padded":"evBQ2","./image/non_max_suppression_padded_async":"gLwj2","./image/resize_bilinear":"3OhUh","./image/resize_nearest_neighbor":"dXcs8","./image/threshold":"eJmnz","./image/transform":"57rHr","./linalg/band_part":"3zZzZ","./linalg/gram_schmidt":"1rbpJ","./linalg/qr":"2nZs5","./losses/absolute_difference":"lAkje","./losses/compute_weighted_loss":"7G55R","./losses/cosine_distance":"6Ddpr","./losses/hinge_loss":"lOI18","./losses/huber_loss":"hgmCW","./losses/log_loss":"aXYiZ","./losses/mean_squared_error":"2uGH3","./losses/sigmoid_cross_entropy":"iXkk2","./losses/softmax_cross_entropy":"eMlv3","./sparse/sparse_fill_empty_rows":"2apoJ","./sparse/sparse_reshape":"1MGLo","./sparse/sparse_segment_mean":"heg8n","./sparse/sparse_segment_sum":"4SIv3","./string/string_n_grams":"crgDK","./string/string_split":"kf9qK","./string/string_to_hash_bucket_fast":"hCzP4","./string/static_regex_replace":"758tQ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9L54v":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"abs",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({abs_:function(e){let t=(0,l.convertToTensor)(e,"x","abs");return"complex64"===t.dtype?a.ENGINE.runKernel(o.ComplexAbs,{x:t}):a.ENGINE.runKernel(o.Abs,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3F3Au":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acos",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({acos_:function(e){let t=(0,l.convertToTensor)(e,"x","acos");return a.ENGINE.runKernel(o.Acos,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],e95zu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acosh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({acosh_:function(e){let t=(0,l.convertToTensor)(e,"x","acosh");return a.ENGINE.runKernel(o.Acosh,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5lntY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addN",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({addN_:function(e){i.assert(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),i.assert(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);let t=e.map((e,t)=>(0,l.convertToTensor)(e,`tensors${t}`,"addN")),r=t[0];return t.forEach(e=>{if(e.dtype!==r.dtype)throw Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(e=>{if(!i.arraysEqual(e.shape,r.shape))throw Error("All tensors passed to tf.addN() must have the same shape")}),a.ENGINE.runKernel(o.AddN,t)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aCEYc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"all",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({all_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","all","bool");return a.ENGINE.runKernel(o.All,{x:n},{axis:t,keepDims:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],b6liB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"any",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({any_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","any","bool");return a.ENGINE.runKernel(o.Any,{x:n},{axis:t,keepDims:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8W1JY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMax",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({argMax_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","argMax");return a.ENGINE.runKernel(o.ArgMax,{x:r},{axis:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1RlxL":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMin",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({argMin_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","argMin");return a.ENGINE.runKernel(o.ArgMin,{x:r},{axis:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4OGEM":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asin",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({asin_:function(e){let t=(0,l.convertToTensor)(e,"x","asin");return a.ENGINE.runKernel(o.Asin,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dvHGj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asinh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({asinh_:function(e){let t=(0,l.convertToTensor)(e,"x","asinh");return a.ENGINE.runKernel(o.Asinh,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2RiRW":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({atan_:function(e){let t=(0,l.convertToTensor)(e,"x","atan");return a.ENGINE.runKernel(o.Atan,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8Y0P5":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan2",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({atan2_:function(e,t){let r=(0,i.convertToTensor)(e,"a","atan2"),n=(0,i.convertToTensor)(t,"b","atan2");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Atan2,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5WGMQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atanh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({atanh_:function(e){let t=(0,l.convertToTensor)(e,"x","atanh");return a.ENGINE.runKernel(o.Atanh,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jw2jw:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool",()=>f);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./cast"),p=e("./conv_util"),c=e("./operation"),d=e("./reshape");let f=(0,c.op)({avgPool_:function(e,t,r,n,s){let c=(0,l.convertToTensor)(e,"x","avgPool","float32");i.assert(p.eitherStridesOrDilationsAreOne(r,1),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${r} and dilations '1'`);let f=c,m=!1;3===c.rank&&(m=!0,f=(0,d.reshape)(c,[1,c.shape[0],c.shape[1],c.shape[2]])),i.assert(4===f.rank,()=>`Error in avgPool: x must be rank 4 but got rank ${f.rank}.`),p.checkPadOnDimRoundingMode("avgPool",n,s);let h={x:f},g=a.ENGINE.runKernel(o.AvgPool,h,{filterSize:t,strides:r,pad:n,dimRoundingMode:s});return(g=(0,u.cast)(g,c.dtype),m)?(0,d.reshape)(g,[g.shape[1],g.shape[2],g.shape[3]]):g}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./cast":"juFUN","./conv_util":"1HzRR","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1HzRR":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"computeDilation2DInfo",()=>o),s.export(r,"computePool2DInfo",()=>l),s.export(r,"computePool3DInfo",()=>i),s.export(r,"computeConv2DInfo",()=>u),s.export(r,"computeConv3DInfo",()=>p),s.export(r,"computeDefaultPad",()=>c),s.export(r,"tupleValuesAreOne",()=>g),s.export(r,"eitherStridesOrDilationsAreOne",()=>x),s.export(r,"stridesOrDilationsArePositive",()=>v),s.export(r,"convertConv2DDataFormat",()=>y),s.export(r,"checkPadOnDimRoundingMode",()=>b);var a=e("../util");function o(e,t,r,n,s="NHWC",a){let l=[...t,e[3]];return u(e,l,r,a,n,null,null,y(s))}function l(e,t,r,n,s,a,o="channelsLast"){let i,[p,c]=d(t);if("channelsLast"===o)i=[p,c,e[3],e[3]];else if("channelsFirst"===o)i=[p,c,e[1],e[1]];else throw Error(`Unknown dataFormat ${o}`);return u(e,i,r,n,s,a,!1,o)}function i(e,t,r,n,s,a,o="NDHWC"){let l,u,[c,d,m]=f(t);if("NDHWC"===o)u="channelsLast",l=[c,d,m,e[4],e[4]];else if("NCDHW"===o)u="channelsFirst",l=[c,d,m,e[1],e[1]];else throw Error(`Unknown dataFormat ${o}`);return p(e,l,r,n,s,!1,u,a)}function u(e,t,r,n,s,a,o=!1,l="channelsLast"){let i,[p,f,g,x]=[-1,-1,-1,-1];if("channelsLast"===l)[p,f,g,x]=e;else if("channelsFirst"===l)[p,x,f,g]=e;else throw Error(`Unknown dataFormat ${l}`);let[v,y,,b]=t,[_,k]=d(r),[j,I]=d(n),w=m(v,j),T=m(y,I),{padInfo:N,outHeight:S,outWidth:C}=function(e,t,r,n,s,a,o,l,i){let u,p,d;if("number"==typeof e){let s=0===e?"VALID":"NUMBER";u={top:e,bottom:e,left:e,right:e,type:s};let o=function(e,t,r,n,s){null==n&&(n=c(e,t,r));let a=e[0],o=e[1];return[h((a-t+2*n)/r+1,s),h((o-t+2*n)/r+1,s)]}([t,r],a,n,e,l);p=o[0],d=o[1]}else if("same"===e){let e=Math.max(0,((p=Math.ceil(t/n))-1)*n+a-t),l=Math.max(0,((d=Math.ceil(r/s))-1)*s+o-r),i=Math.floor(e/2),c=Math.floor(l/2);u={top:i,bottom:e-i,left:c,right:l-c,type:"SAME"}}else if("valid"===e)u={top:0,bottom:0,left:0,right:0,type:"VALID"},p=Math.ceil((t-a+1)/n),d=Math.ceil((r-o+1)/s);else if("object"==typeof e){let c="channelsLast"===i?e[1][0]:e[2][0],f="channelsLast"===i?e[1][1]:e[2][1],m="channelsLast"===i?e[2][0]:e[3][0],g="channelsLast"===i?e[2][1]:e[3][1];u={top:c,bottom:f,left:m,right:g,type:0===c&&0===f&&0===m&&0===g?"VALID":"EXPLICIT"},p=h((t-a+c+f)/n+1,l),d=h((r-o+m+g)/s+1,l)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:p,outWidth:d}}(s,f,g,_,k,w,T,a,l),E=o?b*x:b;return"channelsFirst"===l?i=[p,E,S,C]:"channelsLast"===l&&(i=[p,S,C,E]),{batchSize:p,dataFormat:l,inHeight:f,inWidth:g,inChannels:x,outHeight:S,outWidth:C,outChannels:E,padInfo:N,strideHeight:_,strideWidth:k,filterHeight:v,filterWidth:y,effectiveFilterHeight:w,effectiveFilterWidth:T,dilationHeight:j,dilationWidth:I,inShape:e,outShape:i,filterShape:t}}function p(e,t,r,n,s,a=!1,o="channelsLast",l){let i,[u,d,g,x,v]=[-1,-1,-1,-1,-1];if("channelsLast"===o)[u,d,g,x,v]=e;else if("channelsFirst"===o)[u,v,d,g,x]=e;else throw Error(`Unknown dataFormat ${o}`);let[y,b,_,,k]=t,[j,I,w]=f(r),[T,N,S]=f(n),C=m(y,T),E=m(b,N),F=m(_,S),{padInfo:A,outDepth:R,outHeight:P,outWidth:D}=function(e,t,r,n,s,a,o,l,i,u,p){let d,f,m,g;if("valid"===e&&(e=0),"number"==typeof e){let x=0===e?"VALID":"NUMBER";d={top:e,bottom:e,left:e,right:e,front:e,back:e,type:x};let v=function(e,t,r,n,s,a){null==s&&(s=c(e,t[0],n[0]));let o=[0,0,0,1];for(let r=0;r<3;r++)e[r]+2*s>=t[r]&&(o[r]=h((e[r]-t[r]+2*s)/n[r]+1,a));return o}([t,r,n,1],[l,i,u],0,[s,a,o],e,p);f=v[0],m=v[1],g=v[2]}else if("same"===e){let e=((f=Math.ceil(t/s))-1)*s+l-t,p=((m=Math.ceil(r/a))-1)*a+i-r,c=((g=Math.ceil(n/o))-1)*o+u-n,h=Math.floor(e/2),x=Math.floor(p/2),v=Math.floor(c/2);d={top:x,bottom:p-x,left:v,right:c-v,front:h,back:e-h,type:"SAME"}}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:d,outDepth:f,outHeight:m,outWidth:g}}(s,d,g,x,j,I,w,C,E,F,l),$=a?k*v:k;return"channelsFirst"===o?i=[u,$,R,P,D]:"channelsLast"===o&&(i=[u,R,P,D,$]),{batchSize:u,dataFormat:o,inDepth:d,inHeight:g,inWidth:x,inChannels:v,outDepth:R,outHeight:P,outWidth:D,outChannels:$,padInfo:A,strideDepth:j,strideHeight:I,strideWidth:w,filterDepth:y,filterHeight:b,filterWidth:_,effectiveFilterDepth:C,effectiveFilterHeight:E,effectiveFilterWidth:F,dilationDepth:T,dilationHeight:N,dilationWidth:S,inShape:e,outShape:i,filterShape:t}}function c(e,t,r,n=1){let s=m(t,n);return Math.floor((e[0]*(r-1)-r+s)/2)}function d(e){return"number"==typeof e?[e,e,e]:2===e.length?[e[0],e[1],1]:e}function f(e){return"number"==typeof e?[e,e,e]:e}function m(e,t){return t<=1?e:e+(e-1)*(t-1)}function h(e,t){if(!t)return Math.trunc(e);switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw Error(`Unknown roundingMode ${t}`)}}function g(e){let[t,r,n]=d(e);return 1===t&&1===r&&1===n}function x(e,t){return g(e)||g(t)}function v(e){return d(e).every(e=>e>0)}function y(e){if("NHWC"===e)return"channelsLast";if("NCHW"===e)return"channelsFirst";throw Error(`Unknown dataFormat ${e}`)}function b(e,t,r){if(null!=r)if("string"==typeof t)throw Error(`Error in ${e}: pad must be an integer when using dimRoundingMode ${r} but got pad ${t}.`);else if("number"==typeof t)a.assert(a.isInt(t),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${r} but got pad ${t}.`);else if("object"==typeof t)t.forEach(t=>{t.forEach(t=>{a.assert(a.isInt(t),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${r} but got pad ${t}.`)})});else throw Error(`Error in ${e}: Unknown padding parameter: ${t}`)}},{"../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2znRS":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reshape",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({reshape_:function(e,t){let r=(0,l.convertToTensor)(e,"x","reshape","string_or_numeric");return a.ENGINE.runKernel(o.Reshape,{x:r},{shape:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3n4qA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool3d",()=>f);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./cast"),p=e("./conv_util"),c=e("./operation"),d=e("./reshape");let f=(0,c.op)({avgPool3d_:function(e,t,r,n,s,c="NDHWC"){let f=(0,l.convertToTensor)(e,"x","avgPool3d","float32"),m=f,h=!1;4===f.rank&&(h=!0,m=(0,d.reshape)(f,[1,f.shape[0],f.shape[1],f.shape[2],f.shape[3]])),i.assert(5===m.rank,()=>`Error in avgPool3d: x must be rank 5 but got rank ${m.rank}.`),i.assert("NDHWC"===c,()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${c}`),i.assert("number"==typeof r&&r>0||Array.isArray(r)&&r[0]>0&&r[1]>0&&r[2]>0,()=>`Error in avgPool3d: Stride must be > 0, but got '${r}'`),(0,p.checkPadOnDimRoundingMode)("avgPool3d",n,s);let g={x:m},x=a.ENGINE.runKernel(o.AvgPool3D,g,{filterSize:t,strides:r,pad:n,dimRoundingMode:s,dataFormat:c});return(x=(0,u.cast)(x,m.dtype),h)?(0,d.reshape)(x,[x.shape[1],x.shape[2],x.shape[3],x.shape[4]]):x}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./cast":"juFUN","./conv_util":"1HzRR","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7RBRT":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"basicLSTMCell",()=>m);var a=e("../tensor_util_env"),o=e("./add"),l=e("./concat"),i=e("./mat_mul"),u=e("./mul"),p=e("./operation"),c=e("./sigmoid"),d=e("./slice"),f=e("./tanh");let m=(0,p.op)({basicLSTMCell_:function(e,t,r,n,s,p){let m=(0,a.convertToTensor)(e,"forgetBias","basicLSTMCell"),h=(0,a.convertToTensor)(t,"lstmKernel","basicLSTMCell"),g=(0,a.convertToTensor)(r,"lstmBias","basicLSTMCell"),x=(0,a.convertToTensor)(n,"data","basicLSTMCell"),v=(0,a.convertToTensor)(s,"c","basicLSTMCell"),y=(0,a.convertToTensor)(p,"h","basicLSTMCell"),b=(0,l.concat)([x,y],1),_=(0,i.matMul)(b,h),k=(0,o.add)(_,g),j=k.shape[0],I=k.shape[1]/4,w=[j,I],T=(0,d.slice)(k,[0,0],w),N=(0,d.slice)(k,[0,I],w),S=(0,d.slice)(k,[0,2*I],w),C=(0,d.slice)(k,[0,3*I],w),E=(0,o.add)((0,u.mul)((0,c.sigmoid)(T),(0,f.tanh)(N)),(0,u.mul)(v,(0,c.sigmoid)((0,o.add)(m,S)))),F=(0,u.mul)((0,f.tanh)(E),(0,c.sigmoid)(C));return[E,F]}})},{"../tensor_util_env":"5isXB","./add":"dX80O","./concat":"56PTj","./mat_mul":"hHb0J","./mul":"3233B","./operation":"2me4m","./sigmoid":"kgtAa","./slice":"eDdeL","./tanh":"2zyri","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"56PTj":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./clone");let p=(0,e("./operation").op)({concat_:function(e,t=0){(0,i.assert)(e.length>=1,()=>"Pass at least one tensor to concat");let r=(0,l.convertToTensorArray)(e,"tensors","concat","string_or_numeric");return("complex64"===r[0].dtype&&r.forEach(e=>{if("complex64"!==e.dtype)throw Error(`Cannot concatenate complex64 tensors with a tensor + with dtype ${e.dtype}. `)}),1===r.length)?(0,u.clone)(r[0]):a.ENGINE.runKernel(o.Concat,r,{axis:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./clone":"lH8Rn","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hHb0J:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"matMul",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({matMul_:function(e,t,r=!1,n=!1){let s=(0,i.convertToTensor)(e,"a","matMul"),u=(0,i.convertToTensor)(t,"b","matMul");[s,u]=(0,l.makeTypesMatch)(s,u);let p={a:s,b:u};return a.ENGINE.runKernel(o.BatchMatMul,p,{transposeA:r,transposeB:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kgtAa:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sigmoid",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({sigmoid_:function(e){let t=(0,l.convertToTensor)(e,"x","sigmoid","float32");return a.ENGINE.runKernel(o.Sigmoid,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eDdeL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({slice_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","slice","string_or_numeric");if(0===n.rank)throw Error("Slicing scalar is not possible");return a.ENGINE.runKernel(o.Slice,{x:n},{begin:t,size:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2zyri":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tanh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({tanh_:function(e){let t=(0,l.convertToTensor)(e,"x","tanh","float32");return a.ENGINE.runKernel(o.Tanh,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"48Xl7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchToSpaceND",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({batchToSpaceND_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","batchToSpaceND"),s=t.reduce((e,t)=>e*t);return i.assert(n.rank>=1+t.length,()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`),i.assert(r.length===t.length,()=>`crops.length is ${r.length} but should be equal to blockShape.length ${t.length}`),i.assert(n.shape[0]%s==0,()=>`input tensor batch is ${n.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${s}`),a.ENGINE.runKernel(o.BatchToSpaceND,{x:n},{blockShape:t,crops:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7fvnN":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./batchnorm_util"),p=e("./operation"),c=e("./reshape");let d=(0,p.op)({batchNorm_:function(e,t,r,n,s,p){let d,f;null==p&&(p=.001);let m=(0,l.convertToTensor)(e,"x","batchNorm"),h=(0,l.convertToTensor)(t,"mean","batchNorm"),g=(0,l.convertToTensor)(r,"variance","batchNorm");null!=s&&(d=(0,l.convertToTensor)(s,"scale","batchNorm")),null!=n&&(f=(0,l.convertToTensor)(n,"offset","batchNorm")),i.assert(h.rank===g.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),i.assert(null==f||h.rank===f.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),i.assert(null==d||h.rank===d.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let x={x:(0,u.xAs4D)(m),scale:d,offset:f,mean:h,variance:g},v={varianceEpsilon:p},y=a.ENGINE.runKernel(o.FusedBatchNorm,x,v);return(0,c.reshape)(y,m.shape)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./batchnorm_util":"8Yqh9","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8Yqh9":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"xAs4D",()=>o);var a=e("./reshape");function o(e){let t;return 0===e.rank||1===e.rank?(0,a.reshape)(e,[1,1,1,e.size]):2===e.rank?(0,a.reshape)(e,[1,1,e.shape[0],e.shape[1]]):3===e.rank?(0,a.reshape)(e,[1,e.shape[0],e.shape[1],e.shape[2]]):e}},{"./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jQqu2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm2d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./batchnorm");let i=(0,e("./operation").op)({batchNorm2d_:function(e,t,r,n,s,i){let u,p,c=(0,a.convertToTensor)(e,"x","batchNorm"),d=(0,a.convertToTensor)(t,"mean","batchNorm"),f=(0,a.convertToTensor)(r,"variance","batchNorm");return null!=s&&(u=(0,a.convertToTensor)(s,"scale","batchNorm")),null!=n&&(p=(0,a.convertToTensor)(n,"offset","batchNorm")),o.assert(2===c.rank,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${c.rank}.`),o.assert(2===d.rank||1===d.rank,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${d.rank}.`),o.assert(2===f.rank||1===f.rank,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${f.rank}.`),null!=u&&o.assert(2===u.rank||1===u.rank,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`),null!=p&&o.assert(2===p.rank||1===p.rank,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${p.rank}.`),(0,l.batchNorm)(c,d,f,p,u,i)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./batchnorm":"7fvnN","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jVTK1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm3d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./batchnorm");let i=(0,e("./operation").op)({batchNorm3d_:function(e,t,r,n,s,i){let u,p,c=(0,a.convertToTensor)(e,"x","batchNorm"),d=(0,a.convertToTensor)(t,"mean","batchNorm"),f=(0,a.convertToTensor)(r,"variance","batchNorm");return null!=s&&(u=(0,a.convertToTensor)(s,"scale","batchNorm")),null!=n&&(p=(0,a.convertToTensor)(n,"offset","batchNorm")),o.assert(3===c.rank,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${c.rank}.`),o.assert(3===d.rank||1===d.rank,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${d.rank}.`),o.assert(3===f.rank||1===f.rank,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${f.rank}.`),null!=u&&o.assert(3===u.rank||1===u.rank,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`),null!=p&&o.assert(3===p.rank||1===p.rank,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${p.rank}.`),(0,l.batchNorm)(c,d,f,p,u,i)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./batchnorm":"7fvnN","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eQRnY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm4d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./batchnorm");let i=(0,e("./operation").op)({batchNorm4d_:function(e,t,r,n,s,i){let u,p,c=(0,a.convertToTensor)(e,"x","batchNorm"),d=(0,a.convertToTensor)(t,"mean","batchNorm"),f=(0,a.convertToTensor)(r,"variance","batchNorm");return null!=s&&(u=(0,a.convertToTensor)(s,"scale","batchNorm")),null!=n&&(p=(0,a.convertToTensor)(n,"offset","batchNorm")),o.assert(4===c.rank,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${c.rank}.`),o.assert(4===d.rank||1===d.rank,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${d.rank}.`),o.assert(4===f.rank||1===f.rank,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${f.rank}.`),null!=u&&o.assert(4===u.rank||1===u.rank,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`),null!=p&&o.assert(4===p.rank||1===p.rank,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${p.rank}.`),(0,l.batchNorm)(c,d,f,p,u,i)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./batchnorm":"7fvnN","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"87h6O":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bincount",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({bincount_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","bincount"),s=(0,l.convertToTensor)(t,"weights","bincount");return i.assert("int32"===n.dtype,()=>`Error in bincount: input dtype must be int32, but got ${n.dtype}`),i.assert(r>=0,()=>`size must be non-negative, but got ${r}.`),i.assert(s.size===n.size||0===s.size,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${n.shape}, weights shape: ${s.shape}.`),a.ENGINE.runKernel(o.Bincount,{x:n,weights:s},{size:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"99SCY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bitwiseAnd",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util_base");let u=(0,e("./operation").op)({bitwiseAnd_:function(e,t){let r=(0,l.convertToTensor)(e,"x","bitwiseAnd"),n=(0,l.convertToTensor)(t,"y","bitwiseAnd");if(!(0,i.arraysEqual)(r.shape,n.shape))throw Error(`BitwiseAnd: Tensors must have the same shape. x: ${r.shape}, y: ${n.shape}`);if("int32"!==r.dtype||"int32"!==n.dtype)throw Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${r.dtype} and type of y: ${n.dtype}`);return a.ENGINE.runKernel(o.BitwiseAnd,{a:r,b:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util_base":"bNQH0","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],e160q:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"broadcastArgs",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({broadcastArgs_:function(e,t){let r=(0,l.convertToTensor)(e,"s0","broadcastArgs","int32"),n=(0,l.convertToTensor)(t,"s1","broadcastArgs","int32");if(1!==r.rank)throw Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${r.rank}`);if(1!==n.rank)throw Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${n.rank}`);return a.ENGINE.runKernel(o.BroadcastArgs,{s0:r,s1:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4YYa0":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"broadcastTo",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util_base"),u=e("./clone"),p=e("./operation"),c=e("./reshape");let d=(0,p.op)({broadcastTo_:function(e,t){let r=(0,l.convertToTensor)(e,"broadcastTo","x"),n=r.shape;if((0,i.assertNonNegativeIntegerDimensions)(t),t.lengthr.rank){let e=r.shape.slice();for(;e.length=0;e--)if(s[e]===t[e])p[e]=1;else if(1!==r.shape[e])throw Error(`broadcastTo(): [${n}] cannot be broadcast to [${t}].`);if(0===p.map((e,t)=>e>1?t:-1).filter(e=>e>=0).length)return(0,u.clone)(r);let d={x:r};return a.ENGINE.runKernel(o.Tile,d,{reps:p})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util_base":"bNQH0","./clone":"lH8Rn","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hFqEA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ceil",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({ceil_:function(e){let t=(0,l.convertToTensor)(e,"x","ceil","float32");return a.ENGINE.runKernel(o.Ceil,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"31hx8":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"clipByValue",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./fill");let p=(0,e("./operation").op)({clipByValue_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","clipByValue");return(i.assert(t<=r,()=>`Error in clip: min (${t}) must be less than or equal to max (${r}).`),t===r)?(0,u.fill)(n.shape,t,n.dtype):a.ENGINE.runKernel(o.ClipByValue,{x:n},{clipValueMin:t,clipValueMax:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./fill":"d4iwa","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],d4iwa:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fill",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../util"),i=e("../util_base");function u(e,t,r){(0,i.assertNonNegativeIntegerDimensions)(e),r=r||(0,l.inferDtype)(t);let n={shape:e,value:t,dtype:r};return a.ENGINE.runKernel(o.Fill,{},n)}},{"../engine":"c6qwc","../kernel_names":"349aa","../util":"icflD","../util_base":"bNQH0","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kkDXR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat1d",()=>o);var a=e("./concat");let o=(0,e("./operation").op)({concat1d_:function(e){return(0,a.concat)(e,0)}})},{"./concat":"56PTj","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],llNx8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat2d",()=>o);var a=e("./concat");let o=(0,e("./operation").op)({concat2d_:function(e,t){return(0,a.concat)(e,t)}})},{"./concat":"56PTj","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],a0OBC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat3d",()=>o);var a=e("./concat");let o=(0,e("./operation").op)({concat3d_:function(e,t){return(0,a.concat)(e,t)}})},{"./concat":"56PTj","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],h700a:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat4d",()=>o);var a=e("./concat");let o=(0,e("./operation").op)({concat4d_:function(e,t){return(0,a.concat)(e,t)}})},{"./concat":"56PTj","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7NGKU":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv1d",()=>c);var a=e("../tensor_util_env"),o=e("../util"),l=e("./conv2d"),i=e("./conv_util"),u=e("./operation"),p=e("./reshape");let c=(0,u.op)({conv1d_:function(e,t,r,n,s="NWC",u=1,c){let d=(0,a.convertToTensor)(e,"x","conv1d"),f=(0,a.convertToTensor)(t,"filter","conv1d"),m=d,h=!1;2===d.rank&&(h=!0,m=(0,p.reshape)(d,[1,d.shape[0],d.shape[1]])),o.assert(3===m.rank,()=>`Error in conv1d: input must be rank 3, but got rank ${m.rank}.`),o.assert(3===f.rank,()=>`Error in conv1d: filter must be rank 3, but got rank ${f.rank}.`),i.checkPadOnDimRoundingMode("conv1d",n,c),o.assert(m.shape[2]===f.shape[1],()=>`Error in conv1d: depth of input (${m.shape[2]}) must match input depth for filter ${f.shape[1]}.`),o.assert(i.eitherStridesOrDilationsAreOne(r,u),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${r} and dilation '${u}'`),o.assert(i.stridesOrDilationsArePositive(u),()=>"Error in conv1D: Dilated rates should be larger than 0."),o.assert(i.stridesOrDilationsArePositive(r),()=>"Error in conv1D: Stride should be larger than 0."),o.assert("NWC"===s,()=>`Error in conv1d: got dataFormat of ${s} but only NWC is currently supported.`);let g=(0,p.reshape)(f,[1,f.shape[0],f.shape[1],f.shape[2]]),x=(0,p.reshape)(m,[m.shape[0],1,m.shape[1],m.shape[2]]),v=(0,l.conv2d)(x,g,[1,r],n,"NHWC",[1,u],c);return h?(0,p.reshape)(v,[v.shape[2],v.shape[3]]):(0,p.reshape)(v,[v.shape[0],v.shape[2],v.shape[3]])}})},{"../tensor_util_env":"5isXB","../util":"icflD","./conv2d":"iHP9e","./conv_util":"1HzRR","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iHP9e:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2d",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./conv_util"),p=e("./operation"),c=e("./reshape");let d=(0,p.op)({conv2d_:function(e,t,r,n,s="NHWC",p=[1,1],d){let f=(0,l.convertToTensor)(e,"x","conv2d","float32"),m=(0,l.convertToTensor)(t,"filter","conv2d","float32"),h=f,g=!1;3===f.rank&&(g=!0,h=(0,c.reshape)(f,[1,f.shape[0],f.shape[1],f.shape[2]])),i.assert(4===h.rank,()=>`Error in conv2d: input must be rank 4, but got rank ${h.rank}.`),i.assert(4===m.rank,()=>`Error in conv2d: filter must be rank 4, but got rank ${m.rank}.`),u.checkPadOnDimRoundingMode("conv2d",n,d);let x="NHWC"===s?h.shape[3]:h.shape[1];i.assert(x===m.shape[2],()=>`Error in conv2d: depth of input (${x}) must match input depth for filter ${m.shape[2]}.`),i.assert(u.eitherStridesOrDilationsAreOne(r,p),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${r} and dilations '${p}'`),i.assert(u.stridesOrDilationsArePositive(p),()=>"Error in conv2D: Dilated rates should be larger than 0."),i.assert(u.stridesOrDilationsArePositive(r),()=>"Error in conv2D: Strides should be larger than 0.");let v={x:h,filter:m},y=a.ENGINE.runKernel(o.Conv2D,v,{strides:r,pad:n,dataFormat:s,dilations:p,dimRoundingMode:d});return g?(0,c.reshape)(y,[y.shape[1],y.shape[2],y.shape[3]]):y}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./conv_util":"1HzRR","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],c5wsu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2dTranspose",()=>l);var a=e("../tensor_util_env"),o=e("./conv2d_backprop_input");let l=(0,e("./operation").op)({conv2dTranspose_:function(e,t,r,n,s,l){let i=(0,a.convertToTensor)(e,"x","conv2dTranspose"),u=(0,a.convertToTensor)(t,"filter","conv2dTranspose");return(0,o.conv2DBackpropInput)(r,i,u,n,s,"NHWC",l)}})},{"../tensor_util_env":"5isXB","./conv2d_backprop_input":"lEDXO","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lEDXO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2DBackpropInput",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../util"),i=e("./conv_util"),u=e("./operation"),p=e("./reshape");let c=(0,u.op)({conv2DBackpropInput_:function(e,t,r,n,s,u="NHWC",c){l.assert(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let d=e,f=t,m=!1;3===t.rank&&(m=!0,f=(0,p.reshape)(t,[1,t.shape[0],t.shape[1],t.shape[2]]),d=[1,e[0],e[1],e[2]]),l.assert(4===d.length,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${d.length}.`),l.assert(4===f.rank,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${f.rank}`),l.assert(4===r.rank,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${r.rank}`);let h="NHWC"===u?d[3]:d[1],g="NHWC"===u?f.shape[3]:f.shape[1];l.assert(h===r.shape[2],()=>`Error in conv2dDerInput: depth of input (${h}) must match input depth for filter ${r.shape[2]}.`),l.assert(g===r.shape[3],()=>`Error in conv2dDerInput: depth of output (${g}) must match output depth for filter ${r.shape[3]}.`),i.checkPadOnDimRoundingMode("conv2dDerInput",s,c);let x={dy:f,filter:r},v={strides:n,pad:s,dataFormat:u,dimRoundingMode:c,inputShape:d},y=a.ENGINE.runKernel(o.Conv2DBackpropInput,x,v);return m?(0,p.reshape)(y,[y.shape[1],y.shape[2],y.shape[3]]):y}})},{"../engine":"c6qwc","../kernel_names":"349aa","../util":"icflD","./conv_util":"1HzRR","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aflLe:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3d",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./conv_util"),p=e("./operation"),c=e("./reshape");let d=(0,p.op)({conv3d_:function(e,t,r,n,s="NDHWC",p=[1,1,1]){let d=(0,l.convertToTensor)(e,"x","conv3d"),f=(0,l.convertToTensor)(t,"filter","conv3d"),m=d,h=!1;4===d.rank&&(h=!0,m=(0,c.reshape)(d,[1,d.shape[0],d.shape[1],d.shape[2],d.shape[3]])),i.assert(5===m.rank,()=>`Error in conv3d: input must be rank 5, but got rank ${m.rank}.`),i.assert(5===f.rank,()=>`Error in conv3d: filter must be rank 5, but got rank ${f.rank}.`),i.assert(m.shape[4]===f.shape[3],()=>`Error in conv3d: depth of input (${m.shape[4]}) must match input depth for filter ${f.shape[3]}.`),i.assert((0,u.eitherStridesOrDilationsAreOne)(r,p),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${r} and dilations '${p}'`),i.assert("NDHWC"===s,()=>`Error in conv3d: got dataFormat of ${s} but only NDHWC is currently supported.`),i.assert((0,u.stridesOrDilationsArePositive)(p),()=>"Error in conv3D: Dilated rates should be larger than 0."),i.assert((0,u.stridesOrDilationsArePositive)(r),()=>"Error in conv3D: Strides should be larger than 0.");let g={x:m,filter:f},x=a.ENGINE.runKernel(o.Conv3D,g,{strides:r,pad:n,dataFormat:s,dilations:p});return h?(0,c.reshape)(x,[x.shape[1],x.shape[2],x.shape[3],x.shape[4]]):x}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./conv_util":"1HzRR","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5RHpg":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3dTranspose",()=>l);var a=e("../tensor_util_env"),o=e("./conv3d_backprop_input");let l=(0,e("./operation").op)({conv3dTranspose_:function(e,t,r,n,s){let l=(0,a.convertToTensor)(e,"x","conv3dTranspose"),i=(0,a.convertToTensor)(t,"filter","conv3dTranspose");return(0,o.conv3DBackpropInput)(r,l,i,n,s)}})},{"../tensor_util_env":"5isXB","./conv3d_backprop_input":"9Bne8","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9Bne8":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3DBackpropInput",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../util"),i=e("./operation"),u=e("./reshape");let p=(0,i.op)({conv3DBackpropInput_:function(e,t,r,n,s){l.assert(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let i=e,p=t,c=!1;4===t.rank&&(c=!0,p=(0,u.reshape)(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),i=[1,e[0],e[1],e[2],e[3]]);let d=i[4],f=p.shape[4];l.assert(5===i.length,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${i.length}.`),l.assert(5===p.rank,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${p.rank}`),l.assert(5===r.rank,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${r.rank}`),l.assert(d===r.shape[3],()=>`Error in conv3dDerInput: depth of input (${d}) must match input depth for filter ${r.shape[3]}.`),l.assert(f===r.shape[4],()=>`Error in conv3dDerInput: depth of output (${f}) must match output depth for filter ${r.shape[4]}.`);let m={dy:p,filter:r},h={pad:s,strides:n,inputShape:i},g=a.ENGINE.runKernel(o.Conv3DBackpropInputV2,m,h);return c?(0,u.reshape)(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}})},{"../engine":"c6qwc","../kernel_names":"349aa","../util":"icflD","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bj03v:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cos",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({cos_:function(e){let t=(0,l.convertToTensor)(e,"x","cos","float32");return a.ENGINE.runKernel(o.Cos,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"24JjO":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cosh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({cosh_:function(e){let t=(0,l.convertToTensor)(e,"x","cosh","float32");return a.ENGINE.runKernel(o.Cosh,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5RZdI":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumprod",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({cumprod_:function(e,t=0,r=!1,n=!1){let s=(0,l.convertToTensor)(e,"x","cumprod");return a.ENGINE.runKernel(o.Cumprod,{x:s},{axis:t,exclusive:r,reverse:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4ULzW":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumsum",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({cumsum_:function(e,t=0,r=!1,n=!1){let s=(0,l.convertToTensor)(e,"x","cumsum");return a.ENGINE.runKernel(o.Cumsum,{x:s},{axis:t,exclusive:r,reverse:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cOTcl:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"denseBincount",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({denseBincount_:function(e,t,r,n=!1){let s=(0,l.convertToTensor)(e,"x","denseBincount"),u=(0,l.convertToTensor)(t,"weights","denseBincount");return i.assert("int32"===s.dtype,()=>`Error in denseBincount: input dtype must be int32, but got ${s.dtype}`),i.assert(s.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${s.rank}.`),i.assert(r>=0,()=>`size must be non-negative, but got ${r}.`),i.assert(u.size===s.size||0===u.size,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${s.shape}, weights shape: ${u.shape}.`),a.ENGINE.runKernel(o.DenseBincount,{x:s,weights:u},{size:r,binaryOutput:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8r7gw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthToSpace",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({depthToSpace_:function(e,t,r="NHWC"){let n=(0,l.convertToTensor)(e,"x","depthToSpace","float32"),s="NHWC"===r?n.shape[1]:n.shape[2],u="NHWC"===r?n.shape[2]:n.shape[3],p="NHWC"===r?n.shape[3]:n.shape[1];return i.assert(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),i.assert(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying + ${s} and ${t} for depthToSpace with input shape + ${n.shape}`),i.assert(u*t>=0,()=>`Negative dimension size caused by overflow when multiplying + ${u} and ${t} for depthToSpace with input shape + ${n.shape}`),i.assert(p%(t*t)==0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${p} for depthToSpace with input shape ${n.shape}`),a.ENGINE.runKernel(o.DepthToSpace,{x:n},{blockSize:t,dataFormat:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ffu4I:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2d",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./conv_util"),p=e("./operation"),c=e("./reshape");let d=(0,p.op)({depthwiseConv2d_:function(e,t,r,n,s="NHWC",p=[1,1],d){let f=(0,l.convertToTensor)(e,"x","depthwiseConv2d","float32"),m=(0,l.convertToTensor)(t,"filter","depthwiseConv2d","float32"),h=f,g=!1;3===f.rank&&(g=!0,h=(0,c.reshape)(f,[1,f.shape[0],f.shape[1],f.shape[2]])),i.assert(4===h.rank,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),i.assert(4===m.rank,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`);let x="NHWC"===s?h.shape[3]:h.shape[1];i.assert(x===m.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${x}) must match the inChannels dimension in filter ${m.shape[2]}.`),u.checkPadOnDimRoundingMode("depthwiseConv2d",n,d);let v={x:h,filter:m},y=a.ENGINE.runKernel(o.DepthwiseConv2dNative,v,{strides:r,pad:n,dataFormat:s,dilations:p,dimRoundingMode:d});return g?(0,c.reshape)(y,[y.shape[1],y.shape[2],y.shape[3]]):y}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./conv_util":"1HzRR","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bS9J2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"diag",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({diag_:function(e){let t=(0,l.convertToTensor)(e,"x","diag");return a.ENGINE.runKernel(o.Diag,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lPY76:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dilation2d",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./operation"),p=e("./reshape");let c=(0,u.op)({dilation2d_:function(e,t,r,n,s=[1,1],u="NHWC"){let c=(0,l.convertToTensor)(e,"x","dilation2d"),d=(0,l.convertToTensor)(t,"filter","dilation2d");i.assert(3===c.rank||4===c.rank,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${c.rank}.`),i.assert(3===d.rank,()=>`Error in dilation2d: filter must be rank 3, but got rank ${d.rank}.`),i.assert("NHWC"===u,()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${u}`);let f=c,m=!1;3===c.rank&&(f=(0,p.reshape)(c,[1,c.shape[0],c.shape[1],c.shape[2]]),m=!0),i.assert(f.shape[3]===d.shape[2],()=>`Error in dilation2d: input and filter must have the same depth: ${f.shape[3]} vs ${d.shape[2]}`);let h={x:f,filter:d},g=a.ENGINE.runKernel(o.Dilation2D,h,{strides:r,pad:n,dilations:s});return m?(0,p.reshape)(g,[g.shape[1],g.shape[2],g.shape[3]]):g}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8msU1":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"divNoNan",()=>d);var a=e("../tensor_util"),o=e("../tensor_util_env"),l=e("./div"),i=e("./equal"),u=e("./operation"),p=e("./where"),c=e("./zeros_like");let d=(0,u.op)({divNoNan_:function(e,t){let r=(0,o.convertToTensor)(e,"a","div"),n=(0,o.convertToTensor)(t,"b","div");[r,n]=(0,a.makeTypesMatch)(r,n);let s=(0,l.div)(r,n),u=(0,c.zerosLike)(s),d=(0,i.equal)(n,u);return(0,p.where)(d,u,s)}})},{"../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./div":"lbTan","./equal":"4fBRt","./operation":"2me4m","./where":"a7ZmF","./zeros_like":"1peA5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4fBRt":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"equal",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util");let p=(0,e("./operation").op)({equal_:function(e,t){let r=(0,i.convertToTensor)(e,"a","equal","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","equal","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.Equal,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9OeEk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){let r=e.length,n=[];for(let s=0;s1&&1===o&&n.unshift(a)}return n}function o(e,t){let r=[];for(let n=0;n1)&&r.unshift(a)}return r}function l(e,t){let r=Math.max(e.length,t.length),n=Array(r);for(let s=0;sa),s.export(r,"getReductionAxes",()=>o),s.export(r,"assertAndGetBroadcastShape",()=>l)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],a7ZmF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"where",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./broadcast_to"),u=e("./broadcast_util");let p=(0,e("./operation").op)({where_:function(e,t,r){let n=(0,l.convertToTensor)(t,"a","where"),s=(0,l.convertToTensor)(r,"b","where"),p=(0,l.convertToTensor)(e,"condition","where","bool"),c=(0,u.assertAndGetBroadcastShape)((0,u.assertAndGetBroadcastShape)(p.shape,n.shape),s.shape),d=(0,i.broadcastTo)(p,c),f=(0,i.broadcastTo)(n,c),m=(0,i.broadcastTo)(s,c);return a.ENGINE.runKernel(o.Select,{condition:d,t:f,e:m})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./broadcast_to":"4YYa0","./broadcast_util":"9OeEk","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1peA5":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"zerosLike",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({zerosLike_:function(e){let t=(0,l.convertToTensor)(e,"x","zerosLike");return a.ENGINE.runKernel(o.ZerosLike,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1Be6D":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dot",()=>p);var a=e("../tensor_util_env"),o=e("../util"),l=e("./mat_mul"),i=e("./operation"),u=e("./reshape");let p=(0,i.op)({dot_:function(e,t){let r=(0,a.convertToTensor)(e,"t1","dot"),n=(0,a.convertToTensor)(t,"t2","dot");o.assert((1===r.rank||2===r.rank)&&(1===n.rank||2===n.rank),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${r.rank} and ${n.rank}.`);let s=1===r.rank?r.size:r.shape[1],i=1===n.rank?n.size:n.shape[0];if(o.assert(s===i,()=>`Error in dot: inner dimensions of inputs must match, but got ${s} and ${i}.`),1===r.rank&&1===n.rank){let e=(0,u.reshape)(r,[1,-1]),t=(0,u.reshape)(n,[-1,1]),s=(0,l.matMul)(e,t);return(0,u.reshape)(s,[])}if(1===r.rank&&2===n.rank){let e=(0,u.reshape)(r,[1,-1]),t=(0,u.reshape)(n,[n.shape[0],n.shape[1]]),s=(0,l.matMul)(e,t);return(0,u.reshape)(s,[s.size])}if(2===r.rank&&1===n.rank){let e=(0,u.reshape)(n,[-1,1]),t=(0,l.matMul)(r,e);return(0,u.reshape)(t,[t.size])}{let e=(0,u.reshape)(n,[n.shape[0],n.shape[1]]);return(0,l.matMul)(r,e)}}})},{"../tensor_util_env":"5isXB","../util":"icflD","./mat_mul":"hHb0J","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bFs63:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"einsum_",()=>i),s.export(r,"einsum",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");function i(e,...t){let r=t.map((e,t)=>(0,l.convertToTensor)(e,`tensors${t}`,"einsum"));return a.ENGINE.runKernel(o.Einsum,r,{equation:e})}let u=(0,e("./operation").op)({einsum_:i})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],elRT9:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"elu",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({elu_:function(e){let t=(0,l.convertToTensor)(e,"x","elu","float32");return a.ENGINE.runKernel(o.Elu,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6l9tH":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ensureShape",()=>l);var a=e("../tensor_util_env"),o=e("../util_base");let l=(0,e("./operation").op)({ensureShape_:function(e,t){let r=(0,a.convertToTensor)(e,"x","ensureShape","string_or_numeric");if(!(0,o.arraysEqualWithNull)(r.shape,t))throw Error(`EnsureShape: Shape of tensor ${r.shape} is not compatible with expected shape ${t}`);return e}})},{"../tensor_util_env":"5isXB","../util_base":"bNQH0","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gmOa2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"erf",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./cast");let p=(0,e("./operation").op)({erf_:function(e){let t=(0,l.convertToTensor)(e,"x","erf");i.assert("int32"===t.dtype||"float32"===t.dtype,()=>"Input dtype must be `int32` or `float32`."),"int32"===t.dtype&&(t=(0,u.cast)(t,"float32"));let r={x:t};return a.ENGINE.runKernel(o.Erf,r)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./cast":"juFUN","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aYQZA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"euclideanNorm",()=>o);var a=e("./norm");let o=(0,e("./operation").op)({euclideanNorm_:function(e,t=null,r=!1){return(0,a.norm)(e,"euclidean",t,r)}})},{"./norm":"auKpd","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],auKpd:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"norm",()=>v);var a=e("../tensor_util_env"),o=e("../util"),l=e("./abs"),i=e("./axis_util"),u=e("./max"),p=e("./min"),c=e("./operation"),d=e("./pow"),f=e("./reshape"),m=e("./scalar"),h=e("./sqrt"),g=e("./square"),x=e("./sum");let v=(0,c.op)({norm_:function(e,t="euclidean",r=null,n=!1){let s=function e(t,r,n=null){if(0===t.rank)return(0,l.abs)(t);if(1!==t.rank&&null===n)return e((0,f.reshape)(t,[-1]),r,n);if(1===t.rank||"number"==typeof n||Array.isArray(n)&&1===n.length){if(1===r)return(0,x.sum)((0,l.abs)(t),n);if(r===1/0)return(0,u.max)((0,l.abs)(t),n);if(r===-1/0)return(0,p.min)((0,l.abs)(t),n);if("euclidean"===r||2===r)return(0,h.sqrt)((0,x.sum)((0,d.pow)((0,l.abs)(t),(0,m.scalar)(2,"int32")),n));throw Error(`Error in norm: invalid ord value: ${r}`)}if(Array.isArray(n)&&2===n.length){if(1===r)return(0,u.max)((0,x.sum)((0,l.abs)(t),n[0]),n[1]-1);if(r===1/0)return(0,u.max)((0,x.sum)((0,l.abs)(t),n[1]),n[0]);if(r===-1/0)return(0,p.min)((0,x.sum)((0,l.abs)(t),n[1]),n[0]);if("fro"===r||"euclidean"===r)return(0,h.sqrt)((0,x.sum)((0,g.square)(t),n));throw Error(`Error in norm: invalid ord value: ${r}`)}throw Error(`Error in norm: invalid axis: ${n}`)}(e=(0,a.convertToTensor)(e,"x","norm"),t,r),c=s.shape;if(n){let t=(0,o.parseAxisParam)(r,e.shape);c=i.expandShapeToKeepDim(s.shape,t)}return(0,f.reshape)(s,c)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./abs":"9L54v","./axis_util":"4dwwj","./max":"erFBB","./min":"1qUuZ","./operation":"2me4m","./pow":"aku8e","./reshape":"2znRS","./scalar":"aCdNN","./sqrt":"946JS","./square":"kNrd2","./sum":"jlBkb","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4dwwj":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"axesAreInnerMostDims",()=>o),s.export(r,"combineLocations",()=>l),s.export(r,"computeOutAndReduceShapes",()=>i),s.export(r,"expandShapeToKeepDim",()=>u),s.export(r,"assertAxesAreInnerMostDims",()=>p),s.export(r,"getAxesPermutation",()=>c),s.export(r,"getUndoAxesPermutation",()=>d),s.export(r,"getInnerMostAxes",()=>f);var a=e("../util");function o(e,t){for(let r=0;re[t])]}function u(e,t){return l(e,t.map(e=>1),t)}function p(e,t,r){a.assert(o(t,r),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${r} input.`)}function c(e,t){if(o(e,t))return null;let r=[];for(let n=0;nr.push(e)),r}function d(e){return e.map((e,t)=>[t,e]).sort((e,t)=>e[1]-t[1]).map(e=>e[0])}function f(e,t){let r=[];for(let n=t-e;ni);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({max_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","max");return a.ENGINE.runKernel(o.Max,{x:n},{reductionIndices:t,keepDims:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1qUuZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"min",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({min_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","min");return a.ENGINE.runKernel(o.Min,{x:n},{axis:t,keepDims:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aku8e:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pow",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({pow_:function(e,t){let r=(0,i.convertToTensor)(e,"base","pow"),n=(0,i.convertToTensor)(t,"exp","pow");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Pow,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aCdNN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"scalar",()=>l);var a=e("../util"),o=e("./tensor_ops_util");function l(e,t){if(((0,a.isTypedArray)(e)&&"string"!==t||Array.isArray(e))&&"complex64"!==t)throw Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if("string"===t&&(0,a.isTypedArray)(e)&&!(e instanceof Uint8Array))throw Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return(0,o.makeTensor)(e,[],[],t)}},{"../util":"icflD","./tensor_ops_util":"7gShZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"946JS":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sqrt",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({sqrt_:function(e){let t=(0,l.convertToTensor)(e,"x","sqrt","float32");return a.ENGINE.runKernel(o.Sqrt,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kNrd2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"square",()=>l);var a=e("../engine"),o=e("../tensor_util_env");let l=(0,e("./operation").op)({square_:function(e){let t=(0,o.convertToTensor)(e,"x","square");return a.ENGINE.runKernel("Square",{x:t},{})}})},{"../engine":"c6qwc","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jlBkb:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sum",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./cast");let u=(0,e("./operation").op)({sum_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","sum");"bool"===n.dtype&&(n=(0,i.cast)(n,"int32"));let s={x:n};return a.ENGINE.runKernel(o.Sum,s,{axis:t,keepDims:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./cast":"juFUN","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aYtA8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"exp",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({exp_:function(e){let t=(0,l.convertToTensor)(e,"x","exp");return a.ENGINE.runKernel(o.Exp,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6YWDL":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expandDims",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({expandDims_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","expandDims","string_or_numeric");return i.assert(t<=r.rank,()=>"Axis must be <= rank of the tensor"),a.ENGINE.runKernel(o.ExpandDims,{input:r},{dim:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ak9I4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expm1",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({expm1_:function(e){let t=(0,l.convertToTensor)(e,"x","expm1");return a.ENGINE.runKernel(o.Expm1,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],j8T5c:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"eye",()=>p);var a=e("./buffer"),o=e("./expand_dims"),l=e("./operation"),i=e("./reshape"),u=e("./tile");let p=(0,l.op)({eye_:function(e,t,r,n="float32"){null==t&&(t=e);let s=(0,a.buffer)([e,t],n),l=e<=t?e:t;for(let e=0;eu);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({tile_:function(e,t){let r=(0,l.convertToTensor)(e,"x","tile","string_or_numeric");return i.assert(r.rank===t.length,()=>`Error in transpose: rank of input ${r.rank} must match length of reps ${t}.`),a.ENGINE.runKernel(o.Tile,{x:r},{reps:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],Urqox:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floor",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({floor_:function(e){let t=(0,l.convertToTensor)(e,"x","floor","float32");return a.ENGINE.runKernel(o.Floor,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9M6NX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gather",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({gather_:function(e,t,r=0,n=0){let s=(0,l.convertToTensor)(e,"x","gather"),i=(0,l.convertToTensor)(t,"indices","gather","int32");return a.ENGINE.runKernel(o.GatherV2,{x:s,indices:i},{axis:r,batchDims:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3KUcR":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"greater",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util");let p=(0,e("./operation").op)({greater_:function(e,t){let r=(0,i.convertToTensor)(e,"a","greater","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","greater","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.Greater,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ai7qe:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"greaterEqual",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util");let p=(0,e("./operation").op)({greaterEqual_:function(e,t){let r=(0,i.convertToTensor)(e,"a","greaterEqual","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","greaterEqual","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.GreaterEqual,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iepBk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"imag",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({imag_:function(e){let t=(0,l.convertToTensor)(e,"input","imag");return a.ENGINE.runKernel(o.Imag,{input:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bOC6f:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isFinite",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({isFinite_:function(e){let t=(0,l.convertToTensor)(e,"x","isFinite");return a.ENGINE.runKernel(o.IsFinite,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],d61Qv:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isInf",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({isInf_:function(e){let t=(0,l.convertToTensor)(e,"x","isInf");return a.ENGINE.runKernel(o.IsInf,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jOr5d:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isNaN",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({isNaN_:function(e){let t=(0,l.convertToTensor)(e,"x","isNaN");return a.ENGINE.runKernel(o.IsNan,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bECmF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"leakyRelu",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({leakyRelu_:function(e,t=.2){let r=(0,l.convertToTensor)(e,"x","leakyRelu");return a.ENGINE.runKernel(o.LeakyRelu,{x:r},{alpha:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3qq9g":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"less",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util");let p=(0,e("./operation").op)({less_:function(e,t){let r=(0,i.convertToTensor)(e,"a","less","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","less","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.Less,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hEbcw:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lessEqual",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util");let p=(0,e("./operation").op)({lessEqual_:function(e,t){let r=(0,i.convertToTensor)(e,"a","lessEqual","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","lessEqual","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.LessEqual,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8RguN":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"linspace",()=>l);var a=e("../engine"),o=e("../kernel_names");function l(e,t,r){if(r<=0)throw Error("The number of values should be positive.");return a.ENGINE.runKernel(o.LinSpace,{},{start:e,stop:t,num:r})}},{"../engine":"c6qwc","../kernel_names":"349aa","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jRGtA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"localResponseNormalization",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./operation"),p=e("./reshape");let c=(0,u.op)({localResponseNormalization_:function(e,t=5,r=1,n=1,s=.5){let u=(0,l.convertToTensor)(e,"x","localResponseNormalization");i.assert(4===u.rank||3===u.rank,()=>`Error in localResponseNormalization: x must be rank 3 or 4 but got + rank ${u.rank}.`),i.assert(i.isInt(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let c=u,d=!1;3===u.rank&&(d=!0,c=(0,p.reshape)(u,[1,u.shape[0],u.shape[1],u.shape[2]]));let f={x:c},m=a.ENGINE.runKernel(o.LRN,f,{depthRadius:t,bias:r,alpha:n,beta:s});return d?(0,p.reshape)(m,[m.shape[1],m.shape[2],m.shape[3]]):m}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bjj59:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"log",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({log_:function(e){let t=(0,l.convertToTensor)(e,"x","log","float32");return a.ENGINE.runKernel(o.Log,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],acqft:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"log1p",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({log1p_:function(e){let t=(0,l.convertToTensor)(e,"x","log1p");return a.ENGINE.runKernel(o.Log1p,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3aDHP":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logSigmoid",()=>d);var a=e("../gradients"),o=e("../tensor_util_env"),l=e("./mul"),i=e("./neg"),u=e("./operation"),p=e("./sigmoid"),c=e("./softplus");let d=(0,u.op)({logSigmoid_:function(e){let t=(0,o.convertToTensor)(e,"x","logSigmoid");return(0,a.customGrad)(e=>({value:(0,i.neg)((0,c.softplus)((0,i.neg)(e))),gradFunc:t=>(0,l.mul)(t,(0,p.sigmoid)((0,i.neg)(e)))}))(t)}})},{"../gradients":"7QhD7","../tensor_util_env":"5isXB","./mul":"3233B","./neg":"8HIhG","./operation":"2me4m","./sigmoid":"kgtAa","./softplus":"G5sKZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7QhD7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"customGrad",()=>m),s.export(r,"variableGrads",()=>f),s.export(r,"valueAndGrad",()=>c),s.export(r,"valueAndGrads",()=>d),s.export(r,"grad",()=>u),s.export(r,"grads",()=>p);var a=e("./engine"),o=e("./tensor"),l=e("./tensor_util_env"),i=e("./util");function u(e){return i.assert(i.isFunction(e),()=>"The f passed in grad(f) must be a function"),(t,r)=>{let n=(0,l.convertToTensor)(t,"x","tf.grad","string_or_numeric"),s=null!=r?(0,l.convertToTensor)(r,"dy","tf.grad"):null;return a.ENGINE.tidy(()=>{let{value:t,grads:r}=a.ENGINE.gradients(()=>e(n),[n],s);return null!=s&&i.assertShapesMatch(t.shape,s.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),h(r),r[0]})}}function p(e){return i.assert(i.isFunction(e),()=>"The f passed in grads(f) must be a function"),(t,r)=>{i.assert(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let n=(0,l.convertToTensorArray)(t,"args","tf.grads","string_or_numeric"),s=null!=r?(0,l.convertToTensor)(r,"dy","tf.grads"):null;return a.ENGINE.tidy(()=>{let{value:t,grads:r}=a.ENGINE.gradients(()=>e(...n),n,s);return null!=s&&i.assertShapesMatch(t.shape,s.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),h(r),r})}}function c(e){return i.assert(i.isFunction(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,r)=>{i.assert(t instanceof o.Tensor,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),i.assert(null==r||r instanceof o.Tensor,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:n,value:s}=a.ENGINE.gradients(()=>e(t),[t],r);return h(n),{grad:n[0],value:s}}}function d(e){return i.assert(i.isFunction(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,r)=>{i.assert(Array.isArray(t)&&t.every(e=>e instanceof o.Tensor),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),i.assert(null==r||r instanceof o.Tensor,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let n=a.ENGINE.gradients(()=>e(...t),t,r);return null!=r&&i.assertShapesMatch(n.value.shape,r.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),h(n.grads),n}}function f(e,t){i.assert(i.isFunction(e),()=>"The f passed in variableGrads(f) must be a function"),i.assert(null==t||Array.isArray(t)&&t.every(e=>e instanceof o.Variable),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let r=null!=t;if(!r)for(let e in t=[],a.ENGINE.registeredVariables)t.push(a.ENGINE.registeredVariables[e]);let n=r?t.filter(e=>!e.trainable):null,s=t.length;t=t.filter(e=>e.trainable),i.assert(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${s} variables is trainable.`);let{value:l,grads:u}=a.ENGINE.gradients(e,t,null,!0);i.assert(u.some(e=>null!=e),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),i.assert(0===l.rank,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${l.rank} tensor`);let p={};return t.forEach((e,t)=>{null!=u[t]&&(p[e.name]=u[t])}),null!=n&&n.forEach(e=>p[e.name]=null),{value:l,grads:p}}function m(e){return a.ENGINE.customGrad(e)}function h(e){if(e.filter(e=>null==e).length>0)throw Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that + the f you passed encloses all operations that lead from x to y.`)}},{"./engine":"c6qwc","./tensor":"cfIkd","./tensor_util_env":"5isXB","./util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8HIhG":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"neg",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({neg_:function(e){let t=(0,l.convertToTensor)(e,"x","neg");return a.ENGINE.runKernel(o.Neg,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],G5sKZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softplus",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({softplus_:function(e){let t=(0,l.convertToTensor)(e,"x","softplus");return a.ENGINE.runKernel(o.Softplus,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7nk63":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logSoftmax",()=>h);var a=e("../gradients"),o=e("../tensor_util_env"),l=e("./cast"),i=e("./exp"),u=e("./log"),p=e("./max"),c=e("./mul"),d=e("./operation"),f=e("./sub"),m=e("./sum");let h=(0,d.op)({logSoftmax_:function(e,t=-1){let r=(0,o.convertToTensor)(e,"logits","logSoftmax");if(-1===t&&(t=r.rank-1),t!==r.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${r.rank} and axis was ${t}`);return(0,a.customGrad)((e,r)=>{let n=(0,p.max)(e,t,!0),s=(0,f.sub)(e,n),a=(0,f.sub)((0,l.cast)(s,"float32"),(0,u.log)((0,m.sum)((0,i.exp)(s),t,!0)));return r([a]),{value:a,gradFunc:(e,r)=>{let[n]=r,s=(0,i.exp)(n);return(0,f.sub)(e,(0,c.mul)((0,m.sum)(e,t,!0),s))}}})(r)}})},{"../gradients":"7QhD7","../tensor_util_env":"5isXB","./cast":"juFUN","./exp":"aYtA8","./log":"bjj59","./max":"erFBB","./mul":"3233B","./operation":"2me4m","./sub":"2lFei","./sum":"jlBkb","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2lFei":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sub",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({sub_:function(e,t){let r=(0,i.convertToTensor)(e,"a","sub"),n=(0,i.convertToTensor)(t,"b","sub");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Sub,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gPZz6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logSumExp",()=>g);var a=e("../tensor_util_env"),o=e("../util"),l=e("./add"),i=e("./axis_util"),u=e("./exp"),p=e("./log"),c=e("./max"),d=e("./operation"),f=e("./reshape"),m=e("./sub"),h=e("./sum");let g=(0,d.op)({logSumExp_:function(e,t=null,r=!1){let n=(0,a.convertToTensor)(e,"x","logSumExp"),s=(0,o.parseAxisParam)(t,n.shape),d=(0,c.max)(n,s,!0),g=(0,m.sub)(n,d),x=(0,u.exp)(g),v=(0,h.sum)(x,s),y=(0,p.log)(v),b=(0,l.add)((0,f.reshape)(d,y.shape),y);if(r){let e=(0,i.expandShapeToKeepDim)(b.shape,s);return(0,f.reshape)(b,e)}return b}})},{"../tensor_util_env":"5isXB","../util":"icflD","./add":"dX80O","./axis_util":"4dwwj","./exp":"aYtA8","./log":"bjj59","./max":"erFBB","./operation":"2me4m","./reshape":"2znRS","./sub":"2lFei","./sum":"jlBkb","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8lNbb":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalAnd",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./broadcast_util");let u=(0,e("./operation").op)({logicalAnd_:function(e,t){let r=(0,l.convertToTensor)(e,"a","logicalAnd","bool"),n=(0,l.convertToTensor)(t,"b","logicalAnd","bool");return(0,i.assertAndGetBroadcastShape)(r.shape,n.shape),a.ENGINE.runKernel(o.LogicalAnd,{a:r,b:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cYHsS:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalNot",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({logicalNot_:function(e){let t=(0,l.convertToTensor)(e,"x","logicalNot","bool");return a.ENGINE.runKernel(o.LogicalNot,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jhe6h:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalOr",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./broadcast_util");let u=(0,e("./operation").op)({logicalOr_:function(e,t){let r=(0,l.convertToTensor)(e,"a","logicalOr","bool"),n=(0,l.convertToTensor)(t,"b","logicalOr","bool");return(0,i.assertAndGetBroadcastShape)(r.shape,n.shape),a.ENGINE.runKernel(o.LogicalOr,{a:r,b:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],crgLh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalXor",()=>p);var a=e("../tensor_util_env"),o=e("./broadcast_util"),l=e("./logical_and"),i=e("./logical_not"),u=e("./logical_or");let p=(0,e("./operation").op)({logicalXor_:function(e,t){let r=(0,a.convertToTensor)(e,"a","logicalXor","bool"),n=(0,a.convertToTensor)(t,"b","logicalXor","bool");return(0,o.assertAndGetBroadcastShape)(r.shape,n.shape),(0,l.logicalAnd)((0,u.logicalOr)(e,t),(0,i.logicalNot)((0,l.logicalAnd)(e,t)))}})},{"../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./logical_and":"8lNbb","./logical_not":"cYHsS","./logical_or":"jhe6h","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],f4R9w:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lowerBound",()=>o);var a=e("./search_sorted");function o(e,t){return(0,a.searchSorted)(e,t,"left")}},{"./search_sorted":"csM1s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],csM1s:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"searchSorted",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util_base"),u=e("./operation"),p=e("./reshape");let c=(0,u.op)({searchSorted_:function(e,t,r="left"){let n=(0,l.convertToTensor)(e,"sortedSequence","searchSorted"),s=(0,l.convertToTensor)(t,"values","searchSorted"),u=n.shape[n.shape.length-1],c=s.shape[s.shape.length-1],d=(0,p.reshape)(n,[-1,u]),f=(0,p.reshape)(s,[-1,c]);if(d.rank<2)throw Error("Sorted input argument must be at least 2-dimensional");if(d.shape[0]!==f.shape[0])throw Error("Leading dimension of 'sortedSequence' and 'values' must match.");if((0,i.sizeFromShape)(f.shape)>=0x80000000)throw Error("values tensor size must less than 2147483648");if(d.shape[1]>=0x80000000)throw Error(`trailing dim_size must less than 2147483648 for int32 output type, was ${d.shape[1]}`);return a.ENGINE.runKernel(o.SearchSorted,{sortedSequence:d,values:f},{side:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util_base":"bNQH0","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2rPA7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./conv_util"),p=e("./operation"),c=e("./reshape");let d=(0,p.op)({maxPool_:function(e,t,r,n,s){let p=(0,l.convertToTensor)(e,"x","maxPool"),d=p,f=!1;3===p.rank&&(f=!0,d=(0,c.reshape)(p,[1,p.shape[0],p.shape[1],p.shape[2]])),i.assert(4===d.rank,()=>`Error in maxPool: input must be rank 4 but got rank ${d.rank}.`),i.assert(u.eitherStridesOrDilationsAreOne(r,1),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${r} and dilations '1'`),u.checkPadOnDimRoundingMode("maxPool",n,s);let m={x:d},h=a.ENGINE.runKernel(o.MaxPool,m,{filterSize:t,strides:r,pad:n,dimRoundingMode:s});return f?(0,c.reshape)(h,[h.shape[1],h.shape[2],h.shape[3]]):h}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./conv_util":"1HzRR","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3kM0r":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool3d",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./conv_util"),p=e("./operation"),c=e("./reshape");let d=(0,p.op)({maxPool3d_:function(e,t=[1,1,1],r,n,s,p="NDHWC"){let d=(0,l.convertToTensor)(e,"x","maxPool3d"),f=d,m=!1;4===d.rank&&(m=!0,f=(0,c.reshape)(d,[1,d.shape[0],d.shape[1],d.shape[2],d.shape[3]])),i.assert(5===f.rank,()=>`Error in maxPool3d: x must be rank 5 but got rank ${f.rank}.`),i.assert("NDHWC"===p,()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${p}`),(0,u.checkPadOnDimRoundingMode)("maxPool3d",n,s);let h={x:f},g=a.ENGINE.runKernel(o.MaxPool3D,h,{filterSize:t,strides:r,pad:n,dimRoundingMode:s,dataFormat:p});return m?(0,c.reshape)(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./conv_util":"1HzRR","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1yBgJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolWithArgmax",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({maxPoolWithArgmax_:function(e,t,r,n,s=!1){let i=(0,l.convertToTensor)(e,"x","maxPoolWithArgmax"),u=a.ENGINE.runKernel(o.MaxPoolWithArgmax,{x:i},{filterSize:t,strides:r,pad:n,includeBatchInIndex:s});return{result:u[0],indexes:u[1]}}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4zHPo":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maximum",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util"),p=e("./cast");let c=(0,e("./operation").op)({maximum_:function(e,t){let r=(0,i.convertToTensor)(e,"a","maximum"),n=(0,i.convertToTensor)(t,"b","maximum");[r,n]=(0,l.makeTypesMatch)(r,n),"bool"===r.dtype&&(r=(0,p.cast)(r,"int32"),n=(0,p.cast)(n,"int32")),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.Maximum,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./cast":"juFUN","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9PJXN":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mean",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({mean_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","mean");return a.ENGINE.runKernel(o.Mean,{x:n},{axis:t,keepDims:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6E9wv":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"meshgrid",()=>c);var a=e("./mat_mul"),o=e("./ones"),l=e("./reshape"),i=e("../tensor"),u=e("../tensor_util_env"),p=e("../util_base");function c(e,t,{indexing:r="xy"}={}){if("xy"!==r&&"ij"!==r)throw TypeError(`${r} is not a valid third argument to meshgrid`);if(void 0===e)return[];let n=(0,u.convertToTensor)(e,"x","meshgrid",e instanceof i.Tensor?e.dtype:"float32");if(void 0===t)return[n];let s=(0,u.convertToTensor)(t,"y","meshgrid",t instanceof i.Tensor?t.dtype:"float32"),d=(0,p.sizeFromShape)(n.shape),f=(0,p.sizeFromShape)(s.shape);return"xy"===r?(n=(0,l.reshape)(n,[1,-1]),s=(0,l.reshape)(s,[-1,1]),[(0,a.matMul)((0,o.ones)([f,1],n.dtype),n),(0,a.matMul)(s,(0,o.ones)([1,d],s.dtype))]):(n=(0,l.reshape)(n,[-1,1]),s=(0,l.reshape)(s,[1,-1]),[(0,a.matMul)(n,(0,o.ones)([1,f],n.dtype)),(0,a.matMul)((0,o.ones)([d,1],s.dtype),s)])}},{"./mat_mul":"hHb0J","./ones":"eYvGK","./reshape":"2znRS","../tensor":"cfIkd","../tensor_util_env":"5isXB","../util_base":"bNQH0","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eYvGK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ones",()=>function e(t,r="float32"){if((0,l.assertNonNegativeIntegerDimensions)(t),"complex64"===r){let r=e(t,"float32"),n=(0,u.zeros)(t,"float32");return(0,i.complex)(r,n)}let n=(0,o.makeOnesTypedArray)((0,o.sizeFromShape)(t),r);return a.ENGINE.makeTensor(n,t,r)});var a=e("../engine"),o=e("../util"),l=e("../util_base"),i=e("./complex"),u=e("./zeros")},{"../engine":"c6qwc","../util":"icflD","../util_base":"bNQH0","./complex":"5ASH6","./zeros":"fqUNT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fqUNT:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"zeros",()=>function e(t,r="float32"){if((0,o.assertNonNegativeIntegerDimensions)(t),"complex64"===r){let r=e(t,"float32"),n=e(t,"float32");return(0,l.complex)(r,n)}let n=(0,o.makeZerosTypedArray)((0,o.sizeFromShape)(t),r);return a.ENGINE.makeTensor(n,t,r)});var a=e("../engine"),o=e("../util"),l=e("./complex")},{"../engine":"c6qwc","../util":"icflD","./complex":"5ASH6","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"74TYW":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"minimum",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util"),p=e("./cast");let c=(0,e("./operation").op)({minimum_:function(e,t){let r=(0,i.convertToTensor)(e,"a","minimum"),n=(0,i.convertToTensor)(t,"b","minimum");[r,n]=(0,l.makeTypesMatch)(r,n),"bool"===r.dtype&&(r=(0,p.cast)(r,"int32"),n=(0,p.cast)(n,"int32")),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.Minimum,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./cast":"juFUN","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6rahc":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mirrorPad",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({mirrorPad_:function(e,t,r){i.assert("reflect"===r||"symmetric"===r,()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${r}.`);let n=(0,l.convertToTensor)(e,"x","mirrorPad");if(0===n.rank)throw Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");i.assert(t.length===n.rank,()=>`Padding doesn't match input. Must be ${n.rank}. Got ${t.length}.`);let s=+("reflect"===r);for(let e=0;e"Invalid number of paddings. Must be length of 2 each."),i.assert(t[e][0]>=0&&t[e][0]<=n.shape[e]-s&&t[e][1]>=0&&t[e][1]<=n.shape[e]-s,()=>`Padding in dimension ${e} cannot be greater than or equal to ${n.shape[e]-s} or less than 0 for input of shape ${n.shape}`);return a.ENGINE.runKernel(o.MirrorPad,{x:n},{paddings:t,mode:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7txgC":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mod",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({mod_:function(e,t){let r=(0,i.convertToTensor)(e,"a","mod"),n=(0,i.convertToTensor)(t,"b","mod");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Mod,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gJMJe:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"moments",()=>m);var a=e("../tensor_util_env"),o=e("../util"),l=e("./axis_util"),i=e("./cast"),u=e("./mean"),p=e("./operation"),c=e("./reshape"),d=e("./square"),f=e("./sub");let m=(0,p.op)({moments_:function(e,t=null,r=!1){e=(0,a.convertToTensor)(e,"x","moments");let n=(0,o.parseAxisParam)(t,e.shape),s=(0,u.mean)(e,n,r),p=s.shape;r||(p=(0,l.expandShapeToKeepDim)(s.shape,n));let m=(0,d.square)((0,f.sub)((0,i.cast)(e,"float32"),(0,c.reshape)(s,p)));return{mean:s,variance:(0,u.mean)(m,n,r)}}})},{"../tensor_util_env":"5isXB","../util":"icflD","./axis_util":"4dwwj","./cast":"juFUN","./mean":"9PJXN","./operation":"2me4m","./reshape":"2znRS","./square":"kNrd2","./sub":"2lFei","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9EDr2":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"multiRNNCell",()=>o);var a=e("../tensor_util_env");let o=(0,e("./operation").op)({multiRNNCell_:function(e,t,r,n){let s=(0,a.convertToTensor)(t,"data","multiRNNCell"),o=(0,a.convertToTensorArray)(r,"c","multiRNNCell"),l=(0,a.convertToTensorArray)(n,"h","multiRNNCell"),i=s,u=[];for(let t=0;tp);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./operation"),u=e("./reshape");let p=(0,i.op)({multinomial_:function(e,t,r,n=!1){let s=(0,l.convertToTensor)(e,"logits","multinomial"),i=s.size,p=s.rank;if(i<2)throw Error(`Error in multinomial: you need at least 2 outcomes, but got ${i}.`);if(p>2)throw Error(`Rank of probabilities must be 1 or 2, but is ${p}`);r=r||Math.random();let c=1===p?(0,u.reshape)(s,[1,-1]):s,d={numSamples:t,seed:r,normalized:n},f=a.ENGINE.runKernel(o.Multinomial,{logits:c},d);return 1===p?(0,u.reshape)(f,[f.size]):f}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],h3Wiz:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"notEqual",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util");let p=(0,e("./operation").op)({notEqual_:function(e,t){let r=(0,i.convertToTensor)(e,"a","notEqual","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","notEqual","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.NotEqual,s)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iJ8nQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"oneHot",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({oneHot_:function(e,t,r=1,n=0,s="int32"){if(t<2)throw Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let i=(0,l.convertToTensor)(e,"indices","oneHot","int32");return a.ENGINE.runKernel(o.OneHot,{indices:i},{dtype:s,depth:t,onValue:r,offValue:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5sNCT":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"onesLike",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({onesLike_:function(e){let t=(0,l.convertToTensor)(e,"x","onesLike");return a.ENGINE.runKernel(o.OnesLike,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hI835:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"outerProduct",()=>p);var a=e("../tensor_util_env"),o=e("../util"),l=e("./mat_mul"),i=e("./operation"),u=e("./reshape");let p=(0,i.op)({outerProduct_:function(e,t){let r=(0,a.convertToTensor)(e,"v1","outerProduct"),n=(0,a.convertToTensor)(t,"v2","outerProduct");o.assert(1===r.rank&&1===n.rank,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${r.rank} and ${n.rank}.`);let s=(0,u.reshape)(r,[-1,1]),i=(0,u.reshape)(n,[1,-1]);return(0,l.matMul)(s,i)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./mat_mul":"hHb0J","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5dL6W":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pad",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({pad_:function(e,t,r=0){let n=(0,l.convertToTensor)(e,"x","pad");if(0===n.rank)throw Error("pad(scalar) is not defined. Pass non-scalar to pad");return a.ENGINE.runKernel(o.PadV2,{x:n},{paddings:t,constantValue:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hehEW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pad1d",()=>i);var a=e("../util"),o=e("./operation"),l=e("./pad");let i=(0,o.op)({pad1d_:function(e,t,r=0){return(0,a.assert)(2===t.length,()=>"Invalid number of paddings. Must be length of 2."),(0,l.pad)(e,[t],r)}})},{"../util":"icflD","./operation":"2me4m","./pad":"5dL6W","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6X05W":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pad2d",()=>i);var a=e("../util"),o=e("./operation"),l=e("./pad");let i=(0,o.op)({pad2d_:function(e,t,r=0){return(0,a.assert)(2===t.length&&2===t[0].length&&2===t[1].length,()=>"Invalid number of paddings. Must be length of 2 each."),(0,l.pad)(e,t,r)}})},{"../util":"icflD","./operation":"2me4m","./pad":"5dL6W","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eFaKt:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pad3d",()=>i);var a=e("../util"),o=e("./operation"),l=e("./pad");let i=(0,o.op)({pad3d_:function(e,t,r=0){return(0,a.assert)(3===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length,()=>"Invalid number of paddings. Must be length of 2 each."),(0,l.pad)(e,t,r)}})},{"../util":"icflD","./operation":"2me4m","./pad":"5dL6W","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5JIjy":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pad4d",()=>i);var a=e("../util"),o=e("./operation"),l=e("./pad");let i=(0,o.op)({pad4d_:function(e,t,r=0){return(0,a.assert)(4===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length&&2===t[3].length,()=>"Invalid number of paddings. Must be length of 2 each."),(0,l.pad)(e,t,r)}})},{"../util":"icflD","./operation":"2me4m","./pad":"5dL6W","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fa7rV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pool",()=>m);var a=e("../tensor_util_env"),o=e("../util"),l=e("./avg_pool"),i=e("./batch_to_space_nd"),u=e("./conv_util"),p=e("./max_pool"),c=e("./operation"),d=e("./reshape"),f=e("./space_to_batch_nd");let m=(0,c.op)({pool_:function(e,t,r,n,s,c,m){let h;null==s&&(s=[1,1]),null==c&&(c=1),0===n&&(n="valid");let g=(0,a.convertToTensor)(e,"x","maxPool"),x=g,v=!1;3===g.rank&&(v=!0,x=(0,d.reshape)(g,[1,g.shape[0],g.shape[1],g.shape[2]])),o.assert(u.eitherStridesOrDilationsAreOne(c,s),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${c} and dilations '${s}'`);let y=u.computePool2DInfo(x.shape,t,c,s,n),b=[y.dilationHeight,y.dilationWidth];h="same"===n?function(e,t){let r=e.map((e,r)=>e+(e-1)*(t[r]-1)).map(e=>e-1),n=r.map(e=>Math.floor(e/2)),s=r.map((e,t)=>e-n[t]);return r.map((e,t)=>[n[t],s[t]])}([y.filterHeight,y.filterWidth],b):[[0,0],[0,0]];let _=1===b[0]&&1===b[1],[k,j]=function(e,t,r){let n=r.map(e=>e[0]),s=r.map(e=>e[1]),a=e.concat(n,s),o=t.map((e,t)=>(e-a[t]%e)%e),l=s.map((e,t)=>e+o[t]);return[t.map((e,t)=>[n[t],l[t]]),t.map((e,t)=>[0,o[t]])]}([y.inHeight,y.inWidth],b,h),I=_?n:"valid",w=_?x:(0,f.spaceToBatchND)(x,b,k),T=("avg"===r?()=>(0,l.avgPool)(w,t,c,I,m):()=>(0,p.maxPool)(w,t,c,I,m))(),N=_?T:(0,i.batchToSpaceND)(T,b,j);return v?(0,d.reshape)(N,[N.shape[1],N.shape[2],N.shape[3]]):N}})},{"../tensor_util_env":"5isXB","../util":"icflD","./avg_pool":"jw2jw","./batch_to_space_nd":"48Xl7","./conv_util":"1HzRR","./max_pool":"2rPA7","./operation":"2me4m","./reshape":"2znRS","./space_to_batch_nd":"kCZXN","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kCZXN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"spaceToBatchND",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({spaceToBatchND_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","spaceToBatchND");return i.assert(n.rank>=1+t.length,()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`),i.assert(r.length===t.length,()=>`paddings.shape[0] ${r.length} must be equal to [blockShape] ${t.length}`),i.assert(n.shape.reduce((e,n,s)=>s>0&&s<=t.length?e&&(n+r[s-1][0]+r[s-1][1])%t[s-1]==0:e,!0),()=>`input spatial dimensions ${n.shape.slice(1)} with paddings ${r.toString()} must be divisible by blockShapes ${t.toString()}`),a.ENGINE.runKernel(o.SpaceToBatchND,{x:n},{blockShape:t,paddings:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"97Biq":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prelu",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({prelu_:function(e,t){let r=(0,l.convertToTensor)(e,"x","prelu"),n=(0,l.convertToTensor)(t,"alpha","prelu");return a.ENGINE.runKernel(o.Prelu,{x:r,alpha:n})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iMnCC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prod",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./cast");let u=(0,e("./operation").op)({prod_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","prod");"bool"===n.dtype&&(n=(0,i.cast)(n,"int32"));let s={x:n};return a.ENGINE.runKernel(o.Prod,s,{axis:t,keepDims:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./cast":"juFUN","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6u9WD":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedGather",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({raggedGather_:function(e,t,r,n){let s=e.map((e,t)=>(0,l.convertToTensor)(e,`tensors${t}`,"raggedGather","int32")),i=(0,l.convertToTensor)(t,"paramsDenseValues","raggedGather"),u=(0,l.convertToTensor)(r,"indices","raggedGather","int32"),p=a.ENGINE.runKernel(o.RaggedGather,{paramsNestedSplits:s,paramsDenseValues:i,indices:u},{outputRaggedRank:n});return{outputNestedSplits:p.slice(0,p.length-1),outputDenseValues:p[p.length-1]}}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4Ep5b":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedRange",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({raggedRange_:function(e,t,r){let n=(0,l.convertToTensor)(e,"starts","raggedRange"),s=(0,l.convertToTensor)(t,"limits","raggedRange",n.dtype),i=(0,l.convertToTensor)(r,"deltas","raggedRange",n.dtype),u=a.ENGINE.runKernel(o.RaggedRange,{starts:n,limits:s,deltas:i});return{rtNestedSplits:u[0],rtDenseValues:u[1]}}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aUd7A:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedTensorToTensor",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({raggedTensorToTensor_:function(e,t,r,n,s){let i=(0,l.convertToTensor)(e,"shape","raggedTensorToTensor","int32"),u=(0,l.convertToTensor)(t,"values","raggedTensorToTensor"),p=(0,l.convertToTensor)(r,"defaultValue","raggedTensorToTensor",u.dtype),c=n.map((e,t)=>(0,l.convertToTensor)(e,`tensors${t}`,"raggedTensorToTensor","int32"));return a.ENGINE.runKernel(o.RaggedTensorToTensor,{shape:i,values:u,defaultValue:p,rowPartitionTensors:c},{rowPartitionTypes:s})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"45bji":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rand",()=>i);var a=e("../engine"),o=e("../util"),l=e("../util_base");let i=(0,e("./operation").op)({rand_:function(e,t,r){(0,l.assertNonNegativeIntegerDimensions)(e);let n=(0,o.sizeFromShape)(e),s=null;if(null==r||"float32"===r)s=new Float32Array(n);else if("int32"===r)s=new Int32Array(n);else if("bool"===r)s=new Uint8Array(n);else throw Error(`Unknown data type ${r}`);for(let e=0;eu);var a=e("../util_base"),o=e("./buffer"),l=e("./operation"),i=e("./rand_util");let u=(0,l.op)({randomGamma_:function(e,t,r=1,n="float32",s){if((0,a.assertNonNegativeIntegerDimensions)(e),null==r&&(r=1),null==n&&(n="float32"),"float32"!==n&&"int32"!==n)throw Error(`Unsupported data type ${n}`);let l=new(0,i.RandGamma)(t,r,n,s),u=(0,o.buffer)(e,n);for(let e=0;el),s.export(r,"RandGamma",()=>i),s.export(r,"UniformRandom",()=>u),s.export(r,"jarqueBeraNormalityTest",()=>p),s.export(r,"expectArrayInMeanStdRange",()=>c);var a=e("seedrandom"),o=e("../test_util");class l{constructor(e,t,r,n,s){this.mean=e,this.stdDev=t,this.dtype=r,this.nextVal=NaN,this.truncated=n,this.truncated&&(this.upper=this.mean+2*this.stdDev,this.lower=this.mean-2*this.stdDev);let o=s||Math.random();this.random=a.alea(o.toString())}nextValue(){let e,t;if(!isNaN(this.nextVal)){let e=this.nextVal;return this.nextVal=NaN,e}let r=!1;for(;!r;){let n,s,a;do a=(n=2*this.random()-1)*n+(s=2*this.random()-1)*s;while(a>=1||0===a)let o=Math.sqrt(-2*Math.log(a)/a);e=this.mean+this.stdDev*n*o,t=this.mean+this.stdDev*s*o,(!this.truncated||this.isValidTruncated(e))&&(r=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return null==this.dtype||"float32"===this.dtype?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}}class i{constructor(e,t,r,n){this.alpha=e,this.beta=1/t,this.dtype=r;let s=n||Math.random();this.randu=a.alea(s.toString()),this.randn=new l(0,1,r,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,r,n,s,a;for(;;){do n=this.randn.nextValue(),a=1+this.c*n;while(a<=0)if(a*=a*a,t=1-.331*(e=n*n)*e,r=.5*e+this.d*(1-a+Math.log(a)),(s=this.randu())null==this.dtype||"float32"===this.dtype,this.min=e,this.range=t-e,this.dtype=r,null==n&&(n=Math.random()),"number"==typeof n&&(n=n.toString()),!this.canReturnFloat()&&this.range<=1)throw Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=a.alea(n)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}}function p(e){let t=e.length,r=t/6*(Math.pow(function(e){let t=d(e),r=e.length,n=0,s=0;for(let a=0;a5.991)throw Error(`Invalid p-value for JB: ${r}`)}function c(e,t,r,n){null==n&&(n=(0,o.testEpsilon)());let s=d(e);(0,o.expectNumbersClose)(s,t,n),(0,o.expectNumbersClose)(function(e,t){let r=0;for(let n=0;n>>0,n-=t,n*=t,t=n>>>0,n-=t,t+=0x100000000*n}return(t>>>0)*23283064365386963e-26});r.next=function(){var e=2091639*r.s0+23283064365386963e-26*r.c;return r.s0=r.s1,r.s1=r.s2,r.s2=e-(r.c=0|e)},r.c=1,r.s0=n(" "),r.s1=n(" "),r.s2=n(" "),r.s0-=n(e),r.s0<0&&(r.s0+=1),r.s1-=n(e),r.s1<0&&(r.s1+=1),r.s2-=n(e),r.s2<0&&(r.s2+=1)}function s(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function a(e,t){var r=new n(e),a=t&&t.state,o=r.next;return o.int32=function(){return 0x100000000*r.next()|0},o.double=function(){return o()+(2097152*o()|0)*11102230246251565e-32},o.quick=o,a&&("object"==typeof a&&s(a,r),o.state=function(){return s(r,{})}),o}t&&t.exports?t.exports=a:r&&r.amd?r(function(){return a}):this.alea=a}(0,t,"function"==typeof define&&define)},{}],b58zD:[function(e,t,r,n){!function(e,t,r){function n(e){var t=this,r="";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:r+=e;for(var n=0;n>>0)/0x100000000};return o.double=function(){do var e=r.next()>>>11,t=(r.next()>>>0)/0x100000000,n=(e+t)/2097152;while(0===n)return n},o.int32=r.next,o.quick=o,a&&("object"==typeof a&&s(a,r),o.state=function(){return s(r,{})}),o}t&&t.exports?t.exports=a:r&&r.amd?r(function(){return a}):this.xor128=a}(0,t,"function"==typeof define&&define)},{}],aps4c:[function(e,t,r,n){!function(e,t,r){function n(e){var t=this,r="";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^(e^e<<1))|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:r+=e;for(var n=0;n>>4),t.next()}function s(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function a(e,t){var r=new n(e),a=t&&t.state,o=function(){return(r.next()>>>0)/0x100000000};return o.double=function(){do var e=r.next()>>>11,t=(r.next()>>>0)/0x100000000,n=(e+t)/2097152;while(0===n)return n},o.int32=r.next,o.quick=o,a&&("object"==typeof a&&s(a,r),o.state=function(){return s(r,{})}),o}t&&t.exports?t.exports=a:r&&r.amd?r(function(){return a}):this.xorwow=a}(0,t,"function"==typeof define&&define)},{}],lu36F:[function(e,t,r,n){!function(e,t,r){function n(e){var t=this;t.next=function(){var e,r,n=t.x,s=t.i;return e=n[s],e^=e>>>7,r=e^e<<24^((e=n[s+1&7])^e>>>10)^((e=n[s+3&7])^e>>>3)^((e=n[s+4&7])^e<<7),e=n[s+7&7],e^=e<<13,r^=e^e<<9,n[s]=r,t.i=s+1&7,r};var r,n=e,s=[];if(n===(0|n))s[0]=n;else for(r=0,n=""+n;r0;--r)t.next()}function s(e,t){return t.x=e.x.slice(),t.i=e.i,t}function a(e,t){null==e&&(e=+new Date);var r=new n(e),a=t&&t.state,o=function(){return(r.next()>>>0)/0x100000000};return o.double=function(){do var e=r.next()>>>11,t=(r.next()>>>0)/0x100000000,n=(e+t)/2097152;while(0===n)return n},o.int32=r.next,o.quick=o,a&&(a.x&&s(a,r),o.state=function(){return s(r,{})}),o}t&&t.exports?t.exports=a:r&&r.amd?r(function(){return a}):this.xorshift7=a}(0,t,"function"==typeof define&&define)},{}],gLpeE:[function(e,t,r,n){!function(e,t,r){function n(e){var t=this;t.next=function(){var e,r,n=t.w,s=t.X,a=t.i;return t.w=n=n+0x61c88647|0,r=s[a+34&127],e=s[a=a+1&127],r^=r<<13,e^=e<<17,r^=r>>>15,e^=e>>>12,r=s[a]=r^e,t.i=a,r+(n^n>>>16)|0},!function(e,t){var r,n,s,a,o,l=[],i=128;for(t===(0|t)?(n=t,t=null):(t+="\0",n=0,i=Math.max(i,t.length)),s=0,a=-32;a>>15,n^=n<<4,n^=n>>>13,a>=0&&(o=o+0x61c88647|0,s=0==(r=l[127&a]^=n+o)?s+1:0);for(s>=128&&(l[127&(t&&t.length||0)]=-1),s=127,a=512;a>0;--a)n=l[s+34&127],r=l[s=s+1&127],n^=n<<13,r^=r<<17,n^=n>>>15,r^=r>>>12,l[s]=n^r;e.w=o,e.X=l,e.i=s}(t,e)}function s(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function a(e,t){null==e&&(e=+new Date);var r=new n(e),a=t&&t.state,o=function(){return(r.next()>>>0)/0x100000000};return o.double=function(){do var e=r.next()>>>11,t=(r.next()>>>0)/0x100000000,n=(e+t)/2097152;while(0===n)return n},o.int32=r.next,o.quick=o,a&&(a.X&&s(a,r),o.state=function(){return s(r,{})}),o}t&&t.exports?t.exports=a:r&&r.amd?r(function(){return a}):this.xor4096=a}(0,t,"function"==typeof define&&define)},{}],gdZk8:[function(e,t,r,n){!function(e,t,r){function n(e){var t=this,r="";t.next=function(){var e=t.b,r=t.c,n=t.d,s=t.a;return e=e<<25^e>>>7^r,r=r-n|0,n=n<<24^n>>>8^s,s=s-e|0,t.b=e=e<<20^e>>>12^r,t.c=r=r-n|0,t.d=n<<16^r>>>16^s,t.a=s-e|0},t.a=0,t.b=0,t.c=-0x61c88647,t.d=0x517cc1b7,e===Math.floor(e)?(t.a=e/0x100000000|0,t.b=0|e):r+=e;for(var n=0;n>>0)/0x100000000};return o.double=function(){do var e=r.next()>>>11,t=(r.next()>>>0)/0x100000000,n=(e+t)/2097152;while(0===n)return n},o.int32=r.next,o.quick=o,a&&("object"==typeof a&&s(a,r),o.state=function(){return s(r,{})}),o}t&&t.exports?t.exports=a:r&&r.amd?r(function(){return a}):this.tychei=a}(0,t,"function"==typeof define&&define)},{}],fCJ8Z:[function(e,t,r,n){!function(r,n,s){var a,o="random",l=s.pow(256,6),i=s.pow(2,52),u=2*i;function p(e,t,p){var h=[],g=f(function e(t,r){var n,s=[],a=typeof t;if(r&&"object"==a)for(n in t)try{s.push(e(t[n],r-1))}catch(e){}return s.length?s:"string"==a?t:t+"\0"}((t=!0==t?{entropy:!0}:t||{}).entropy?[e,m(n)]:null==e?function(){try{var e;return a&&(e=a.randomBytes)?e=e(256):(e=new Uint8Array(256),(r.crypto||r.msCrypto).getRandomValues(e)),m(e)}catch(e){var t=r.navigator,s=t&&t.plugins;return[+new Date,r,s,r.screen,m(n)]}}():e,3),h),x=new c(h),v=function(){for(var e=x.g(6),t=l,r=0;e=u;)e/=2,t/=2,r>>>=1;return(e+r)/t};return v.int32=function(){return 0|x.g(4)},v.quick=function(){return x.g(4)/0x100000000},v.double=v,f(m(x.S),n),(t.pass||p||function(e,t,r,n){return(n&&(n.S&&d(n,x),e.state=function(){return d(x,{})}),r)?(s[o]=e,t):e})(v,g,"global"in t?t.global:this==s,t.state)}function c(e){var t,r=e.length,n=this,s=0,a=n.i=n.j=0,o=n.S=[];for(r||(e=[r++]);s<256;)o[s]=s++;for(s=0;s<256;s++)o[s]=o[a=255&a+e[s%r]+(t=o[s])],o[a]=t;(n.g=function(e){for(var t,r=0,s=n.i,a=n.j,o=n.S;e--;)t=o[s=255&s+1],r=256*r+o[255&(o[s]=o[a=255&a+t])+(o[a]=t)];return n.i=s,n.j=a,r})(256)}function d(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function f(e,t){for(var r,n=e+"",s=0;si),s.export(r,"expectArraysClose",()=>u),s.export(r,"testEpsilon",()=>p),s.export(r,"expectPromiseToFail",()=>d),s.export(r,"expectArraysEqual",()=>f),s.export(r,"expectNumbersClose",()=>m),s.export(r,"expectValuesInRange",()=>g),s.export(r,"expectArrayBuffersEqual",()=>x),s.export(r,"encodeStrings",()=>function e(t){for(let r=0;rv),s.export(r,"play",()=>y);var a=e("./engine"),o=e("./tensor_util_env"),l=e("./util");let i=.1;function u(e,t,r){return null==r&&(r=p()),c(e,t,(e,t)=>h(e,t,r))}function p(){return 32===a.ENGINE.backend.floatPrecision()?.001:i}function c(e,t,r){let n=!0;if(((0,l.isTypedArray)(e)||(0,l.isTypedArray)(t))&&(n=!1),(0,l.isTypedArray)(e)&&(0,l.isTypedArray)(t)&&(n=!0),n){let r=e.constructor.name,n=t.constructor.name;if(r!==n)throw Error(`Arrays are of different type. Actual: ${r}. Expected: ${n}`)}if(Array.isArray(e)&&Array.isArray(t)){let r=(0,o.inferShape)(e),n=(0,o.inferShape)(t);if(!(0,l.arraysEqual)(r,n))throw Error(`Arrays have different shapes. Actual: [${r}]. Expected: [${n}]`)}let s=(0,l.isTypedArray)(e)?e:(0,l.flatten)(e),a=(0,l.isTypedArray)(t)?t:(0,l.flatten)(t);if(s.length!==a.length)throw Error(`Arrays have different lengths actual: ${s.length} vs expected: ${a.length}. +Actual: ${s}. +Expected: ${a}.`);for(let e=0;et.fail(),()=>t()),"undefined"!=typeof expect&&expect().nothing()}function f(e,t){let r="string"==typeof t||"number"==typeof t||"boolean"==typeof t?[t]:t;return(0,l.isString)(e)||(0,l.isString)(e[0])||(0,l.isString)(t)||(0,l.isString)(t[0])?c(e,r,(e,t)=>e==t):c(e,t,(e,t)=>h(e,t,0))}function m(e,t,r){if(null==r&&(r=p()),!h(e,t,r))throw Error(`Numbers differ: actual === ${e}, expected === ${t}`);"undefined"!=typeof expect&&expect().nothing()}function h(e,t,r){return!(isFinite(e)||isFinite(t))||!(isNaN(e)||isNaN(t)||Math.abs(e-t)>r)}function g(e,t,r){for(let n=0;nr)throw Error(`Value out of range:${e[n]} low: ${t}, high: ${r}`)}function x(e,t){let r=new Float32Array(e),n=new Float32Array(t);if(r.length!==n.length)throw Error(`Expected ArrayBuffer to be of length ${n.length}, but it was ${r.length}`);for(let e=0;e{t.addEventListener("loadeddata",r=>e(t)),t.load()})}async function y(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}},{"./engine":"c6qwc","./tensor_util_env":"5isXB","./util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bxT1q:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"randomNormal",()=>u);var a=e("../util_base"),o=e("./buffer"),l=e("./operation"),i=e("./rand_util");let u=(0,l.op)({randomNormal_:function(e,t=0,r=1,n,s){if((0,a.assertNonNegativeIntegerDimensions)(e),null!=n&&"bool"===n)throw Error(`Unsupported data type ${n}`);let l=new(0,i.MPRandGauss)(t,r,n,!1,s),u=(0,o.buffer)(e,n);for(let e=0;el);var a=e("./operation"),o=e("./random_normal");let l=(0,a.op)({randomStandardNormal_:function(e,t,r){if(null!=t&&"bool"===t)throw Error(`Unsupported data type ${t}`);return(0,o.randomNormal)(e,0,1,t,r)}})},{"./operation":"2me4m","./random_normal":"bxT1q","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gjT1I:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"randomUniform",()=>u);var a=e("../util_base"),o=e("./buffer"),l=e("./operation"),i=e("./rand_util");let u=(0,l.op)({randomUniform_:function(e,t=0,r=1,n="float32",s){(0,a.assertNonNegativeIntegerDimensions)(e);let l=(0,o.buffer)(e,n),u=new(0,i.UniformRandom)(t,r,null,s);for(let e=0;el);var a=e("./operation"),o=e("./random_uniform");let l=(0,a.op)({randomUniformInt_:function(e,t,r,n){return(0,o.randomUniform)(e,t,r,"int32",n)}})},{"./operation":"2me4m","./random_uniform":"gjT1I","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],df8SO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"range",()=>l);var a=e("../engine"),o=e("../kernel_names");function l(e,t,r=1,n="float32"){if(0===r)throw Error("Cannot have a step of zero");return a.ENGINE.runKernel(o.Range,{},{start:e,stop:t,step:r,dtype:n})}},{"../engine":"c6qwc","../kernel_names":"349aa","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7sSnd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"real",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({real_:function(e){let t=(0,l.convertToTensor)(e,"input","real");return a.ENGINE.runKernel(o.Real,{input:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7nJ8T":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reciprocal",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({reciprocal_:function(e){let t=(0,l.convertToTensor)(e,"x","reciprocal");return a.ENGINE.runKernel(o.Reciprocal,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iPhge:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({relu_:function(e){let t=(0,l.convertToTensor)(e,"x","relu");return a.ENGINE.runKernel(o.Relu,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9bTwM":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu6",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({relu6_:function(e){let t=(0,l.convertToTensor)(e,"x","relu6");return a.ENGINE.runKernel(o.Relu6,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7nB8F":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({reverse_:function(e,t){let r=(0,l.convertToTensor)(e,"x","reverse");return a.ENGINE.runKernel(o.Reverse,{x:r},{dims:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dpiTC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse1d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./reverse");let u=(0,l.op)({reverse1d_:function(e){let t=(0,a.convertToTensor)(e,"x","reverse");return o.assert(1===t.rank,()=>`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),(0,i.reverse)(t,0)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","./reverse":"7nB8F","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lVjOl:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse2d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./reverse");let u=(0,l.op)({reverse2d_:function(e,t){let r=(0,a.convertToTensor)(e,"x","reverse");return o.assert(2===r.rank,()=>`Error in reverse2D: x must be rank 2 but got rank ${r.rank}.`),(0,i.reverse)(r,t)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","./reverse":"7nB8F","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9WHF4":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse3d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./reverse");let u=(0,l.op)({reverse3d_:function(e,t){let r=(0,a.convertToTensor)(e,"x","reverse");return o.assert(3===r.rank,()=>`Error in reverse3D: x must be rank 3 but got rank ${r.rank}.`),(0,i.reverse)(r,t)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","./reverse":"7nB8F","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ejR4t:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse4d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./reverse");let u=(0,l.op)({reverse4d_:function(e,t){let r=(0,a.convertToTensor)(e,"x","reverse");return o.assert(4===r.rank,()=>`Error in reverse4D: x must be rank 4 but got rank ${r.rank}.`),(0,i.reverse)(r,t)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","./reverse":"7nB8F","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],akrBk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"round",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({round_:function(e){let t=(0,l.convertToTensor)(e,"x","round");return a.ENGINE.runKernel(o.Round,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kIOsn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rsqrt",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({rsqrt_:function(e){let t=(0,l.convertToTensor)(e,"x","rsqrt","float32");return a.ENGINE.runKernel(o.Rsqrt,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8dfci":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"selu",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({selu_:function(e){let t=(0,l.convertToTensor)(e,"x","selu");return a.ENGINE.runKernel(o.Selu,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"98wnK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"separableConv2d",()=>c);var a=e("../tensor_util_env"),o=e("../util"),l=e("./conv2d"),i=e("./depthwise_conv2d"),u=e("./operation"),p=e("./reshape");let c=(0,u.op)({separableConv2d_:function(e,t,r,n,s,u=[1,1],c="NHWC"){let d=(0,a.convertToTensor)(e,"x","separableConv2d"),f=(0,a.convertToTensor)(t,"depthwiseFilter","separableConv2d"),m=(0,a.convertToTensor)(r,"pointwiseFilter","separableConv2d"),h=d,g=!1;if(3===d.rank&&(g=!0,h=(0,p.reshape)(d,[1,d.shape[0],d.shape[1],d.shape[2]])),"NCHW"===c)throw Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");o.assert(4===h.rank,()=>`Error in separableConv2d: input must be rank 4, but got rank ${h.rank}.`),o.assert(4===f.rank,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${f.rank}.`),o.assert(4===m.rank,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${f.rank}.`),o.assert(1===m.shape[0],()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${m.shape[0]}.`),o.assert(1===m.shape[1],()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${m.shape[1]}.`);let x=f.shape[2],v=f.shape[3];o.assert(m.shape[2]===x*v,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${x*v}, but got ${m.shape[2]}.`);let y=(0,i.depthwiseConv2d)(h,f,n,s,c,u),b=(0,l.conv2d)(y,m,1,"valid",c);return g?(0,p.reshape)(b,[b.shape[1],b.shape[2],b.shape[3]]):b}})},{"../tensor_util_env":"5isXB","../util":"icflD","./conv2d":"iHP9e","./depthwise_conv2d":"ffu4I","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lXzGk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"setdiff1dAsync",()=>i);var a=e("../tensor"),o=e("../tensor_util_env"),l=e("../util");let i=async function(e,t){let r=(0,o.convertToTensor)(e,"x","setdiff1d"),n=(0,o.convertToTensor)(t,"y","setdiff1d");l.assert(r.dtype===n.dtype,()=>`x and y should have the same dtype, but got x (${r.dtype}) and y (${n.dtype}).`),l.assert(1===r.rank,()=>`x should be 1D tensor, but got x (${r.shape}).`),l.assert(1===n.rank,()=>`y should be 1D tensor, but got y (${n.shape}).`);let s=await r.data(),i=new Set(await n.data()),u=0;for(let e=0;ei);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({sign_:function(e){let t=(0,l.convertToTensor)(e,"x","sign");return a.ENGINE.runKernel(o.Sign,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kIvC3:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sin",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({sin_:function(e){let t=(0,l.convertToTensor)(e,"x","sin","float32");return a.ENGINE.runKernel(o.Sin,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7qO0g":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sinh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({sinh_:function(e){let t=(0,l.convertToTensor)(e,"x","sinh");return a.ENGINE.runKernel(o.Sinh,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fzEWF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice1d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./slice");let u=(0,l.op)({slice1d_:function(e,t,r){let n=(0,a.convertToTensor)(e,"x","slice1d");return o.assert(1===n.rank,()=>`slice1d expects a rank-1 tensor, but got a rank-${n.rank} tensor`),(0,i.slice)(n,[t],[r])}})},{"../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","./slice":"eDdeL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1igm0":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice2d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./slice");let u=(0,l.op)({slice2d_:function(e,t,r){let n=(0,a.convertToTensor)(e,"x","slice2d");return o.assert(2===n.rank,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),(0,i.slice)(n,t,r)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","./slice":"eDdeL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],l7XO8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice3d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./slice");let u=(0,l.op)({slice3d_:function(e,t,r){let n=(0,a.convertToTensor)(e,"x","slice3d");return o.assert(3===n.rank,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),(0,i.slice)(n,t,r)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","./slice":"eDdeL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9lnOO":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice4d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./slice");let u=(0,l.op)({slice4d_:function(e,t,r){let n=(0,a.convertToTensor)(e,"x","slice4d");return o.assert(4===n.rank,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),(0,i.slice)(n,t,r)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","./slice":"eDdeL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5nqhK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softmax",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({softmax_:function(e,t=-1){let r=(0,l.convertToTensor)(e,"logits","softmax","float32");if(-1===t&&(t=r.rank-1),t!==r.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${r.rank} and dim was ${t}`);let n={dim:t};return a.ENGINE.runKernel(o.Softmax,{logits:r},n)}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2AXDW":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fft",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../util");let i=(0,e("../operation").op)({fft_:function(e){return(0,l.assert)("complex64"===e.dtype,()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`),a.ENGINE.runKernel(o.FFT,{input:e})}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../util":"icflD","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8tqLN":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ifft",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../util");let i=(0,e("../operation").op)({ifft_:function(e){return(0,l.assert)("complex64"===e.dtype,()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`),a.ENGINE.runKernel(o.IFFT,{input:e})}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../util":"icflD","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"108TA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"irfft",()=>g);var a=e("../complex"),o=e("../concat"),l=e("../imag"),i=e("../mul"),u=e("../operation"),p=e("../real"),c=e("../reshape"),d=e("../reverse"),f=e("../scalar"),m=e("../slice"),h=e("./ifft");let g=(0,u.op)({irfft_:function(e){let t,r=e.shape[e.shape.length-1],n=e.size/r;if(r<=2){let s=(0,c.reshape)(e,[n,r]);t=(0,h.ifft)(s)}else{let s=[n,2*(r-1)],u=(0,c.reshape)((0,p.real)(e),[n,r]),g=(0,c.reshape)((0,l.imag)(e),[n,r]),x=(0,d.reverse)((0,m.slice)(u,[0,1],[n,r-2]),1),v=(0,i.mul)((0,d.reverse)((0,m.slice)(g,[0,1],[n,r-2]),1),(0,f.scalar)(-1)),y=(0,o.concat)([u,x],1),b=(0,o.concat)([g,v],1),_=(0,c.reshape)((0,a.complex)(y,b),[s[0],s[1]]);t=(0,h.ifft)(_)}if(t=(0,p.real)(t),3===e.rank&&0!==e.shape[0]){let r=t,n=e.shape[0];t=(0,c.reshape)(t,[n,t.shape[0]/n,t.shape[1]]),r.dispose()}return t}})},{"../complex":"5ASH6","../concat":"56PTj","../imag":"iepBk","../mul":"3233B","../operation":"2me4m","../real":"7sSnd","../reshape":"2znRS","../reverse":"7nB8F","../scalar":"aCdNN","../slice":"eDdeL","./ifft":"8tqLN","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6UY7r":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rfft",()=>x);var a=e("../../util"),o=e("../complex"),l=e("../concat"),i=e("../imag"),u=e("../operation"),p=e("../real"),c=e("../reshape"),d=e("../slice"),f=e("../split"),m=e("../zeros"),h=e("../zeros_like"),g=e("./fft");let x=(0,u.op)({rfft_:function(e,t){let r;(0,a.assert)("float32"===e.dtype,()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let n=e.shape[e.shape.length-1],s=e.size/n;if(null!=t&&t0),a=e.shape.map(e=>e);a[e.shape.length-1]=t,r=(0,d.slice)(e,s,a),n=t}else if(null!=t&&t>n){let s=e.shape.map(e=>e);s[e.shape.length-1]=t-n,r=(0,l.concat)([e,(0,m.zeros)(s)],e.shape.length-1),n=t}else r=e;let u=(0,h.zerosLike)(r),x=(0,c.reshape)((0,o.complex)(r,u),[s,n]),v=(0,g.fft)(x),y=Math.floor(n/2)+1,b=(0,p.real)(v),_=(0,i.imag)(v),k=(0,f.split)(b,[y,n-y],b.shape.length-1),j=(0,f.split)(_,[y,n-y],_.shape.length-1),I=r.shape.slice();return I[r.shape.length-1]=y,(0,c.reshape)((0,o.complex)(k[0],j[0]),I)}})},{"../../util":"icflD","../complex":"5ASH6","../concat":"56PTj","../imag":"iepBk","../operation":"2me4m","../real":"7sSnd","../reshape":"2znRS","../slice":"eDdeL","../split":"FQ7hs","../zeros":"fqUNT","../zeros_like":"1peA5","./fft":"2AXDW","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],FQ7hs:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"split",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({split_:function(e,t,r=0){let n=(0,l.convertToTensor)(e,"x","split");return a.ENGINE.runKernel(o.SplitV,{x:n},{numOrSizeSplits:t,axis:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9w0IR":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"squaredDifference",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util");let p=(0,e("./operation").op)({squaredDifference_:function(e,t){let r=(0,i.convertToTensor)(e,"a","squaredDifference"),n=(0,i.convertToTensor)(t,"b","squaredDifference");[r,n]=(0,l.makeTypesMatch)(r,n),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.SquaredDifference,s,{})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util":"7PL4y","../tensor_util_env":"5isXB","./broadcast_util":"9OeEk","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cax9N:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"squeeze",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./reshape");let u=(0,l.op)({squeeze_:function(e,t){let r=(0,a.convertToTensor)(e,"x","squeeze","string_or_numeric");return(0,i.reshape)(r,(0,o.squeezeShape)(r.shape,t).newShape)}})},{"../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bvpof:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stack",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({stack_:function(e,t=0){let r=(0,l.convertToTensorArray)(e,"tensors","stack","string_or_numeric");return i.assert(r.length>=1,()=>"Pass at least one tensor to tf.stack"),r.length>0&&i.assert(t<=r[0].rank,()=>"Axis must be <= rank of the tensor"),a.ENGINE.runKernel(o.Pack,r,{axis:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dvB2o:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"step",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({step_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","step");return a.ENGINE.runKernel(o.Step,{x:r},{alpha:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],XZiX6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stridedSlice",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({stridedSlice_:function(e,t,r,n,s=0,i=0,u=0,p=0,c=0){let d=(0,l.convertToTensor)(e,"x","stridedSlice","string_or_numeric");return a.ENGINE.runKernel(o.StridedSlice,{x:d},{begin:t,end:r,strides:n,beginMask:s,endMask:i,ellipsisMask:u,newAxisMask:p,shrinkAxisMask:c})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4b9dJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tan",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({tan_:function(e){let t=(0,l.convertToTensor)(e,"x","tan","float32");return a.ENGINE.runKernel(o.Tan,{x:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6BeOV":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor1d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t){(0,o.assertNonNull)(e);let r=(0,a.inferShape)(e,t);if(1!==r.length)throw Error("tensor1d() requires values to be a flat/TypedArray");return(0,l.makeTensor)(e,null,r,t)}},{"../tensor_util_env":"5isXB","../util":"icflD","./tensor_ops_util":"7gShZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],j7yj8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor2d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t,r){if((0,o.assertNonNull)(e),null!=t&&2!==t.length)throw Error("tensor2d() requires shape to have two numbers");let n=(0,a.inferShape)(e,r);if(2!==n.length&&1!==n.length)throw Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(1===n.length&&null==t)throw Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return(0,l.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"5isXB","../util":"icflD","./tensor_ops_util":"7gShZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3ETxr":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor3d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t,r){if((0,o.assertNonNull)(e),null!=t&&3!==t.length)throw Error("tensor3d() requires shape to have three numbers");let n=(0,a.inferShape)(e,r);if(3!==n.length&&1!==n.length)throw Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(1===n.length&&null==t)throw Error("tensor3d() requires shape to be provided when `values` are a flat array");return(0,l.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"5isXB","../util":"icflD","./tensor_ops_util":"7gShZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"15kDt":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor4d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t,r){if((0,o.assertNonNull)(e),null!=t&&4!==t.length)throw Error("tensor4d() requires shape to have four numbers");let n=(0,a.inferShape)(e,r);if(4!==n.length&&1!==n.length)throw Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(1===n.length&&null==t)throw Error("tensor4d() requires shape to be provided when `values` are a flat array");return(0,l.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"5isXB","../util":"icflD","./tensor_ops_util":"7gShZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hh1Z7:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor5d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t,r){if((0,o.assertNonNull)(e),null!=t&&5!==t.length)throw Error("tensor5d() requires shape to have five numbers");let n=(0,a.inferShape)(e,r);if(5!==n.length&&1!==n.length)throw Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(1===n.length&&null==t)throw Error("tensor5d() requires shape to be provided when `values` are a flat array");return(0,l.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"5isXB","../util":"icflD","./tensor_ops_util":"7gShZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],IJCsh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor6d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t,r){if((0,o.assertNonNull)(e),null!=t&&6!==t.length)throw Error("tensor6d() requires shape to have six numbers");let n=(0,a.inferShape)(e,r);if(6!==n.length&&1!==n.length)throw Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(1===n.length&&null==t)throw Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||n,(0,l.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"5isXB","../util":"icflD","./tensor_ops_util":"7gShZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"71ZFi":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensorScatterUpdate",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./operation"),u=e("./scatter_nd_util");let p=(0,i.op)({tensorScatterUpdate_:function(e,t,r){let n=(0,l.convertToTensor)(e,"tensor","tensorScatterupdate"),s=(0,l.convertToTensor)(t,"indices","tensorScatterupdate","int32"),i=(0,l.convertToTensor)(r,"updates","tensorScatterupdate");if(u.validateInput(i,s,n.shape),n.dtype!==i.dtype)throw Error(`tensor and updates must have the same dtype, instead they are ${n.dtype} and ${i.dtype}.`);return a.ENGINE.runKernel(o.TensorScatterUpdate,{tensor:n,indices:s,updates:i},{})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","./scatter_nd_util":"cr9mr","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cr9mr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"validateUpdateShape",()=>o),s.export(r,"validateInput",()=>l),s.export(r,"calculateShapes",()=>i);var a=e("../util");function o(e,t,r){let n=t.rank>1?t.shape[t.rank-1]:1,s=t.rank>1?t.rank-1:1,a=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${r.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${n}, and batchDim: ${s}.`;if(r.rank1?t.shape[n-1]:1,o=r.length,l=1;for(let e=s;ei);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({topk_:function(e,t=1,r=!0){let n=(0,l.convertToTensor)(e,"x","topk");if(0===n.rank)throw Error("topk() expects the input to be of rank 1 or higher");let s=n.shape[n.shape.length-1];if(t<0)throw Error(`'k' passed to topk() must be >= 0 but got ${t}`);if(t>s)throw Error(`'k' passed to topk() must be <= the last dimension (${s}) but got ${t}`);let[i,u]=a.ENGINE.runKernel(o.TopK,{x:n},{k:t,sorted:r});return{values:i,indices:u}}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8FsVR":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"truncatedNormal",()=>u);var a=e("../util_base"),o=e("./buffer"),l=e("./operation"),i=e("./rand_util");let u=(0,l.op)({truncatedNormal_:function(e,t=0,r=1,n,s){if((0,a.assertNonNegativeIntegerDimensions)(e),null!=n&&"bool"===n)throw Error("Unsupported data type $ { dtype }");let l=new(0,i.MPRandGauss)(t,r,n,!0,s),u=(0,o.buffer)(e,n);for(let e=0;eu);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({unique_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","unique","string_or_numeric");(0,i.assert)(r.rank>0,()=>"The input tensor must be at least 1D");let[n,s]=a.ENGINE.runKernel(o.Unique,{x:r},{axis:t});return{values:n,indices:s}}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dICgF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unsortedSegmentSum",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({unsortedSegmentSum_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","unsortedSegmentSum"),s=(0,l.convertToTensor)(t,"segmentIds","unsortedSegmentSum","int32");return(0,i.assert)((0,i.isInt)(r),()=>"numSegments must be of dtype int"),a.ENGINE.runKernel(o.UnsortedSegmentSum,{x:n,segmentIds:s},{numSegments:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2NrdB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unstack",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({unstack_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","unstack","string_or_numeric");return i.assert(t>=-r.shape.length&&t`Axis = ${t} is not in [-${r.shape.length}, ${r.shape.length})`),a.ENGINE.runKernel(o.Unpack,{value:r},{axis:t})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aVzg8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"upperBound",()=>o);var a=e("./search_sorted");function o(e,t){return(0,a.searchSorted)(e,t,"right")}},{"./search_sorted":"csM1s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],j3GC4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"variable",()=>o);var a=e("../engine");function o(e,t=!0,r,n){return a.ENGINE.makeVariable(e,t,r,n)}},{"../engine":"c6qwc","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"50k91":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"whereAsync",()=>l);var a=e("../backends/where_impl"),o=e("../tensor_util_env");let l=async function(e){let t=(0,o.convertToTensor)(e,"condition","whereAsync","bool"),r=await t.data(),n=(0,a.whereImpl)(t.shape,r);return e!==t&&t.dispose(),n}},{"../backends/where_impl":"5EDW6","../tensor_util_env":"5isXB","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5EDW6":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"whereImpl",()=>o);var a=e("../ops/buffer");function o(e,t){let r=[];for(let e=0;ec);var a=e("../tensor_util_env"),o=e("../util"),l=e("./gather"),i=e("./reshape"),u=e("./squeeze"),p=e("./where_async");let c=async function(e,t,r){let n=(0,a.convertToTensor)(e,"tensor","boolMask"),s=(0,a.convertToTensor)(t,"mask","boolMask","bool"),c=null==r?0:r,d=s.rank,f=n.shape;o.assert(d>0,()=>"mask cannot be scalar"),o.assertShapesMatch(f.slice(c,c+d),s.shape,"mask's shape must match the first K dimensions of tensor's shape,");let m=1;for(let e=c;eh);var a=e("../engine"),o=e("../globals"),l=e("../kernel_names"),i=e("../tensor_util_env"),u=e("../util"),p=e("./complex"),c=e("./imag"),d=e("./neg"),f=e("./operation"),m=e("./real");let h=(0,f.op)({transpose_:function(e,t,r){let n=(0,i.convertToTensor)(e,"x","transpose");if(null==t&&(t=n.shape.map((e,t)=>t).reverse()),u.assert(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(e=>{u.assert(e>=0&&e`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let s={perm:t};return"complex64"===n.dtype?(0,o.tidy)(()=>{let e=(0,m.real)(n),t=(0,c.imag)(n);return e=a.ENGINE.runKernel(l.Transpose,{x:e},s),t=a.ENGINE.runKernel(l.Transpose,{x:t},s),r&&(t=(0,d.neg)(t)),(0,p.complex)(e,t)}):a.ENGINE.runKernel(l.Transpose,{x:n},s)}})},{"../engine":"c6qwc","../globals":"kUewM","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util":"icflD","./complex":"5ASH6","./imag":"iepBk","./neg":"8HIhG","./operation":"2me4m","./real":"7sSnd","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hMyFI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"movingAverage",()=>h);var a=e("../tensor_util"),o=e("../tensor_util_env"),l=e("../util"),i=e("./add"),u=e("./div"),p=e("./mul"),c=e("./operation"),d=e("./pow"),f=e("./scalar"),m=e("./sub");let h=(0,c.op)({movingAverage_:function(e,t,r,n,s=!0){let c=(0,o.convertToTensor)(e,"v","movingAverage"),h=(0,o.convertToTensor)(t,"x","movingAverage"),g=(0,o.convertToTensor)(r,"decay","movingAverage");(0,a.assertTypesMatch)(c,h),l.assert(l.arraysEqual(c.shape,h.shape),()=>"Shape mismatch in v and x");let x=(0,f.scalar)(1),v=(0,m.sub)(x,g),y=(0,p.mul)((0,m.sub)(h,c),v);if(s){l.assert(null!=n,()=>"When using zeroDebias: true, step is required.");let e=(0,o.convertToTensor)(n,"step","movingAverage");y=(0,u.div)(y,(0,m.sub)(x,(0,d.pow)(g,e)))}return(0,i.add)(c,y)}})},{"../tensor_util":"7PL4y","../tensor_util_env":"5isXB","../util":"icflD","./add":"dX80O","./div":"lbTan","./mul":"3233B","./operation":"2me4m","./pow":"aku8e","./scalar":"aCdNN","./sub":"2lFei","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9xCLq":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"scatterND",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util_base"),u=e("./operation"),p=e("./scatter_nd_util");let c=(0,u.op)({scatterND_:function(e,t,r){(0,i.assertNonNegativeIntegerDimensions)(r);let n=(0,l.convertToTensor)(e,"indices","scatterND","int32"),s=(0,l.convertToTensor)(t,"updates","scatterND");return p.validateInput(s,n,r),a.ENGINE.runKernel(o.ScatterNd,{indices:n,updates:s},{shape:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","../util_base":"bNQH0","./operation":"2me4m","./scatter_nd_util":"cr9mr","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4Xh7i":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseToDense",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../ops/sparse_to_dense_util"),i=e("../tensor_util_env"),u=e("../util_base");let p=(0,e("./operation").op)({sparseToDense_:function(e,t,r,n=0){(0,u.assertNonNegativeIntegerDimensions)(r);let s=(0,i.convertToTensor)(e,"sparseIndices","sparseToDense","int32"),p=(0,i.convertToTensor)(t,"sparseValues","sparseToDense","string_or_numeric"),c=(0,i.convertToTensor)(n,"defaultValue","sparseToDense",p.dtype);return l.validateInput(s,p,r,c),a.ENGINE.runKernel(o.SparseToDense,{sparseIndices:s,sparseValues:p,defaultValue:c},{outputShape:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../ops/sparse_to_dense_util":"5WssO","../tensor_util_env":"5isXB","../util_base":"bNQH0","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5WssO":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t,r,n){if("int32"!==e.dtype)throw Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);let s=e.rank>0?e.shape[0]:1,a=e.rank>1?e.shape[1]:1;if(r.length!==a)throw Error(`outputShape has incorrect number of elements:, ${r.length}, should be: ${a}.`);let o=t.size;if(0!==t.rank&&(1!==t.rank||o!==s))throw Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${s}]`);if(t.dtype!==n.dtype)throw Error("sparseValues.dtype must match defaultValues.dtype")}s.defineInteropFlag(r),s.export(r,"validateInput",()=>a)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],zaSfo:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherND",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({gatherND_:function(e,t){let r=(0,l.convertToTensor)(t,"indices","gatherND","int32"),n=(0,l.convertToTensor)(e,"x","gatherND","string_or_numeric");return a.ENGINE.runKernel(o.GatherNd,{params:n,indices:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../tensor_util_env":"5isXB","./operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iU4Ut:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dropout",()=>h);var a=e("../tensor"),o=e("../tensor_util_env"),l=e("../util"),i=e("./add"),u=e("./div"),p=e("./dropout_util"),c=e("./floor"),d=e("./mul"),f=e("./operation"),m=e("./random_uniform");let h=(0,f.op)({dropout_:function(e,t,r,n){let s=(0,o.convertToTensor)(e,"x","dropout");if(l.assert("float32"===s.dtype,()=>`x has to be a floating point tensor since it's going to be scaled, but got a ${s.dtype} tensor instead.`),l.assert(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),0===t)return e instanceof a.Tensor?s.clone():s;let f=(0,p.getNoiseShape)(s,r),h=1-t,g=(0,u.div)((0,c.floor)((0,i.add)((0,m.randomUniform)(f,0,1,"float32",n),h)),h);return(0,d.mul)(s,g)}})},{"../tensor":"cfIkd","../tensor_util_env":"5isXB","../util":"icflD","./add":"dX80O","./div":"lbTan","./dropout_util":"cWfNQ","./floor":"Urqox","./mul":"3233B","./operation":"2me4m","./random_uniform":"gjT1I","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cWfNQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getNoiseShape",()=>o);var a=e("../util");function o(e,t){if(null==t)return e.shape.slice();if(a.arraysEqual(e.shape,t))return t;if(e.shape.length===t.length){let r=[];for(let n=0;no),s.export(r,"cosineWindow",()=>l);var a=e("./tensor1d");function o(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function l(e,t,r){let n=1-e%2,s=new Float32Array(e);for(let a=0;ai);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor");let i=async function(e,t,r=1){let n=(0,a.convertToTensor)(e,"predictions","inTopK"),s=(0,a.convertToTensor)(t,"targets","inTopK");(0,o.assert)(n.rank>1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${n.rank}`),(0,o.assert)(n.rank-1===s.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${n.rank} and targets rank ${s.rank}`),(0,o.assertShapesMatch)(n.shape.slice(0,n.shape.length-1),s.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let i=n.shape[n.shape.length-1];(0,o.assert)(r>0&&r<=i,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${i}), but got ${r}`);let u=await n.data(),p=await s.data(),[c,d]=[u.length/i,i],f=(0,o.getTypedArrayFromDType)("bool",c);for(let e=0;et.value-e.value),f[e]=0;for(let t=0;ta.conv2d),s.export(r,"depthwiseConv2d",()=>o.depthwiseConv2d),s.export(r,"matMul",()=>l.matMul);var a=e("./fused/conv2d"),o=e("./fused/depthwise_conv2d"),l=e("./fused/mat_mul")},{"./fused/conv2d":"aZgQO","./fused/depthwise_conv2d":"7ghPT","./fused/mat_mul":"5aXS9","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aZgQO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2d",()=>b);var a=e("../../engine"),o=e("../../gradients"),l=e("../../kernel_names"),i=e("../../tensor_util"),u=e("../../tensor_util_env"),p=e("../../util"),c=e("../add"),d=e("../broadcast_util"),f=e("../conv2d"),m=e("../conv2d_backprop_filter"),h=e("../conv2d_backprop_input"),g=e("../conv_util"),x=e("../fused_util"),v=e("../operation"),y=e("../reshape");let b=(0,v.op)({fusedConv2d_:function({x:e,filter:t,strides:r,pad:n,dataFormat:s="NHWC",dilations:v=[1,1],dimRoundingMode:b,bias:_,activation:k="linear",preluActivationWeights:j,leakyreluAlpha:I}){let w,T;if(k=k||"linear",!1===(0,x.shouldFuse)(a.ENGINE.state.gradientDepth,k)){p.assert("NHWC"===s,()=>`Error in fused conv2d: got dataFormat of ${s} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let a=(0,f.conv2d)(e,t,r,n,s,v,b);return null!=_&&(a=(0,c.add)(a,_)),(0,x.applyActivation)(a,k,j,I)}let N=(0,u.convertToTensor)(e,"x","conv2d","float32"),S=(0,u.convertToTensor)(t,"filter","conv2d","float32"),C=N,E=!1;3===N.rank&&(E=!0,C=(0,y.reshape)(N,[1,N.shape[0],N.shape[1],N.shape[2]])),p.assert(4===C.rank,()=>`Error in fused conv2d: input must be rank 4, but got rank ${C.rank}.`),p.assert(4===S.rank,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${S.rank}.`),g.checkPadOnDimRoundingMode("fused conv2d",n,b);let F="NHWC"===s?C.shape[3]:C.shape[1];p.assert(S.shape[2]===F,()=>`Error in conv2d: depth of input (${F}) must match input depth for filter ${S.shape[2]}.`),p.assert(g.eitherStridesOrDilationsAreOne(r,v),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${r} and dilations '${v}'`);let A=g.computeConv2DInfo(C.shape,S.shape,r,v,n,b);if(null!=_&&(w=(0,u.convertToTensor)(_,"bias","fused conv2d"),[w]=(0,i.makeTypesMatch)(w,N),"NHWC"===s?d.assertAndGetBroadcastShape(A.outShape,w.shape):(p.assert(w.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${w.shape.length}.`),p.assert(0===w.shape.length||w.shape[0]===A.outChannels||1===w.shape[0],()=>`Error in fused conv2d: bias shape (${w.shape}) is not compatible with the number of output channels (${A.outChannels})`))),null!=j){let e=j.shape;if(p.assert(e.length<=1||3===e.length,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${e.length}.`),1===e.length)p.assert(1===e[0]||e[0]===A.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${e}) is not compatible with the number of output channels (${A.outChannels}).`);else if(3===e.length)try{d.assertAndGetBroadcastShape(e,A.outShape)}catch(t){throw Error(`Error in fused conv2d: PReLU activation weights (${e}) is not compatible with the output shape of the conv2d (${A.outShape}).`)}T=(0,u.convertToTensor)(j,"prelu weights","fused conv2d")}let R=(e,t)=>{p.assert("NHWC"===s,()=>`Error in gradient of fused conv2D: got dataFormat of ${s} but only NHWC is currently supported.`);let[a,o,l,i]=t,u=(0,x.getFusedDyActivation)(e,l,k);p.assert(g.tupleValuesAreOne(v),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${v}'`);let c=[(0,h.conv2DBackpropInput)(o.shape,u,a,r,n),(0,m.conv2DBackpropFilter)(o,u,a.shape,r,n)];if(null!=i){let e=(0,x.getFusedBiasGradient)(i,u);c.push(e)}return c},P={x:C,filter:S,bias:w,preluActivationWeights:T},D={strides:r,pad:n,dataFormat:s,dilations:v,dimRoundingMode:b,activation:k,leakyreluAlpha:I};return null==_?(0,o.customGrad)((e,t,r)=>{let n=a.ENGINE.runKernel(l.FusedConv2D,P,D);return r([t,e,n]),E&&(n=(0,y.reshape)(n,[n.shape[1],n.shape[2],n.shape[3]])),{value:n,gradFunc:R}})(C,S):(0,o.customGrad)((e,t,r,n)=>{let s=a.ENGINE.runKernel(l.FusedConv2D,P,D);return n([t,e,s,r]),E&&(s=(0,y.reshape)(s,[s.shape[1],s.shape[2],s.shape[3]])),{value:s,gradFunc:R}})(C,S,w)}})},{"../../engine":"c6qwc","../../gradients":"7QhD7","../../kernel_names":"349aa","../../tensor_util":"7PL4y","../../tensor_util_env":"5isXB","../../util":"icflD","../add":"dX80O","../broadcast_util":"9OeEk","../conv2d":"iHP9e","../conv2d_backprop_filter":"dCcIN","../conv2d_backprop_input":"lEDXO","../conv_util":"1HzRR","../fused_util":"lc1OW","../operation":"2me4m","../reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dCcIN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2DBackpropFilter",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../util"),i=e("./conv_util"),u=e("./operation"),p=e("./reshape");let c=(0,u.op)({conv2DBackpropFilter_:function(e,t,r,n,s,u="NHWC",c){let d=e;3===e.rank&&(d=(0,p.reshape)(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let f=t;3===f.rank&&(f=(0,p.reshape)(t,[1,t.shape[0],t.shape[1],t.shape[2]])),l.assert(4===d.rank,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${d.shape}.`),l.assert(4===f.rank,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${f.shape}.`),l.assert(4===r.length,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${r}.`);let m="NHWC"===u?d.shape[3]:d.shape[1],h="NHWC"===u?f.shape[3]:f.shape[1];l.assert(m===r[2],()=>`Error in conv2dDerFilter: depth of input ${m}) must match input depth in filter (${r[2]}.`),l.assert(h===r[3],()=>`Error in conv2dDerFilter: depth of dy (${h}) must match output depth for filter (${r[3]}).`),i.checkPadOnDimRoundingMode("conv2dDerFilter",s,c);let g={x:d,dy:f};return a.ENGINE.runKernel(o.Conv2DBackpropFilter,g,{strides:n,pad:s,dataFormat:u,dimRoundingMode:c,filterShape:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","../util":"icflD","./conv_util":"1HzRR","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lc1OW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getFusedDyActivation",()=>g),s.export(r,"getFusedBiasGradient",()=>x),s.export(r,"applyActivation",()=>v),s.export(r,"shouldFuse",()=>y);var a=e("./broadcast_util"),o=e("./elu"),l=e("./leaky_relu"),i=e("./mul"),u=e("./prelu"),p=e("./relu"),c=e("./relu6"),d=e("./reshape"),f=e("./sigmoid"),m=e("./step"),h=e("./sum");function g(e,t,r){if(null==r||"linear"===r)return e;if("relu"===r)return(0,i.mul)(e,(0,m.step)(t));throw Error(`Cannot compute gradient for fused activation ${r}.`)}function x(e,t){let r=t,n=a.getReductionAxes(e.shape,t.shape);return n.length>0&&(r=(0,h.sum)(r,n)),(0,d.reshape)(r,e.shape)}function v(e,t,r,n){if("linear"===t)return e;if("relu"===t)return(0,p.relu)(e);if("elu"===t)return(0,o.elu)(e);if("relu6"===t)return(0,c.relu6)(e);if("prelu"===t)return(0,u.prelu)(e,r);else if("leakyrelu"===t)return(0,l.leakyRelu)(e,n);else if("sigmoid"===t)return(0,f.sigmoid)(e);throw Error(`Unknown fused activation ${t}.`)}let y=(e,t)=>!(e>0)||"linear"===t},{"./broadcast_util":"9OeEk","./elu":"elRT9","./leaky_relu":"bECmF","./mul":"3233B","./prelu":"97Biq","./relu":"iPhge","./relu6":"9bTwM","./reshape":"2znRS","./sigmoid":"kgtAa","./step":"dvB2o","./sum":"jlBkb","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7ghPT":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2d",()=>b);var a=e("../../engine"),o=e("../../gradients"),l=e("../../kernel_names"),i=e("../../tensor_util"),u=e("../../tensor_util_env"),p=e("../../util"),c=e("../add"),d=e("../broadcast_util"),f=e("../conv_util"),m=e("../depthwise_conv2d"),h=e("../depthwise_conv2d_native_backprop_filter"),g=e("../depthwise_conv2d_native_backprop_input"),x=e("../fused_util"),v=e("../operation"),y=e("../reshape");let b=(0,v.op)({fusedDepthwiseConv2d_:function({x:e,filter:t,strides:r,pad:n,dataFormat:s="NHWC",dilations:v=[1,1],dimRoundingMode:b,bias:_,activation:k="linear",preluActivationWeights:j,leakyreluAlpha:I}){let w,T;if(!1===(0,x.shouldFuse)(a.ENGINE.state.gradientDepth,k)){let a=(0,m.depthwiseConv2d)(e,t,r,n,s,v,b);return null!=_&&(a=(0,c.add)(a,_)),(0,x.applyActivation)(a,k,j,I)}let N=(0,u.convertToTensor)(e,"x","depthwiseConv2d","float32"),S=(0,u.convertToTensor)(t,"filter","depthwiseConv2d","float32"),C=N,E=!1;3===N.rank&&(E=!0,C=(0,y.reshape)(N,[1,N.shape[0],N.shape[1],N.shape[2]])),p.assert(4===C.rank,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${C.rank}.`),p.assert(4===S.rank,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${S.rank}.`),p.assert(C.shape[3]===S.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${C.shape[3]}) must match the inChannels dimension in filter ${S.shape[2]}.`),null==v&&(v=[1,1]),p.assert(f.eitherStridesOrDilationsAreOne(r,v),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${v}'`),f.checkPadOnDimRoundingMode("fused depthwiseConv2d",n,b);let F=f.computeConv2DInfo(C.shape,S.shape,r,v,n,b,!0);null!=_&&(w=(0,u.convertToTensor)(_,"bias","fused conv2d"),[w]=(0,i.makeTypesMatch)(w,N),d.assertAndGetBroadcastShape(F.outShape,w.shape)),null!=j&&(T=(0,u.convertToTensor)(j,"prelu weights","fused depthwiseConv2d"));let A=(e,t)=>{p.assert(f.tupleValuesAreOne(v),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${v}'`);let[s,a,o,l]=t,i=(0,x.getFusedDyActivation)(e,o,k),u=(0,g.depthwiseConv2dNativeBackpropInput)(a.shape,i,s,r,n,v,b),c=(0,h.depthwiseConv2dNativeBackpropFilter)(a,i,s.shape,r,n,v,b);return null!=l?[u,c,(0,x.getFusedBiasGradient)(w,i)]:[u,c]},R={x:C,filter:S,bias:w,preluActivationWeights:T},P={strides:r,pad:n,dataFormat:s,dilations:v,dimRoundingMode:b,activation:k,leakyreluAlpha:I};return null==_?(0,o.customGrad)((e,t,r)=>{let n=a.ENGINE.runKernel(l.FusedDepthwiseConv2D,R,P);return r([t,e,n]),E&&(n=(0,y.reshape)(n,[n.shape[1],n.shape[2],n.shape[3]])),{value:n,gradFunc:A}})(C,S):(0,o.customGrad)((e,t,r,n)=>{let s=a.ENGINE.runKernel(l.FusedDepthwiseConv2D,R,P);return n([t,e,s,r]),E&&(s=(0,y.reshape)(s,[s.shape[1],s.shape[2],s.shape[3]])),{value:s,gradFunc:A}})(C,S,w)}})},{"../../engine":"c6qwc","../../gradients":"7QhD7","../../kernel_names":"349aa","../../tensor_util":"7PL4y","../../tensor_util_env":"5isXB","../../util":"icflD","../add":"dX80O","../broadcast_util":"9OeEk","../conv_util":"1HzRR","../depthwise_conv2d":"ffu4I","../depthwise_conv2d_native_backprop_filter":"aJ79d","../depthwise_conv2d_native_backprop_input":"eQbiY","../fused_util":"lc1OW","../operation":"2me4m","../reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aJ79d:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNativeBackpropFilter",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("./operation"),i=e("./reshape");let u=(0,l.op)({depthwiseConv2dNativeBackpropFilter_:function(e,t,r,n,s,l=[1,1],u){let p=e;3===e.rank&&(p=(0,i.reshape)(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let c=t;3===c.rank&&(c=(0,i.reshape)(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let d={x:p,dy:c};return a.ENGINE.runKernel(o.DepthwiseConv2dNativeBackpropFilter,d,{strides:n,pad:s,dimRoundingMode:u,dilations:l,filterShape:r})}})},{"../engine":"c6qwc","../kernel_names":"349aa","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eQbiY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNativeBackpropInput",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("./operation"),i=e("./reshape");let u=(0,l.op)({depthwiseConv2dNativeBackpropInput_:function(e,t,r,n,s,l=[1,1],u){let p=t,c=!1;3===t.rank&&(c=!0,p=(0,i.reshape)(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let d={dy:p,filter:r},f=a.ENGINE.runKernel(o.DepthwiseConv2dNativeBackpropInput,d,{strides:n,pad:s,dimRoundingMode:u,dilations:l,inputShape:e});return c?(0,i.reshape)(f,[f.shape[1],f.shape[2],f.shape[3]]):f}})},{"../engine":"c6qwc","../kernel_names":"349aa","./operation":"2me4m","./reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5aXS9":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"matMul",()=>x);var a=e("../../engine"),o=e("../../gradients"),l=e("../../kernel_names"),i=e("../../tensor_util"),u=e("../../tensor_util_env"),p=e("../../util"),c=e("../add"),d=e("../broadcast_util"),f=e("../fused_util"),m=e("../mat_mul"),h=e("../operation"),g=e("../reshape");let x=(0,h.op)({fusedMatMul_:function({a:e,b:t,transposeA:r=!1,transposeB:n=!1,bias:s,activation:h="linear",preluActivationWeights:x,leakyreluAlpha:v=.2}){let y,b;if(!1===(0,f.shouldFuse)(a.ENGINE.state.gradientDepth,h)){let a=(0,m.matMul)(e,t,r,n);return null!=s&&(a=(0,c.add)(a,s)),(0,f.applyActivation)(a,h,x,v)}let _=(0,u.convertToTensor)(e,"a","fused matMul"),k=(0,u.convertToTensor)(t,"b","fused matMul");[_,k]=(0,i.makeTypesMatch)(_,k);let j=r?_.shape[_.rank-2]:_.shape[_.rank-1],I=n?k.shape[k.rank-1]:k.shape[k.rank-2],w=r?_.shape[_.rank-1]:_.shape[_.rank-2],T=n?k.shape[k.rank-2]:k.shape[k.rank-1],N=_.shape.slice(0,-2),S=k.shape.slice(0,-2),C=p.sizeFromShape(N),E=p.sizeFromShape(S);p.assert(j===I,()=>`Error in fused matMul: inner shapes (${j}) and (${I}) of Tensors with shapes ${_.shape} and ${k.shape} and transposeA=${r} and transposeB=${n} must match.`);let F=d.assertAndGetBroadcastShape(_.shape.slice(0,-2),k.shape.slice(0,-2)).concat([w,T]),A=r?(0,g.reshape)(_,[C,j,w]):(0,g.reshape)(_,[C,w,j]),R=n?(0,g.reshape)(k,[E,T,I]):(0,g.reshape)(k,[E,I,T]);null!=s&&(y=(0,u.convertToTensor)(s,"bias","fused matMul"),[y]=(0,i.makeTypesMatch)(y,_),d.assertAndGetBroadcastShape(F,y.shape)),null!=x&&(b=(0,u.convertToTensor)(x,"prelu weights","fused matMul"));let P=(e,t)=>{let a,o,[l,i,u,p]=t,c=(0,f.getFusedDyActivation)((0,g.reshape)(e,u.shape),u,h);return(r||n?!r&&n?(a=(0,m.matMul)(c,i,!1,!1),o=(0,m.matMul)(c,l,!0,!1)):r&&!n?(a=(0,m.matMul)(i,c,!1,!0),o=(0,m.matMul)(l,c,!1,!1)):(a=(0,m.matMul)(i,c,!0,!0),o=(0,m.matMul)(c,l,!0,!0)):(a=(0,m.matMul)(c,i,!1,!0),o=(0,m.matMul)(l,c,!0,!1)),null!=s)?[a,o,(0,f.getFusedBiasGradient)(p,c)]:[a,o]},D={a:A,b:R,bias:y,preluActivationWeights:b},$={transposeA:r,transposeB:n,activation:h,leakyreluAlpha:v};return null==s?(0,o.customGrad)((e,t,r)=>{let n=a.ENGINE.runKernel(l._FusedMatMul,D,$);return r([e,t,n]),{value:(0,g.reshape)(n,F),gradFunc:P}})(A,R):(0,o.customGrad)((e,t,r,n)=>{let s=a.ENGINE.runKernel(l._FusedMatMul,D,$);return n([e,t,s,r]),{value:(0,g.reshape)(s,F),gradFunc:P}})(A,R,y)}})},{"../../engine":"c6qwc","../../gradients":"7QhD7","../../kernel_names":"349aa","../../tensor_util":"7PL4y","../../tensor_util_env":"5isXB","../../util":"icflD","../add":"dX80O","../broadcast_util":"9OeEk","../fused_util":"lc1OW","../mat_mul":"hHb0J","../operation":"2me4m","../reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bVvte:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"hammingWindow",()=>l);var a=e("../operation"),o=e("../signal_ops_util");let l=(0,a.op)({hammingWindow_:function(e){return(0,o.cosineWindow)(e,.54,.46)}})},{"../operation":"2me4m","../signal_ops_util":"bnGKH","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hNFU5:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"hannWindow",()=>l);var a=e("../operation"),o=e("../signal_ops_util");let l=(0,a.op)({hannWindow_:function(e){return(0,o.cosineWindow)(e,.5,.5)}})},{"../operation":"2me4m","../signal_ops_util":"bnGKH","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ecqbq:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"frame",()=>c);var a=e("../concat"),o=e("../fill"),l=e("../operation"),i=e("../reshape"),u=e("../slice"),p=e("../tensor2d");let c=(0,l.op)({frame_:function(e,t,r,n=!1,s=0){let l=0,c=[];for(;l+t<=e.size;)c.push((0,u.slice)(e,l,t)),l+=r;if(n)for(;lc);var a=e("../mul"),o=e("../operation"),l=e("../signal_ops_util"),i=e("../spectral/rfft"),u=e("./frame"),p=e("./hann_window");let c=(0,o.op)({stft_:function(e,t,r,n,s=p.hannWindow){null==n&&(n=(0,l.enclosingPowerOfTwo)(t));let o=(0,u.frame)(e,t,r),c=(0,a.mul)(o,s(t));return(0,i.rfft)(c,n)}})},{"../mul":"3233B","../operation":"2me4m","../signal_ops_util":"bnGKH","../spectral/rfft":"6UY7r","./frame":"ecqbq","./hann_window":"hNFU5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lY1MB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cropAndResize",()=>u);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util");let u=(0,e("../operation").op)({cropAndResize_:function(e,t,r,n,s="bilinear",u=0){let p=(0,l.convertToTensor)(e,"image","cropAndResize"),c=(0,l.convertToTensor)(t,"boxes","cropAndResize","float32"),d=(0,l.convertToTensor)(r,"boxInd","cropAndResize","int32"),f=c.shape[0];return i.assert(4===p.rank,()=>`Error in cropAndResize: image must be rank 4,but got rank ${p.rank}.`),i.assert(2===c.rank&&4===c.shape[1],()=>`Error in cropAndResize: boxes must be have size [${f},4] but had shape ${c.shape}.`),i.assert(1===d.rank&&d.shape[0]===f,()=>`Error in cropAndResize: boxInd must be have size [${f}] but had shape ${c.shape}.`),i.assert(2===n.length,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`),i.assert(n[0]>=1&&n[1]>=1,()=>`cropSize must be atleast [1,1], but was ${n}`),i.assert("bilinear"===s||"nearest"===s,()=>`method must be bilinear or nearest, but was ${s}`),a.ENGINE.runKernel(o.CropAndResize,{image:p,boxes:c,boxInd:d},{method:s,extrapolationValue:u,cropSize:n})}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../../util":"icflD","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fA264:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"flipLeftRight",()=>u);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util");let u=(0,e("../operation").op)({flipLeftRight_:function(e){let t=(0,l.convertToTensor)(e,"image","flipLeftRight","float32");return i.assert(4===t.rank,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`),a.ENGINE.runKernel(o.FlipLeftRight,{image:t},{})}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../../util":"icflD","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fFavm:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"grayscaleToRGB",()=>u);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../operation"),i=e("../tile");let u=(0,l.op)({grayscaleToRGB_:function(e){let t=(0,a.convertToTensor)(e,"image","grayscaleToRGB"),r=t.rank-1,n=t.shape[r];o.assert(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),o.assert(1===n,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${n}.`);let s=Array(t.rank);return s.fill(1,0,r),s[r]=3,(0,i.tile)(t,s)}})},{"../../tensor_util_env":"5isXB","../../util":"icflD","../operation":"2me4m","../tile":"3a2L4","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ayeQE:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rgbToGrayscale",()=>d);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../cast"),i=e("../einsum"),u=e("../expand_dims"),p=e("../operation"),c=e("../tensor1d");let d=(0,p.op)({rgbToGrayscale_:function(e){let t,r=(0,a.convertToTensor)(e,"image","RGBToGrayscale"),n=r.rank-1,s=r.shape[n];o.assert(r.rank>=2,()=>`Error in RGBToGrayscale: images must be at least rank 2, but got rank ${r.rank}.`),o.assert(3===s,()=>`Error in RGBToGrayscale: last dimension of an RGB image should be size 3, but got size ${s}.`);let p=r.dtype,d=(0,l.cast)(r,"float32"),f=(0,c.tensor1d)([.2989,.587,.114]);switch(r.rank){case 2:t=(0,i.einsum)("ij,j->i",d,f);break;case 3:t=(0,i.einsum)("ijk,k->ij",d,f);break;case 4:t=(0,i.einsum)("ijkl,l->ijk",d,f);break;case 5:t=(0,i.einsum)("ijklm,m->ijkl",d,f);break;case 6:t=(0,i.einsum)("ijklmn,n->ijklm",d,f);break;default:throw Error("Not a valid tensor rank.")}return t=(0,u.expandDims)(t,-1),(0,l.cast)(t,p)}})},{"../../tensor_util_env":"5isXB","../../util":"icflD","../cast":"juFUN","../einsum":"bFs63","../expand_dims":"6YWDL","../operation":"2me4m","../tensor1d":"6BeOV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],y0vWr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rotateWithOffset",()=>u);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util");let u=(0,e("../operation").op)({rotateWithOffset_:function(e,t,r=0,n=.5){let s=(0,l.convertToTensor)(e,"image","rotateWithOffset","float32");return i.assert(4===s.rank,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${s.rank}.`),a.ENGINE.runKernel(o.RotateWithOffset,{image:s},{radians:t,fillValue:r,center:n})}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../../util":"icflD","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6Pae6":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppression",()=>u);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../nonmax_util");let u=(0,e("../operation").op)({nonMaxSuppression_:function(e,t,r,n=.5,s=Number.NEGATIVE_INFINITY){let u=(0,l.convertToTensor)(e,"boxes","nonMaxSuppression","float32"),p=(0,l.convertToTensor)(t,"scores","nonMaxSuppression","float32"),c=(0,i.nonMaxSuppSanityCheck)(u,p,r,n,s);r=c.maxOutputSize;let d={maxOutputSize:r,iouThreshold:n=c.iouThreshold,scoreThreshold:s=c.scoreThreshold};return a.ENGINE.runKernel(o.NonMaxSuppressionV3,{boxes:u,scores:p},d)}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../nonmax_util":"iTAb9","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iTAb9:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppSanityCheck",()=>o);var a=e("../util");function o(e,t,r,n,s,o){null==n&&(n=.5),null==s&&(s=Number.NEGATIVE_INFINITY),null==o&&(o=0);let l=e.shape[0];return r=Math.min(r,l),a.assert(0<=n&&n<=1,()=>`iouThreshold must be in [0, 1], but was '${n}'`),a.assert(2===e.rank,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),a.assert(4===e.shape[1],()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),a.assert(1===t.rank,()=>"scores must be a 1D tensor"),a.assert(t.shape[0]===l,()=>`scores has incompatible shape with boxes. Expected ${l}, but was ${t.shape[0]}`),a.assert(0<=o&&o<=1,()=>`softNmsSigma must be in [0, 1], but was '${o}'`),{maxOutputSize:r,iouThreshold:n,scoreThreshold:s,softNmsSigma:o}}},{"../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bvRV1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionAsync",()=>u);var a=e("../../backends/non_max_suppression_impl"),o=e("../../tensor_util_env"),l=e("../nonmax_util"),i=e("../tensor1d");let u=async function(e,t,r,n=.5,s=Number.NEGATIVE_INFINITY){let u=(0,o.convertToTensor)(e,"boxes","nonMaxSuppressionAsync"),p=(0,o.convertToTensor)(t,"scores","nonMaxSuppressionAsync"),c=(0,l.nonMaxSuppSanityCheck)(u,p,r,n,s);r=c.maxOutputSize,n=c.iouThreshold,s=c.scoreThreshold;let d=await Promise.all([u.data(),p.data()]),f=d[0],m=d[1],{selectedIndices:h}=(0,a.nonMaxSuppressionV3Impl)(f,m,r,n,s);return u!==e&&u.dispose(),p!==t&&p.dispose(),(0,i.tensor1d)(h,"int32")}},{"../../backends/non_max_suppression_impl":"5qKy1","../../tensor_util_env":"5isXB","../nonmax_util":"iTAb9","../tensor1d":"6BeOV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5qKy1":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV3Impl",()=>o),s.export(r,"nonMaxSuppressionV4Impl",()=>l),s.export(r,"nonMaxSuppressionV5Impl",()=>i);var a=e("./non_max_suppression_util");function o(e,t,r,n,s){return u(e,t,r,n,s,0)}function l(e,t,r,n,s,a){return u(e,t,r,n,s,0,!1,a,!0)}function i(e,t,r,n,s,a){return u(e,t,r,n,s,a,!0)}function u(e,t,r,n,s,o,l=!1,i=!1,c=!1){let d=[];for(let e=0;es&&d.push({score:t[e],boxIndex:e,suppressBeginIndex:0});d.sort(p);let f=o>0?-.5/o:0,m=[],h=[];for(;m.length0;){let t=d.pop(),{score:r,boxIndex:o,suppressBeginIndex:l}=t;if(r=l;--r){let a=function(e,t,r){let n=e.subarray(4*t,4*t+4),s=e.subarray(4*r,4*r+4),a=Math.min(n[0],n[2]),o=Math.min(n[1],n[3]),l=Math.max(n[0],n[2]),i=Math.max(n[1],n[3]),u=Math.min(s[0],s[2]),p=Math.min(s[1],s[3]),c=Math.max(s[0],s[2]),d=Math.max(s[1],s[3]),f=(l-a)*(i-o),m=(c-u)*(d-p);if(f<=0||m<=0)return 0;let h=Math.max(Math.min(l,c)-Math.max(a,u),0)*Math.max(Math.min(i,d)-Math.max(o,p),0);return h/(f+m-h)}(e,o,m[r]);if(a>=n){i=!0;break}if(t.score=t.score*function(e,t,r){let n=Math.exp(t*r*r);return r<=e?n:0}(n,f,a),t.score<=s)break}t.suppressBeginIndex=m.length,!i&&(t.score===r?(m.push(o),h.push(t.score)):t.score>s&&(0,a.binaryInsert)(d,t,p))}let g=m.length,x=r-g;i&&x>0&&(m.push(...Array(x).fill(0)),h.push(...Array(x).fill(0)));let v={selectedIndices:m};return l&&(v.selectedScores=h),c&&(v.validOutputs=g),v}function p(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}},{"./non_max_suppression_util":"7pBgp","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7pBgp":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t,r){let n=o(e,t,r);e.splice(n<0?-(n+1):n,0,t)}function o(e,t,r){return function(e,t,r){let n=0,s=e.length,a=0,o=!1;for(;n>>1)]);l>0?n=a+1:(s=a,o=!l)}return o?n:-n-1}(e,t,r||l)}function l(e,t){return e>t?1:ea),s.export(r,"binarySearch",()=>o)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cE23C:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionWithScore",()=>u);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../nonmax_util");let u=(0,e("../operation").op)({nonMaxSuppressionWithScore_:function(e,t,r,n=.5,s=Number.NEGATIVE_INFINITY,u=0){let p=(0,l.convertToTensor)(e,"boxes","nonMaxSuppression"),c=(0,l.convertToTensor)(t,"scores","nonMaxSuppression"),d=(0,i.nonMaxSuppSanityCheck)(p,c,r,n,s,u);r=d.maxOutputSize,n=d.iouThreshold,s=d.scoreThreshold;let f={maxOutputSize:r,iouThreshold:n,scoreThreshold:s,softNmsSigma:u=d.softNmsSigma},m=a.ENGINE.runKernel(o.NonMaxSuppressionV5,{boxes:p,scores:c},f);return{selectedIndices:m[0],selectedScores:m[1]}}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../nonmax_util":"iTAb9","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"913WB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionWithScoreAsync",()=>u);var a=e("../../backends/non_max_suppression_impl"),o=e("../../tensor_util_env"),l=e("../nonmax_util"),i=e("../tensor1d");let u=async function(e,t,r,n=.5,s=Number.NEGATIVE_INFINITY,u=0){let p=(0,o.convertToTensor)(e,"boxes","nonMaxSuppressionAsync"),c=(0,o.convertToTensor)(t,"scores","nonMaxSuppressionAsync"),d=(0,l.nonMaxSuppSanityCheck)(p,c,r,n,s,u);r=d.maxOutputSize,n=d.iouThreshold,s=d.scoreThreshold,u=d.softNmsSigma;let f=await Promise.all([p.data(),c.data()]),m=f[0],h=f[1],{selectedIndices:g,selectedScores:x}=(0,a.nonMaxSuppressionV5Impl)(m,h,r,n,s,u);return p!==e&&p.dispose(),c!==t&&c.dispose(),{selectedIndices:(0,i.tensor1d)(g,"int32"),selectedScores:(0,i.tensor1d)(x)}}},{"../../backends/non_max_suppression_impl":"5qKy1","../../tensor_util_env":"5isXB","../nonmax_util":"iTAb9","../tensor1d":"6BeOV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],evBQ2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionPadded",()=>u);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../nonmax_util");let u=(0,e("../operation").op)({nonMaxSuppressionPadded_:function(e,t,r,n=.5,s=Number.NEGATIVE_INFINITY,u=!1){let p=(0,l.convertToTensor)(e,"boxes","nonMaxSuppression"),c=(0,l.convertToTensor)(t,"scores","nonMaxSuppression"),d=(0,i.nonMaxSuppSanityCheck)(p,c,r,n,s,null),f=d.maxOutputSize,m=d.iouThreshold,h=d.scoreThreshold,g=a.ENGINE.runKernel(o.NonMaxSuppressionV4,{boxes:p,scores:c},{maxOutputSize:f,iouThreshold:m,scoreThreshold:h,padToMaxOutputSize:u});return{selectedIndices:g[0],validOutputs:g[1]}}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../nonmax_util":"iTAb9","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gLwj2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionPaddedAsync",()=>p);var a=e("../../backends/non_max_suppression_impl"),o=e("../../tensor_util_env"),l=e("../nonmax_util"),i=e("../scalar"),u=e("../tensor1d");let p=async function(e,t,r,n=.5,s=Number.NEGATIVE_INFINITY,p=!1){let c=(0,o.convertToTensor)(e,"boxes","nonMaxSuppressionAsync"),d=(0,o.convertToTensor)(t,"scores","nonMaxSuppressionAsync"),f=(0,l.nonMaxSuppSanityCheck)(c,d,r,n,s,null),m=f.maxOutputSize,h=f.iouThreshold,g=f.scoreThreshold,[x,v]=await Promise.all([c.data(),d.data()]),{selectedIndices:y,validOutputs:b}=(0,a.nonMaxSuppressionV4Impl)(x,v,m,h,g,p);return c!==e&&c.dispose(),d!==t&&d.dispose(),{selectedIndices:(0,u.tensor1d)(y,"int32"),validOutputs:(0,i.scalar)(b,"int32")}}},{"../../backends/non_max_suppression_impl":"5qKy1","../../tensor_util_env":"5isXB","../nonmax_util":"iTAb9","../scalar":"aCdNN","../tensor1d":"6BeOV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3OhUh":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeBilinear",()=>c);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util"),u=e("../operation"),p=e("../reshape");let c=(0,u.op)({resizeBilinear_:function(e,t,r=!1,n=!1){let s=(0,l.convertToTensor)(e,"images","resizeBilinear");i.assert(3===s.rank||4===s.rank,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${s.rank}.`),i.assert(2===t.length,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),i.assert(!1===n||!1===r,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let u=s,c=!1;3===s.rank&&(c=!0,u=(0,p.reshape)(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let[]=t,d={images:u},f=a.ENGINE.runKernel(o.ResizeBilinear,d,{alignCorners:r,halfPixelCenters:n,size:t});return c?(0,p.reshape)(f,[f.shape[1],f.shape[2],f.shape[3]]):f}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../../util":"icflD","../operation":"2me4m","../reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dXcs8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeNearestNeighbor",()=>c);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util"),u=e("../operation"),p=e("../reshape");let c=(0,u.op)({resizeNearestNeighbor_:function(e,t,r=!1,n=!1){let s=(0,l.convertToTensor)(e,"images","resizeNearestNeighbor");i.assert(3===s.rank||4===s.rank,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${s.rank}.`),i.assert(2===t.length,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),i.assert("float32"===s.dtype||"int32"===s.dtype,()=>"`images` must have `int32` or `float32` as dtype"),i.assert(!1===n||!1===r,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let u=s,c=!1;3===s.rank&&(c=!0,u=(0,p.reshape)(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let[]=t,d={images:u},f=a.ENGINE.runKernel(o.ResizeNearestNeighbor,d,{alignCorners:r,halfPixelCenters:n,size:t});return c?(0,p.reshape)(f,[f.shape[1],f.shape[2],f.shape[3]]):f}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../../util":"icflD","../operation":"2me4m","../reshape":"2znRS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eJmnz:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"threshold",()=>w);var a=e("../tensor1d"),o=e("../operation"),l=e("../cast"),i=e("../split"),u=e("../bincount"),p=e("../less_equal"),c=e("../greater"),d=e("../sum"),f=e("../add"),m=e("../mul"),h=e("../div"),g=e("../sub"),x=e("../round"),v=e("../where"),y=e("../fill"),b=e("../slice"),_=e("../range"),k=e("../tensor"),j=e("../../util"),I=e("../../tensor_util_env");let w=(0,o.op)({threshold_:function(e,t="binary",r=!1,n=.5){let s,o,w,T,N=(0,I.convertToTensor)(e,"image","threshold"),S=N.shape[0]*N.shape[1],C=(0,m.mul)((0,a.tensor1d)([n]),255);if(j.assert(3===N.rank,()=>`Error in threshold: image must be rank 3,but got rank ${N.rank}.`),j.assert(3===N.shape[2]||1===N.shape[2],()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${N.shape[2]}.`),j.assert("int32"===N.dtype||"float32"===N.dtype,()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${N.dtype}.`),j.assert("otsu"===t||"binary"===t,()=>`Method must be binary or otsu, but was ${t}`),3===N.shape[2]){[s,o,w]=(0,i.split)(N,[1,1,1],-1);let e=(0,m.mul)(s,.2989),t=(0,m.mul)(o,.587),r=(0,m.mul)(w,.114);T=(0,f.add)((0,f.add)(e,t),r)}else T=e;"otsu"===t&&(C=function(e,t){let r,n,s,o,l,i,u=(0,a.tensor1d)([-1]),p=(0,a.tensor1d)([0]),x=(0,a.tensor1d)([0]);for(let k=0;ku);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util");let u=(0,e("../operation").op)({transform_:function(e,t,r="nearest",n="constant",s=0,u){let p=(0,l.convertToTensor)(e,"image","transform","float32"),c=(0,l.convertToTensor)(t,"transforms","transform","float32");return i.assert(4===p.rank,()=>`Error in transform: image must be rank 4,but got rank ${p.rank}.`),i.assert(2===c.rank&&(c.shape[0]===p.shape[0]||1===c.shape[0])&&8===c.shape[1],()=>"Error in transform: Input transform should be batch x 8 or 1 x 8"),i.assert(null==u||2===u.length,()=>`Error in transform: outputShape must be [height, width] or null, but got ${u}.`),a.ENGINE.runKernel(o.Transform,{image:p,transforms:c},{interpolation:r,fillMode:n,fillValue:s,outputShape:u})}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../../util":"icflD","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3zZzZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bandPart",()=>_);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../greater_equal"),i=e("../less"),u=e("../less_equal"),p=e("../logical_and"),c=e("../minimum"),d=e("../neg"),f=e("../operation"),m=e("../range"),h=e("../reshape"),g=e("../stack"),x=e("../sub"),v=e("../unstack"),y=e("../where"),b=e("../zeros");let _=(0,f.op)({bandPart_:function(e,t,r){let n,s,f=(0,a.convertToTensor)(e,"a","bandPart");(0,o.assert)(f.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${f.rank}.`);let _=f.shape,[k,j]=f.shape.slice(-2);"number"==typeof t?((0,o.assert)(t%1==0,()=>`bandPart(): numLower must be an integer, got ${t}.`),(0,o.assert)(t<=k,()=>`bandPart(): numLower (${t}) must not be greater than the number of rows (${k}).`),n=(0,a.convertToTensor)(t<0?k:t,"numLower","bandPart")):((0,o.assert)("int32"===t.dtype,()=>"bandPart(): numLower's dtype must be an int32."),n=(0,y.where)((0,i.less)(t,0),k,(0,c.minimum)(t,k))),"number"==typeof r?((0,o.assert)(r%1==0,()=>`bandPart(): numUpper must be an integer, got ${r}.`),(0,o.assert)(r<=j,()=>`bandPart(): numUpper (${r}) must not be greater than the number of columns (${j}).`),s=(0,a.convertToTensor)(r<0?j:r,"numUpper","bandPart")):((0,o.assert)("int32"===r.dtype,()=>"bandPart(): numUpper's dtype must be an int32."),s=(0,y.where)((0,i.less)(r,0),j,(0,c.minimum)(r,j)));let I=(0,h.reshape)((0,m.range)(0,k,1,"int32"),[-1,1]),w=(0,m.range)(0,j,1,"int32"),T=(0,x.sub)(I,w),N=(0,p.logicalAnd)((0,u.lessEqual)(T,n),(0,l.greaterEqual)(T,(0,d.neg)(s))),S=(0,b.zeros)([k,j],f.dtype);return(0,h.reshape)((0,g.stack)((0,v.unstack)((0,h.reshape)(f,[-1,k,j])).map(e=>(0,y.where)(N,e,S))),_)}})},{"../../tensor_util_env":"5isXB","../../util":"icflD","../greater_equal":"ai7qe","../less":"3qq9g","../less_equal":"hEbcw","../logical_and":"8lNbb","../minimum":"74TYW","../neg":"8HIhG","../operation":"2me4m","../range":"df8SO","../reshape":"2znRS","../stack":"bvpof","../sub":"2lFei","../unstack":"2NrdB","../where":"a7ZmF","../zeros":"fqUNT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1rbpJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gramSchmidt",()=>g);var a=e("../../engine"),o=e("../../util"),l=e("../div"),i=e("../mul"),u=e("../norm"),p=e("../operation"),c=e("../split"),d=e("../squeeze"),f=e("../stack"),m=e("../sub"),h=e("../sum");let g=(0,p.op)({gramSchmidt_:function(e){let t;if(Array.isArray(e)){t=!1,(0,o.assert)(null!=e&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let r=e[0].shape[0];for(let t=1;t`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[t].shape[0]} vs. ${r})`)}else t=!0,e=(0,c.split)(e,e.shape[0],0).map(e=>(0,d.squeeze)(e,[0]));(0,o.assert)(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);let r=[],n=e;for(let t=0;t{let e=n[t];if(t>0)for(let n=0;nN);var a=e("../../engine"),o=e("../../globals"),l=e("../../util"),i=e("../clone"),u=e("../concat"),p=e("../div"),c=e("../eye"),d=e("../greater"),f=e("../mat_mul"),m=e("../mul"),h=e("../neg"),g=e("../norm"),x=e("../operation"),v=e("../reshape"),y=e("../slice"),b=e("../stack"),_=e("../sub"),k=e("../tensor2d"),j=e("../transpose"),I=e("../unstack"),w=e("../where");function T(e,t=!1){return a.ENGINE.tidy(()=>{(0,l.assert)(2===e.shape.length,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);let r=e.shape[0],n=e.shape[1],s=(0,c.eye)(r),x=(0,i.clone)(e),v=(0,k.tensor2d)([[1]],[1,1]),b=(0,i.clone)(v),I=r>=n?n:r;for(let e=0;e{let t=(0,y.slice)(x,[e,e],[r-e,1]),a=(0,g.norm)(t),o=(0,y.slice)(x,[e,e],[1,1]),l=(0,w.where)((0,d.greater)(o,0),(0,k.tensor2d)([[-1]]),(0,k.tensor2d)([[1]])),c=(0,_.sub)(o,(0,m.mul)(l,a)),I=(0,p.div)(t,c);b=1===I.shape[0]?(0,i.clone)(v):(0,u.concat)([v,(0,y.slice)(I,[1,0],[I.shape[0]-1,I.shape[1]])],0);let T=(0,h.neg)((0,p.div)((0,f.matMul)(l,c),a)),N=(0,y.slice)(x,[e,0],[r-e,n]),S=(0,m.mul)(T,b),C=(0,j.transpose)(b);if(0===e)x=(0,_.sub)(N,(0,f.matMul)(S,(0,f.matMul)(C,N)));else{let t=(0,_.sub)(N,(0,f.matMul)(S,(0,f.matMul)(C,N)));x=(0,u.concat)([(0,y.slice)(x,[0,0],[e,n]),t],0)}let E=(0,j.transpose)(S),F=(0,y.slice)(s,[0,e],[r,s.shape[1]-e]);if(0===e)s=(0,_.sub)(F,(0,f.matMul)((0,f.matMul)(F,b),E));else{let t=(0,_.sub)(F,(0,f.matMul)((0,f.matMul)(F,b),E));s=(0,u.concat)([(0,y.slice)(s,[0,0],[r,e]),t],1)}return[b,x,s]}),(0,o.dispose)([t,l,c])}return!t&&r>n&&(s=(0,y.slice)(s,[0,0],[r,n]),x=(0,y.slice)(x,[0,0],[n,n])),[s,x]})}let N=(0,x.op)({qr_:function(e,t=!1){if((0,l.assert)(e.rank>=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),2===e.rank)return T(e,t);{let r=e.shape.slice(0,e.shape.length-2).reduce((e,t)=>e*t),n=(0,I.unstack)((0,v.reshape)(e,[r,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),s=[],a=[];return n.forEach(e=>{let[r,n]=T(e,t);s.push(r),a.push(n)}),[(0,v.reshape)((0,b.stack)(s,0),e.shape),(0,v.reshape)((0,b.stack)(a,0),e.shape)]}}})},{"../../engine":"c6qwc","../../globals":"kUewM","../../util":"icflD","../clone":"lH8Rn","../concat":"56PTj","../div":"lbTan","../eye":"j8T5c","../greater":"3KUcR","../mat_mul":"hHb0J","../mul":"3233B","../neg":"8HIhG","../norm":"auKpd","../operation":"2me4m","../reshape":"2znRS","../slice":"eDdeL","../stack":"bvpof","../sub":"2lFei","../tensor2d":"j7yj8","../transpose":"dg4Sa","../unstack":"2NrdB","../where":"a7ZmF","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lAkje:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"absoluteDifference",()=>d);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../abs"),i=e("../loss_ops_utils"),u=e("../operation"),p=e("../sub"),c=e("./compute_weighted_loss");let d=(0,u.op)({absoluteDifference_:function(e,t,r,n=i.Reduction.SUM_BY_NONZERO_WEIGHTS){let s=(0,a.convertToTensor)(e,"labels","absoluteDifference"),u=(0,a.convertToTensor)(t,"predictions","absoluteDifference"),d=null;null!=r&&(d=(0,a.convertToTensor)(r,"weights","absoluteDifference")),(0,o.assertShapesMatch)(s.shape,u.shape,"Error in absoluteDifference: ");let f=(0,l.abs)((0,p.sub)(s,u));return(0,c.computeWeightedLoss)(f,d,n)}})},{"../../tensor_util_env":"5isXB","../../util":"icflD","../abs":"9L54v","../loss_ops_utils":"63OlA","../operation":"2me4m","../sub":"2lFei","./compute_weighted_loss":"7G55R","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"63OlA":[function(e,t,r,n){var s,a,o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"Reduction",()=>a),(s=a||(a={}))[s.NONE=0]="NONE",s[s.MEAN=1]="MEAN",s[s.SUM=2]="SUM",s[s.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7G55R":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"computeWeightedLoss",()=>g);var a=e("../../tensor_util_env"),o=e("../cast"),l=e("../div"),i=e("../loss_ops_utils"),u=e("../mean"),p=e("../mul"),c=e("../not_equal"),d=e("../ones"),f=e("../operation"),m=e("../scalar"),h=e("../sum");let g=(0,f.op)({computeWeightedLoss_:function(e,t,r=i.Reduction.SUM_BY_NONZERO_WEIGHTS){let n=(0,a.convertToTensor)(e,"losses","computeWeightedLoss"),s=null;null!=t&&(s=(0,a.convertToTensor)(t,"weights","computeWeightedLoss"));let f=null==s?n:(0,p.mul)(n,s);if(r===i.Reduction.NONE)return f;if(r===i.Reduction.SUM)return(0,h.sum)(f);if(r===i.Reduction.MEAN)if(null==s)return(0,u.mean)(f);else{let e=n.size/s.size,t=(0,l.div)((0,h.sum)(f),(0,h.sum)(s));return e>1?(0,l.div)(t,(0,m.scalar)(e)):t}if(r===i.Reduction.SUM_BY_NONZERO_WEIGHTS)if(null==s)return(0,l.div)((0,h.sum)(f),(0,m.scalar)(n.size));else{let e=(0,p.mul)(s,(0,d.ones)(n.shape)),t=(0,o.cast)((0,h.sum)((0,c.notEqual)(e,(0,m.scalar)(0))),"float32");return(0,l.div)((0,h.sum)(f),t)}throw Error(`Unknown reduction: ${r}`)}})},{"../../tensor_util_env":"5isXB","../cast":"juFUN","../div":"lbTan","../loss_ops_utils":"63OlA","../mean":"9PJXN","../mul":"3233B","../not_equal":"h3Wiz","../ones":"eYvGK","../operation":"2me4m","../scalar":"aCdNN","../sum":"jlBkb","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6Ddpr":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cosineDistance",()=>m);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../loss_ops_utils"),i=e("../mul"),u=e("../operation"),p=e("../scalar"),c=e("../sub"),d=e("../sum"),f=e("./compute_weighted_loss");let m=(0,u.op)({cosineDistance_:function(e,t,r,n,s=l.Reduction.SUM_BY_NONZERO_WEIGHTS){let u=(0,a.convertToTensor)(e,"labels","cosineDistance"),m=(0,a.convertToTensor)(t,"predictions","cosineDistance"),h=null;null!=n&&(h=(0,a.convertToTensor)(n,"weights","cosineDistance")),(0,o.assertShapesMatch)(u.shape,m.shape,"Error in cosineDistance: ");let g=(0,p.scalar)(1),x=(0,c.sub)(g,(0,d.sum)((0,i.mul)(u,m),r,!0));return(0,f.computeWeightedLoss)(x,h,s)}})},{"../../tensor_util_env":"5isXB","../../util":"icflD","../loss_ops_utils":"63OlA","../mul":"3233B","../operation":"2me4m","../scalar":"aCdNN","../sub":"2lFei","../sum":"jlBkb","./compute_weighted_loss":"7G55R","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lOI18:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"hingeLoss",()=>m);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../loss_ops_utils"),i=e("../mul"),u=e("../operation"),p=e("../relu"),c=e("../scalar"),d=e("../sub"),f=e("./compute_weighted_loss");let m=(0,u.op)({hingeLoss_:function(e,t,r,n=l.Reduction.SUM_BY_NONZERO_WEIGHTS){let s=(0,a.convertToTensor)(e,"labels","hingeLoss"),u=(0,a.convertToTensor)(t,"predictions","hingeLoss"),m=null;null!=r&&(m=(0,a.convertToTensor)(r,"weights","hingeLoss")),(0,o.assertShapesMatch)(s.shape,u.shape,"Error in hingeLoss: ");let h=(0,c.scalar)(1);s=(0,d.sub)((0,i.mul)((0,c.scalar)(2),s),h);let g=(0,p.relu)((0,d.sub)(h,(0,i.mul)(s,u)));return(0,f.computeWeightedLoss)(g,m,n)}})},{"../../tensor_util_env":"5isXB","../../util":"icflD","../loss_ops_utils":"63OlA","../mul":"3233B","../operation":"2me4m","../relu":"iPhge","../scalar":"aCdNN","../sub":"2lFei","./compute_weighted_loss":"7G55R","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hgmCW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"huberLoss",()=>x);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../abs"),i=e("../add"),u=e("../loss_ops_utils"),p=e("../minimum"),c=e("../mul"),d=e("../operation"),f=e("../scalar"),m=e("../square"),h=e("../sub"),g=e("./compute_weighted_loss");let x=(0,d.op)({huberLoss_:function(e,t,r,n=1,s=u.Reduction.SUM_BY_NONZERO_WEIGHTS){let d=(0,a.convertToTensor)(e,"labels","huberLoss"),x=(0,a.convertToTensor)(t,"predictions","huberLoss"),v=null;null!=r&&(v=(0,a.convertToTensor)(r,"weights","huberLoss")),(0,o.assertShapesMatch)(d.shape,x.shape,"Error in huberLoss: ");let y=(0,f.scalar)(n),b=(0,l.abs)((0,h.sub)(x,d)),_=(0,p.minimum)(b,y),k=(0,h.sub)(b,_),j=(0,i.add)((0,c.mul)((0,f.scalar)(.5),(0,m.square)(_)),(0,c.mul)(y,k));return(0,g.computeWeightedLoss)(j,v,s)}})},{"../../tensor_util_env":"5isXB","../../util":"icflD","../abs":"9L54v","../add":"dX80O","../loss_ops_utils":"63OlA","../minimum":"74TYW","../mul":"3233B","../operation":"2me4m","../scalar":"aCdNN","../square":"kNrd2","../sub":"2lFei","./compute_weighted_loss":"7G55R","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aXYiZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logLoss",()=>g);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../add"),i=e("../log"),u=e("../loss_ops_utils"),p=e("../mul"),c=e("../neg"),d=e("../operation"),f=e("../scalar"),m=e("../sub"),h=e("./compute_weighted_loss");let g=(0,d.op)({logLoss_:function(e,t,r,n=1e-7,s=u.Reduction.SUM_BY_NONZERO_WEIGHTS){let d=(0,a.convertToTensor)(e,"labels","logLoss"),g=(0,a.convertToTensor)(t,"predictions","logLoss"),x=null;null!=r&&(x=(0,a.convertToTensor)(r,"weights","logLoss")),(0,o.assertShapesMatch)(d.shape,g.shape,"Error in logLoss: ");let v=(0,f.scalar)(1),y=(0,f.scalar)(n),b=(0,c.neg)((0,p.mul)(d,(0,i.log)((0,l.add)(g,y)))),_=(0,p.mul)((0,m.sub)(v,d),(0,i.log)((0,l.add)((0,m.sub)(v,g),y))),k=(0,m.sub)(b,_);return(0,h.computeWeightedLoss)(k,x,s)}})},{"../../tensor_util_env":"5isXB","../../util":"icflD","../add":"dX80O","../log":"bjj59","../loss_ops_utils":"63OlA","../mul":"3233B","../neg":"8HIhG","../operation":"2me4m","../scalar":"aCdNN","../sub":"2lFei","./compute_weighted_loss":"7G55R","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2uGH3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"meanSquaredError",()=>c);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../loss_ops_utils"),i=e("../operation"),u=e("../squared_difference"),p=e("./compute_weighted_loss");let c=(0,i.op)({meanSquaredError_:function(e,t,r,n=l.Reduction.SUM_BY_NONZERO_WEIGHTS){let s=(0,a.convertToTensor)(e,"labels","meanSquaredError"),i=(0,a.convertToTensor)(t,"predictions","meanSquaredError"),c=null;null!=r&&(c=(0,a.convertToTensor)(r,"weights","meanSquaredError")),(0,o.assertShapesMatch)(s.shape,i.shape,"Error in meanSquaredError: ");let d=(0,u.squaredDifference)(s,i);return(0,p.computeWeightedLoss)(d,c,n)}})},{"../../tensor_util_env":"5isXB","../../util":"icflD","../loss_ops_utils":"63OlA","../operation":"2me4m","../squared_difference":"9w0IR","./compute_weighted_loss":"7G55R","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iXkk2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sigmoidCrossEntropy",()=>y);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../abs"),i=e("../add"),u=e("../exp"),p=e("../log1p"),c=e("../loss_ops_utils"),d=e("../mul"),f=e("../neg"),m=e("../operation"),h=e("../relu"),g=e("../scalar"),x=e("../sub"),v=e("./compute_weighted_loss");let y=(0,m.op)({sigmoidCrossEntropy_:function(e,t,r,n=0,s=c.Reduction.SUM_BY_NONZERO_WEIGHTS){let m=(0,a.convertToTensor)(e,"multiClassLabels","sigmoidCrossEntropy"),y=(0,a.convertToTensor)(t,"logits","sigmoidCrossEntropy"),b=null;if(null!=r&&(b=(0,a.convertToTensor)(r,"weights","sigmoidCrossEntropy")),(0,o.assertShapesMatch)(m.shape,y.shape,"Error in sigmoidCrossEntropy: "),n>0){let e=(0,g.scalar)(n),t=(0,g.scalar)(1),r=(0,g.scalar)(.5);m=(0,i.add)((0,d.mul)(m,(0,x.sub)(t,e)),(0,d.mul)(r,e))}let _=function(e,t){let r=(0,a.convertToTensor)(e,"labels","sigmoidCrossEntropyWithLogits"),n=(0,a.convertToTensor)(t,"logits","sigmoidCrossEntropyWithLogits");(0,o.assertShapesMatch)(r.shape,n.shape,"Error in sigmoidCrossEntropyWithLogits: ");let s=(0,h.relu)(n),c=(0,d.mul)(n,r),m=(0,p.log1p)((0,u.exp)((0,f.neg)((0,l.abs)(n))));return(0,i.add)((0,x.sub)(s,c),m)}(m,y);return(0,v.computeWeightedLoss)(_,b,s)}})},{"../../tensor_util_env":"5isXB","../../util":"icflD","../abs":"9L54v","../add":"dX80O","../exp":"aYtA8","../log1p":"acqft","../loss_ops_utils":"63OlA","../mul":"3233B","../neg":"8HIhG","../operation":"2me4m","../relu":"iPhge","../scalar":"aCdNN","../sub":"2lFei","./compute_weighted_loss":"7G55R","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eMlv3:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softmaxCrossEntropy",()=>j);var a=e("../../gradients"),o=e("../../tensor_util_env"),l=e("../../util"),i=e("../add"),u=e("../axis_util"),p=e("../cast"),c=e("../div"),d=e("../exp"),f=e("../log_sum_exp"),m=e("../loss_ops_utils"),h=e("../mul"),g=e("../neg"),x=e("../operation"),v=e("../reshape"),y=e("../scalar"),b=e("../sub"),_=e("../sum"),k=e("./compute_weighted_loss");let j=(0,x.op)({softmaxCrossEntropy_:function(e,t,r,n=0,s=m.Reduction.SUM_BY_NONZERO_WEIGHTS){let x=(0,o.convertToTensor)(e,"onehotLabels","softmaxCrossEntropy"),j=(0,o.convertToTensor)(t,"logits","softmaxCrossEntropy"),I=null;if(null!=r&&(I=(0,o.convertToTensor)(r,"weights","softmaxCrossEntropy")),(0,l.assertShapesMatch)(x.shape,j.shape,"Error in softmaxCrossEntropy: "),n>0){let e=(0,y.scalar)(n),t=(0,y.scalar)(1),r=(0,y.scalar)(x.shape[1]);x=(0,i.add)((0,h.mul)(x,(0,b.sub)(t,e)),(0,c.div)(e,r))}let w=function(e,t,r=-1){if(-1===r&&(r=t.rank-1),r!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${r}`);return(0,a.customGrad)((e,t,n)=>{let s=(0,f.logSumExp)(t,[r],!0),a=(0,b.sub)((0,p.cast)(t,"float32"),s);n([e,a]);let o=(0,g.neg)((0,h.mul)(a,e));return{value:(0,_.sum)(o,[r]),gradFunc:(e,t)=>{let[n,s]=t,a=(0,u.expandShapeToKeepDim)(e.shape,[r]);return[(0,h.mul)((0,v.reshape)(e,a),(0,b.sub)((0,p.cast)(n,"float32"),(0,d.exp)(s))),(0,h.mul)((0,v.reshape)(e,a),(0,b.sub)((0,d.exp)(s),(0,p.cast)(n,"float32")))]}}})(e,t)}(x,j);return(0,k.computeWeightedLoss)(w,I,s)}})},{"../../gradients":"7QhD7","../../tensor_util_env":"5isXB","../../util":"icflD","../add":"dX80O","../axis_util":"4dwwj","../cast":"juFUN","../div":"lbTan","../exp":"aYtA8","../log_sum_exp":"gPZz6","../loss_ops_utils":"63OlA","../mul":"3233B","../neg":"8HIhG","../operation":"2me4m","../reshape":"2znRS","../scalar":"aCdNN","../sub":"2lFei","../sum":"jlBkb","./compute_weighted_loss":"7G55R","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2apoJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseFillEmptyRows",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({sparseFillEmptyRows_:function(e,t,r,n){let s=(0,l.convertToTensor)(e,"indices","sparseFillEmptyRows","int32"),i=(0,l.convertToTensor)(t,"values","sparseFillEmptyRows"),u=(0,l.convertToTensor)(r,"denseShape","sparseFillEmptyRows","int32"),p=(0,l.convertToTensor)(n,"defaultValue","sparseFillEmptyRows",i.dtype);if(2!==s.rank)throw Error(`Indices should be Tensor2D but received shape + ${s.shape}`);if(1!==i.rank)throw Error(`Values should be Tensor1D but received shape ${i.shape}`);if(1!==u.rank)throw Error(`Dense shape should be Tensor1D but received shape ${u.shape}`);if(0!==p.rank)throw Error(`Default value should be a scalar but received shape ${p.shape}`);let c=a.ENGINE.runKernel(o.SparseFillEmptyRows,{indices:s,values:i,denseShape:u,defaultValue:p});return{outputIndices:c[0],outputValues:c[1],emptyRowIndicator:c[2],reverseIndexMap:c[3]}}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1MGLo":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseReshape",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({sparseReshape_:function(e,t,r){let n=(0,l.convertToTensor)(e,"inputIndices","sparseReshape","int32"),s=(0,l.convertToTensor)(t,"inputShape","sparseReshape","int32"),i=(0,l.convertToTensor)(r,"newShape","sparseReshape","int32");if(2!==n.rank)throw Error(`Input indices should be Tensor2D but received shape + ${n.shape}`);if(1!==s.rank)throw Error(`Input shape should be Tensor1D but received shape ${s.shape}`);if(1!==i.rank)throw Error(`New shape should be Tensor1D but received shape ${i.shape}`);let u=a.ENGINE.runKernel(o.SparseReshape,{inputIndices:n,inputShape:s,newShape:i});return{outputIndices:u[0],outputShape:u[1]}}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],heg8n:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentMean",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({sparseSegmentMean_:function(e,t,r){let n=(0,l.convertToTensor)(e,"data","sparseSegmentMean"),s=(0,l.convertToTensor)(t,"indices","sparseSegmentMean","int32"),i=(0,l.convertToTensor)(r,"segmentIds","sparseSegmentMean","int32");if(n.rank<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.rank)throw Error(`Indices should be Tensor1D but received shape + ${s.shape}`);if(1!==i.rank)throw Error(`Segment ids should be Tensor1D but received shape + ${i.shape}`);return a.ENGINE.runKernel(o.SparseSegmentMean,{data:n,indices:s,segmentIds:i})}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4SIv3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentSum",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({sparseSegmentSum_:function(e,t,r){let n=(0,l.convertToTensor)(e,"data","sparseSegmentSum"),s=(0,l.convertToTensor)(t,"indices","sparseSegmentSum","int32"),i=(0,l.convertToTensor)(r,"segmentIds","sparseSegmentSum","int32");if(n.rank<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.rank)throw Error(`Indices should be Tensor1D but received shape + ${s.shape}`);if(1!==i.rank)throw Error(`Segment ids should be Tensor1D but received shape + ${i.shape}`);return a.ENGINE.runKernel(o.SparseSegmentSum,{data:n,indices:s,segmentIds:i})}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],crgDK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringNGrams",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({stringNGrams_:function(e,t,r,n,s,i,u,p){let c=(0,l.convertToTensor)(e,"data","stringNGrams","string");if("string"!==c.dtype)throw Error("Data must be of datatype string");if(1!==c.shape.length)throw Error(`Data must be a vector, saw: ${c.shape}`);let d=(0,l.convertToTensor)(t,"dataSplits","stringNGrams");if("int32"!==d.dtype)throw Error("Data splits must be of datatype int32");let f=a.ENGINE.runKernel(o.StringNGrams,{data:c,dataSplits:d},{separator:r,nGramWidths:n,leftPad:s,rightPad:i,padWidth:u,preserveShortSequences:p});return{nGrams:f[0],nGramsSplits:f[1]}}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kf9qK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringSplit",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({stringSplit_:function(e,t,r=!0){let n=(0,l.convertToTensor)(e,"input","stringSplit","string"),s=(0,l.convertToTensor)(t,"delimiter","stringSplit","string");if(1!==n.rank)throw Error(`Input should be Tensor1D but received shape ${n.shape}`);if(0!==s.rank)throw Error(`Delimiter should be a scalar but received shape ${s.shape}`);let i=a.ENGINE.runKernel(o.StringSplit,{input:n,delimiter:s},{skipEmpty:r});return{indices:i[0],values:i[1],shape:i[2]}}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hCzP4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringToHashBucketFast",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({stringToHashBucketFast_:function(e,t){let r=(0,l.convertToTensor)(e,"input","stringToHashBucketFast","string");if(t<=0)throw Error("Number of buckets must be at least 1");return a.ENGINE.runKernel(o.StringToHashBucketFast,{input:r},{numBuckets:t})}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"758tQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"staticRegexReplace",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({staticRegexReplace_:function(e,t,r,n=!0){let s=(0,l.convertToTensor)(e,"input","staticRegexReplace","string");return a.ENGINE.runKernel(o.StaticRegexReplace,{x:s},{pattern:t,rewrite:r,replaceGlobal:n})}})},{"../../engine":"c6qwc","../../kernel_names":"349aa","../../tensor_util_env":"5isXB","../operation":"2me4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kmErF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Optimizer",()=>u);var a=e("../globals"),o=e("../gradients"),l=e("../ops/ops"),i=e("../serialization");class u extends i.Serializable{minimize(e,t=!1,r){let{value:n,grads:s}=this.computeGradients(e,r);if(null!=r){let e=r.map(e=>({name:e.name,tensor:s[e.name]}));this.applyGradients(e)}else this.applyGradients(s);return((0,a.dispose)(s),t)?n:(n.dispose(),null)}get iterations(){return null==this.iterations_&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return(0,o.variableGrads)(e,t)}dispose(){null!=this.iterations_&&(0,a.dispose)(this.iterations_)}async saveIterations(){return null==this.iterations_&&(this.iterations_=0),{name:"iter",tensor:(0,l.scalar)(this.iterations_,"int32")}}async getWeights(){throw Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}}Object.defineProperty(u,Symbol.hasInstance,{value:e=>null!=e.minimize&&null!=e.computeGradients&&null!=e.applyGradients})},{"../globals":"kUewM","../gradients":"7QhD7","../ops/ops":"165HQ","../serialization":"3f8fL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3f8fL":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Serializable",()=>i),s.export(r,"SerializationMap",()=>u),s.export(r,"registerClass",()=>p),s.export(r,"getRegisteredName",()=>c);var a=e("./util");let o=new Map,l=new Map;class i{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}}class u{constructor(){this.classNameMap={}}static getMap(){return null==u.instance&&(u.instance=new u),u.instance}static register(e){u.getMap().classNameMap[e.className]=[e,e.fromConfig]}}function p(e,t,r){(0,a.assert)(null!=e.className,()=>"Class being registered does not have the static className property defined."),(0,a.assert)("string"==typeof e.className,()=>"className is required to be a string, but got type "+typeof e.className),(0,a.assert)(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),void 0===t&&(t="Custom"),void 0===r&&(r=e.className);let n=t+">"+r;return u.register(e),o.set(n,e),l.set(e,n),e}function c(e){return l.has(e)?l.get(e):e.className}},{"./util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4w9Rg":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AdagradOptimizer",()=>m);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/div"),u=e("../ops/fill"),p=e("../ops/mul"),c=e("../ops/sqrt"),d=e("../ops/square"),f=e("./optimizer");class m extends f.Optimizer{static get className(){return"Adagrad"}constructor(e,t=.1){super(),this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(e=>e.name):Object.keys(e)).forEach((t,r)=>{let n=a.ENGINE.registeredVariables[t];null==this.accumulatedGrads[r]&&(this.accumulatedGrads[r]={originalName:`${t}/accumulator`,variable:(0,o.tidy)(()=>(0,u.fill)(n.shape,this.initialAccumulatorValue).variable(!1))});let s=Array.isArray(e)?e[r].tensor:e[t];if(null==s)return;let f=this.accumulatedGrads[r].variable;(0,o.tidy)(()=>{let e=(0,l.add)(f,(0,d.square)(s));f.assign(e);let t=(0,l.add)((0,p.mul)((0,i.div)(s,(0,c.sqrt)((0,l.add)(e,a.ENGINE.backend.epsilon()))),-this.learningRate),n);n.assign(t)})}),this.incrementIterations()}dispose(){null!=this.accumulatedGrads&&(0,o.dispose)(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e),this.accumulatedGrads=e.map(e=>({originalName:e.name,variable:e.tensor.variable(!1)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}}},{"../engine":"c6qwc","../globals":"kUewM","../ops/add":"dX80O","../ops/div":"lbTan","../ops/fill":"d4iwa","../ops/mul":"3233B","../ops/sqrt":"946JS","../ops/square":"kNrd2","./optimizer":"kmErF","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],f7FpJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AdamOptimizer",()=>x);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/div"),u=e("../ops/mul"),p=e("../ops/pow"),c=e("../ops/scalar"),d=e("../ops/sqrt"),f=e("../ops/square"),m=e("../ops/sub"),h=e("../ops/zeros_like"),g=e("./optimizer");class x extends g.Optimizer{static get className(){return"Adam"}constructor(e,t,r,n=null){super(),this.learningRate=e,this.beta1=t,this.beta2=r,this.epsilon=n,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],(0,o.tidy)(()=>{this.accBeta1=(0,c.scalar)(t).variable(),this.accBeta2=(0,c.scalar)(r).variable()}),null==n&&(this.epsilon=a.ENGINE.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(e=>e.name):Object.keys(e);(0,o.tidy)(()=>{let r=(0,m.sub)(1,this.accBeta1),n=(0,m.sub)(1,this.accBeta2);t.forEach((t,s)=>{let p=a.ENGINE.registeredVariables[t];null==this.accumulatedFirstMoment[s]&&(this.accumulatedFirstMoment[s]={originalName:`${t}/m`,variable:(0,o.tidy)(()=>(0,h.zerosLike)(p).variable(!1))}),null==this.accumulatedSecondMoment[s]&&(this.accumulatedSecondMoment[s]={originalName:`${t}/v`,variable:(0,o.tidy)(()=>(0,h.zerosLike)(p).variable(!1))});let c=Array.isArray(e)?e[s].tensor:e[t];if(null==c)return;let m=this.accumulatedFirstMoment[s].variable,g=this.accumulatedSecondMoment[s].variable,x=(0,l.add)((0,u.mul)(m,this.beta1),(0,u.mul)(c,1-this.beta1)),v=(0,l.add)((0,u.mul)(g,this.beta2),(0,u.mul)((0,f.square)(c),1-this.beta2)),y=(0,i.div)(x,r),b=(0,i.div)(v,n);m.assign(x),g.assign(v);let _=(0,l.add)((0,u.mul)((0,i.div)(y,(0,l.add)((0,d.sqrt)(b),this.epsilon)),-this.learningRate),p);p.assign(_)}),this.accBeta1.assign((0,u.mul)(this.accBeta1,this.beta1)),this.accBeta2.assign((0,u.mul)(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),null!=this.accumulatedFirstMoment&&(0,o.dispose)(this.accumulatedFirstMoment.map(e=>e.variable)),null!=this.accumulatedSecondMoment&&(0,o.dispose)(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e),(0,o.tidy)(()=>{this.accBeta1.assign((0,p.pow)(this.beta1,this.iterations_+1)),this.accBeta2.assign((0,p.pow)(this.beta2,this.iterations_+1))});let t=e.length/2;this.accumulatedFirstMoment=e.slice(0,t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)})),this.accumulatedSecondMoment=e.slice(t,2*t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}}},{"../engine":"c6qwc","../globals":"kUewM","../ops/add":"dX80O","../ops/div":"lbTan","../ops/mul":"3233B","../ops/pow":"aku8e","../ops/scalar":"aCdNN","../ops/sqrt":"946JS","../ops/square":"kNrd2","../ops/sub":"2lFei","../ops/zeros_like":"1peA5","./optimizer":"kmErF","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aoq0y:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AdamaxOptimizer",()=>g);var a=e("../engine"),o=e("../globals"),l=e("../ops/abs"),i=e("../ops/add"),u=e("../ops/div"),p=e("../ops/maximum"),c=e("../ops/mul"),d=e("../ops/scalar"),f=e("../ops/sub"),m=e("../ops/zeros_like"),h=e("./optimizer");class g extends h.Optimizer{static get className(){return"Adamax"}constructor(e,t,r,n=null,s=0){super(),this.learningRate=e,this.beta1=t,this.beta2=r,this.epsilon=n,this.decay=s,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],(0,o.tidy)(()=>{this.iteration=(0,d.scalar)(0).variable(),this.accBeta1=(0,d.scalar)(t).variable()}),null==n&&(this.epsilon=a.ENGINE.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(e=>e.name):Object.keys(e);(0,o.tidy)(()=>{let r=(0,f.sub)(1,this.accBeta1),n=(0,u.div)(-this.learningRate,(0,i.add)((0,c.mul)(this.iteration,this.decay),1));t.forEach((t,s)=>{let o=a.ENGINE.registeredVariables[t];null==this.accumulatedFirstMoment[s]&&(this.accumulatedFirstMoment[s]={originalName:`${t}/m`,variable:(0,m.zerosLike)(o).variable(!1)}),null==this.accumulatedWeightedInfNorm[s]&&(this.accumulatedWeightedInfNorm[s]={originalName:`${t}/v`,variable:(0,m.zerosLike)(o).variable(!1)});let d=Array.isArray(e)?e[s].tensor:e[t];if(null==d)return;let f=this.accumulatedFirstMoment[s].variable,h=this.accumulatedWeightedInfNorm[s].variable,g=(0,i.add)((0,c.mul)(f,this.beta1),(0,c.mul)(d,1-this.beta1)),x=(0,c.mul)(h,this.beta2),v=(0,l.abs)(d),y=(0,p.maximum)(x,v);f.assign(g),h.assign(y);let b=(0,i.add)((0,c.mul)((0,u.div)(n,r),(0,u.div)(g,(0,i.add)(y,this.epsilon))),o);o.assign(b)}),this.iteration.assign((0,i.add)(this.iteration,1)),this.accBeta1.assign((0,c.mul)(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),null!=this.accumulatedFirstMoment&&(0,o.dispose)(this.accumulatedFirstMoment.map(e=>e.variable)),null!=this.accumulatedWeightedInfNorm&&(0,o.dispose)(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}}},{"../engine":"c6qwc","../globals":"kUewM","../ops/abs":"9L54v","../ops/add":"dX80O","../ops/div":"lbTan","../ops/maximum":"4zHPo","../ops/mul":"3233B","../ops/scalar":"aCdNN","../ops/sub":"2lFei","../ops/zeros_like":"1peA5","./optimizer":"kmErF","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"68FSY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MomentumOptimizer",()=>d);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/mul"),u=e("../ops/scalar"),p=e("../ops/zeros_like"),c=e("./sgd_optimizer");class d extends c.SGDOptimizer{static get className(){return"Momentum"}constructor(e,t,r=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=r,this.accumulations=[],this.m=(0,u.scalar)(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(e=>e.name):Object.keys(e)).forEach((t,r)=>{let n=a.ENGINE.registeredVariables[t];null==this.accumulations[r]&&(this.accumulations[r]={originalName:`${t}/momentum`,variable:(0,o.tidy)(()=>(0,p.zerosLike)(n).variable(!1))});let s=this.accumulations[r].variable,u=Array.isArray(e)?e[r].tensor:e[t];null!=u&&(0,o.tidy)(()=>{let e,t=(0,l.add)((0,i.mul)(this.m,s),u);e=this.useNesterov?(0,l.add)((0,i.mul)(this.c,(0,l.add)(u,(0,i.mul)(t,this.m))),n):(0,l.add)((0,i.mul)(this.c,t),n),s.assign(t),n.assign(e)})}),this.incrementIterations()}dispose(){this.m.dispose(),null!=this.accumulations&&(0,o.dispose)(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e),this.accumulations=e.map(e=>({originalName:e.name,variable:e.tensor.variable(!1)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}}},{"../engine":"c6qwc","../globals":"kUewM","../ops/add":"dX80O","../ops/mul":"3233B","../ops/scalar":"aCdNN","../ops/zeros_like":"1peA5","./sgd_optimizer":"h6aU6","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],h6aU6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SGDOptimizer",()=>c);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/mul"),u=e("../ops/scalar"),p=e("./optimizer");class c extends p.Optimizer{static get className(){return"SGD"}constructor(e){super(),this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(e=>e.name):Object.keys(e)).forEach((t,r)=>{let n=Array.isArray(e)?e[r].tensor:e[t];if(null==n)return;let s=a.ENGINE.registeredVariables[t];(0,o.tidy)(()=>{let e=(0,l.add)((0,i.mul)(this.c,n),s);s.assign(e)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,null!=this.c&&this.c.dispose(),this.c=(0,o.keep)((0,u.scalar)(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(0!==(e=await this.extractIterations(e)).length)throw Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}}},{"../engine":"c6qwc","../globals":"kUewM","../ops/add":"dX80O","../ops/mul":"3233B","../ops/scalar":"aCdNN","./optimizer":"kmErF","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jahoj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"RMSPropOptimizer",()=>h);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/div"),u=e("../ops/mul"),p=e("../ops/sqrt"),c=e("../ops/square"),d=e("../ops/sub"),f=e("../ops/zeros_like"),m=e("./optimizer");class h extends m.Optimizer{static get className(){return"RMSProp"}constructor(e,t=.9,r=0,n=null,s=!1){if(super(),this.learningRate=e,this.decay=t,this.momentum=r,this.epsilon=n,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=s,null==n&&(this.epsilon=a.ENGINE.backend.epsilon()),null==e)throw Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(e=>e.name):Object.keys(e)).forEach((t,r)=>{let n=a.ENGINE.registeredVariables[t];null==this.accumulatedMeanSquares[r]&&(this.accumulatedMeanSquares[r]={originalName:`${t}/rms`,variable:(0,o.tidy)(()=>(0,f.zerosLike)(n).variable(!1))}),null==this.accumulatedMoments[r]&&(this.accumulatedMoments[r]={originalName:`${t}/momentum`,variable:(0,o.tidy)(()=>(0,f.zerosLike)(n).variable(!1))}),null==this.accumulatedMeanGrads[r]&&this.centered&&(this.accumulatedMeanGrads[r]={originalName:`${t}/mg`,variable:(0,o.tidy)(()=>(0,f.zerosLike)(n).variable(!1))});let s=Array.isArray(e)?e[r].tensor:e[t];if(null==s)return;let m=this.accumulatedMeanSquares[r].variable,h=this.accumulatedMoments[r].variable;(0,o.tidy)(()=>{let e=(0,l.add)((0,u.mul)(m,this.decay),(0,u.mul)((0,c.square)(s),1-this.decay));if(this.centered){let t=this.accumulatedMeanGrads[r].variable,a=(0,l.add)((0,u.mul)(t,this.decay),(0,u.mul)(s,1-this.decay)),o=(0,i.div)((0,u.mul)(s,this.learningRate),(0,p.sqrt)((0,d.sub)(e,(0,l.add)((0,c.square)(a),this.epsilon)))),f=(0,l.add)((0,u.mul)(h,this.momentum),o);m.assign(e),t.assign(a),h.assign(f);let g=(0,d.sub)(n,f);n.assign(g)}else{let e=(0,l.add)((0,u.mul)(m,this.decay),(0,u.mul)((0,c.square)(s),1-this.decay)),t=(0,l.add)((0,u.mul)(h,this.momentum),(0,i.div)((0,u.mul)(s,this.learningRate),(0,p.sqrt)((0,l.add)(e,this.epsilon))));m.assign(e),h.assign(t);let r=(0,d.sub)(n,t);n.assign(r)}})}),this.incrementIterations()}dispose(){null!=this.accumulatedMeanSquares&&(0,o.dispose)(this.accumulatedMeanSquares.map(e=>e.variable)),null!=this.accumulatedMeanGrads&&this.centered&&(0,o.dispose)(this.accumulatedMeanGrads.map(e=>e.variable)),null!=this.accumulatedMoments&&(0,o.dispose)(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2;this.accumulatedMeanSquares=e.slice(0,t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)})),this.accumulatedMoments=e.slice(t,2*t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)})),this.centered&&(this.accumulatedMeanGrads=e.slice(2*t,3*t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}}},{"../engine":"c6qwc","../globals":"kUewM","../ops/add":"dX80O","../ops/div":"lbTan","../ops/mul":"3233B","../ops/sqrt":"946JS","../ops/square":"kNrd2","../ops/sub":"2lFei","../ops/zeros_like":"1peA5","./optimizer":"kmErF","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2mOyX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AdadeltaOptimizer",()=>x.AdadeltaOptimizer),s.export(r,"AdagradOptimizer",()=>v.AdagradOptimizer),s.export(r,"AdamOptimizer",()=>y.AdamOptimizer),s.export(r,"AdamaxOptimizer",()=>b.AdamaxOptimizer),s.export(r,"MomentumOptimizer",()=>_.MomentumOptimizer),s.export(r,"Optimizer",()=>k.Optimizer),s.export(r,"OptimizerConstructors",()=>j.OptimizerConstructors),s.export(r,"RMSPropOptimizer",()=>I.RMSPropOptimizer),s.export(r,"SGDOptimizer",()=>w.SGDOptimizer),s.export(r,"Tensor",()=>T.Tensor),s.export(r,"TensorBuffer",()=>T.TensorBuffer),s.export(r,"Variable",()=>T.Variable),s.export(r,"Rank",()=>N.Rank),s.export(r,"sumOutType",()=>N.sumOutType),s.export(r,"upcastType",()=>N.upcastType),s.export(r,"Reduction",()=>C.Reduction),s.export(r,"customGrad",()=>R.customGrad),s.export(r,"grad",()=>R.grad),s.export(r,"grads",()=>R.grads),s.export(r,"valueAndGrad",()=>R.valueAndGrad),s.export(r,"valueAndGrads",()=>R.valueAndGrads),s.export(r,"variableGrads",()=>R.variableGrads),s.export(r,"Environment",()=>P.Environment),s.export(r,"env",()=>P.env),s.export(r,"ENV",()=>P.ENV),s.export(r,"nextFrame",()=>D.nextFrame),s.export(r,"KernelBackend",()=>W.KernelBackend),s.export(r,"DataStorage",()=>W.DataStorage),s.export(r,"version_core",()=>g.version),s.export(r,"browser",()=>i),s.export(r,"io",()=>a),s.export(r,"math",()=>o),s.export(r,"serialization",()=>d),s.export(r,"test_util",()=>m),s.export(r,"util",()=>h),s.export(r,"backend_util",()=>$),s.export(r,"broadcast_util",()=>l),s.export(r,"tensor_util",()=>f),s.export(r,"slice_util",()=>c),s.export(r,"gather_util",()=>u),s.export(r,"scatter_util",()=>p),s.export(r,"device_util",()=>O),s.export(r,"kernel_impls",()=>M);var a=e("./io/io"),o=e("./math"),l=e("./ops/broadcast_util"),i=e("./ops/browser"),u=e("./ops/gather_nd_util"),p=e("./ops/scatter_nd_util"),c=e("./ops/slice_util"),d=e("./serialization"),f=e("./tensor_util"),m=e("./test_util"),h=e("./util"),g=e("./version"),x=e("./optimizers/adadelta_optimizer"),v=e("./optimizers/adagrad_optimizer"),y=e("./optimizers/adam_optimizer"),b=e("./optimizers/adamax_optimizer"),_=e("./optimizers/momentum_optimizer"),k=e("./optimizers/optimizer"),j=e("./optimizers/optimizer_constructors"),I=e("./optimizers/rmsprop_optimizer"),w=e("./optimizers/sgd_optimizer"),T=e("./tensor"),N=e("./types"),S=e("./ops/ops");s.exportAll(S,r);var C=e("./ops/loss_ops_utils"),E=e("./train");s.exportAll(E,r);var F=e("./globals");s.exportAll(F,r);var A=e("./kernel_registry");s.exportAll(A,r);var R=e("./gradients"),P=e("./environment"),D=e("./browser_util"),$=e("./backends/backend_util"),O=e("./device_util"),M=e("./backends/kernel_impls"),W=e("./backends/backend"),B=e("./kernel_names");s.exportAll(B,r)},{"./io/io":"dCFcY","./math":"iMdsC","./ops/broadcast_util":"9OeEk","./ops/browser":"3mbL0","./ops/gather_nd_util":"jBaQj","./ops/scatter_nd_util":"cr9mr","./ops/slice_util":"cOVNx","./serialization":"3f8fL","./tensor_util":"7PL4y","./test_util":"fdsdV","./util":"icflD","./version":"2zsOw","./optimizers/adadelta_optimizer":"j1AeL","./optimizers/adagrad_optimizer":"4w9Rg","./optimizers/adam_optimizer":"f7FpJ","./optimizers/adamax_optimizer":"aoq0y","./optimizers/momentum_optimizer":"68FSY","./optimizers/optimizer":"kmErF","./optimizers/optimizer_constructors":"bxfJJ","./optimizers/rmsprop_optimizer":"jahoj","./optimizers/sgd_optimizer":"h6aU6","./tensor":"cfIkd","./types":"huvyT","./ops/ops":"165HQ","./ops/loss_ops_utils":"63OlA","./train":"6oEzQ","./globals":"kUewM","./kernel_registry":"11iA6","./gradients":"7QhD7","./environment":"h8BWL","./browser_util":"k0MXA","./backends/backend_util":"f2wbu","./device_util":"dDH0G","./backends/kernel_impls":"3sRDI","./backends/backend":"4gYBc","./kernel_names":"349aa","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dCFcY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"copyModel",()=>d.copyModel),s.export(r,"listModels",()=>d.listModels),s.export(r,"moveModel",()=>d.moveModel),s.export(r,"removeModel",()=>d.removeModel),s.export(r,"browserFiles",()=>a.browserFiles),s.export(r,"browserHTTPRequest",()=>o.browserHTTPRequest),s.export(r,"CompositeArrayBuffer",()=>c.CompositeArrayBuffer),s.export(r,"concatenateArrayBuffers",()=>l.concatenateArrayBuffers),s.export(r,"decodeWeights",()=>l.decodeWeights),s.export(r,"decodeWeightsStream",()=>l.decodeWeightsStream),s.export(r,"encodeWeights",()=>l.encodeWeights),s.export(r,"fromMemory",()=>i.fromMemory),s.export(r,"fromMemorySync",()=>i.fromMemorySync),s.export(r,"getLoadHandlers",()=>u.getLoadHandlers),s.export(r,"getModelArtifactsForJSON",()=>l.getModelArtifactsForJSON),s.export(r,"getModelArtifactsForJSONSync",()=>l.getModelArtifactsForJSONSync),s.export(r,"getModelArtifactsInfoForJSON",()=>l.getModelArtifactsInfoForJSON),s.export(r,"getSaveHandlers",()=>u.getSaveHandlers),s.export(r,"getWeightSpecs",()=>l.getWeightSpecs),s.export(r,"http",()=>o.http),s.export(r,"isHTTPScheme",()=>o.isHTTPScheme),s.export(r,"loadWeights",()=>p.loadWeights),s.export(r,"registerLoadRouter",()=>u.registerLoadRouter),s.export(r,"registerSaveRouter",()=>u.registerSaveRouter),s.export(r,"weightsLoaderFactory",()=>p.weightsLoaderFactory),s.export(r,"withSaveHandler",()=>i.withSaveHandler),s.export(r,"withSaveHandlerSync",()=>i.withSaveHandlerSync),e("./indexed_db"),e("./local_storage");var a=e("./browser_files"),o=e("./http"),l=e("./io_utils"),i=e("./passthrough"),u=e("./router_registry"),p=e("./weights_loader"),c=e("./composite_array_buffer"),d=e("./model_management")},{"./indexed_db":"aOV6O","./local_storage":"fYfpb","./browser_files":"5KlMV","./http":"lkQ6k","./io_utils":"I1MAO","./passthrough":"b2jWf","./router_registry":"luXuJ","./weights_loader":"l2sGW","./composite_array_buffer":"d6FlQ","./model_management":"1lmNR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5KlMV":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"BrowserDownloads",()=>p),s.export(r,"browserDownloadsRouter",()=>d),s.export(r,"browserDownloads",()=>f),s.export(r,"browserFiles",()=>m),e("../flags");var a=e("../environment"),o=e("./io_utils"),l=e("./router_registry"),i=e("./composite_array_buffer");function u(e){return new Promise(e=>setTimeout(e)).then(e)}class p{constructor(e){if(!(0,a.env)().getBool("IS_BROWSER"))throw Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(p.URL_SCHEME)&&(e=e.slice(p.URL_SCHEME.length)),(null==e||0===e.length)&&(e="model"),this.modelJsonFileName=e+".json",this.weightDataFileName=e+".weights.bin"}async save(e){if("undefined"==typeof document)throw Error("Browser downloads are not supported in this environment since `document` is not present");let t=i.CompositeArrayBuffer.join(e.weightData),r=window.URL.createObjectURL(new Blob([t],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let t=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],n=(0,o.getModelJSONForModelArtifacts)(e,t),s=window.URL.createObjectURL(new Blob([JSON.stringify(n)],{type:"application/json"})),a=null==this.modelJsonAnchor?document.createElement("a"):this.modelJsonAnchor;if(a.download=this.modelJsonFileName,a.href=s,await u(()=>a.dispatchEvent(new MouseEvent("click"))),null!=e.weightData){let e=null==this.weightDataAnchor?document.createElement("a"):this.weightDataAnchor;e.download=this.weightDataFileName,e.href=r,await u(()=>e.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:(0,o.getModelArtifactsInfoForJSON)(e)}}}}p.URL_SCHEME="downloads://";class c{constructor(e){if(null==e||e.length<1)throw Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.jsonFile=e[0],this.weightsFiles=e.slice(1)}async load(){return new Promise((e,t)=>{let r=new FileReader;r.onload=r=>{let n=JSON.parse(r.target.result),s=n.modelTopology;return null==s?void t(Error(`modelTopology field is missing from file ${this.jsonFile.name}`)):null==n.weightsManifest?void t(Error(`weightManifest field is missing from file ${this.jsonFile.name}`)):0===this.weightsFiles.length?void e({modelTopology:s}):void e((0,o.getModelArtifactsForJSON)(n,e=>this.loadWeights(e)))},r.onerror=e=>t(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),r.readAsText(this.jsonFile)})}loadWeights(e){let t=[],r=[];for(let n of e)t.push(...n.weights),r.push(...n.paths);let n=this.checkManifestAndWeightFiles(e);return Promise.all(r.map(e=>this.loadWeightsFile(e,n[e]))).then(e=>[t,e])}loadWeightsFile(e,t){return new Promise((r,n)=>{let s=new FileReader;s.onload=e=>{r(e.target.result)},s.onerror=t=>n(`Failed to weights data from file of path '${e}'.`),s.readAsArrayBuffer(t)})}checkManifestAndWeightFiles(e){let t=[],r=this.weightsFiles.map(e=>(0,o.basename)(e.name)),n={};for(let s of e)s.paths.forEach(e=>{let s=(0,o.basename)(e);if(-1!==t.indexOf(s))throw Error(`Duplicate file basename found in weights manifest: '${s}'`);if(t.push(s),-1===r.indexOf(s))throw Error(`Weight file with basename '${s}' is not provided.`);n[e]=this.weightsFiles[r.indexOf(s)]});if(t.length!==this.weightsFiles.length)throw Error(`Mismatch in the number of files in weights manifest (${t.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return n}}let d=e=>(0,a.env)().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(p.URL_SCHEME)?f(e.slice(p.URL_SCHEME.length)):null;function f(e="model"){return new p(e)}function m(e){return new c(e)}l.IORouterRegistry.registerSaveRouter(d)},{"../flags":"8o4LZ","../environment":"h8BWL","./io_utils":"I1MAO","./router_registry":"luXuJ","./composite_array_buffer":"d6FlQ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lkQ6k:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"HTTPRequest",()=>c),s.export(r,"parseUrl",()=>d),s.export(r,"isHTTPScheme",()=>f),s.export(r,"httpRouter",()=>m),s.export(r,"http",()=>h),s.export(r,"browserHTTPRequest",()=>g);var a=e("../environment"),o=e("../util"),l=e("./io_utils"),i=e("./composite_array_buffer"),u=e("./router_registry"),p=e("./weights_loader");class c{constructor(e,t){if(this.DEFAULT_METHOD="POST",null==t&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.weightUrlConverter=t.weightUrlConverter,null!=t.fetchFunc?((0,o.assert)("function"==typeof t.fetchFunc,()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=(0,a.env)().platform.fetch,(0,o.assert)(null!=e&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&(0,o.assert)(2===e.length,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,null!=t.requestInit&&null!=t.requestInit.body)throw Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{},this.loadOptions=t}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let r=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],n=(0,l.getModelJSONForModelArtifacts)(e,r);if(t.body.append("model.json",new Blob([JSON.stringify(n)],{type:"application/json"}),"model.json"),null!=e.weightData){let r=i.CompositeArrayBuffer.join(e.weightData);t.body.append("model.weights.bin",new Blob([r],{type:"application/octet-stream"}),"model.weights.bin")}let s=await this.fetch(this.path,t);if(s.ok)return{modelArtifactsInfo:(0,l.getModelArtifactsInfoForJSON)(e),responses:[s]};throw Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`)}async loadModelJSON(){let e,t=await this.fetch(this.path,this.requestInit);if(!t.ok)throw Error(`Request to ${this.path} failed with status code ${t.status}. Please verify this URL points to the model JSON of the model to load.`);try{e=await t.json()}catch(t){let e=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?e+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":e+=" Please make sure the server is serving valid JSON for this request.",Error(e)}let r=e.modelTopology,n=e.weightsManifest;if(null==r&&null==n)throw Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return e}async load(){if(this.loadOptions.streamWeights)return this.loadStream();let e=await this.loadModelJSON();return(0,l.getModelArtifactsForJSON)(e,e=>this.loadWeights(e))}async loadStream(){let e=await this.loadModelJSON(),t=await this.getWeightUrls(e.weightsManifest),r=(0,l.getWeightSpecs)(e.weightsManifest);return Object.assign(Object.assign({},e),{weightSpecs:r,getWeightStream:()=>(0,p.streamWeights)(t,this.loadOptions)})}async getWeightUrls(e){let[t,r]=d(Array.isArray(this.path)?this.path[1]:this.path),n=this.weightPathPrefix||t,s=[],a=[];for(let t of e)for(let e of t.paths)null!=this.weightUrlConverter?a.push(this.weightUrlConverter(e)):s.push(n+e+r);return this.weightUrlConverter&&s.push(...await Promise.all(a)),s}async loadWeights(e){let t=await this.getWeightUrls(e);return[(0,l.getWeightSpecs)(e),await (0,p.loadWeightsAsArrayBuffer)(t,this.loadOptions)]}}function d(e){let t=e.lastIndexOf("/"),r=e.lastIndexOf("?");return[e.substring(0,t)+"/",r>t?e.substring(r):""]}function f(e){return null!=e.match(c.URL_SCHEME_REGEX)}c.URL_SCHEME_REGEX=/^https?:\/\//;let m=(e,t)=>{if("undefined"==typeof fetch&&(null==t||null==t.fetchFunc));else{let r=!0;if(Array.isArray(e)?e.every(e=>f(e)):f(e))return h(e,t)}return null};function h(e,t){return new c(e,t)}function g(e,t){return h(e,t)}u.IORouterRegistry.registerSaveRouter(m),u.IORouterRegistry.registerLoadRouter(m)},{"../environment":"h8BWL","../util":"icflD","./io_utils":"I1MAO","./composite_array_buffer":"d6FlQ","./router_registry":"luXuJ","./weights_loader":"l2sGW","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],l2sGW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"loadWeightsAsArrayBuffer",()=>c),s.export(r,"streamWeights",()=>d),s.export(r,"loadWeights",()=>f),s.export(r,"weightsLoaderFactory",()=>m);var a=e("../environment"),o=e("../util"),l=e("./composite_array_buffer"),i=e("./io_utils"),u=e("./progress"),p=e("./types");async function c(e,t){null==t&&(t={});let r=null==t.fetchFunc?(0,a.env)().platform.fetch:t.fetchFunc,n=e.map(e=>r(e,t.requestInit,{isBinary:!0})),s=(null==t.onProgress?await Promise.all(n):await (0,u.monitorPromisesProgress)(n,t.onProgress,0,.5)).map(e=>e.arrayBuffer());return null==t.onProgress?await Promise.all(s):await (0,u.monitorPromisesProgress)(s,t.onProgress,.5,1)}function d(e,t){var r;let n,s=null==t.fetchFunc?(0,a.env)().platform.fetch:t.fetchFunc,o=0;return null==(r=t.onProgress)||r.call(t,0),new ReadableStream({pull:async r=>{for(var a;oc(e,{requestInit:n}))(e,t,r)}function m(e){return async(t,r="",n)=>{let s=t.map(()=>!1),a={},u=null!=n?n.map(()=>!1):[],c=[];if(t.forEach((e,t)=>{let r=0;e.weights.forEach(e=>{let l="quantization"in e?e.quantization.dtype:e.dtype,i=p.DTYPE_VALUE_SIZE_MAP[l]*o.sizeFromShape(e.shape),d=()=>{s[t]=!0,null==a[t]&&(a[t]=[]),a[t].push({manifestEntry:e,groupOffset:r,sizeBytes:i})};null!=n?n.forEach((t,r)=>{t===e.name&&(d(),u[r]=!0)}):d(),c.push(e.name),r+=i})}),!u.every(e=>e)){let e=n.filter((e,t)=>!u[t]);throw Error(`Could not find weights in manifest with names: ${e.join(", ")}. +Manifest JSON has weights with names: ${c.join(", ")}.`)}let d=s.reduce((e,t,r)=>(t&&e.push(r),e),[]),f=[];d.forEach(e=>{t[e].paths.forEach(e=>{let t=r+(r.endsWith("/")?"":"/")+e;f.push(t)})});let m=await e(f),h={},g=0;return d.forEach(e=>{let r=t[e].paths.length,n=new(0,l.CompositeArrayBuffer)(m.slice(g,g+r));a[e].forEach(e=>{let t=n.slice(e.groupOffset,e.groupOffset+e.sizeBytes),r=(0,i.decodeWeights)(t,[e.manifestEntry]);for(let e in r)h[e]=r[e]}),g+=r}),h}}},{"../environment":"h8BWL","../util":"icflD","./composite_array_buffer":"d6FlQ","./io_utils":"I1MAO","./progress":"7AXJi","./types":"8bskX","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7AXJi":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"monitorPromisesProgress",()=>o);var a=e("../util");function o(e,t,r,n){var s,o,l;s=e,(0,a.assert)(null!=s&&Array.isArray(s)&&s.length>0,()=>"promises must be a none empty array"),o=r=null==r?0:r,l=n=null==n?1:n,(0,a.assert)(o>=0&&o<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${o}`),(0,a.assert)(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${l}`),(0,a.assert)(l>=o,()=>`startFraction must be no more than endFraction, but got startFraction ${o} and endFraction ${l}`);let i=0;return Promise.all(e.map(s=>(s.then(s=>(t(r+ ++i/e.length*(n-r)),s)),s)))}},{"../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],b2jWf:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fromMemory",()=>i),s.export(r,"fromMemorySync",()=>u),s.export(r,"withSaveHandler",()=>p),s.export(r,"withSaveHandlerSync",()=>c);class a{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}}class o{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}}class l{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}}function i(e,t,r,n){let s=arguments;return new l(u(...s))}function u(e,t,r,n){return 1!=arguments.length?(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new a({modelTopology:e,weightSpecs:t,weightData:r,trainingConfig:n})):null!=e.modelTopology||null!=e.weightSpecs?new a(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new a({modelTopology:e}))}function p(e){return new o(e)}function c(e){return new o(e)}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iMdsC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"confusionMatrix",()=>a.confusionMatrix);var a=e("./ops/confusion_matrix")},{"./ops/confusion_matrix":"5Fmtv","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5Fmtv":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"confusionMatrix_",()=>d),s.export(r,"confusionMatrix",()=>f);var a=e("../tensor_util_env"),o=e("../util"),l=e("./cast"),i=e("./mat_mul"),u=e("./one_hot"),p=e("./operation"),c=e("./transpose");function d(e,t,r){let n=(0,a.convertToTensor)(e,"labels","confusionMatrix"),s=(0,a.convertToTensor)(t,"predictions","confusionMatrix");o.assert(null==r||r>0&&Number.isInteger(r),()=>`If provided, numClasses must be a positive integer, but got ${r}`),o.assert(1===n.rank,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),o.assert(1===s.rank,()=>`Expected the rank of predictions to be 1, but got ${s.rank}`),o.assert(n.shape[0]===s.shape[0],()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${s.shape[0]}. Labels and predictions should have the same number of elements.`),o.assert(r>0&&Number.isInteger(r),()=>`numClasses is required to be a positive integer, but got ${r}`);let p=(0,u.oneHot)((0,l.cast)(n,"int32"),r),d=(0,u.oneHot)((0,l.cast)(s,"int32"),r),f=(0,c.transpose)(p),m=(0,i.matMul)(f,d);return(0,l.cast)(m,"int32")}let f=(0,p.op)({confusionMatrix_:d})},{"../tensor_util_env":"5isXB","../util":"icflD","./cast":"juFUN","./mat_mul":"hHb0J","./one_hot":"iJ8nQ","./operation":"2me4m","./transpose":"dg4Sa","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3mbL0":[function(e,t,r,n){let s;var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"fromPixelsAsync",()=>x),a.export(r,"toPixels",()=>y),a.export(r,"draw",()=>b),a.export(r,"fromPixels",()=>_);var o=e("../engine"),l=e("../environment"),i=e("../kernel_names"),u=e("../kernel_registry"),p=e("../tensor"),c=e("../tensor_util_env"),d=e("./cast"),f=e("./operation"),m=e("./tensor3d");let h=!1;function g(e,t=3){let r,n;if(t>4)throw Error("Cannot construct Tensor with more than 4 channels from pixels.");if(null==e)throw Error("pixels passed to tf.browser.fromPixels() can not be null");let a=!1,l=!1,p=!1,c=!1,d=!1,f=!1;if(e.data instanceof Uint8Array)a=!0;else if("undefined"!=typeof ImageData&&e instanceof ImageData)l=!0;else if("undefined"!=typeof HTMLVideoElement&&e instanceof HTMLVideoElement)p=!0;else if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement)c=!0;else if(null!=e.getContext)d=!0;else if("undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap)f=!0;else throw Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);if(null!=(0,u.getKernel)(i.FromPixels,o.ENGINE.backendName))return o.ENGINE.runKernel(i.FromPixels,{pixels:e},{numChannels:t});let[h,x]=p?[e.videoWidth,e.videoHeight]:[e.width,e.height];if(d)r=e.getContext("2d").getImageData(0,0,h,x).data;else if(l||a)r=e.data;else if(c||p||f){if(null==s)if("undefined"==typeof document)if("undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof OffscreenCanvasRenderingContext2D)s=new OffscreenCanvas(1,1).getContext("2d");else throw Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else s=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});s.canvas.width=h,s.canvas.height=x,s.drawImage(e,0,0,h,x),r=s.getImageData(0,0,h,x).data}if(4===t)n=new Int32Array(r);else{let e=h*x;n=new Int32Array(e*t);for(let s=0;s4||2===t)throw Error(`toPixels only supports depth of size 1, 3 or 4 but got ${t}`);if("float32"!==e.dtype&&"int32"!==e.dtype)throw Error(`Unsupported type for toPixels: ${e.dtype}. Please use float32 or int32 tensors.`)}async function y(e,t){let r=(0,c.convertToTensor)(e,"img","toPixels");if(!(e instanceof p.Tensor)){let e=r;r=(0,d.cast)(e,"int32"),e.dispose()}v(r);let[n,s]=r.shape.slice(0,2),a=2===r.rank?1:r.shape[2],l=await r.data(),f="float32"===r.dtype?255:1,m=new Uint8ClampedArray(s*n*4);for(let e=0;e1)throw Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${s}.`)}else if("int32"===r.dtype&&(s<0||s>255))throw Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${s}.`);1===a?(t[0]=s*f,t[1]=s*f,t[2]=s*f):t[n]=s*f}let n=4*e;m[n+0]=Math.round(t[0]),m[n+1]=Math.round(t[1]),m[n+2]=Math.round(t[2]),m[n+3]=Math.round(t[3])}if(null!=t){h||null!=(0,u.getKernel)(i.Draw,o.ENGINE.backendName)&&(console.warn("tf.browser.toPixels is not efficient to draw tensor on canvas. Please try tf.browser.draw instead."),h=!0),t.width=s,t.height=n;let e=t.getContext("2d"),r=new ImageData(m,s,n);e.putImageData(r,0,0)}return r!==e&&r.dispose(),m}function b(e,t,r){let n=(0,c.convertToTensor)(e,"img","draw");if(!(e instanceof p.Tensor)){let e=n;n=(0,d.cast)(e,"int32"),e.dispose()}v(n);var s=null==r?void 0:r.imageOptions;let a=(null==s?void 0:s.alpha)||1;if(a>1||a<0)throw Error(`Alpha value ${a} is suppoed to be in range [0 - 1].`);let l={image:n};o.ENGINE.runKernel(i.Draw,l,{canvas:t,options:r})}let _=(0,f.op)({fromPixels_:g})},{"../engine":"c6qwc","../environment":"h8BWL","../kernel_names":"349aa","../kernel_registry":"11iA6","../tensor":"cfIkd","../tensor_util_env":"5isXB","./cast":"juFUN","./operation":"2me4m","./tensor3d":"3ETxr","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jBaQj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prepareAndValidate",()=>o);var a=e("../util");function o(e,t){let r=e.shape.length,n=t.shape.length;if(r<1)throw Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${r}.`);if(n<1)throw Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${n}.`);if("int32"!==t.dtype)throw Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[n-1]>r)throw Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[n-1]} vs. ${r}`);if(0===(0,a.sizeFromShape)(e.shape))throw Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);let s=t.shape,o=s[s.length-1],l=1;for(let e=0;ee/p),1].slice(0,o);return[u,l,p,c]}},{"../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cOVNx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"assertParamsValid",()=>o),s.export(r,"maskToAxes",()=>l),s.export(r,"computeOutShape",()=>i),s.export(r,"stridesWithElidedDims",()=>u),s.export(r,"getNormalizedAxes",()=>d),s.export(r,"startIndicesWithElidedDims",()=>f),s.export(r,"stopIndicesWithElidedDims",()=>m),s.export(r,"stridesForAxis",()=>h),s.export(r,"startForAxis",()=>g),s.export(r,"stopForAxis",()=>x),s.export(r,"isSliceContinous",()=>v),s.export(r,"computeFlatOffset",()=>y),s.export(r,"parseSliceParams",()=>b),s.export(r,"sliceInfo",()=>_);var a=e("../util");function o(e,t,r){let n=e.shape.length;a.assert(n===t.length,()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`),a.assert(n===r.length,()=>`Error in slice${n}D: Length of size ${r} must match the rank of the array (${n}).`);for(let s=0;s`Error in slice${n}D: begin[${s}] + size[${s}] (${t[s]+r[s]}) would overflow input.shape[${s}] (${e.shape[s]})`)}function l(e){let t=[],r=0;for(;e>0;)1&e&&t.push(r),e/=2,r++;return t}function i(e,t,r){let n=[];for(let s=0;s0){let i=t[0],p=r+1;c=f(o,i,p,n,e),d=m(l,i,p,s,e),v=u(a,i,p,e)}else for(let t=0;t-1)a[s]=0;else{var l,i,u;let o=(l=t,i=r,(u=s)<=l?u:u-(i-1)),p=n[o];e&1<-1)o[s]=Number.MAX_SAFE_INTEGER;else{var i,u,p;let a=(i=t,u=r,(p=s)<=i?p:p-(u-1)),l=n[a];e&1<0?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER);let u=n[s];return l<0&&(l+=u),l=a.clamp(0,l,u-1)}function x(e,t,r,n,s,o){let l=t[s],i=r[s]||1;(e&1<0?Number.MAX_SAFE_INTEGER:Number.MIN_SAFE_INTEGER);let u=n[s];return l<0&&(l+=u),l=i>0?a.clamp(0,l,u):a.clamp(-1,l,u-1)}function v(e,t,r){let n=r.length;for(let e=0;e1){n=e;break}for(let s=n+1;s0||r[s]!==e[s])return!1;return!0}function y(e,t){let r=e.length>0?e[e.length-1]:1;for(let n=0;n{a.assert(-1!==e,()=>"slice() does not support negative begin indexing.")}),s=(s=null==r?Array(o).fill(-1):"number"==typeof r?[r,...Array(o-1).fill(-1)]:r.lengtht>=0?t:(a.assert(-1===t,()=>`Negative size values should be exactly -1 but got ${t} for the slice() size at index ${r}.`),e.shape[r]-n[r])),[n,s]}function _(e,t,r,n,s,a,o,l,i){let u;if(null==n?(u=Array(t.length)).fill(1):u=n,null!=o&&(o&o-1)!=0)throw Error("Multiple ellipses in slice is not allowed.");let p=!1,c={dims:u.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:r.slice(),strides:u.slice(),beginMask:s,endMask:a,ellipsisMask:o,newAxisMask:l,shrinkAxisMask:i};for(let e=0;e0?0:-1,d.strides[t]>0?s:s-1];if(n&&d.strides[t]<=0)throw Error("only stride 1 allowed on non-range indexing.");v=v&&1===d.strides[t];let l=!!(d.beginMask&1<=s)throw Error(`slice index ${d.begin[t]} of dimension ${t} out of bounds.`)}else d.begin[t]=k(d.begin[t],0,d.strides[t],s,a,o),d.end[t]=k(d.end[t],1,d.strides[t],s,a,o);let e=1===d.strides[t]&&0===d.begin[t]&&d.end[t]===s;g=g&&e,x=x&&(0===t&&1===d.strides[t]||e)}else g=g&&1===d.strides[t]&&l,x=x&&(0===t&&1===d.strides[t]||l);let i=!1;if(d.beginValid&&d.endValid?(r=d.end[t]-d.begin[t],i=!0):n?(r=1,i=!0):l&&s>=0&&(r=d.strides[t]<0?-s:s,i=!0),i){let e;e=0===r||r<0!=d.strides[t]<0?0:Math.trunc(r/d.strides[t])+ +(r%d.strides[t]!=0),y.push(e)}else y.push(-1)}for(let e=0;e=0?b.push(y[t]):-2===t&&b.push(1)}return{finalShapeSparse:b.filter((e,t)=>-2!==d.finalShapeGatherIndices[t]),finalShape:b,isIdentity:g,sliceDim0:x,isSimpleSlice:v,begin:d.begin,end:d.end,strides:d.strides}}function k(e,t,r,n,s,a){if(s[t])return r>0?a[t]:a[t+1&1];{let t=e<0?n+e:e;return ta[1]?a[1]:t}}},{"../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2zsOw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"version",()=>a);let a="4.22.0"},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bxfJJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"OptimizerConstructors",()=>d);var a=e("./adadelta_optimizer"),o=e("./adagrad_optimizer"),l=e("./adam_optimizer"),i=e("./adamax_optimizer"),u=e("./momentum_optimizer"),p=e("./rmsprop_optimizer"),c=e("./sgd_optimizer");class d{static sgd(e){return new(0,c.SGDOptimizer)(e)}static momentum(e,t,r=!1){return new(0,u.MomentumOptimizer)(e,t,r)}static rmsprop(e,t=.9,r=0,n=null,s=!1){return new(0,p.RMSPropOptimizer)(e,t,r,n,s)}static adam(e=.001,t=.9,r=.999,n=null){return new(0,l.AdamOptimizer)(e,t,r,n)}static adadelta(e=.001,t=.95,r=null){return new(0,a.AdadeltaOptimizer)(e,t,r)}static adamax(e=.002,t=.9,r=.999,n=null,s=0){return new(0,i.AdamaxOptimizer)(e,t,r,n,s)}static adagrad(e,t=.1){return new(0,o.AdagradOptimizer)(e,t)}}},{"./adadelta_optimizer":"j1AeL","./adagrad_optimizer":"4w9Rg","./adam_optimizer":"f7FpJ","./adamax_optimizer":"aoq0y","./momentum_optimizer":"68FSY","./rmsprop_optimizer":"jahoj","./sgd_optimizer":"h6aU6","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6oEzQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"train",()=>a);let a=e("./optimizers/optimizer_constructors").OptimizerConstructors},{"./optimizers/optimizer_constructors":"bxfJJ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],k0MXA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nextFrame",()=>o);let a="undefined"!=typeof requestAnimationFrame?requestAnimationFrame:"undefined"!=typeof setImmediate?setImmediate:e=>e();function o(){return new Promise(e=>a(()=>e()))}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],f2wbu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"upcastType",()=>h.upcastType),s.export(r,"slice_util",()=>m),s.export(r,"segment_util",()=>C),s.export(r,"fromUint8ToStringArray",()=>E),s.export(r,"fromStringArrayToUint8",()=>F);var a=e("../util"),o=e("../ops/axis_util");s.exportAll(o,r);var l=e("../ops/broadcast_util");s.exportAll(l,r);var i=e("../ops/concat_util");s.exportAll(i,r);var u=e("../ops/conv_util");s.exportAll(u,r);var p=e("../ops/fused_util");s.exportAll(p,r);var c=e("../ops/fused_types");s.exportAll(c,r);var d=e("../ops/ragged_to_dense_util");s.exportAll(d,r);var f=e("../ops/reduce_util");s.exportAll(f,r);var m=e("../ops/slice_util"),h=e("../types"),g=e("../ops/rotate_util");s.exportAll(g,r);var x=e("../ops/array_ops_util");s.exportAll(x,r);var v=e("../ops/gather_nd_util");s.exportAll(v,r);var y=e("../ops/scatter_nd_util");s.exportAll(y,r);var b=e("../ops/selu_util");s.exportAll(b,r),s.exportAll(p,r);var _=e("../ops/erf_util");s.exportAll(_,r);var k=e("../log");s.exportAll(k,r);var j=e("../backends/complex_util");s.exportAll(j,r);var I=e("../backends/einsum_util");s.exportAll(I,r);var w=e("../ops/split_util");s.exportAll(w,r);var T=e("../ops/sparse/sparse_fill_empty_rows_util");s.exportAll(T,r);var N=e("../ops/sparse/sparse_reshape_util");s.exportAll(N,r);var S=e("../ops/sparse/sparse_segment_reduction_util");s.exportAll(S,r);var C=e("../ops/segment_util");function E(e){try{return e.map(e=>(0,a.decodeString)(e))}catch(e){throw Error(`Failed to decode encoded string bytes into utf-8, error: ${e}`)}}function F(e){return e.map(e=>(0,a.encodeString)(e))}},{"../util":"icflD","../ops/axis_util":"4dwwj","../ops/broadcast_util":"9OeEk","../ops/concat_util":"5nMQ1","../ops/conv_util":"1HzRR","../ops/fused_util":"lc1OW","../ops/fused_types":"16ukp","../ops/ragged_to_dense_util":"1BzL7","../ops/reduce_util":"8zSdd","../ops/slice_util":"cOVNx","../types":"huvyT","../ops/rotate_util":"lwhI9","../ops/array_ops_util":"fSc5y","../ops/gather_nd_util":"jBaQj","../ops/scatter_nd_util":"cr9mr","../ops/selu_util":"7vU7d","../ops/erf_util":"ad9vI","../log":"dvDGk","../backends/complex_util":"704kV","../backends/einsum_util":"1n2Lz","../ops/split_util":"gOFZ2","../ops/sparse/sparse_fill_empty_rows_util":"2aOE7","../ops/sparse/sparse_reshape_util":"hwT1V","../ops/sparse/sparse_segment_reduction_util":"iwNmo","../ops/segment_util":"aCsHG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5nMQ1":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"assertParamsConsistent",()=>o),s.export(r,"computeOutShape",()=>l);var a=e("../util");function o(e,t){let r=e[0].length;e.forEach((e,t)=>{a.assert(e.length===r,()=>`Error in concat${r}D: rank of tensors[${t}] must be the same as the rank of the rest (${r})`)}),a.assert(t>=0&&t`Error in concat${r}D: axis must be between 0 and ${r-1}.`);let n=e[0];e.forEach((e,s)=>{for(let o=0;o`Error in concat${r}D: Shape of tensors[${s}] (${e}) does not match the shape of the rest (${n}) along the non-concatenated axis ${s}.`)})}function l(e,t){let r=e[0].slice();for(let n=1;n=0)if(l>=0){if(l!==a)throw Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${s+e}] = ${a} but shape[${s+e}] = ${l}`)}else n[o]=a}return n}function i(e){let t={FIRST_DIM_SIZE:a.FIRST_DIM_SIZE,VALUE_ROWIDS:a.VALUE_ROWIDS,ROW_LENGTHS:a.ROW_LENGTHS,ROW_SPLITS:a.ROW_SPLITS,ROW_LIMITS:a.ROW_LIMITS,ROW_STARTS:a.ROW_STARTS},r=[];for(let n of e)if(n in t)r.push(t[n]);else break;return r}function u(e){return 0===e.length?0:e[0]===a.FIRST_DIM_SIZE?e.length-1:e.length}function p(e,t){if(null==e||null==t)return;let r=e.length,n=t.length;if(r>=n)throw Error(`defaultValue.shape=${e} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${r} must be less than ragged tensor input flatValues.rank = ${n})`);for(let s=0;s=0&&n>=0&&1!==r&&r!==n)throw Error(`defaultValue.shape=${e}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${s-e.length}] = ${r} but ragged tensor input.flatValues.shape[${s-e.length}] = ${n}`)}}o.defineInteropFlag(r),o.export(r,"RowPartitionType",()=>a),o.export(r,"combineRaggedTensorToTensorShapes",()=>l),o.export(r,"getRowPartitionTypesHelper",()=>i),o.export(r,"getRaggedRank",()=>u),o.export(r,"validateDefaultValueShape",()=>p),(s=a||(a={}))[s.FIRST_DIM_SIZE=0]="FIRST_DIM_SIZE",s[s.VALUE_ROWIDS=1]="VALUE_ROWIDS",s[s.ROW_LENGTHS=2]="ROW_LENGTHS",s[s.ROW_SPLITS=3]="ROW_SPLITS",s[s.ROW_LIMITS=4]="ROW_LIMITS",s[s.ROW_STARTS=5]="ROW_STARTS"},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8zSdd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"PARALLELIZE_THRESHOLD",()=>o),s.export(r,"computeOptimalWindowSize",()=>l);var a=e("../util");let o=30;function l(e){return e<=o?e:(0,a.nearestDivisor)(e,Math.floor(Math.sqrt(e)))}},{"../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lwhI9:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t,r){return[r*("number"==typeof e?e:e[0]),t*("number"==typeof e?e:e[1])]}s.defineInteropFlag(r),s.export(r,"getImageCenter",()=>a)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fSc5y:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t,r,n=!0){let s=[];if(n)(s=s.concat(t.slice(0))).push(e[0]/r),s=s.concat(e.slice(1));else{s=s.concat(e[0]);let r=t.length;for(let n=0;n=2*t+1||n%2==1?s.push(n):r.push(n);n.push(...r),n.push(0),n.push(...s)}return n}function l(e,t,r,n=!0){let s=[];n?s.push(e[0]/r):s.push(e[0]*r);for(let r=1;ra),s.export(r,"getPermuted",()=>o),s.export(r,"getReshapedPermuted",()=>l),s.export(r,"getSliceBeginCoords",()=>i),s.export(r,"getSliceSize",()=>u)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7vU7d":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SELU_SCALEALPHA",()=>a),s.export(r,"SELU_SCALE",()=>o);let a=1.7580993408473768,o=1.0507009873554805},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ad9vI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ERF_P",()=>a),s.export(r,"ERF_A1",()=>o),s.export(r,"ERF_A2",()=>l),s.export(r,"ERF_A3",()=>i),s.export(r,"ERF_A4",()=>u),s.export(r,"ERF_A5",()=>p);let a=.3275911,o=.254829592,l=-.284496736,i=1.421413741,u=-1.453152027,p=1.061405429},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"704kV":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){if(e.length!==t.length)throw Error(`Cannot merge real and imag arrays of different lengths. real:${e.length}, imag: ${t.length}.`);let r=new Float32Array(2*e.length);for(let n=0;na),s.export(r,"splitRealAndImagArrays",()=>o),s.export(r,"complexWithEvenIndex",()=>l),s.export(r,"complexWithOddIndex",()=>i),s.export(r,"getComplexWithIndex",()=>u),s.export(r,"assignToTypedArray",()=>p),s.export(r,"exponents",()=>c),s.export(r,"exponent",()=>d)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1n2Lz":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"decodeEinsumEquation",()=>l),s.export(r,"getEinsumPermutation",()=>i),s.export(r,"checkEinsumDimSizes",()=>u),s.export(r,"getEinsumComputePath",()=>p),s.export(r,"isIdentityPermutation",()=>c);var a=e("../util_base");let o=/->/g;function l(e,t){let r=((e=e.replace(/\s/g,"")).length-e.replace(o,"").length)/2;if(r<1)throw Error("Equations without an arrow are not supported.");if(r>1)throw Error('Equation must contain exactly one arrow ("->").');let[n,s]=e.split("->");(0,a.assert)(-1===n.indexOf("..."),()=>'The ellipsis notation ("...") is not supported yet.');let l=n.split(","),i=l.length;if(t!==i)throw Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw Error("Support for more than 2 input tensors is not implemented yet.");let u=[];for(let e=0;e-1!==e.indexOf(t)))throw Error(`Output subscripts contain the label ${t} not present in the input subscripts.`);-1===u.indexOf(t)&&u.push(t)}for(let e=0;e-1!==e),expandDims:n}}function u(e,t,r){let n=Array(e);for(let e=0;e`Expected dimension ${n[t[e][r]]} at axis ${r} of input shaped ${JSON.stringify(s)}, but got dimension ${s[r]}`)}}function p(e,t){let r=[],n=0;0===e.length&&e.push(-1),n=e.length+1;for(let e=0;ee===t)}},{"../util_base":"bNQH0","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gOFZ2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prepareSplitSize",()=>o);var a=e("../util");function o(e,t,r=0){let n=[];if("number"==typeof t)(0,a.assert)(e.shape[r]%t==0,()=>"Number of splits must evenly divide the axis."),n=Array(t).fill(e.shape[r]/t);else{let s=t.reduce((e,t)=>(-1===t&&(e+=1),e),0);(0,a.assert)(s<=1,()=>"There should be only one negative value in split array.");let o=t.indexOf(-1);if(-1!==o){let n=t.reduce((e,t)=>t>0?e+t:e);t[o]=e.shape[r]-n}(0,a.assert)(e.shape[r]===t.reduce((e,t)=>e+t),()=>"The sum of sizes must match the size of the axis dimension."),n=t}return n}},{"../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2aOE7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){return`Received SparseTensor with denseShape[0] = 0 but + indices.shape[0] = ${e}`}function o(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function l(e,t,r){return`indices(${e}, 0) is invalid: ${t} >= ${r}`}s.defineInteropFlag(r),s.export(r,"getSparseFillEmptyRowsIndicesDenseShapeMismatch",()=>a),s.export(r,"getSparseFillEmptyRowsNegativeIndexErrorMessage",()=>o),s.export(r,"getSparseFillEmptyRowsOutOfRangeIndexErrorMessage",()=>l)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hwT1V:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getSparseReshapeMultipleNegativeOneOutputDimErrorMessage",()=>o),s.export(r,"getSparseReshapeNegativeOutputDimErrorMessage",()=>l),s.export(r,"getSparseReshapeEmptyTensorZeroOutputDimErrorMessage",()=>i),s.export(r,"getSparseReshapeInputOutputMultipleErrorMessage",()=>u),s.export(r,"getSparseReshapeInputOutputMismatchErrorMessage",()=>p);var a=e("../../util");function o(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function l(e,t){return`size ${e} must be non-negative, not ${t}`}function i(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function u(e,t){let r=(0,a.sizeFromShape)(e),n=(0,a.sizeFromShape)(t);return`Input to reshape is a SparseTensor with ${r} + dense values, but the requested shape requires a multiple of ${n}. inputShape=${e} outputShape= ${t}`}function p(e,t){let r=(0,a.sizeFromShape)(e),n=(0,a.sizeFromShape)(t);return`Input to reshape is a tensor with ${r} dense values, but the requested shape has ${n}. inputShape=${e} outputShape=${t}`}},{"../../util":"icflD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iwNmo:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(){return"segment ids must be >= 0"}function o(){return"segment ids are not increasing"}function l(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function i(e,t,r){return`Bad: indices[${e}] == ${t} out of range [0, ${r})`}s.defineInteropFlag(r),s.export(r,"getSparseSegmentReductionNegativeSegmentIdsErrorMessage",()=>a),s.export(r,"getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage",()=>o),s.export(r,"getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage",()=>l),s.export(r,"getSparseSegmentReductionIndicesOutOfRangeErrorMessage",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aCsHG:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"segOpComputeOptimalWindowSize",()=>l),s.export(r,"computeOutShape",()=>i),s.export(r,"collectGatherOpShapeInfo",()=>u);var a=e("../util"),o=e("./reduce_util");function l(e,t){let r,n=!1;for(e<=o.PARALLELIZE_THRESHOLD?(r=e,n=!0):r=(0,a.nearestDivisor)(e,Math.floor(Math.sqrt(e)));!n;)r>t||r===e?n=!0:r=(0,a.nearestDivisor)(e,r+1);return r}function i(e,t,r){let n=[],s=e.length;for(let a=0;as))throw Error(`Expect batchDims in the range of [-${s}, ${s}], but got ${n}`);if(n<0&&(n+=s),n>a)throw Error(`batchDims (${n}) must be less than rank(x) ( + ${a}).`);if(ra.nonMaxSuppressionV3Impl),s.export(r,"nonMaxSuppressionV4Impl",()=>a.nonMaxSuppressionV4Impl),s.export(r,"nonMaxSuppressionV5Impl",()=>a.nonMaxSuppressionV5Impl),s.export(r,"whereImpl",()=>o.whereImpl);var a=e("./non_max_suppression_impl"),o=e("./where_impl")},{"./non_max_suppression_impl":"5qKy1","./where_impl":"5EDW6","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],c8bRp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r);var a=e("./base");s.exportAll(a,r),e("./register_all_kernels")},{"./base":"3S2rH","./register_all_kernels":"hyRXv","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3S2rH":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"version_webgl",()=>l.version),s.export(r,"webgl",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./backend_webgl"),l=e("./version"),i=e("./webgl");s.exportAll(i,r),a.device_util.isBrowser()&&(0,a.registerBackend)("webgl",()=>new(0,o.MathBackendWebGL),2);let u={forceHalfFloat:i.forceHalfFloat}},{"@tensorflow/tfjs-core":"biUij","./backend_webgl":"b3oid","./version":"lkdID","./webgl":"8EsbE","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],b3oid:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EPSILON_FLOAT32",()=>w),s.export(r,"EPSILON_FLOAT16",()=>T),s.export(r,"getBinaryCache",()=>S),s.export(r,"MathBackendWebGL",()=>E),e("./flags_webgl");var a=e("@tensorflow/tfjs-core"),o=e("./canvas_util"),l=e("./decode_matrix_gpu"),i=e("./decode_matrix_packed_gpu"),u=e("./encode_float_gpu"),p=e("./encode_float_packed_gpu"),c=e("./encode_matrix_gpu"),d=e("./encode_matrix_packed_gpu"),f=e("./gpgpu_context"),m=e("./gpgpu_math"),h=e("./kernel_utils/shared"),g=e("./pack_gpu"),x=e("./reshape_packed_gpu"),v=e("./tex_util"),y=e("./texture_manager"),b=e("./unaryop_gpu"),_=e("./unaryop_packed_gpu"),k=e("./unpack_gpu"),j=e("./webgl_util");let I=a.kernel_impls.whereImpl,w=1e-7,T=1e-4,N={};function S(e){return e in N||(N[e]={}),N[e]}let C=(0,a.env)().getNumber("CPU_HANDOFF_SIZE_THRESHOLD");class E extends a.KernelBackend{nextDataId(){return E.nextDataId++}constructor(e){let t;if(super(),this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.pendingDeletes=0,this.disposed=!1,!(0,a.env)().getBool("HAS_WEBGL"))throw Error("WebGL is not supported on this device");if(null!=e){if(e instanceof f.GPGPUContext)t=e;else{let r=(0,o.getWebGLContext)((0,a.env)().getNumber("WEBGL_VERSION"),e);t=new(0,f.GPGPUContext)(r)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let e=(0,o.getWebGLContext)((0,a.env)().getNumber("WEBGL_VERSION"));t=new(0,f.GPGPUContext)(e),this.binaryCache=S((0,a.env)().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=t,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new(0,y.TextureManager)(this.gpgpu),this.numMBBeforeWarning=null==(0,a.env)().global.screen?1024:(0,a.env)().global.screen.height*(0,a.env)().global.screen.width*window.devicePixelRatio*600/1024/1024,this.texData=new(0,a.DataStorage)(this,(0,a.engine)())}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(e,t,r,n,s,a){let o=this.makeTensorInfo(t,r),l=this.texData.get(o.dataId);l.isPacked=!1,l.texture={texture:e,texShape:[n,s]},l.texShape=[n,s];let i=j.getShapeAs3D(t),u=new(0,c.EncodeMatrixProgram)(i,!1,a),p=this.runWebGLProgram(u,[o],r,[[n,s]]);return p.shape=t,l.texture=null,this.disposeIntermediateTensorInfo(o),p.dataId}write(e,t,r){if(((0,a.env)().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||(0,a.env)().getBool("DEBUG"))&&this.checkNumericalProblems(e),"complex64"===r&&null!=e)throw Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let n={id:this.nextDataId()};return this.texData.set(n,{shape:t,dtype:r,values:e,usage:v.TextureUsage.UPLOAD,refCount:1}),n}refCount(e){return this.texData.has(e)?this.texData.get(e).refCount:0}incRef(e){let t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.refCount--}}move(e,t,r,n,s){if((0,a.env)().getBool("DEBUG")&&this.checkNumericalProblems(t),"complex64"===n)throw Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:r,dtype:n,values:t,usage:v.TextureUsage.UPLOAD,refCount:s})}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}readSync(e){let t,r,{values:n,dtype:s,complexTensorInfos:o,slice:l,shape:i,isPacked:u}=this.texData.get(e);if(null!=l){let t;t=u?new(0,_.UnaryOpPackedProgram)(i,b.CLONE):new(0,b.UnaryOpProgram)(i,b.CLONE);let r=this.runWebGLProgram(t,[{dataId:e,shape:i,dtype:s}],s),n=this.readSync(r.dataId);return this.disposeIntermediateTensorInfo(r),n}if(null!=n)return this.convertAndCacheOnCPU(e);if("string"===s)return n;let p=null!=this.activeTimers;if(p&&(t=a.util.now()),"complex64"===s){let e=this.readSync(o.real.dataId),t=this.readSync(o.imag.dataId);r=a.backend_util.mergeRealAndImagArrays(e,t)}else r=this.getValuesFromTexture(e);return p&&(this.downloadWaitMs+=a.util.now()-t),this.convertAndCacheOnCPU(e,r)}async read(e){let t,r;if(this.pendingRead.has(e)){let t=this.pendingRead.get(e);return new Promise(e=>t.push(e))}let{values:n,shape:s,slice:o,dtype:l,complexTensorInfos:i,isPacked:u}=this.texData.get(e);if(null!=o){let t;t=u?new(0,_.UnaryOpPackedProgram)(s,b.CLONE):new(0,b.UnaryOpProgram)(s,b.CLONE);let r=this.runWebGLProgram(t,[{dataId:e,shape:s,dtype:l}],l),n=this.read(r.dataId);return this.disposeIntermediateTensorInfo(r),n}if(null!=n)return this.convertAndCacheOnCPU(e);if((0,a.env)().getBool("DEBUG")&&!(0,a.env)().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&2===(0,a.env)().getNumber("WEBGL_VERSION"))throw Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let p=null;if("complex64"!==l&&(0,a.env)().get("WEBGL_BUFFER_SUPPORTED")){t=this.decode(e);let r=this.texData.get(t.dataId);p=this.gpgpu.createBufferFromTexture(r.texture.texture,...v.getDenseTexShape(s))}if(this.pendingRead.set(e,[]),"complex64"!==l&&await this.gpgpu.createAndWaitForFence(),"complex64"===l){let e=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),t=e[0],n=e[1];r=a.backend_util.mergeRealAndImagArrays(t,n)}else if(null==p)r=this.getValuesFromTexture(e);else{let e=a.util.sizeFromShape(s);r=this.gpgpu.downloadFloat32MatrixFromBuffer(p,e)}if(null!=t&&this.disposeIntermediateTensorInfo(t),null!=p){let e=this.gpgpu.gl;j.callAndCheck(e,()=>e.deleteBuffer(p))}let c=this.convertAndCacheOnCPU(e,r),d=this.pendingRead.get(e);return this.pendingRead.delete(e),d.forEach(e=>e(c)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&(0,a.engine)().removeDataId(e,this),this.pendingDeletes--),c}readToGPU(e,t={}){let{values:r,shape:n,slice:s,dtype:o,isPacked:l,texture:i}=this.texData.get(e);if("complex64"===o)throw Error("Does not support reading texture for complex64 dtype.");if(null!=s){let r;r=l?new(0,_.UnaryOpPackedProgram)(n,b.CLONE):new(0,b.UnaryOpProgram)(n,b.CLONE);let s=this.runWebGLProgram(r,[{dataId:e,shape:n,dtype:o}],o),a=this.readToGPU(s,t);return this.disposeIntermediateTensorInfo(s),a}if(null==i)if(null!=r)throw Error("Data is not on GPU but on CPU.");else throw Error("There is no data on GPU or CPU.");let u=this.decode(e,t.customTexShape);return Object.assign({tensorRef:(0,a.engine)().makeTensorFromTensorInfo(u)},this.texData.get(u.dataId).texture)}bufferSync(e){let t=this.readSync(e.dataId);if("string"===e.dtype)try{let r=t.map(e=>a.util.decodeString(e));return(0,a.buffer)(e.shape,e.dtype,r)}catch(e){throw Error("Failed to decode encoded string bytes into utf-8")}return(0,a.buffer)(e.shape,e.dtype,t)}checkNumericalProblems(e){if(null!=e)for(let t=0;t0}time(e){let t=this.activeTimers,r=[],n=!1;null==this.programTimersStack?(this.programTimersStack=r,n=!0):this.activeTimers.push(r),this.activeTimers=r,e();let s=a.util.flatten(this.activeTimers.map(e=>e.query)).filter(e=>null!=e),o=a.util.flatten(this.activeTimers.map(e=>e.name)).filter(e=>null!=e);this.activeTimers=t,n&&(this.programTimersStack=null);let l={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if((0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let e=await Promise.all(s);l.kernelMs=a.util.sum(e),l.getExtraProfileInfo=()=>e.map((e,t)=>({name:o[t],ms:e})).map(e=>`${e.name}: ${e.ms}`).join(", ")}else l.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,l})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:a.util.now(),endMs:null}}endTimer(e){return(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.endQuery():e.endMs=a.util.now(),e}async getQueryTime(e){return(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.waitForQueryAndGetTime(e):e.endMs-e.startMs}disposeData(e,t=!1){if(this.pendingDisposal.has(e))return!1;if(!this.texData.has(e))return!0;if(t?this.texData.get(e).refCount=0:this.texData.get(e).refCount--,!t&&this.texData.get(e).refCount>0)return!1;if(this.pendingRead.has(e))return this.pendingDisposal.add(e),this.pendingDeletes++,!1;this.releaseGPUData(e);let{complexTensorInfos:r}=this.texData.get(e);return null!=r&&(this.disposeData(r.real.dataId,t),this.disposeData(r.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){let{texture:t,dtype:r,texShape:n,usage:s,isPacked:a,slice:o}=this.texData.get(e),l=o&&o.origDataId||e,i=this.dataRefCount.get(l);i>1?this.dataRefCount.set(l,i-1):(this.dataRefCount.delete(l),null!=t&&(this.numBytesInGPU-=this.computeBytes(n,r),this.textureManager.releaseTexture(t,n,s,a)));let u=this.texData.get(e);u.texture=null,u.texShape=null,u.isPacked=!1,u.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture.texture}getDataInfo(e){return this.texData.get(e)}shouldExecuteOnCPU(e,t=C){return(0,a.env)().getBool("WEBGL_CPU_FORWARD")&&e.every(e=>null==this.texData.get(e.dataId).texture&&a.util.sizeFromShape(e.shape)0&&a.util.isString(r[0])){let s=r.map(e=>a.util.encodeString(e));n=this.write(s,e,t)}else n=this.write(r,e,t);return this.texData.get(n).usage=null,{dataId:n,shape:e,dtype:t}}makeOutput(e,t,r){return(0,a.engine)().makeTensorFromTensorInfo(this.makeTensorInfo(e,t,r),this)}unpackTensor(e){let t=new(0,k.UnpackProgram)(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new(0,g.PackProgram)(e.shape);return this.runWebGLProgram(t,[e],e.dtype,null,!0)}packedReshape(e,t){let r=[j.getBatchDim(e.shape),...j.getRowsCols(e.shape)],n={dtype:e.dtype,shape:r,dataId:e.dataId},s=[j.getBatchDim(t),...j.getRowsCols(t)],a=new(0,x.ReshapePackedProgram)(s,r),o=this.runWebGLProgram(a,[n],e.dtype,[r],!0);return{dataId:o.dataId,shape:t,dtype:o.dtype}}decode(e,t){let r,{isPacked:n,shape:s,dtype:o}=this.texData.get(e);if(null!=t){let e=a.util.sizeFromShape(s),r=t[0]*t[1]*4;a.util.assert(e<=r,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}let u=j.getShapeAs3D(s);r=n?new(0,i.DecodeMatrixPackedProgram)(u):new(0,l.DecodeMatrixProgram)(u);let p=[null!=t?t:v.getDenseTexShape(u)],c=this.runWebGLProgram(r,[{shape:u,dtype:o,dataId:e}],o,p,!0,t);return{dtype:o,shape:s,dataId:c.dataId}}runWebGLProgram(e,t,r,n,s=!1,o){let l,i=this.makeTensorInfo(e.outputShape,r),u=this.texData.get(i.dataId);if(e.packedOutput&&(u.isPacked=!0),e.outPackingScheme===v.PackingScheme.DENSE&&(u.texShape=(null!=o?o:v.getDenseTexShape(e.outputShape)).map(e=>2*e)),null!=e.outTexUsage&&(u.usage=e.outTexUsage),0===a.util.sizeFromShape(i.shape))return u.values=a.util.getTypedArrayFromDType(i.dtype,0),i;let p=[],c=t.map(t=>{if("complex64"===t.dtype)throw Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let r=this.texData.get(t.dataId);if(null==r.texture){if(!e.packedInputs&&a.util.sizeFromShape(t.shape)<=(0,a.env)().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:t.shape,texData:null,isUniform:!0,uniformValues:r.values};e.packedInputs&&(r.isPacked=!0,r.shape=t.shape)}if(this.uploadToGPU(t.dataId),!!r.isPacked!=!!e.packedInputs)t=r.isPacked?this.unpackTensor(t):this.packTensor(t),p.push(t),r=this.texData.get(t.dataId);else if(r.isPacked&&!j.isReshapeFree(r.shape,t.shape)){let e=t,n=t.shape;t.shape=r.shape,t=this.packedReshape(t,n),p.push(t),r=this.texData.get(t.dataId),e.shape=n}return{shape:t.shape,texData:r,isUniform:!1}});this.uploadToGPU(i.dataId);let d={shape:i.shape,texData:u,isUniform:!1},f=m.makeShaderKey(e,c,d),h=this.getAndSaveBinary(f,()=>m.compileProgram(this.gpgpu,e,c,d)),g=null!=this.activeTimers;g&&(l=this.startTimer()),(0,a.env)().get("ENGINE_COMPILE_ONLY")||m.runProgram(this.gpgpu,h,c,d,n),p.forEach(e=>this.disposeIntermediateTensorInfo(e)),g&&(l=this.endTimer(l),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(l)}));let x=(0,a.env)().getNumber("WEBGL_FLUSH_THRESHOLD");if(x>0){let e=a.util.now();e-this.lastGlFlushTime>x&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=e)}if(!(0,a.env)().getBool("WEBGL_LAZILY_UNPACK")&&u.isPacked&&!1===s){let e=this.unpackTensor(i);return this.disposeIntermediateTensorInfo(i),e}return i}compileAndRun(e,t,r,n,s=!1){return r=r||t[0].dtype,this.runWebGLProgram(e,t,r,n,s)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||((0,a.env)().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),null!=this.canvas&&"undefined"!=typeof HTMLCanvasElement&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return null==this.floatPrecisionValue&&(this.floatPrecisionValue=(0,a.tidy)(()=>{if(!(0,a.env)().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=(0,a.env)().getBool("DEBUG");(0,a.env)().set("DEBUG",!1);let t=this.abs((0,a.scalar)(1e-8)).dataSync()[0];if((0,a.env)().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return 32===this.floatPrecision()?w:T}uploadToGPU(e){let t,r=this.texData.get(e),{shape:n,dtype:s,values:o,texture:l,usage:i,isPacked:u}=r;if(null!=l)return;let p=null!=this.activeTimers;p&&(t=a.util.now());let f=r.texShape;if(null==f&&(r.texShape=f=j.getTextureShapeFromLogicalShape(n,u)),null!=o){let e,l=j.getShapeAs3D(n),i=f[1],m=f[0],h=o instanceof Uint8Array||o instanceof Uint8ClampedArray;(u||!h)&&([i,m]=v.getPackedMatrixTextureShapeWidthHeight(f[0],f[1])),e=u?new(0,d.EncodeMatrixPackedProgram)(l,h):new(0,c.EncodeMatrixProgram)(l,h);let g=h?[m,i]:f,x=this.makeTensorInfo(g,s),y=this.texData.get(x.dataId);h?y.usage=v.TextureUsage.PIXELS:y.usage=v.TextureUsage.UPLOAD,y.texShape=g,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(x.dataId),i,m,o);let b=[[m,i]],_=this.runWebGLProgram(e,[x],s,b,!0),k=this.texData.get(_.dataId);r.texShape=k.texShape,r.isPacked=k.isPacked,r.usage=k.usage,(0,a.env)().get("ENGINE_COMPILE_ONLY")?this.disposeData(_.dataId):(r.texture=k.texture,r.values=null,this.texData.delete(_.dataId)),this.disposeIntermediateTensorInfo(x),p&&(this.uploadWaitMs+=a.util.now()-t)}else r.texture=this.acquireTexture(f,i,s,u)}convertAndCacheOnCPU(e,t){let r=this.texData.get(e),{dtype:n}=r;return null!=t&&(r.values=function(e,t){if("float32"===t||"complex64"===t)return e;if("int32"===t||"bool"===t){let r="int32"===t?new Int32Array(e.length):new Uint8Array(e.length);for(let t=0;t1048576*this.numMBBeforeWarning){let e=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${e} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,n)}computeBytes(e,t){return e[0]*e[1]*a.util.bytesPerElement(t)}checkCompileCompletion(){for(let[,e]of Object.entries(this.binaryCache))this.checkCompletion_(e)}async checkCompileCompletionAsync(){let e=[];if(this.gpgpu.parallelCompilationExtension){for(let[,t]of Object.entries(this.binaryCache))e.push(this.checkCompletionAsync_(t));return Promise.all(e)}for(let[,t]of Object.entries(this.binaryCache)){let r=new Promise(e=>{try{this.checkCompletion_(t),e(!0)}catch(e){throw e}});e.push(r)}return Promise.all(e)}async checkCompletionAsync_(e){return this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(e):(await (0,a.nextFrame)(),this.checkCompletionAsync_(e))}checkCompletion_(e){if(!1===this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.gl.LINK_STATUS)){if(console.log(this.gpgpu.gl.getProgramInfoLog(e.webGLProgram)),!1===this.gpgpu.gl.getShaderParameter(e.fragmentShader,this.gpgpu.gl.COMPILE_STATUS))throw j.logShaderSourceAndInfoLog(e.source,this.gpgpu.gl.getShaderInfoLog(e.fragmentShader)),Error("Failed to compile fragment shader.");throw Error("Failed to link vertex and fragment shaders.")}return!0}getUniformLocations(){for(let e of Object.values(this.binaryCache)){this.gpgpu.buildVao(e.webGLProgram);let{variablesLocations:t,customUniformLocations:r,infLoc:n,nanLoc:s,outShapeLocation:a,outShapeStridesLocation:o,outTexShapeLocation:l}=(0,m.getUniformLocations)(this.gpgpu,e.program,e.webGLProgram);e.variablesLocations=t,e.customUniformLocations=r,e.infLoc=n,e.nanLoc=s,e.outShapeLocation=a,e.outShapeStridesLocation=o,e.outTexShapeLocation=l}}createTensorFromGPUData(e,t,r){e.channels=e.channels||"RGBA";let{texture:n,height:s,width:o,channels:l}=e,i=(0,a.engine)().backend;if(!i.gpgpu.gl.isTexture(n))throw Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");let u=i.writeTexture(n,t,r,s,o,l);return(0,a.engine)().makeTensorFromDataId(u,t,r,i)}}E.nextDataId=0},{"./flags_webgl":"eO9aq","@tensorflow/tfjs-core":"biUij","./canvas_util":"6lv4k","./decode_matrix_gpu":"e4ZEH","./decode_matrix_packed_gpu":"7VRvZ","./encode_float_gpu":"jcxxr","./encode_float_packed_gpu":"9TFBs","./encode_matrix_gpu":"7GwLQ","./encode_matrix_packed_gpu":"4Obdq","./gpgpu_context":"eTBiK","./gpgpu_math":"1F9Jp","./kernel_utils/shared":"lQim5","./pack_gpu":"eoAxQ","./reshape_packed_gpu":"72Xgh","./tex_util":"jmYC7","./texture_manager":"jLwum","./unaryop_gpu":"LccPS","./unaryop_packed_gpu":"2qT48","./unpack_gpu":"jD6NV","./webgl_util":"8Bhtc","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eO9aq:[function(e,t,r,n){var s=e("@tensorflow/tfjs-core"),a=e("./webgl_util");let o=(0,s.env)();o.registerFlag("HAS_WEBGL",()=>o.getNumber("WEBGL_VERSION")>0),o.registerFlag("WEBGL_VERSION",()=>(0,a.isWebGLVersionEnabled)(2)?2:+!!(0,a.isWebGLVersionEnabled)(1)),o.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1),o.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>2===o.get("WEBGL_VERSION")),o.registerFlag("WEBGL_CPU_FORWARD",()=>!0),o.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1),o.registerFlag("WEBGL_PACK",()=>o.getBool("HAS_WEBGL")),o.registerFlag("WEBGL_PACK_NORMALIZATION",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_CLIP",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_REDUCE",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_LAZILY_UNPACK",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_CONV_IM2COL",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_CONV2DTRANSPOSE",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>(0,a.getWebGLMaxTextureSize)(o.getNumber("WEBGL_VERSION"))),o.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>(0,a.getMaxTexturesInShader)(o.getNumber("WEBGL_VERSION"))),o.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=o.getNumber("WEBGL_VERSION");return 0===e?0:(0,a.getWebGLDisjointQueryTimerVersion)(e)}),o.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>o.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!s.device_util.isMobile()),o.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>(0,a.isCapableOfRenderingToFloatTexture)(o.getNumber("WEBGL_VERSION"))),o.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>!o.getBool("WEBGL_FORCE_F16_TEXTURES")&&o.getBool("WEBGL_RENDER_FLOAT32_CAPABLE")),o.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>(0,a.isDownloadFloatTextureEnabled)(o.getNumber("WEBGL_VERSION"))),o.registerFlag("WEBGL_FENCE_API_ENABLED",()=>(0,a.isWebGLFenceEnabled)(o.getNumber("WEBGL_VERSION"))),o.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>4*!!o.getBool("WEBGL_RENDER_FLOAT32_ENABLED")),o.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if("number"!=typeof e)throw Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be a number but got ${e}.`);if(e<0&&-1!==e)throw Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)}),o.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>s.device_util.isMobile()?1:-1,e=>{if("number"!=typeof e)throw Error(`WEBGL_FLUSH_THRESHOLD must be a number but got ${e}.`);if(e<0&&-1!==e)throw Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${e}.`)}),o.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128),o.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1),o.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5),o.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128),o.registerFlag("WEBGL_EXP_CONV",()=>!1),o.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>o.getBool("IS_TEST")),o.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0),o.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1),o.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1),o.registerFlag("ENGINE_COMPILE_ONLY",()=>!1)},{"@tensorflow/tfjs-core":"biUij","./webgl_util":"8Bhtc"}],"8Bhtc":[function(e,t,r,n){let s,a;var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"callAndCheck",()=>p),o.export(r,"canBeRepresented",()=>c),o.export(r,"getWebGLErrorMessage",()=>d),o.export(r,"getExtensionOrThrow",()=>f),o.export(r,"createVertexShader",()=>m),o.export(r,"createFragmentShader",()=>h),o.export(r,"logShaderSourceAndInfoLog",()=>x),o.export(r,"createProgram",()=>v),o.export(r,"linkProgram",()=>y),o.export(r,"validateProgram",()=>b),o.export(r,"createStaticVertexBuffer",()=>_),o.export(r,"createStaticIndexBuffer",()=>k),o.export(r,"getNumChannels",()=>j),o.export(r,"createTexture",()=>I),o.export(r,"validateTextureSize",()=>w),o.export(r,"createFramebuffer",()=>T),o.export(r,"bindVertexBufferToProgramAttribute",()=>N),o.export(r,"bindTextureUnit",()=>S),o.export(r,"unbindTextureUnit",()=>C),o.export(r,"getProgramUniformLocationOrThrow",()=>E),o.export(r,"getProgramUniformLocation",()=>F),o.export(r,"bindTextureToProgramUniformSampler",()=>A),o.export(r,"bindCanvasToFramebuffer",()=>R),o.export(r,"bindColorTextureToFramebuffer",()=>P),o.export(r,"unbindColorTextureFromFramebuffer",()=>D),o.export(r,"validateFramebuffer",()=>$),o.export(r,"getFramebufferErrorMessage",()=>O),o.export(r,"getBatchDim",()=>B),o.export(r,"getRowsCols",()=>L),o.export(r,"getShapeAs3D",()=>V),o.export(r,"getTextureShapeFromLogicalShape",()=>U),o.export(r,"isReshapeFree",()=>G),o.export(r,"getWebGLMaxTextureSize",()=>z),o.export(r,"resetMaxTextureSize",()=>Q),o.export(r,"resetMaxTexturesInShader",()=>q),o.export(r,"getMaxTexturesInShader",()=>H),o.export(r,"getWebGLDisjointQueryTimerVersion",()=>K),o.export(r,"hasExtension",()=>X),o.export(r,"isWebGLVersionEnabled",()=>Y),o.export(r,"isCapableOfRenderingToFloatTexture",()=>J),o.export(r,"isDownloadFloatTextureEnabled",()=>Z),o.export(r,"isWebGLFenceEnabled",()=>et),o.export(r,"assertNotComplex",()=>er);var l=e("@tensorflow/tfjs-core"),i=e("./canvas_util"),u=e("./tex_util");function p(e,t){let r=t();return(0,l.env)().getBool("DEBUG")&&function(e){let t=e.getError();if(t!==e.NO_ERROR)throw Error("WebGL Error: "+d(e,t))}(e),r}function c(e){return!!((0,l.env)().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||0===e||596e-10Math.abs(e))}function d(e,t){switch(t){case e.NO_ERROR:return"NO_ERROR";case e.INVALID_ENUM:return"INVALID_ENUM";case e.INVALID_VALUE:return"INVALID_VALUE";case e.INVALID_OPERATION:return"INVALID_OPERATION";case e.INVALID_FRAMEBUFFER_OPERATION:return"INVALID_FRAMEBUFFER_OPERATION";case e.OUT_OF_MEMORY:return"OUT_OF_MEMORY";case e.CONTEXT_LOST_WEBGL:return"CONTEXT_LOST_WEBGL";default:return`Unknown error code ${t}`}}function f(e,t){return M(e,()=>e.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function m(e,t){let r=M(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(p(e,()=>e.shaderSource(r,t)),p(e,()=>e.compileShader(r)),!1===e.getShaderParameter(r,e.COMPILE_STATUS))throw console.log(e.getShaderInfoLog(r)),Error("Failed to compile vertex shader.");return r}function h(e,t){let r=M(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(p(e,()=>e.shaderSource(r,t)),p(e,()=>e.compileShader(r)),(0,l.env)().get("ENGINE_COMPILE_ONLY"))return r;if(!1===e.getShaderParameter(r,e.COMPILE_STATUS))throw x(t,e.getShaderInfoLog(r)),Error("Failed to compile fragment shader.");return r}let g=/ERROR: [0-9]+:([0-9]+):/g;function x(e,t){let r=g.exec(t);if(null==r){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}let n=+r[1],s=e.split("\n"),a=s.length.toString().length+2,o=s.map((e,t)=>l.util.rightPad((t+1).toString(),a)+e),i=0;for(let e=0;ee.createProgram(),"Unable to create WebGLProgram.")}function y(e,t){if(p(e,()=>e.linkProgram(t)),!(0,l.env)().get("ENGINE_COMPILE_ONLY")&&!1===e.getProgramParameter(t,e.LINK_STATUS))throw console.log(e.getProgramInfoLog(t)),Error("Failed to link vertex and fragment shaders.")}function b(e,t){if(p(e,()=>e.validateProgram(t)),!1===e.getProgramParameter(t,e.VALIDATE_STATUS))throw console.log(e.getProgramInfoLog(t)),Error("Shader program validation failed.")}function _(e,t){let r=M(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return p(e,()=>e.bindBuffer(e.ARRAY_BUFFER,r)),p(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),r}function k(e,t){let r=M(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return p(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,r)),p(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),r}function j(){return 2===(0,l.env)().getNumber("WEBGL_VERSION")?1:4}function I(e){return M(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function w(e,t){let r=(0,l.env)().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0)throw Error(`Requested texture size [${e}x${t}] is invalid.`);if(e>r||t>r)throw Error(`Requested texture size [${e}x${t}] greater than WebGL maximum on this browser / GPU [${r}x${r}].`)}function T(e){return M(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function N(e,t,r,n,s,a,o){let l=e.getAttribLocation(t,r);return -1!==l&&(p(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),p(e,()=>e.vertexAttribPointer(l,s,e.FLOAT,!1,a,o)),p(e,()=>e.enableVertexAttribArray(l)),!0)}function S(e,t,r){W(e,r),p(e,()=>e.activeTexture(e.TEXTURE0+r)),p(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function C(e,t){W(e,t),p(e,()=>e.activeTexture(e.TEXTURE0+t)),p(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function E(e,t,r){return M(e,()=>e.getUniformLocation(t,r),'uniform "'+r+'" not present in program.')}function F(e,t,r){return e.getUniformLocation(t,r)}function A(e,t,r,n){p(e,()=>S(e,t,n)),p(e,()=>e.uniform1i(r,n))}function R(e){p(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),p(e,()=>e.viewport(0,0,e.canvas.width,e.canvas.height)),p(e,()=>e.scissor(0,0,e.canvas.width,e.canvas.height))}function P(e,t,r){p(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,r)),p(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function D(e,t){p(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),p(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function $(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw Error("Error binding framebuffer: "+O(e,t))}function O(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case e.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${t}`}}function M(e,t,r){let n=p(e,()=>t());if(null==n)throw Error(r);return n}function W(e,t){let r=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,n=t+e.TEXTURE0;if(nr){let e=`[gl.TEXTURE0, gl.TEXTURE${r}]`;throw Error(`textureUnit must be in ${e}.`)}}function B(e,t=2){return l.util.sizeFromShape(e.slice(0,e.length-t))}function L(e){if(0===e.length)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function V(e){let t=[1,1,1];return 0!==e.length&&(1!==e.length||1!==e[0])&&(t=[B(e),...L(e)]),t}function U(e,t=!1){let r=(0,l.env)().getNumber("WEBGL_MAX_TEXTURE_SIZE"),n=(0,l.env)().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");n===1/0&&(0,l.env)().getBool("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE")&&(n=r/2),t&&(r*=2,n*=2,1===(e=e.map((t,r)=>r>=e.length-2?l.util.nearestLargerEven(e[r]):e[r])).length&&(e=[2,e[0]])),2!==e.length&&(e=l.util.squeezeShape(e).newShape);let s=l.util.sizeFromShape(e),a=null;e.length<=1&&s<=r?a=[1,s]:2===e.length&&e[0]<=r&&e[1]<=r?a=e:3===e.length&&e[0]*e[1]<=r&&e[2]<=r?a=[e[0]*e[1],e[2]]:3===e.length&&e[0]<=r&&e[1]*e[2]<=r?a=[e[0],e[1]*e[2]]:4===e.length&&e[0]*e[1]*e[2]<=r&&e[3]<=r?a=[e[0]*e[1]*e[2],e[3]]:4===e.length&&e[0]<=r&&e[1]*e[2]*e[3]<=r&&(a=[e[0],e[1]*e[2]*e[3]]);let o=null!=a&&Math.max(...a)>n&&Math.min(...a)<=(t?2:1)&&Math.min(...a)>0;if(null==a||o)if(t){let t=B(e),r=2,n=2;e.length&&([r,n]=L(e)),s=r/2*t*(n/2),a=l.util.sizeToSquarishShape(s).map(e=>2*e)}else a=l.util.sizeToSquarishShape(s);return a}function G(e,t){if(e=e.slice(-2),t=t.slice(-2),l.util.arraysEqual(e,t)||!e.length||!t.length||0===e[0]||0===e[1]||0===t[0]||0===t[1])return!0;if(e.length!==t.length){let r=e[e.length-1],n=t[t.length-1];if(r===n||r%2==0&&n%2==0&&(1===e[0]||1===t[0]))return!0}return e[1]===t[1]&&e[0]%2==0&&t[0]%2==0}function z(e){if(null==s){let t=(0,i.getWebGLContext)(e);s=t.getParameter(t.MAX_TEXTURE_SIZE)}return s}function Q(){s=null}function q(){a=null}function H(e){if(null==a){let t=(0,i.getWebGLContext)(e);a=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,a)}function K(e){let t;if(0===e)return 0;let r=(0,i.getWebGLContext)(e);return X(r,"EXT_disjoint_timer_query_webgl2")&&2===e?2:+!!X(r,"EXT_disjoint_timer_query")}function X(e,t){return null!=e.getExtension(t)}function Y(e){try{let t=(0,i.getWebGLContext)(e);if(null!=t)return!0}catch(e){console.log("Error when getting WebGL context: ",e)}return!1}function J(e){if(0===e)return!1;let t=(0,i.getWebGLContext)(e);if(1===e){if(!X(t,"OES_texture_float"))return!1}else if(!X(t,"EXT_color_buffer_float"))return!1;return ee(t)}function Z(e){if(0===e)return!1;let t=(0,i.getWebGLContext)(e);if(1===e){if(!X(t,"OES_texture_float")||!X(t,"WEBGL_color_buffer_float"))return!1}else{if(X(t,"EXT_color_buffer_float"))return ee(t);let e="EXT_color_buffer_half_float";if(X(t,e)){let s=t.getExtension(e);var r=t,n=s;let a=(0,u.getTextureConfig)(r,n),o=r.createTexture();r.bindTexture(r.TEXTURE_2D,o),r.texImage2D(r.TEXTURE_2D,0,a.internalFormatHalfFloat,1,1,0,a.textureFormatFloat,a.textureTypeHalfFloat,null);let l=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,l),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,o,0);let i=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(o),r.deleteFramebuffer(l),i}return!1}return ee(t)}function ee(e){let t=(0,u.getTextureConfig)(e),r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r),e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,1,1,0,t.textureFormatFloat,t.textureTypeFloat,null);let n=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,n),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0);let s=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(r),e.deleteFramebuffer(n),s}function et(e){return 2===e&&null!=(0,i.getWebGLContext)(e).fenceSync}function er(e,t){Array.isArray(e)||(e=[e]),e.forEach(e=>{null!=e&&l.util.assert("complex64"!==e.dtype,()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}},{"@tensorflow/tfjs-core":"biUij","./canvas_util":"6lv4k","./tex_util":"jmYC7","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6lv4k":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"clearWebGLContext",()=>i),s.export(r,"setWebGLContext",()=>u),s.export(r,"getWebGLContext",()=>function e(t,r){if(!(t in o)||null!=r){let e=function(e,t){if(1!==e&&2!==e)throw Error("Cannot get WebGL rendering context, WebGL is disabled.");let r=null==t?function(e){if(!(0,a.env)().getBool("IS_SAFARI")&&"undefined"!=typeof OffscreenCanvas&&2===e)return new OffscreenCanvas(300,150);if("undefined"!=typeof document)return document.createElement("canvas");throw Error("Cannot create a canvas in this context")}(e):t;return(r.addEventListener("webglcontextlost",t=>{t.preventDefault(),delete o[e]},!1),(0,a.env)().getBool("SOFTWARE_WEBGL_ENABLED")&&(l.failIfMajorPerformanceCaveat=!1),1===e)?r.getContext("webgl",l)||r.getContext("experimental-webgl",l):r.getContext("webgl2",l)}(t,r);if(null===e)return console.log("Could not get context for WebGL version",t),null;o[t]=e}let n=o[t];return null==n||n.isContextLost()?(delete o[t],e(t)):(n.disable(n.DEPTH_TEST),n.disable(n.STENCIL_TEST),n.disable(n.BLEND),n.disable(n.DITHER),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SAMPLE_COVERAGE),n.enable(n.SCISSOR_TEST),n.enable(n.CULL_FACE),n.cullFace(n.BACK),o[t])});var a=e("@tensorflow/tfjs-core");let o={},l={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function i(e){delete o[e]}function u(e,t){o[e]=t}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jmYC7:[function(e,t,r,n){var s,a,o,l,i,u,p=e("@parcel/transformer-js/src/esmodule-helpers.js");p.defineInteropFlag(r),p.export(r,"PackingScheme",()=>l),p.export(r,"TextureUsage",()=>i),p.export(r,"PhysicalTextureType",()=>u),p.export(r,"getUnpackedMatrixTextureShapeWidthHeight",()=>d),p.export(r,"getUnpackedArraySizeFromMatrixSize",()=>f),p.export(r,"getColorMatrixTextureShapeWidthHeight",()=>m),p.export(r,"getDenseTexShape",()=>h),p.export(r,"getMatrixSizeFromUnpackedArraySize",()=>g),p.export(r,"decodeMatrixFromUnpackedColorRGBAArray",()=>x),p.export(r,"getPackedMatrixTextureShapeWidthHeight",()=>v),p.export(r,"getPackedRGBAArraySizeFromMatrixShape",()=>y),p.export(r,"getTextureConfig",()=>b);var c=e("@tensorflow/tfjs-core");function d(e,t){return[t,e]}function f(e,t){return e*t}function m(e,t){return[4*t,e]}function h(e){let t=Math.ceil(c.util.sizeFromShape(e)/4);return c.util.sizeToSquarishShape(t)}function g(e,t){if(e%t!=0)throw Error(`unpackedSize (${e}) must be a multiple of ${t}`);return e/t}function x(e,t,r){let n=e.length*r/4;if(t.length= ${n}`);let s=0;for(let n=0;nu);var a=e("./glsl_version"),o=e("./gpgpu_math"),l=e("./shader_compiler_util"),i=e("./tex_util");class u{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=i.PackingScheme.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=(0,a.getGlslDifferences)();this.outputShape=e,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length),this.userCode=` + ivec3 outCoordsFromFlatIndex(int index) { + ${this.enableShapeUniforms?l.getOutputLogicalCoordinatesFromFlatIndexByUniform(["r","c","d"],e):l.getLogicalCoordinatesFromFlatIndex(["r","c","d"],e)} + return ivec3(r, c, d); + } + + void main() { + ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1])); + int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y); + + vec4 result = vec4(0.); + + for (int i=0; i<4; i++) { + int flatIndex = index + i; + ivec3 rc = outCoordsFromFlatIndex(flatIndex); + result[i] = getA(rc.x, rc.y, rc.z); + } + + ${t.output} = result; + } + `}}},{"./glsl_version":"9EOgg","./gpgpu_math":"1F9Jp","./shader_compiler_util":"cJiqQ","./tex_util":"jmYC7","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9EOgg":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getGlslDifferences",()=>o);var a=e("@tensorflow/tfjs-core");function o(){let e,t,r,n,s,o,l,i,u,p;return 2===(0,a.env)().getNumber("WEBGL_VERSION")?(e="#version 300 es",t="in",r="out",n="in",s="texture",o="outputColor",l="out vec4 outputColor;",i=(0,a.env)().getBool("WEBGL2_ISNAN_CUSTOM")?` + bool isnan_custom(float val) { + uint floatToUint = floatBitsToUint(val); + return (floatToUint & 0x7fffffffu) > 0x7f800000u; + } + + bvec4 isnan_custom(vec4 val) { + return bvec4(isnan_custom(val.x), + isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w)); + } + + #define isnan(value) isnan_custom(value) + `:"",u="",p=` + #define round(value) newRound(value) + int newRound(float value) { + return int(floor(value + 0.5)); + } + + ivec4 newRound(vec4 value) { + return ivec4(floor(value + vec4(0.5))); + } + `):(e="",t="attribute",r="varying",n="varying",s="texture2D",o="gl_FragColor",l="",i=` + #define isnan(value) isnan_custom(value) + bool isnan_custom(float val) { + return (val > 0. || val < 1. || val == 0.) ? false : true; + } + bvec4 isnan_custom(vec4 val) { + return bvec4(isnan(val.x), isnan(val.y), isnan(val.z), isnan(val.w)); + } + `,u=` + uniform float INFINITY; + + bool isinf(float val) { + return abs(val) == INFINITY; + } + bvec4 isinf(vec4 val) { + return equal(abs(val), vec4(INFINITY)); + } + `,p=` + int round(float value) { + return int(floor(value + 0.5)); + } + + ivec4 round(vec4 value) { + return ivec4(floor(value + vec4(0.5))); + } + `),{version:e,attribute:t,varyingVs:r,varyingFs:n,texture2D:s,output:o,defineOutput:l,defineSpecialNaN:i,defineSpecialInf:u,defineRound:p}}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1F9Jp":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"compileProgram",()=>i),s.export(r,"getUniformLocations",()=>u),s.export(r,"runProgram",()=>c),s.export(r,"makeShaderKey",()=>d),s.export(r,"useShapeUniforms",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("./shader_compiler"),l=e("./webgl_util");function i(e,t,r,n){let s=r.map((e,r)=>{let n={logicalShape:e.shape,texShape:e.isUniform?null:e.texData.texShape,isUniform:e.isUniform,isPacked:!e.isUniform&&e.texData.isPacked,flatOffset:null};return null!=e.texData&&null!=e.texData.slice&&e.texData.slice.flatOffset>0&&(n.flatOffset=e.texData.slice.flatOffset),{name:t.variableNames[r],shapeInfo:n}}),i=s.map(e=>e.shapeInfo),p={logicalShape:n.shape,texShape:n.texData.texShape,isUniform:!1,isPacked:n.texData.isPacked,flatOffset:null},c=o.makeShader(s,p,t),d=(0,l.createFragmentShader)(e.gl,c),f=e.createProgram(d);return(0,a.env)().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:d,source:c,webGLProgram:f,inShapeInfos:i,outShapeInfo:p,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(e.buildVao(f),Object.assign({program:t,fragmentShader:d,source:c,webGLProgram:f,inShapeInfos:i,outShapeInfo:p},u(e,t,f)))}function u(e,t,r){let n,s,o,l=[],i=[],u=null,p=null;for(let n of(p=e.getUniformLocation(r,"NAN",!1),1===(0,a.env)().getNumber("WEBGL_VERSION")&&(u=e.getUniformLocation(r,"INFINITY",!1)),t.variableNames)){let s={name:n,uniform:e.getUniformLocation(r,n,!1),offset:e.getUniformLocation(r,`offset${n}`,!1)};t.enableShapeUniforms&&(s.shape=e.getUniformLocation(r,`${n}Shape`,!1),s.texShape=e.getUniformLocation(r,`${n}TexShape`,!1)),l.push(s)}if(t.enableShapeUniforms&&(n=e.getUniformLocation(r,"outShape",!1),o=e.getUniformLocation(r,"outShapeStrides",!1),s=e.getUniformLocation(r,"outTexShape",!1)),t.customUniforms)for(let n of t.customUniforms)i.push(e.getUniformLocation(r,n.name,!1));return{variablesLocations:l,customUniformLocations:i,infLoc:u,nanLoc:p,outShapeLocation:n,outShapeStridesLocation:o,outTexShapeLocation:s}}function p(e,t){if(e.length!==t.length)throw Error(`Binary was compiled with ${e.length} inputs, but was executed with ${t.length} inputs`);e.forEach((e,r)=>{let n=e.logicalShape,s=t[r],o=s.shape;if(!a.util.arraysEqual(n,o))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${n} and ${o} must match`);if(e.isUniform&&s.isUniform)return;let l=e.texShape,i=s.isUniform?null:s.texData.texShape;if(!a.util.arraysEqual(l,i))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${l} and ${i} must match`)})}function c(e,t,r,n,s){t.program.enableShapeUniforms||(p(t.inShapeInfos,r),p([t.outShapeInfo],[n]));let l=n.texData.texture,i=n.texData.texShape;n.texData.isPacked?e.setOutputPackedMatrixTexture(l.texture,i[0],i[1]):e.setOutputMatrixTexture(l.texture,i[0],i[1]),e.setProgram(t.webGLProgram),e.bindVertexArray(t.webGLProgram.vao),1===(0,a.env)().getNumber("WEBGL_VERSION")&&null!==t.infLoc&&e.gl.uniform1f(t.infLoc,1/0),null!==t.nanLoc&&e.gl.uniform1f(t.nanLoc,NaN);for(let n=0;na.util.sizeFromShape(s.shape))e.gl.uniform1f(l,s.uniformValues[0]);else{let t=s.uniformValues;t instanceof Float32Array||(t=new Float32Array(t)),e.gl.uniform1fv(l,t)}continue}null!=s.texData.slice&&null!=i&&e.gl.uniform1i(i,s.texData.slice.flatOffset),e.setInputMatrixTexture(s.texData.texture.texture,l,n)}}let u=t.outShapeLocation;if(u)switch(n.shape.length){case 1:e.gl.uniform1iv(u,new Int32Array(n.shape));break;case 2:e.gl.uniform2iv(u,new Int32Array(n.shape));break;case 3:e.gl.uniform3iv(u,new Int32Array(n.shape));break;case 4:e.gl.uniform4iv(u,new Int32Array(n.shape))}if(t.outShapeStridesLocation){let r=a.util.computeStrides(n.shape);switch(n.shape.length){case 2:e.gl.uniform1iv(t.outShapeStridesLocation,new Int32Array(r));break;case 3:e.gl.uniform2iv(t.outShapeStridesLocation,new Int32Array(r));break;case 4:e.gl.uniform3iv(t.outShapeStridesLocation,new Int32Array(r))}}if(t.outTexShapeLocation&&e.gl.uniform2i(t.outTexShapeLocation,n.texData.texShape[0],n.texData.texShape[1]),t.program.customUniforms&&s)for(let r=0;r{let s=null!=t.texData&&null!=t.texData.slice&&t.texData.slice.flatOffset>0;if(e.enableShapeUniforms&&!t.isUniform){let l=t.texData.texShape,{useSqueezeShape:i,uniformShape:u,keptDims:p}=o.getUniformInfoFromShape(e.packedInputs,t.shape,l),c="",d="",f="";if(1===u.length&&e.packedInputs){let e=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)];c=`${e[0]>1}_${e[1]>1}`}else if(2!==u.length||e.packedInputs){if(u.length>2&&!e.packedInputs){let e=a.util.computeStrides(u);f=`${e[0]===l[1]}_${e[e.length-1]===l[1]}`}}else d=`${u[0]>1}_${u[1]>1}`;let m=t.shape.length,h=2===u.length&&a.util.arraysEqual(t.shape,l),g=1===a.util.sizeFromShape(t.shape),x=a.backend_util.getBroadcastDims(t.shape,r.shape),v=!e.packedInputs&&m===r.shape.length&&a.util.arraysEqual(l,r.texData.texShape),y=e.packedInputs||u.length>2?"":`${l[0]>1}_${l[1]>1}`;n+=`${m}_${v}_${i?p:""}_${u.length}_${g}_${x}_${h}_${c}_${d}_${f}_${y}_${s}`}else{let e=t.isUniform?"uniform":t.texData.texShape;n+=`${t.shape}_${e}_${s}`}});let s=e.userCode,l=e.constructor.name;return l+("_"+n+"_"+s+`${(0,a.env)().getNumber("WEBGL_VERSION")}`)}function f(e){return(0,a.env)().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&e<=4}},{"@tensorflow/tfjs-core":"biUij","./shader_compiler":"euDKG","./webgl_util":"8Bhtc","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],euDKG:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"makeShader",()=>u),s.export(r,"getCoordsDataType",()=>x),s.export(r,"getUniformInfoFromShape",()=>v),s.export(r,"squeezeInputInfo",()=>y);var a=e("@tensorflow/tfjs-core"),o=e("./glsl_version"),l=e("./shader_compiler_util");let{getBroadcastDims:i}=a.backend_util;function u(e,t,r){var n,s,u,_;let k,j,I=[];if(e.forEach(e=>{let t=a.util.sizeFromShape(e.shapeInfo.logicalShape);if(e.shapeInfo.isUniform?I.push(`uniform float ${e.name}${t>1?`[${t}]`:""};`):(I.push(`uniform sampler2D ${e.name};`),I.push(`uniform int offset${e.name};`)),r.enableShapeUniforms){let{uniformShape:t}=v(r.packedInputs,e.shapeInfo.logicalShape,e.shapeInfo.texShape);switch(t.length){case 1:I.push(`uniform int ${e.name}Shape;`);break;case 2:I.push(`uniform ivec2 ${e.name}Shape;`);break;case 3:I.push(`uniform ivec3 ${e.name}Shape;`);break;case 4:I.push(`uniform ivec4 ${e.name}Shape;`)}I.push(`uniform ivec2 ${e.name}TexShape;`)}}),r.enableShapeUniforms){switch(t.logicalShape.length){case 1:I.push("uniform int outShape;");break;case 2:I.push("uniform ivec2 outShape;"),I.push("uniform int outShapeStrides;");break;case 3:I.push("uniform ivec3 outShape;"),I.push("uniform ivec2 outShapeStrides;");break;case 4:I.push("uniform ivec4 outShape;"),I.push("uniform ivec3 outShapeStrides;")}I.push("uniform ivec2 outTexShape;")}r.customUniforms&&r.customUniforms.forEach(e=>{I.push(`uniform ${e.type} ${e.name}${e.arrayIndex?`[${e.arrayIndex}]`:""};`)});let w=I.join("\n"),T=e.map(e=>(function(e,t,r=!1,n){let s="";r?s+=function e(t,r){switch(t.shapeInfo.logicalShape.length){case 0:var n=t;let s=n.name,l="get"+s.charAt(0).toUpperCase()+s.slice(1),i=(0,o.getGlslDifferences)();return` + vec4 ${l}() { + return ${i.texture2D}(${s}, halfCR); + } + `;case 1:return function(e,t){let r=e.name,n="get"+r.charAt(0).toUpperCase()+r.slice(1),s=e.shapeInfo.texShape,a=(0,o.getGlslDifferences)();if(t)return` + vec4 ${n}(int index) { + ivec2 packedTexShape = ivec2(ceil(float(${r}TexShape[0]) / 2.0), ceil(float(${r}TexShape[1]) / 2.0)); + vec2 uv = packedUVfrom1D( + packedTexShape[0], packedTexShape[1], index); + return ${a.texture2D}(${r}, uv); + } + `;let l=[Math.ceil(s[0]/2),Math.ceil(s[1]/2)];return` + vec4 ${n}(int index) { + vec2 uv = packedUVfrom1D( + ${l[0]}, ${l[1]}, index); + return ${a.texture2D}(${r}, uv); + } + `}(t,r);case 2:return function(e,t){let r=e.shapeInfo.logicalShape,n=e.name,s="get"+n.charAt(0).toUpperCase()+n.slice(1),l=e.shapeInfo.texShape,i=l[0],u=l[1],p=(0,o.getGlslDifferences)();if(null!=l&&a.util.arraysEqual(r,l))return t?` + vec4 ${s}(int row, int col) { + vec2 uv = (vec2(col, row) + halfCR) / vec2(${n}TexShape[1], ${n}TexShape[0]); + + return ${p.texture2D}(${n}, uv); + } + `:` + vec4 ${s}(int row, int col) { + vec2 uv = (vec2(col, row) + halfCR) / vec2(${u}.0, ${i}.0); + + return ${p.texture2D}(${n}, uv); + } + `;if(t)return` + vec4 ${s}(int row, int col) { + ivec2 packedTexShape = ivec2(ceil(float(${n}TexShape[0]) / 2.0), ceil(float(${n}TexShape[1]) / 2.0)); + int valuesPerRow = int(ceil(float(${n}Shape[1]) / 2.0)); + vec2 uv = packedUVfrom2D(valuesPerRow, packedTexShape[0], packedTexShape[1], row, col); + return ${p.texture2D}(${n}, uv); + } + `;let c=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)],d=Math.ceil(r[1]/2);return` + vec4 ${s}(int row, int col) { + vec2 uv = packedUVfrom2D(${d}, ${c[0]}, ${c[1]}, row, col); + return ${p.texture2D}(${n}, uv); + } + `}(t,r);case 3:return function(t,r){let n=t.shapeInfo.logicalShape,s=t.name,a="get"+s.charAt(0).toUpperCase()+s.slice(1),l=t.shapeInfo.texShape,i=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)];if(1===n[0]){let s=y(t,n.slice(1));return` + ${e(s,r)} + vec4 ${a}(int b, int row, int col) { + return ${a}(${b(["b","row","col"],[1,2])}); + } + `}let u=(0,o.getGlslDifferences)();if(r)return` + vec4 ${a}(int b, int row, int col) { + ivec2 packedTexShape = ivec2(ceil(float(${s}TexShape[0]) / 2.0), ceil(float(${s}TexShape[1]) / 2.0)); + int valuesPerRow = int(ceil(float(${s}Shape[2]) / 2.0)); + int texelsInBatch = valuesPerRow * int(ceil(float(${s}Shape[1]) / 2.0)); + vec2 uv = packedUVfrom3D( + packedTexShape[0], packedTexShape[1], texelsInBatch, valuesPerRow, b, row, col); + return ${u.texture2D}(${s}, uv); + } + `;let p=i[0],c=i[1],d=Math.ceil(n[2]/2),f=d*Math.ceil(n[1]/2);return` + vec4 ${a}(int b, int row, int col) { + vec2 uv = packedUVfrom3D( + ${p}, ${c}, ${f}, ${d}, b, row, col); + return ${u.texture2D}(${s}, uv); + } + `}(t,r);default:return function(e,t){let r=e.name,n="get"+r.charAt(0).toUpperCase()+r.slice(1),s=(0,o.getGlslDifferences)();if(t)return` + vec4 ${n}(int b2, int b, int row, int col) { + int valuesPerRow = int(ceil(float(${r}Shape[3]) / 2.0)); + int texelsInBatch = valuesPerRow * int(ceil(float(${r}Shape[2]) / 2.0)); + int index = b * texelsInBatch + (row / 2) * valuesPerRow + (col / 2); + texelsInBatch *= ${r}Shape[1]; + index = b2 * texelsInBatch + index; + ivec2 packedTexShape = ivec2(ceil(float(${r}TexShape[0]) / 2.0), ceil(float(${r}TexShape[1]) / 2.0)); + int texR = index / packedTexShape[1]; + int texC = index - texR * packedTexShape[1]; + vec2 uv = (vec2(texC, texR) + halfCR) / vec2(packedTexShape[1], packedTexShape[0]); return ${s.texture2D}(${r}, uv); + } + `;let a=e.shapeInfo.logicalShape,l=a.length,i=e.shapeInfo.texShape,u=[Math.ceil(i[0]/2),Math.ceil(i[1]/2)],p=u[0],c=u[1],d=Math.ceil(a[l-1]/2),f=d*Math.ceil(a[l-2]/2),m="int b, int row, int col",h=`b * ${f} + (row / 2) * ${d} + (col / 2)`;for(let e=2;e=1?"coords = 0;":u.map(e=>`coords.${d[e+c]} = 0;`).join("\n");let f="";f=l<2&&o>0?"coords":e.shapeInfo.logicalShape.map((e,t)=>`coords.${d[t+c]}`).join(", ");let m="return outputValue;",h=1===a.util.sizeFromShape(e.shapeInfo.logicalShape),g=1===a.util.sizeFromShape(t.logicalShape);if(1!==o||h||g){if(h&&!g)m=1===l?` + return vec4(outputValue.x, outputValue.x, 0., 0.); + `:` + return vec4(outputValue.x); + `;else if(u.length){let e=o-2,t=o-1;u.indexOf(e)>-1&&u.indexOf(t)>-1?m="return vec4(outputValue.x);":u.indexOf(e)>-1?m="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":u.indexOf(t)>-1&&(m="return vec4(outputValue.xx, outputValue.zz);")}}else m=` + return vec4(outputValue.xy, outputValue.xy); + `;return` + vec4 ${"get"+s+"AtOutCoords"}() { + ${p} coords = getOutputCoords(); + ${r} + vec4 outputValue = get${s}(${f}); + ${m} + } + `}(e,t):s+=function(e,t){let r,n=e.name,s=n.charAt(0).toUpperCase()+n.slice(1),o="get"+s+"AtOutCoords",l=t.texShape,u=e.shapeInfo.texShape,p=e.shapeInfo.logicalShape.length,c=t.logicalShape.length;if(!e.shapeInfo.isUniform&&p===c&&null==e.shapeInfo.flatOffset&&a.util.arraysEqual(u,l))return` + float ${o}() { + return sampleTexture(${n}, resultUV); + } + `;let d=x(c),f=i(e.shapeInfo.logicalShape,t.logicalShape),m=c-p,h=["x","y","z","w","u","v"];r=0===p?"":c<2&&f.length>=1?"coords = 0;":f.map(e=>`coords.${h[e+m]} = 0;`).join("\n");let g="";return g=c<2&&p>0?"coords":e.shapeInfo.logicalShape.map((e,t)=>`coords.${h[t+m]}`).join(", "),` + float ${o}() { + ${d} coords = getOutputCoords(); + ${r} + return get${s}(${g}); + } + `}(e,t)),s})(e,t,r.packedInputs,r.enableShapeUniforms)).join("\n"),N=t.texShape,S=(0,o.getGlslDifferences)(),C=(n=S,` + float sampleTexture(sampler2D textureSampler, vec2 uv) { + return ${n.texture2D}(textureSampler, uv).r; + } + `),E=(s=S,`${s.version} + precision highp float; + precision highp int; + precision highp sampler2D; + ${s.varyingFs} vec2 resultUV; + ${s.defineOutput} + const vec2 halfCR = vec2(0.5, 0.5); + + struct ivec5 + { + int x; + int y; + int z; + int w; + int u; + }; + + struct ivec6 + { + int x; + int y; + int z; + int w; + int u; + int v; + }; + + uniform float NAN; + ${s.defineSpecialNaN} + ${s.defineSpecialInf} + ${s.defineRound} + + int imod(int x, int y) { + return x - y * (x / y); + } + + int idiv(int a, int b, float sign) { + int res = a / b; + int mod = imod(a, b); + if (sign < 0. && mod != 0) { + res -= 1; + } + return res; + } + + //Based on the work of Dave Hoskins + //https://www.shadertoy.com/view/4djSRW + #define HASHSCALE1 443.8975 + float random(float seed){ + vec2 p = resultUV * seed; + vec3 p3 = fract(vec3(p.xyx) * HASHSCALE1); + p3 += dot(p3, p3.yzx + 19.19); + return fract((p3.x + p3.y) * p3.z); + } + + ${p} + ${c} + ${d} + `);return t.isPacked?(k=function(e,t,r){switch(e.length){case 0:return m();case 1:var n=0,s=t,o=r;let l=[Math.ceil(s[0]/2),Math.ceil(s[1]/2)];return 1===l[0]?o?` + int getOutputCoords() { + return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0)); + } + `:` + int getOutputCoords() { + return 2 * int(resultUV.x * ${l[1]}.0); + } + `:1===l[1]?o?` + int getOutputCoords() { + return 2 * int(resultUV.y * ceil(float(outTexShape[0]) / 2.0)); + } + `:` + int getOutputCoords() { + return 2 * int(resultUV.y * ${l[0]}.0); + } + `:o?` + int getOutputCoords() { + ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(packedTexShape[0], packedTexShape[1])); + return 2 * (resTexRC.x * packedTexShape[1] + resTexRC.y); + } + `:` + int getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${l[0]}, ${l[1]})); + return 2 * (resTexRC.x * ${l[1]} + resTexRC.y); + } + `;case 2:var i=e,u=t,p=r;let c=[Math.ceil(u[0]/2),Math.ceil(u[1]/2)];if(a.util.arraysEqual(i,u))return p?` + ivec2 getOutputCoords() { + ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); + return 2 * ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1])); + } + `:` + ivec2 getOutputCoords() { + return 2 * ivec2(resultUV.yx * vec2(${c[0]}, ${c[1]})); + } + `;let d=Math.ceil(i[1]/2);return p?` + ivec2 getOutputCoords() { + ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); + int texelsInLogicalRow = int(ceil(float(outShape[1]) / 2.0)); + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(packedTexShape[0], packedTexShape[1])); + + int index = resTexRC.x * packedTexShape[1] + resTexRC.y; + int r = 2 * (index / texelsInLogicalRow); + int c = imod(index, texelsInLogicalRow) * 2; + + return ivec2(r, c); + } + `:` + ivec2 getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${c[0]}, ${c[1]})); + + int index = resTexRC.x * ${c[1]} + resTexRC.y; + int r = 2 * (index / ${d}); + int c = imod(index, ${d}) * 2; + + return ivec2(r, c); + } + `;case 3:var f=e,h=t,g=r;if(g)return` + ivec3 getOutputCoords() { + ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); + int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0)); + int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[1]) / 2.0)); + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(packedTexShape[0], packedTexShape[1])); + int index = resTexRC.x * packedTexShape[1] + resTexRC.y; + + int b = index / texelsInBatch; + index -= b * texelsInBatch; + + int r = 2 * (index / texelsInLogicalRow); + int c = imod(index, texelsInLogicalRow) * 2; + + return ivec3(b, r, c); + } + `;let x=[Math.ceil(h[0]/2),Math.ceil(h[1]/2)],v=Math.ceil(f[2]/2),y=v*Math.ceil(f[1]/2);return` + ivec3 getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${x[0]}, ${x[1]})); + int index = resTexRC.x * ${x[1]} + resTexRC.y; + + int b = index / ${y}; + index -= b * ${y}; + + int r = 2 * (index / ${v}); + int c = imod(index, ${v}) * 2; + + return ivec3(b, r, c); + } + `;default:return function(e,t,r){if(r)return` + ivec4 getOutputCoords() { + ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(packedTexShape[0], packedTexShape[1])); + int index = resTexRC.x * packedTexShape[1] + resTexRC.y; + + int texelsInLogicalRow = int(ceil(float(outShape[3]) / 2.0)); + int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[2]) / 2.0)); + int texelsInBatchN = texelsInBatch * outShape[1]; + + int b2 = index / texelsInBatchN; + index -= b2 * texelsInBatchN; + + int b = index / texelsInBatch; + index -= b * texelsInBatch; + + int r = 2 * (index / texelsInLogicalRow); + int c = imod(index, texelsInLogicalRow) * 2; + + return ivec4(b2, b, r, c); + } + `;let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],s=Math.ceil(e[e.length-1]/2),a=s*Math.ceil(e[e.length-2]/2),o=a,l="",i="b, r, c";for(let t=2;t1&&!a.util.arraysEqual(t,r)&&n.lengthe[t]).join(", ")}},{"@tensorflow/tfjs-core":"biUij","./glsl_version":"9EOgg","./shader_compiler_util":"cJiqQ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cJiqQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getLogicalCoordinatesFromFlatIndex",()=>o),s.export(r,"getOutputLogicalCoordinatesFromFlatIndexByUniform",()=>l),s.export(r,"getLogicalCoordinatesFromFlatIndexByUniform",()=>i),s.export(r,"dotify",()=>p),s.export(r,"getFlatIndexFrom3D",()=>c),s.export(r,"getFlatIndexFrom3DOutput",()=>d),s.export(r,"ENCODE_FLOAT_SNIPPET",()=>f);var a=e("@tensorflow/tfjs-core");function o(e,t,r="index"){let n=a.util.computeStrides(t);return n.map((t,s)=>{let a=`int ${e[s]} = ${r} / ${t}`,o=s===n.length-1?`int ${e[s+1]} = ${r} - ${e[s]} * ${t}`:`index -= ${e[s]} * ${t}`;return`${a}; ${o};`}).join("")}function l(e,t,r="index"){let n=a.util.computeStrides(t);return n.map((t,s)=>{let a=`int ${e[s]} = ${r} / outShapeStrides[${s}]`,o=s===n.length-1?`int ${e[s+1]} = ${r} - ${e[s]} * outShapeStrides[${s}]`:`index -= ${e[s]} * outShapeStrides[${s}]`;return`${a}; ${o};`}).join("")}function i(e,t,r="index"){let n=function(e,t){let r=e.length,n=e.map(e=>`${t}[${e}]`),s=Array(r-1);s[r-2]=n[r-1];for(let e=r-3;e>=0;--e)s[e]=`(${s[e+1]} * ${n[e+1]})`;return s}(e.map((e,t)=>t),t);return n.map((t,s)=>{let a=`int ${e[s]} = ${r} / ${n[s]}`,o=s===n.length-1?`int ${e[s+1]} = ${r} - ${e[s]} * ${n[s]}`:`index -= ${e[s]} * ${n[s]}`;return`${a}; ${o};`}).join("")}function u(e){return 1===e.length?`${e[0]}`:`vec${e.length}(${e.join(",")})`}function p(e,t){if(e.length!==t.length)throw Error(`Vectors to be dotted must be of the same length -got ${e.length} and ${t.length}`);let r=[],n=Math.floor(e.length/4),s=e.length%4;for(let s=0;s`float(${e})`),a=a.map(e=>`float(${e})`)),r.push(`${u(s)}, ${u(a)}`)}return r.map((e,t)=>`dot(${e})`).join("+")}function c(e){let t=a.util.computeStrides(e).map(e=>e.toString());return` + int getFlatIndex(ivec3 coords) { + return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z; + } +`}function d(){return` + int getFlatIndex(ivec3 coords) { + return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z; + } +`}let f=` + const float FLOAT_MAX = 1.70141184e38; + const float FLOAT_MIN = 1.17549435e-38; + + lowp vec4 encode_float(highp float v) { + if (isnan(v)) { + return vec4(255, 255, 255, 255); + } + + highp float av = abs(v); + + if(av < FLOAT_MIN) { + return vec4(0.0, 0.0, 0.0, 0.0); + } else if(v > FLOAT_MAX) { + return vec4(0.0, 0.0, 128.0, 127.0) / 255.0; + } else if(v < -FLOAT_MAX) { + return vec4(0.0, 0.0, 128.0, 255.0) / 255.0; + } + + highp vec4 c = vec4(0,0,0,0); + + highp float e = floor(log2(av)); + highp float m = exp2(fract(log2(av))) - 1.0; + + c[2] = floor(128.0 * m); + m -= c[2] / 128.0; + c[1] = floor(32768.0 * m); + m -= c[1] / 32768.0; + c[0] = floor(8388608.0 * m); + + highp float ebias = e + 127.0; + c[3] = floor(ebias / 2.0); + ebias -= c[3] * 2.0; + c[2] += floor(ebias) * 128.0; + + c[3] += 128.0 * step(0.0, -v); + + return c / 255.0; + } +`},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7VRvZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DecodeMatrixPackedProgram",()=>u);var a=e("./glsl_version"),o=e("./gpgpu_math"),l=e("./shader_compiler_util"),i=e("./tex_util");class u{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=i.PackingScheme.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=(0,a.getGlslDifferences)();this.outputShape=e,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length),this.userCode=` + ivec3 outCoordsFromFlatIndex(int index) { + ${this.enableShapeUniforms?l.getOutputLogicalCoordinatesFromFlatIndexByUniform(["r","c","d"],e):l.getLogicalCoordinatesFromFlatIndex(["r","c","d"],e)} + return ivec3(r, c, d); + } + + void main() { + ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1])); + int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y); + + vec4 result = vec4(0.); + + for (int i=0; i<4; i++) { + int flatIndex = index + i; + ivec3 rc = outCoordsFromFlatIndex(flatIndex); + result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z)); + } + + ${t.output} = result; + } + `}}},{"./glsl_version":"9EOgg","./gpgpu_math":"1F9Jp","./shader_compiler_util":"cJiqQ","./tex_util":"jmYC7","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jcxxr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EncodeFloatProgram",()=>i);var a=e("./glsl_version"),o=e("./shader_compiler_util"),l=e("./tex_util");class i{constructor(e){this.variableNames=["A"],this.outTexUsage=l.TextureUsage.DOWNLOAD;let t=(0,a.getGlslDifferences)();this.outputShape=e,this.userCode=` + ${o.ENCODE_FLOAT_SNIPPET} + + void main() { + float x = getAAtOutCoords(); + ${t.output} = encode_float(x); + } + `}}},{"./glsl_version":"9EOgg","./shader_compiler_util":"cJiqQ","./tex_util":"jmYC7","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9TFBs":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EncodeFloatPackedProgram",()=>i);var a=e("./glsl_version"),o=e("./shader_compiler_util"),l=e("./tex_util");class i{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=l.TextureUsage.DOWNLOAD;let t=(0,a.getGlslDifferences)();this.outputShape=e,this.userCode=` + ${o.ENCODE_FLOAT_SNIPPET} + + void main() { + ivec3 coords = getOutputCoords(); + float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); + ${t.output} = encode_float(x); + } + `}}},{"./glsl_version":"9EOgg","./shader_compiler_util":"cJiqQ","./tex_util":"jmYC7","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7GwLQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EncodeMatrixProgram",()=>u);var a=e("./glsl_version"),o=e("./gpgpu_math"),l=e("./shader_compiler_util");let i={R:0,G:1,B:2,A:3};class u{constructor(e,t=!1,r="RGBA"){this.variableNames=["A"],this.customUniforms=[{name:"texShape",type:"ivec2"}];let n=(0,a.getGlslDifferences)();this.outputShape=e,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length);let s="result";t&&(s="floor(result * 255. + 0.5)");let u="";for(let e=0;ei);var a=e("./glsl_version"),o=e("./gpgpu_math"),l=e("./shader_compiler_util");class i{constructor(e,t=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.customUniforms=[{name:"texShape",type:"ivec2"}];let r=(0,a.getGlslDifferences)();this.outputShape=e,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length);let n="",s="result";t&&(s="floor(result * 255. + 0.5)");for(let t=0;t<=1;t++)for(let s=0;s<=1;s++){let a=2*t+s;n+=` + localCoords = coords; + if(localCoords[2] + ${s} < ${this.enableShapeUniforms?"outShape[2]":`${e[2]}`}) { + localCoords[2] += ${s}; + if (localCoords[1] + ${t} < ${this.enableShapeUniforms?"outShape[1]":`${e[1]}`}) { + localCoords[1] += ${t}; + + flatIndex = getFlatIndex(localCoords); + offset = imod(flatIndex, 4); + + flatIndex = idiv(flatIndex, 4, 1.); + + int r = flatIndex / texShape[1]; + int c = imod(flatIndex, texShape[1]); + vec2 uv = (vec2(c, r) + halfCR) / vec2(texShape[1], texShape[0]); + values = ${r.texture2D}(A, uv); + + if (offset == 0) { + result[${a}] = values[0]; + } else if (offset == 1) { + result[${a}] = values[1]; + } else if (offset == 2) { + result[${a}] = values[2]; + } else { + result[${a}] = values[3]; + } + } + } + `}this.userCode=` + ${this.enableShapeUniforms?l.getFlatIndexFrom3DOutput():l.getFlatIndexFrom3D(e)} + + void main() { + ivec3 coords = getOutputCoords(); + + vec4 result = vec4(0.); + int flatIndex, r, c, offset; + ivec3 localCoords; + vec2 uv; + vec4 values; + + ${n} + + ${r.output} = ${s}; + } + `}}},{"./glsl_version":"9EOgg","./gpgpu_math":"1F9Jp","./shader_compiler_util":"cJiqQ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eTBiK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"GPGPUContext",()=>p),s.export(r,"linearSearchLastTrue",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./canvas_util"),l=e("./gpgpu_util"),i=e("./tex_util"),u=e("./webgl_util");class p{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let t=(0,a.env)().getNumber("WEBGL_VERSION");if(null!=e?(this.gl=e,(0,o.setWebGLContext)(t,e)):this.gl=(0,o.getWebGLContext)(t),e=this.gl,2===(0,a.env)().getNumber("WEBGL_VERSION")){let t=e;this.createVertexArray=()=>u.callAndCheck(t,()=>t.createVertexArray()),this.bindVertexArray=e=>u.callAndCheck(t,()=>t.bindVertexArray(e)),this.deleteVertexArray=e=>u.callAndCheck(t,()=>t.deleteVertexArray(e)),this.getVertexArray=()=>u.callAndCheck(t,()=>t.getParameter(t.VERTEX_ARRAY_BINDING))}else if(null!=e){let t=e.getExtension("OES_vertex_array_object");if(null==t)throw Error("All WebGL1 implementations are expected to offer OES_vertex_array_object.");this.createVertexArray=()=>u.callAndCheck(e,()=>t.createVertexArrayOES()),this.bindVertexArray=r=>u.callAndCheck(e,()=>t.bindVertexArrayOES(r)),this.deleteVertexArray=r=>u.callAndCheck(e,()=>t.deleteVertexArrayOES(r)),this.getVertexArray=()=>u.callAndCheck(e,()=>e.getParameter(t.VERTEX_ARRAY_BINDING_OES))}let r="WEBGL_color_buffer_float",n="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),1===(0,a.env)().getNumber("WEBGL_VERSION")){let e="OES_texture_half_float";if(this.textureFloatExtension=u.getExtensionOrThrow(this.gl,"OES_texture_float"),u.hasExtension(this.gl,e))this.textureHalfFloatExtension=u.getExtensionOrThrow(this.gl,e);else if((0,a.env)().get("WEBGL_FORCE_F16_TEXTURES"))throw Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(r),u.hasExtension(this.gl,n))this.colorBufferHalfFloatExtension=u.getExtensionOrThrow(this.gl,n);else if((0,a.env)().get("WEBGL_FORCE_F16_TEXTURES"))throw Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(r="EXT_color_buffer_float",u.hasExtension(this.gl,r))this.colorBufferFloatExtension=this.gl.getExtension(r);else if(u.hasExtension(this.gl,n))this.colorBufferHalfFloatExtension=this.gl.getExtension(n);else throw Error("GL context does not support color renderable floats");this.vertexBuffer=l.createVertexBuffer(this.gl),this.indexBuffer=l.createIndexBuffer(this.gl),this.framebuffer=u.createFramebuffer(this.gl),this.textureConfig=i.getTextureConfig(this.gl,this.textureHalfFloatExtension)}get debug(){return(0,a.env)().getBool("DEBUG")}dispose(){if(this.disposed)return;null!=this.program&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),null!=this.outputTexture&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");let e=this.gl;u.callAndCheck(e,()=>e.finish()),u.callAndCheck(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),u.callAndCheck(e,()=>e.deleteFramebuffer(this.framebuffer)),u.callAndCheck(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),u.callAndCheck(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),u.callAndCheck(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),l.createFloat32MatrixTexture(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),l.createFloat16MatrixTexture(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),l.createUnsignedBytesMatrixTexture(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),l.uploadPixelDataToTexture(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,r,n){this.throwIfDisposed(),l.uploadDenseMatrixToTexture(this.gl,e,t,r,n,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),l.createFloat16PackedMatrixTexture(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),l.createPackedMatrixTexture(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(u.unbindColorTextureFromFramebuffer(this.gl,this.framebuffer),this.outputTexture=null),u.callAndCheck(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,r){return this.downloadMatrixDriver(e,()=>l.downloadByteEncodedFloatMatrixFromOutputTexture(this.gl,t,r,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,r,n,s,a){return l.downloadPackedMatrixFromBuffer(this.gl,e,t,r,n,s,a,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return l.downloadFloat32MatrixFromBuffer(this.gl,e,t)}createBufferFromTexture(e,t,r){this.bindTextureToFrameBuffer(e);let n=l.createBufferFromOutputTexture(this.gl,t,r,this.textureConfig);return this.unbindTextureToFrameBuffer(),n}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,r;if((0,a.env)().getBool("WEBGL_FENCE_API_ENABLED")){let n=e.fenceSync(e.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),r=()=>{let t=e.clientWaitSync(n,0,0);return t===e.ALREADY_SIGNALED||t===e.CONDITION_SATISFIED},t=n}else(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),r=()=>this.isQueryAvailable(t,(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):r=()=>!0;return{query:t,isFencePassed:r}}downloadMatrixFromPackedTexture(e,t,r){return this.downloadMatrixDriver(e,()=>l.downloadMatrixFromPackedOutputTexture(this.gl,t,r))}createProgram(e){this.throwIfDisposed();let t=this.gl;null==this.vertexShader&&(this.vertexShader=l.createVertexShader(t));let r=u.createProgram(t);u.callAndCheck(t,()=>t.attachShader(r,this.vertexShader)),u.callAndCheck(t,()=>t.attachShader(r,e)),u.linkProgram(t,r);let n=Object.assign(r,{vao:this.createVertexArray()});return this.debug&&u.validateProgram(t,n),n}buildVao(e){this.setProgram(e),this.bindVertexArray(e.vao);let t=this.gl;u.callAndCheck(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),l.bindVertexProgramAttributeStreams(t,e,this.vertexBuffer)}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),null!=e&&(u.callAndCheck(this.gl,()=>this.gl.deleteProgram(e)),this.deleteVertexArray(e.vao))}setProgram(e){this.throwIfDisposed(),this.program=e,null!=this.program&&this.debug&&u.validateProgram(this.gl,this.program),u.callAndCheck(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,r=!0){return(this.throwIfDisposed(),r)?u.getProgramUniformLocationOrThrow(this.gl,e,t):u.getProgramUniformLocation(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),u.callAndCheck(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,r){this.throwIfDisposed(),this.throwIfNoProgram(),u.bindTextureToProgramUniformSampler(this.gl,e,t,r)}setOutputMatrixTexture(e,t,r){this.setOutputMatrixTextureDriver(e,r,t)}setOutputPackedMatrixTexture(e,t,r){this.throwIfDisposed();let[n,s]=i.getPackedMatrixTextureShapeWidthHeight(t,r);this.setOutputMatrixTextureDriver(e,n,s)}setOutputMatrixWriteRegion(e,t,r,n){this.setOutputMatrixWriteRegionDriver(r,e,n,t)}setOutputPackedMatrixWriteRegion(e,t,r,n){throw Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){null!=this.program&&u.validateProgram(this.gl,this.program),u.validateFramebuffer(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&(console.assert(this.getVertexArray()===this.program.vao,"VAO changed between setProgram and executeProgram!"),this.debugValidate()),u.callAndCheck(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),u.callAndCheck(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return null==this.disjointQueryTimerExtension&&(this.disjointQueryTimerExtension=u.getExtensionOrThrow(this.gl,2===(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(2===(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){let e=this.gl,t=this.getQueryTimerExtensionWebGL2(),r=e.createQuery();return e.beginQuery(t.TIME_ELAPSED_EXT,r),r}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(2===(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){let e=this.gl,t=this.getQueryTimerExtensionWebGL2();e.endQuery(t.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await a.util.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(0===t)return null;if(2===t){let t=this.gl;return t.getQueryParameter(e,t.QUERY_RESULT)/1e6}{let t=this.getQueryTimerExtensionWebGL1();return t.getQueryObjectEXT(e,t.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(0===t)return!0;if(2===t){let t=this.gl,r=this.getQueryTimerExtensionWebGL2(),n=t.getQueryParameter(e,t.QUERY_RESULT_AVAILABLE);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(r.GPU_DISJOINT_EXT)),n&&!this.disjoint}{let t=this.getQueryTimerExtensionWebGL1(),r=t.getQueryObjectEXT(e,t.QUERY_RESULT_AVAILABLE_EXT);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(t.GPU_DISJOINT_EXT)),r&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=c(this.itemsToPoll.map(e=>e.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:e}=this.itemsToPoll[t];e()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){let r;this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1||("setTimeoutCustom"in(0,a.env)().platform&&(r=(0,a.env)().platform.setTimeoutCustom.bind((0,a.env)().platform)),a.util.repeatedTry(()=>(this.pollItems(),0===this.itemsToPoll.length),()=>0,null,r))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),u.bindColorTextureToFramebuffer(this.gl,e,this.framebuffer),this.debug&&u.validateFramebuffer(this.gl)}unbindTextureToFrameBuffer(){null!=this.outputTexture?(u.bindColorTextureToFramebuffer(this.gl,this.outputTexture,this.framebuffer),this.debug&&u.validateFramebuffer(this.gl)):u.unbindColorTextureFromFramebuffer(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let r=t();return this.unbindTextureToFrameBuffer(),r}setOutputMatrixTextureDriver(e,t,r){this.throwIfDisposed();let n=this.gl;u.bindColorTextureToFramebuffer(n,e,this.framebuffer),this.debug&&u.validateFramebuffer(n),this.outputTexture=e,u.callAndCheck(n,()=>n.viewport(0,0,t,r)),u.callAndCheck(n,()=>n.scissor(0,0,t,r))}setOutputMatrixWriteRegionDriver(e,t,r,n){this.throwIfDisposed(),u.callAndCheck(this.gl,()=>this.gl.scissor(e,t,r,n))}throwIfDisposed(){if(this.disposed)throw Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(null==this.program)throw Error("No GPU program is currently set.")}}function c(e){let t=0;for(;tu),s.export(r,"createVertexBuffer",()=>p),s.export(r,"createIndexBuffer",()=>c),s.export(r,"getInternalFormatForFloat32MatrixTexture",()=>f),s.export(r,"createFloat32MatrixTexture",()=>m),s.export(r,"getInternalFormatForFloat16MatrixTexture",()=>h),s.export(r,"createFloat16MatrixTexture",()=>g),s.export(r,"getInternalFormatForUnsignedBytesMatrixTexture",()=>x),s.export(r,"createUnsignedBytesMatrixTexture",()=>v),s.export(r,"getInternalFormatForPackedMatrixTexture",()=>y),s.export(r,"createPackedMatrixTexture",()=>b),s.export(r,"getInternalFormatForFloat16PackedMatrixTexture",()=>_),s.export(r,"createFloat16PackedMatrixTexture",()=>k),s.export(r,"bindVertexProgramAttributeStreams",()=>j),s.export(r,"uploadDenseMatrixToTexture",()=>I),s.export(r,"uploadPixelDataToTexture",()=>w),s.export(r,"createBufferFromOutputTexture",()=>T),s.export(r,"downloadFloat32MatrixFromBuffer",()=>N),s.export(r,"downloadByteEncodedFloatMatrixFromOutputTexture",()=>S),s.export(r,"downloadPackedMatrixFromBuffer",()=>C),s.export(r,"downloadMatrixFromPackedOutputTexture",()=>E);var a=e("@tensorflow/tfjs-core"),o=e("./glsl_version"),l=e("./tex_util"),i=e("./webgl_util");function u(e){let t=(0,o.getGlslDifferences)(),r=`${t.version} + precision highp float; + ${t.attribute} vec3 clipSpacePos; + ${t.attribute} vec2 uv; + ${t.varyingVs} vec2 resultUV; + + void main() { + gl_Position = vec4(clipSpacePos, 1); + resultUV = uv; + }`;return i.createVertexShader(e,r)}function p(e){let t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return i.createStaticVertexBuffer(e,t)}function c(e){let t=new Uint16Array([0,1,2,2,1,3]);return i.createStaticIndexBuffer(e,t)}function d(e,t,r,n,s,o){i.validateTextureSize(t,r);let l=i.createTexture(e),u=e.TEXTURE_2D;return i.callAndCheck(e,()=>e.bindTexture(u,l)),i.callAndCheck(e,()=>e.texParameteri(u,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),i.callAndCheck(e,()=>e.texParameteri(u,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),i.callAndCheck(e,()=>e.texParameteri(u,e.TEXTURE_MIN_FILTER,e.NEAREST)),i.callAndCheck(e,()=>e.texParameteri(u,e.TEXTURE_MAG_FILTER,e.NEAREST)),1===(0,a.env)().getNumber("WEBGL_VERSION")?i.callAndCheck(e,()=>e.texImage2D(u,0,n,t,r,0,s,o,null)):i.callAndCheck(e,()=>e.texStorage2D(u,1,n,t,r)),i.callAndCheck(e,()=>e.bindTexture(e.TEXTURE_2D,null)),{texture:l,texShape:[r,t]}}function f(e){return e.internalFormatFloat}function m(e,t,r,n){let[s,a]=l.getUnpackedMatrixTextureShapeWidthHeight(t,r);return d(e,s,a,f(n),n.textureFormatFloat,e.FLOAT)}function h(e){return e.internalFormatHalfFloat}function g(e,t,r,n){let[s,a]=l.getUnpackedMatrixTextureShapeWidthHeight(t,r);return d(e,s,a,h(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function x(e){return e.downloadTextureFormat}function v(e,t,r,n){let[s,a]=l.getUnpackedMatrixTextureShapeWidthHeight(t,r);return d(e,s,a,x(n),e.RGBA,e.UNSIGNED_BYTE)}function y(e){return e.internalFormatPackedFloat}function b(e,t,r,n){let[s,a]=l.getPackedMatrixTextureShapeWidthHeight(t,r);return d(e,s,a,y(n),e.RGBA,e.FLOAT)}function _(e){return e.internalFormatPackedHalfFloat}function k(e,t,r,n){let[s,a]=l.getPackedMatrixTextureShapeWidthHeight(t,r);return d(e,s,a,_(n),e.RGBA,n.textureTypeHalfFloat)}function j(e,t,r){return i.callAndCheck(e,()=>e.bindBuffer(e.ARRAY_BUFFER,r)),i.bindVertexBufferToProgramAttribute(e,t,"clipSpacePos",r,3,20,0)&&i.bindVertexBufferToProgramAttribute(e,t,"uv",r,2,20,12)}function I(e,t,r,n,s,o){let l,u,p;i.callAndCheck(e,()=>e.bindTexture(e.TEXTURE_2D,t)),s instanceof Uint8Array?(l=new Uint8Array(r*n*4),u=e.UNSIGNED_BYTE,p=e.RGBA):(l=new Float32Array(r*n*4),u=e.FLOAT,p=o.internalFormatPackedFloat),l.set(s),2===(0,a.env)().getNumber("WEBGL_VERSION")?i.callAndCheck(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,r,n,e.RGBA,u,l)):i.callAndCheck(e,()=>e.texImage2D(e.TEXTURE_2D,0,p,r,n,0,e.RGBA,u,l)),i.callAndCheck(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function w(e,t,r){i.callAndCheck(e,()=>e.bindTexture(e.TEXTURE_2D,t)),r.data instanceof Uint8Array?2===(0,a.env)().getNumber("WEBGL_VERSION")?i.callAndCheck(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,r.width,r.height,e.RGBA,e.UNSIGNED_BYTE,r.data)):i.callAndCheck(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,r.width,r.height,0,e.RGBA,e.UNSIGNED_BYTE,r.data)):2===(0,a.env)().getNumber("WEBGL_VERSION")?i.callAndCheck(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,r)):i.callAndCheck(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,r)),i.callAndCheck(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function T(e,t,r,n){let s=e.createBuffer();i.callAndCheck(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,s));let a=16*t*r;return i.callAndCheck(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,a,e.STREAM_READ)),i.callAndCheck(e,()=>e.readPixels(0,0,r,t,e.RGBA,e.FLOAT,0)),i.callAndCheck(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),s}function N(e,t,r){let n=new Float32Array(r);return e.bindBuffer(e.PIXEL_PACK_BUFFER,t),e.getBufferSubData(e.PIXEL_PACK_BUFFER,0,n),e.bindBuffer(e.PIXEL_PACK_BUFFER,null),n}function S(e,t,r,n){let[s,a]=l.getUnpackedMatrixTextureShapeWidthHeight(t,r),o=new Uint8Array(l.getUnpackedArraySizeFromMatrixSize(t*r,4));return i.callAndCheck(e,()=>e.readPixels(0,0,s,a,n.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function C(e,t,r,n,s,a,o,i){let u=new Float32Array(l.getPackedRGBAArraySizeFromMatrixShape(a,o));return e.bindBuffer(e.PIXEL_PACK_BUFFER,t),e.getBufferSubData(e.PIXEL_PACK_BUFFER,0,u),e.bindBuffer(e.PIXEL_PACK_BUFFER,null),u}function E(e,t,r){let n=new Float32Array(t*r*4);return i.callAndCheck(e,()=>e.readPixels(0,0,r,t,e.RGBA,e.FLOAT,n)),n}},{"@tensorflow/tfjs-core":"biUij","./glsl_version":"9EOgg","./tex_util":"jmYC7","./webgl_util":"8Bhtc","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lQim5:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addImplCPU",()=>a),s.export(r,"bincountImplCPU",()=>o),s.export(r,"bincountReduceImplCPU",()=>l),s.export(r,"bitwiseAndImplCPU",()=>i),s.export(r,"castImplCPU",()=>u),s.export(r,"ceilImplCPU",()=>p),s.export(r,"concatImplCPU",()=>c),s.export(r,"equalImplCPU",()=>d),s.export(r,"expImplCPU",()=>f),s.export(r,"expm1ImplCPU",()=>m),s.export(r,"floorImplCPU",()=>h),s.export(r,"gatherNdImplCPU",()=>g),s.export(r,"gatherV2ImplCPU",()=>x),s.export(r,"greaterEqualImplCPU",()=>y),s.export(r,"greaterImplCPU",()=>v),s.export(r,"lessEqualImplCPU",()=>_),s.export(r,"lessImplCPU",()=>b),s.export(r,"linSpaceImplCPU",()=>k),s.export(r,"logImplCPU",()=>j),s.export(r,"maxImplCPU",()=>I),s.export(r,"maximumImplCPU",()=>w),s.export(r,"minimumImplCPU",()=>T),s.export(r,"multiplyImplCPU",()=>N),s.export(r,"negImplCPU",()=>S),s.export(r,"notEqualImplCPU",()=>C),s.export(r,"prodImplCPU",()=>E),s.export(r,"raggedGatherImplCPU",()=>F),s.export(r,"raggedRangeImplCPU",()=>A),s.export(r,"raggedTensorToTensorImplCPU",()=>R),s.export(r,"scatterImplCPU",()=>$),s.export(r,"sigmoidImplCPU",()=>O),s.export(r,"simpleAbsImplCPU",()=>M),s.export(r,"sliceImplCPU",()=>W),s.export(r,"sparseFillEmptyRowsImplCPU",()=>B),s.export(r,"sparseReshapeImplCPU",()=>L),s.export(r,"sparseSegmentReductionImplCPU",()=>V),s.export(r,"sqrtImplCPU",()=>U),s.export(r,"staticRegexReplaceImplCPU",()=>G),s.export(r,"stridedSliceImplCPU",()=>z),s.export(r,"stringNGramsImplCPU",()=>Q),s.export(r,"stringSplitImplCPU",()=>q),s.export(r,"stringToHashBucketFastImplCPU",()=>H),s.export(r,"subImplCPU",()=>K),s.export(r,"rangeImplCPU",()=>P),s.export(r,"rsqrtImplCPU",()=>D),s.export(r,"tileImplCPU",()=>X),s.export(r,"topKImplCPU",()=>Y),s.export(r,"transposeImplCPU",()=>J),s.export(r,"uniqueImplCPU",()=>Z);let{addImpl:a,bincountImpl:o,bincountReduceImpl:l,bitwiseAndImpl:i,castImpl:u,ceilImpl:p,concatImpl:c,equalImpl:d,expImpl:f,expm1Impl:m,floorImpl:h,gatherNdImpl:g,gatherV2Impl:x,greaterImpl:v,greaterEqualImpl:y,lessImpl:b,lessEqualImpl:_,linSpaceImpl:k,logImpl:j,maxImpl:I,maximumImpl:w,minimumImpl:T,multiplyImpl:N,negImpl:S,notEqualImpl:C,prodImpl:E,raggedGatherImpl:F,raggedRangeImpl:A,raggedTensorToTensorImpl:R,rangeImpl:P,rsqrtImpl:D,scatterImpl:$,sigmoidImpl:O,simpleAbsImpl:M,sliceImpl:W,sparseFillEmptyRowsImpl:B,sparseReshapeImpl:L,sparseSegmentReductionImpl:V,sqrtImpl:U,staticRegexReplaceImpl:G,stridedSliceImpl:z,stringNGramsImpl:Q,stringSplitImpl:q,stringToHashBucketFastImpl:H,subImpl:K,tileImpl:X,topKImpl:Y,transposeImpl:J,uniqueImpl:Z}=e("@tensorflow/tfjs-backend-cpu/dist/shared")},{"@tensorflow/tfjs-backend-cpu/dist/shared":"8xYEJ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8xYEJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"simpleAbsImpl",()=>a.simpleAbsImpl),s.export(r,"addImpl",()=>o.addImpl),s.export(r,"bincountImpl",()=>l.bincountImpl),s.export(r,"bincountReduceImpl",()=>l.bincountReduceImpl),s.export(r,"bitwiseAndImpl",()=>i.bitwiseAndImpl),s.export(r,"castImpl",()=>u.castImpl),s.export(r,"ceilImpl",()=>p.ceilImpl),s.export(r,"concatImpl",()=>c.concatImpl),s.export(r,"equalImpl",()=>d.equalImpl),s.export(r,"expImpl",()=>f.expImpl),s.export(r,"expm1Impl",()=>m.expm1Impl),s.export(r,"floorImpl",()=>h.floorImpl),s.export(r,"floorDivImpl",()=>g.floorDivImpl),s.export(r,"gatherNdImpl",()=>x.gatherNdImpl),s.export(r,"gatherV2Impl",()=>v.gatherV2Impl),s.export(r,"greaterImpl",()=>y.greaterImpl),s.export(r,"greaterEqualImpl",()=>b.greaterEqualImpl),s.export(r,"lessImpl",()=>_.lessImpl),s.export(r,"lessEqualImpl",()=>k.lessEqualImpl),s.export(r,"linSpaceImpl",()=>j.linSpaceImpl),s.export(r,"logImpl",()=>I.logImpl),s.export(r,"maxImpl",()=>w.maxImpl),s.export(r,"maximumImpl",()=>T.maximumImpl),s.export(r,"minimumImpl",()=>N.minimumImpl),s.export(r,"multiplyImpl",()=>S.multiplyImpl),s.export(r,"negImpl",()=>C.negImpl),s.export(r,"notEqualImpl",()=>E.notEqualImpl),s.export(r,"prodImpl",()=>F.prodImpl),s.export(r,"raggedGatherImpl",()=>A.raggedGatherImpl),s.export(r,"raggedRangeImpl",()=>R.raggedRangeImpl),s.export(r,"raggedTensorToTensorImpl",()=>P.raggedTensorToTensorImpl),s.export(r,"rangeImpl",()=>D.rangeImpl),s.export(r,"rsqrtImpl",()=>$.rsqrtImpl),s.export(r,"scatterImpl",()=>O.scatterImpl),s.export(r,"sigmoidImpl",()=>M.sigmoidImpl),s.export(r,"sliceImpl",()=>W.sliceImpl),s.export(r,"sparseFillEmptyRowsImpl",()=>B.sparseFillEmptyRowsImpl),s.export(r,"sparseReshapeImpl",()=>L.sparseReshapeImpl),s.export(r,"sparseSegmentReductionImpl",()=>V.sparseSegmentReductionImpl),s.export(r,"sqrtImpl",()=>U.sqrtImpl),s.export(r,"squaredDifferenceImpl",()=>G.squaredDifferenceImpl),s.export(r,"staticRegexReplaceImpl",()=>z.staticRegexReplaceImpl),s.export(r,"stridedSliceImpl",()=>Q.stridedSliceImpl),s.export(r,"stringNGramsImpl",()=>q.stringNGramsImpl),s.export(r,"stringSplitImpl",()=>H.stringSplitImpl),s.export(r,"stringToHashBucketFastImpl",()=>K.stringToHashBucketFastImpl),s.export(r,"subImpl",()=>X.subImpl),s.export(r,"tileImpl",()=>Y.tileImpl),s.export(r,"topKImpl",()=>J.topKImpl),s.export(r,"transposeImpl",()=>Z.transposeImpl),s.export(r,"uniqueImpl",()=>ee.uniqueImpl);var a=e("./kernels/Abs"),o=e("./kernels/Add"),l=e("./kernels/Bincount_impl"),i=e("./kernels/BitwiseAnd"),u=e("./kernels/Cast"),p=e("./kernels/Ceil"),c=e("./kernels/Concat_impl"),d=e("./kernels/Equal"),f=e("./kernels/Exp"),m=e("./kernels/Expm1"),h=e("./kernels/Floor"),g=e("./kernels/FloorDiv"),x=e("./kernels/GatherNd_Impl"),v=e("./kernels/GatherV2_impl"),y=e("./kernels/Greater"),b=e("./kernels/GreaterEqual"),_=e("./kernels/Less"),k=e("./kernels/LessEqual"),j=e("./kernels/LinSpace_impl"),I=e("./kernels/Log"),w=e("./kernels/Max_impl"),T=e("./kernels/Maximum"),N=e("./kernels/Minimum"),S=e("./kernels/Multiply"),C=e("./kernels/Neg"),E=e("./kernels/NotEqual"),F=e("./kernels/Prod"),A=e("./kernels/RaggedGather_impl"),R=e("./kernels/RaggedRange_impl"),P=e("./kernels/RaggedTensorToTensor_impl"),D=e("./kernels/Range_impl"),$=e("./kernels/Rsqrt"),O=e("./kernels/Scatter_impl"),M=e("./kernels/Sigmoid"),W=e("./kernels/Slice"),B=e("./kernels/SparseFillEmptyRows_impl"),L=e("./kernels/SparseReshape_impl"),V=e("./kernels/SparseSegmentReduction_impl"),U=e("./kernels/Sqrt"),G=e("./kernels/SquaredDifference"),z=e("./kernels/StaticRegexReplace"),Q=e("./kernels/StridedSlice_impl"),q=e("./kernels/StringNGrams_impl"),H=e("./kernels/StringSplit_impl"),K=e("./kernels/StringToHashBucketFast_impl"),X=e("./kernels/Sub"),Y=e("./kernels/Tile_impl"),J=e("./kernels/TopK_impl"),Z=e("./kernels/Transpose_impl"),ee=e("./kernels/Unique_impl")},{"./kernels/Abs":"l1fu2","./kernels/Add":"1JfHj","./kernels/Bincount_impl":"ceVxB","./kernels/BitwiseAnd":"jaEPk","./kernels/Cast":"cMwEt","./kernels/Ceil":"9E97z","./kernels/Concat_impl":"8toKD","./kernels/Equal":"hGYXP","./kernels/Exp":"d2WVN","./kernels/Expm1":"6wCyc","./kernels/Floor":"d8vHS","./kernels/FloorDiv":"24gWZ","./kernels/GatherNd_Impl":"1Ft9I","./kernels/GatherV2_impl":"7ukZH","./kernels/Greater":"1ATD8","./kernels/GreaterEqual":"aNJ5D","./kernels/Less":"8Tr8X","./kernels/LessEqual":"kA9T4","./kernels/LinSpace_impl":"ctjgv","./kernels/Log":"cZeHh","./kernels/Max_impl":"jxxkk","./kernels/Maximum":"9lCQT","./kernels/Minimum":"31JS7","./kernels/Multiply":"dvGJ0","./kernels/Neg":"iuSgJ","./kernels/NotEqual":"3Xx4N","./kernels/Prod":"4VmTK","./kernels/RaggedGather_impl":"kXBNx","./kernels/RaggedRange_impl":"56JXs","./kernels/RaggedTensorToTensor_impl":"bqJDy","./kernels/Range_impl":"egj95","./kernels/Rsqrt":"4j1GM","./kernels/Scatter_impl":"kduZ3","./kernels/Sigmoid":"8bByZ","./kernels/Slice":"dHddY","./kernels/SparseFillEmptyRows_impl":"c6AeG","./kernels/SparseReshape_impl":"5soT4","./kernels/SparseSegmentReduction_impl":"73Ezr","./kernels/Sqrt":"45xsA","./kernels/SquaredDifference":"4q6UK","./kernels/StaticRegexReplace":"6lMX2","./kernels/StridedSlice_impl":"3XL7y","./kernels/StringNGrams_impl":"acuWz","./kernels/StringSplit_impl":"hVXkV","./kernels/StringToHashBucketFast_impl":"6n7GK","./kernels/Sub":"5EzoO","./kernels/Tile_impl":"1lWzm","./kernels/TopK_impl":"kIJEs","./kernels/Transpose_impl":"itrtA","./kernels/Unique_impl":"8WaZh","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],l1fu2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"simpleAbsImpl",()=>l),s.export(r,"abs",()=>i),s.export(r,"absConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let t=new Float32Array(e.length);for(let r=0;r{let{x:t}=e.inputs,r=e.backend;(0,o.assertNotComplex)(t,"abs");let n=new Float32Array(a.util.sizeFromShape(t.shape));return n=l(r.data.get(t.dataId).values),r.makeOutput(n,t.shape,t.dtype)},u={kernelName:a.Abs,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aSshR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"assertNotComplex",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t){Array.isArray(e)||(e=[e]),e.forEach(e=>{null!=e&&a.util.assert("complex64"!==e.dtype,()=>`${t} does not support complex64 tensors in the CPU backend.`)})}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1JfHj":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addImpl",()=>i),s.export(r,"addComplexImpl",()=>u),s.export(r,"add",()=>p),s.export(r,"addConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e+t),u=(0,l.createComplexBinaryKernelImpl)((e,t,r,n)=>({real:e+r,imag:t+n})),p=(0,l.binaryKernelFunc)(a.Add,i,u),c={kernelName:a.Add,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1mxo2":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"createSimpleBinaryKernelImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e){return(t,r,n,s,o)=>{let l=a.backend_util.assertAndGetBroadcastShape(t,r),i=l.length,u=a.util.computeStrides(l),p=a.util.sizeFromShape(l),c=a.util.getTypedArrayFromDType(o,p),d=t.length,f=r.length,m=a.util.computeStrides(t),h=a.util.computeStrides(r),g=a.backend_util.getBroadcastDims(t,l),x=a.backend_util.getBroadcastDims(r,l);if(g.length+x.length===0)for(let t=0;to[e]=0);let l=a.util.locToIndex(o,d,m),p=r.slice(-f);x.forEach(e=>p[e]=0);let v=a.util.locToIndex(p,f,h);c[t]=e(n[l],s[v])}return[c,l]}}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jPAKn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"binaryKernelFunc",()=>u),s.export(r,"createComplexBinaryKernelImpl",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../kernels/Cast"),i=e("../kernels/Complex");function u(e,t,r,n){return null==r?({inputs:r,backend:s})=>{let{a:l,b:i}=r;(0,o.assertNotComplex)([l,i],e);let u=s.data.get(l.dataId).values,p=s.data.get(i.dataId).values,c="string"===l.dtype?a.backend_util.fromUint8ToStringArray(u):u,d="string"===l.dtype?a.backend_util.fromUint8ToStringArray(p):p,f=n||l.dtype,[m,h]=t(l.shape,i.shape,c,d,f);return s.makeTensorInfo(h,f,m)}:({inputs:e,backend:s})=>{let{a,b:o}=e;if("complex64"===a.dtype||"complex64"===o.dtype){let e=(0,l.cast)({inputs:{x:a},backend:s,attrs:{dtype:"complex64"}}),t=s.data.get(e.dataId),n=t.complexTensorInfos.real,u=t.complexTensorInfos.imag,p=s.data.get(n.dataId).values,c=s.data.get(u.dataId).values,d=(0,l.cast)({inputs:{x:o},backend:s,attrs:{dtype:"complex64"}}),f=s.data.get(d.dataId),m=f.complexTensorInfos.real,h=f.complexTensorInfos.imag,g=s.data.get(m.dataId).values,x=s.data.get(h.dataId).values,[v,y,b]=r(a.shape,o.shape,p,c,g,x),_=s.makeTensorInfo(b,"float32",v),k=s.makeTensorInfo(b,"float32",y),j=(0,i.complex)({inputs:{real:_,imag:k},backend:s});return s.disposeIntermediateTensorInfo(e),s.disposeIntermediateTensorInfo(d),s.disposeIntermediateTensorInfo(_),s.disposeIntermediateTensorInfo(k),j}{let e=s.data.get(a.dataId).values,r=s.data.get(o.dataId).values,l=n||a.dtype,[i,u]=t(a.shape,o.shape,e,r,l);return s.makeTensorInfo(u,l,i)}}}function p(e){return(t,r,n,s,o,l)=>{let i=a.backend_util.assertAndGetBroadcastShape(t,r),u=a.util.sizeFromShape(i),p=i.length,c=a.util.computeStrides(i),d=a.util.getTypedArrayFromDType("float32",u),f=a.util.getTypedArrayFromDType("float32",u),m=a.backend_util.getBroadcastDims(t,i),h=a.backend_util.getBroadcastDims(r,i),g=a.backend_util.mergeRealAndImagArrays(n,s),x=a.backend_util.mergeRealAndImagArrays(o,l),v=t.length,y=a.util.computeStrides(t),b=r.length,_=a.util.computeStrides(r);if(m.length+h.length===0)for(let t=0;tn[e]=0);let s=a.util.locToIndex(n,v,y),o=r.slice(-b);h.forEach(e=>o[e]=0);let l=a.util.locToIndex(o,b,_),i=e(g[2*s],g[2*s+1],x[2*l],x[2*l+1]);d[t]=i.real,f[t]=i.imag}return[d,f,i]}}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","../kernels/Cast":"cMwEt","../kernels/Complex":"iqjKD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cMwEt:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"castImpl",()=>c),s.export(r,"cast",()=>d),s.export(r,"castConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/zeros_impl"),i=e("./Complex"),u=e("./Identity"),p=e("./Real");function c(e,t,r,n){if("int32"===n)return[t,"int32",Int32Array.from(e)];if("bool"===n){let n=a.util.toTypedArray([0],r),[s,l]=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e!==t))(t,[],e,n,"bool");return[l,"bool",s]}throw Error(`Error in Cast: failed to cast ${r} to ${n}`)}function d(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{dtype:o}=n;if("complex64"===o){if("complex64"===s.dtype)return(0,u.identity)({inputs:{x:s},backend:r});let e=(0,l.zeros)(r,s.shape,s.dtype),t=d({inputs:{x:s},backend:r,attrs:{dtype:"float32"}}),n=(0,i.complex)({inputs:{real:t,imag:e},backend:r});return r.disposeIntermediateTensorInfo(e),r.disposeIntermediateTensorInfo(t),n}if("complex64"===s.dtype){let e=(0,p.real)({inputs:{input:s},backend:r}),t=d({inputs:{x:e},backend:r,attrs:{dtype:o}});return r.disposeIntermediateTensorInfo(e),t}if(!a.util.hasEncodingLoss(s.dtype,o)){let e=(0,u.identity)({inputs:{x:s},backend:r});return{dataId:e.dataId,shape:e.shape,dtype:o}}let[f,m,h]=c(r.data.get(s.dataId).values,s.shape,s.dtype,o);return r.makeTensorInfo(f,m,h)}let f={kernelName:a.Cast,backendName:"cpu",kernelFunc:d}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/zeros_impl":"kE711","./Complex":"iqjKD","./Identity":"bdLxl","./Real":"bLoe4","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kE711:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"zeros",()=>function e(t,r,n="float32"){if("complex64"===n){let n=e(t,r,"float32"),s=e(t,r,"float32");return(0,o.complex)({inputs:{real:n,imag:s},backend:t})}let s=a.util.makeZerosTypedArray(a.util.sizeFromShape(r),n);return t.makeTensorInfo(r,n,s)});var a=e("@tensorflow/tfjs-core"),o=e("../kernels/Complex")},{"@tensorflow/tfjs-core":"biUij","../kernels/Complex":"iqjKD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iqjKD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r}=e,{real:n,imag:s}=t,a=r.data.get(n.dataId).values,o=r.data.get(s.dataId).values,l=r.makeTensorInfo(n.shape,"complex64");return r.data.get(l.dataId).complexTensorInfos={real:r.makeTensorInfo(n.shape,"float32",a),imag:r.makeTensorInfo(s.shape,"float32",o)},l}s.defineInteropFlag(r),s.export(r,"complex",()=>a),s.export(r,"complexConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Complex,backendName:"cpu",kernelFunc:a}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bdLxl:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r}=e,{x:n}=t;return r.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}s.defineInteropFlag(r),s.export(r,"identity",()=>a),s.export(r,"identityConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Identity,backendName:"cpu",kernelFunc:a}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bLoe4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r}=e,{input:n}=t,s=r.data.get(n.dataId).complexTensorInfos.real,a=r.data.get(s.dataId).values;return r.makeTensorInfo(s.shape,s.dtype,a)}s.defineInteropFlag(r),s.export(r,"real",()=>a),s.export(r,"realConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Real,backendName:"cpu",kernelFunc:a}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ceVxB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bincountImpl",()=>o),s.export(r,"bincountReduceImpl",()=>l);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s){let o=a.util.sizeFromShape(n),l=a.util.makeZerosTypedArray(s,r);for(let r=0;r=s||(o>0?l[n]+=t[r]:l[n]+=1)}return l}function l(e,t,r,n=!1){let s=e.shape[0],o=e.shape[1],i=(0,a.buffer)([s,r],t.dtype);for(let a=0;a=r||(n?i.set(1,a,o):t.size>0?i.set(i.get(a,o)+t.get(a,s),a,o):i.set(i.get(a,o)+1,a,o))}return i}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jaEPk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bitwiseAndImpl",()=>i),s.export(r,"bitwiseAnd",()=>u),s.export(r,"bitwiseAndConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e&t),u=(0,l.binaryKernelFunc)(a.BitwiseAnd,i),p={kernelName:a.BitwiseAnd,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9E97z":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ceilImpl",()=>i),s.export(r,"ceil",()=>u),s.export(r,"ceilConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.ceil(e)),u=(0,l.unaryKernelFuncFromImpl)(a.Ceil,i),p={kernelName:a.Ceil,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_impl":"iRTzA","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iRTzA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"createSimpleUnaryImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e){return(t,r,n)=>{let s=a.util.getArrayFromDType(r,t.length);for(let r=0;ri),s.export(r,"unaryKernelFuncFromImpl",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./unary_impl");function i(e,t,r){return u(e,(0,l.createSimpleUnaryImpl)(t),r)}function u(e,t,r){return({inputs:n,attrs:s,backend:l})=>{let i,{x:u}=n;(0,o.assertNotComplex)(u,e);let p=l.data.get(u.dataId).values;if("string"===u.dtype){if(!Array.isArray(p))throw Error("String tensor's value was not an instance of Array");i=a.backend_util.fromUint8ToStringArray(p)}else i=p;let c=r||u.dtype,d=t(i,c,s);return l.makeTensorInfo(u.shape,c,d)}}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./unary_impl":"iRTzA","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8toKD":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concatImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n){let s=a.util.getArrayFromDType(r,a.util.sizeFromShape(t));if(n&&"string"!==r){let t=0;e.forEach(e=>{let r=a.util.sizeFromShape(e.shape);s.set(e.vals,t),t+=r})}else{let n=0;e.forEach(e=>{let o="string"===r?a.backend_util.fromUint8ToStringArray(e.vals):e.vals,l=0;for(let r=0;ri),s.export(r,"equal",()=>u),s.export(r,"equalConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e===t)),u=(0,l.binaryKernelFunc)(a.Equal,i,null,"bool"),p={kernelName:a.Equal,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],d2WVN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expImpl",()=>i),s.export(r,"exp",()=>u),s.export(r,"expConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.exp(e)),u=(0,l.unaryKernelFuncFromImpl)(a.Exp,i,"float32"),p={kernelName:a.Exp,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_impl":"iRTzA","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6wCyc":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expm1Impl",()=>i),s.export(r,"expm1",()=>u),s.export(r,"expm1Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.expm1(e)),u=(0,l.unaryKernelFuncFromImpl)(a.Expm1,i),p={kernelName:a.Expm1,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_impl":"iRTzA","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],d8vHS:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floorImpl",()=>i),s.export(r,"floor",()=>u),s.export(r,"floorConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.floor(e)),u=(0,l.unaryKernelFuncFromImpl)(a.Floor,i),p={kernelName:a.Floor,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_impl":"iRTzA","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"24gWZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floorDivImpl",()=>i),s.export(r,"floorDiv",()=>u),s.export(r,"floorDivConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>Math.floor(e/t)),u=(0,l.binaryKernelFunc)(a.FloorDiv,i,null,"int32"),p={kernelName:a.FloorDiv,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1Ft9I":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherNdImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o,l,i,u){let p=(0,a.buffer)([n,o],r);for(let r=0;r=u/o)throw Error(`Invalid indices: ${n} does not index into ${i}`);for(let e=0;eo);var a=e("@tensorflow/tfjs-core");function o(e,t,r){let n=(0,a.buffer)(r,e.dtype);for(let r=0;ri),s.export(r,"greater",()=>u),s.export(r,"greaterConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e>t)),u=(0,l.binaryKernelFunc)(a.Greater,i,null,"bool"),p={kernelName:a.Greater,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aNJ5D:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"greaterEqualImpl",()=>i),s.export(r,"greaterEqual",()=>u),s.export(r,"greaterEqualConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e>=t)),u=(0,l.binaryKernelFunc)(a.GreaterEqual,i,null,"bool"),p={kernelName:a.GreaterEqual,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8Tr8X":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lessImpl",()=>i),s.export(r,"less",()=>u),s.export(r,"lessConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(ei),s.export(r,"lessEqual",()=>u),s.export(r,"lessEqualConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e<=t)),u=(0,l.binaryKernelFunc)(a.LessEqual,i,null,"bool"),p={kernelName:a.LessEqual,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ctjgv:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"linSpaceImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r){let n=(t-e)/(r-1),s=a.util.makeZerosTypedArray(r,"float32");s[0]=e;for(let e=1;ei),s.export(r,"log",()=>u),s.export(r,"logConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.log(e)),u=(0,l.unaryKernelFuncFromImpl)(a.Log,i),p={kernelName:a.Log,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_impl":"iRTzA","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jxxkk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n){let s=a.util.getTypedArrayFromDType(n,a.util.sizeFromShape(r));for(let r=0;ra)&&(a=t)}s[r]=a}return s}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9lCQT":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maximumImpl",()=>i),s.export(r,"maximum",()=>u),s.export(r,"maximumConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>Math.max(e,t)),u=(0,l.binaryKernelFunc)(a.Maximum,i),p={kernelName:a.Maximum,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"31JS7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"minimumImpl",()=>i),s.export(r,"minimum",()=>u),s.export(r,"minimumConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>Math.min(e,t)),u=(0,l.binaryKernelFunc)(a.Minimum,i),p={kernelName:a.Minimum,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dvGJ0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"multiplyImpl",()=>i),s.export(r,"multiplyComplexImpl",()=>u),s.export(r,"multiply",()=>p),s.export(r,"multiplyConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e*t),u=(0,l.createComplexBinaryKernelImpl)((e,t,r,n)=>({real:e*r-t*n,imag:e*n+t*r})),p=(0,l.binaryKernelFunc)(a.Multiply,i,u),c={kernelName:a.Multiply,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iuSgJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"negImpl",()=>i),s.export(r,"neg",()=>u),s.export(r,"negConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Multiply");function i(e,t,r){let n=a.util.createScalarValue(-1,r);return(0,l.multiplyImpl)([],t,n,e,r)}function u(e){let{inputs:t,backend:r}=e,{x:n}=t;(0,o.assertNotComplex)(n,"neg");let[s,a]=i(r.data.get(n.dataId).values,n.shape,n.dtype);return r.makeTensorInfo(a,n.dtype,s)}let p={kernelName:a.Neg,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./Multiply":"dvGJ0","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3Xx4N":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"notEqualImpl",()=>i),s.export(r,"notEqual",()=>u),s.export(r,"notEqualConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e!==t)),u=(0,l.binaryKernelFunc)(a.NotEqual,i,null,"bool"),p={kernelName:a.NotEqual,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4VmTK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prodImpl",()=>i),s.export(r,"prod",()=>u),s.export(r,"prodConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose");function i(e,t,r,n){let[s,o]=a.backend_util.computeOutAndReduceShapes(e,n),l=(0,a.upcastType)(t,"int32"),i=a.util.makeZerosTypedArray(a.util.sizeFromShape(s),l),u=a.util.sizeFromShape(o);for(let e=0;er.disposeIntermediateTensorInfo(e)),r.makeTensorInfo(_,b,v)}let p={kernelName:a.Prod,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./Transpose":"3cgqd","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3cgqd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transpose",()=>i),s.export(r,"transposeConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose_impl");function i(e){let{inputs:t,attrs:r,backend:n}=e,{x:s}=t,{perm:a}=r;(0,o.assertNotComplex)(s,"transpose");let i=Array(s.shape.length);for(let e=0;eo);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s){let o=t.length,l=a.util.sizeFromShape(t),i=a.util.computeStrides(t),u=a.util.computeStrides(s),p=a.util.getTypedArrayFromDType(r,a.util.sizeFromShape(s));for(let t=0;tl);var a=e("@tensorflow/tfjs-core");function o(e,t){let r=e.slice(0,t);for(;r.length{if(e<0||e>=p){let r=a.util.indexToLoc(t,i.length,a.util.computeStrides(i)).join(",");throw Error(`indices[${r}] = ${e} is not in [0, ${p})`)}}),0===n.length)throw Error("params.rank must be nonzero");let{outSplits:c,valueSlices:d,numValues:f}=function(e,t,r,n){let s=[],a=0,o=Array(t.length-1+r.length).fill(null).map(()=>[0]);for(let e=0;es)throw Error("Ragged splits must not point past values");for(let e=1;et[e])throw Error("Ragged splits must be sorted in ascending order")}let l=1;for(let e=0;e=0){let e=o[s],t=e[e.length-1]-n[l];for(let e=l;es[t]=e)}return t}(c),h=function(e,t,r,n,s){let l=t.slice();l[0]=s;let i=a.util.getArrayFromDType(r,a.util.sizeFromShape(l)),u=e.length,p=0===u?0:u/t[0];return!function(e,t,r,n,s,a){let l=o(t,2)[1],i=o(a,2)[1],u=0;for(let t of r)for(let r=t[0];ro);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o,l){if(t.length>1)throw Error("starts must be a scalar or vector");if(s.length>1)throw Error("limits must be a scalar or vector");if(l.length>1)throw Error("deltas must be a scalar or vector");let i=0===t.length,u=0===s.length,p=0===l.length,c=[];i||c.push(t[0]),u||c.push(s[0]),p||c.push(l[0]);for(let e=1;e0&&as)r=0;else if((r=Math.ceil(Math.abs((a-s)/l)))>0x7fffffff)throw Error("Requires ((limit - start) / delta) <= 2147483647");f[t+1]=f[t]+r}let m=f[d],h=a.util.getArrayFromDType(r,m),g=0;for(let t=0;tp);var a=e("@tensorflow/tfjs-core"),o=a.backend_util.RowPartitionType;class l{constructor(e,t,r,n,s,o,l,i,u,p){this.shape=e,this.shapeShape=t,this.values=r,this.valuesShape=n,this.valuesDType=s,this.defaultValue=o,this.defaultValueShape=l,this.rowPartitionValues=i,this.rowPartitionValuesShapes=u,this.rowPartitionTypes=a.backend_util.getRowPartitionTypesHelper(p),this.raggedRank=a.backend_util.getRaggedRank(this.rowPartitionTypes)}getRowPartitionTypeByDimension(e){return this.rowPartitionTypes[0]===o.FIRST_DIM_SIZE?this.rowPartitionTypes[e+1]:this.rowPartitionTypes[e]}getRowPartitionTensor(e){return this.rowPartitionTypes[0]===o.FIRST_DIM_SIZE?this.rowPartitionValues[e+1]:this.rowPartitionValues[e]}getMaxWidth(e){let t=this.getRowPartitionTensor(e-1);switch(this.getRowPartitionTypeByDimension(e-1)){case o.VALUE_ROWIDS:return l.getMaxWidthValueRowID(t);case o.ROW_SPLITS:return l.getMaxWidthRowSplit(t);default:throw Error(`Cannot handle partition type ${o[this.getRowPartitionTypeByDimension(e-1)]}`)}}static getMaxWidthRowSplit(e){let t=e.length;if(0===t||1===t)return 0;let r=0;for(let n=0;nr&&(r=t)}return r}static getMaxWidthValueRowID(e){let t=e.length;if(0===t)return 0;let r=0,n=e[0],s=0;for(let a=1;a"Final length of result must be equal to firstDimension."),s}calculateOutputIndexRowSplit(e,t,r,n){let s=e.length,a=[];for(let o=0;o0&&a.length!==e[s-1])throw Error("Invalid row split size.");return a}calculateOutputIndexValueRowID(e,t,r,n){let s=e.length,a=[];if(0===s)return[];let o=0,l=e[0];if(l>=t.length)throw Error(`Got currentValueRowId=${l}, which is not less than ${t.length}`);let i=t[l];a.push(i);for(let u=1;u=0&&(++o=t.length)throw Error(`Got nextValueRowId=${s} which is not less than ${t.length}`);i=t[s]}a.push(i)}if(a.length!==e.length)throw Error("Invalid row ids.");return a}calculateOutputIndex(e,t,r,n){let s=this.getRowPartitionTensor(e),a=this.getRowPartitionTypeByDimension(e);switch(a){case o.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,t,r,n);case o.ROW_SPLITS:if(s.length-1>t.length)throw Error(`Row partition size is greater than output size: ${s.length-1} > ${t.length}`);return this.calculateOutputIndexRowSplit(s,t,r,n);default:throw Error(`Unsupported partition type: ${o[a]}`)}}getFirstDimensionSize(){let e=this.rowPartitionValues[0];if(0===this.rowPartitionTypes.length)throw Error("No row_partition_types given.");let t=this.rowPartitionTypes[0];switch(t){case o.FIRST_DIM_SIZE:return e[0];case o.VALUE_ROWIDS:throw Error("Cannot handle VALUE_ROWIDS in first dimension.");case o.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw Error(`Cannot handle type ${o[t]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw Error("Invalid first partition input. Tensor requires at least one element.");let e=this.getFirstDimensionSize(),t=this.calculateOutputSize(e),r=Array(this.raggedRank+1);r[r.length-1]=1;for(let e=r.length-2;e>=0;--e)r[e]=r[e+1]*t[e+1];let n=u(t,!1),s=a.util.getArrayFromDType(this.valuesDType,a.util.sizeFromShape(n));if(r[0]*t[0]>0){let a=this.calculateFirstParentOutputIndex(e,r[0],t[0]);for(let e=1;e<=this.raggedRank;++e)a=this.calculateOutputIndex(e-1,a,r[e],t[e]);this.setOutput(this.raggedRank,a,s,n)}return[n,s]}setOutput(e,t,r,n){if(0===r.length)return;let s=this.values,o=n.slice();o=o.slice(e+1);let l=a.util.sizeFromShape(o),u=t.length,p=this.defaultValue;if(p.length!==l&&1!==p.length){let e=this.defaultValueShape;(0,a.tidy)(()=>{let t=(0,a.reshape)(p,e);p=(0,a.broadcastTo)(t,o).dataSync()})}let c=0,d=0,f=0;for(let e=0;e<=u;++e){let n=e=u&&(n=Math.floor(r.length/l)),n>f)if(1===this.defaultValue.length)r.subarray(f*l,n*l).fill(this.defaultValue[0]),f=n;else for(;n>f;)i(r.slice(f*l),p,l),++f;n<0?(c=e+1,d=f):(c=e,f=(d=f)+1)}}}function i(e,t,r){for(let n=0;n= 0`);if(n<-1)throw Error(`Dimension ${n} must be >= -1`);n=-1}r.push(n)}return r}function p(e,t,r,n,s,a,o,i,u,p){return new l(e,t,r,n,s,a,o,i,u,p).compute()}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],egj95:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rangeImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n){let s=e===t,o=e1;if(s||o||l)return a.util.makeZerosTypedArray(0,n);let i=Math.abs(Math.ceil((t-e)/r)),u=a.util.makeZerosTypedArray(i,n);ti),s.export(r,"rsqrt",()=>u),s.export(r,"rsqrtConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>1/Math.sqrt(e)),u=(0,l.unaryKernelFuncFromImpl)(a.Rsqrt,i),p={kernelName:a.Rsqrt,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_impl":"iRTzA","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kduZ3:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"scatterImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o,l,i,u,p){let c=e.values,d=t.values;if(0===n)return(0,a.buffer)(r,t.dtype);let f=u instanceof a.TensorBuffer?u:(0,a.buffer)([n/s,s],t.dtype);"string"==typeof u||"number"==typeof u?f.values.fill(u):"boolean"==typeof u&&f.values.fill(+u);for(let e=0;e=n/s)throw Error(`Invalid indices: ${a} does not index into ${r}`);for(let r=0;ri),s.export(r,"sigmoid",()=>u),s.export(r,"sigmoidConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>1/(1+Math.exp(-e))),u=(0,l.unaryKernelFunc)(a.Sigmoid,e=>1/(1+Math.exp(-e))),p={kernelName:a.Sigmoid,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_impl":"iRTzA","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dHddY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sliceImpl",()=>l),s.export(r,"slice",()=>i),s.export(r,"sliceConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e,t,r,n,s){let o=a.slice_util.isSliceContinous(n,t,r),l=a.util.sizeFromShape(r),i=a.util.computeStrides(n);if(o){let r=a.slice_util.computeFlatOffset(t,i);return"string"===s?e.slice(r,r+l):e.subarray(r,r+l)}let u="string"===s?a.backend_util.fromUint8ToStringArray(e):e,p=(0,a.buffer)(n,s,u),c=(0,a.buffer)(r,s);for(let e=0;ee+t[r]);c.set(p.get(...n),...r)}return"string"===s?a.backend_util.fromStringArrayToUint8(c.values):c.values}function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{begin:i,size:u}=n;(0,o.assertNotComplex)(s,"slice");let[p,c]=a.slice_util.parseSliceParams(s,i,u);a.slice_util.assertParamsValid(s,p,c);let d=l(r.data.get(s.dataId).values,p,c,s.shape,s.dtype);return r.makeTensorInfo(c,s.dtype,d)}let u={kernelName:a.Slice,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],c6AeG:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseFillEmptyRowsImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o,l){let i=t[0],u=o[0],p=Array(u),c=Array(i),d=t[1];if(0===u){if(0!==i)throw Error(a.backend_util.getSparseFillEmptyRowsIndicesDenseShapeMismatch(i));return[a.util.getArrayFromDType(r,0),[0,d],a.util.getArrayFromDType(s,0),p,c]}let f=!0,m=0,h=Array(u).fill(0);for(let t=0;t=u)throw Error(a.backend_util.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(t,r,u));++h[r],f=f&&r>=m,m=r}let g=!0;for(let e=0;e0&&(h[e]+=h[e-1])}if(g&&f){for(let e=0;eo);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s){let o=a.util.sizeFromShape(n),l=t[0],i=s.length,u=[],p=1,c=-1;for(let e=0;e0){f[d-1]=1;for(let e=d-2;e>=0;--e)f[e]=f[e+1]*n[e+1]}let m=[];if(i>0){m[i-1]=1;for(let e=i-2;e>=0;--e)m[e]=m[e+1]*u[e+1]}let h=a.util.getArrayFromDType(r,l*i);for(let t=0;to);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,l=!1,i=0){let u=n.length,p=[t[0],e.length/t[0]],c=p[1],d=u>0?s[u-1]+1:0;if(d<0)throw Error(a.backend_util.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let f=t.slice();f[0]=d;let m=f.reduce((e,t)=>e*t,1),h=a.util.getArrayFromDType(r,m);if(0===u)return d>0&&h.fill(i),[h,f];if(d<=0)throw Error(a.backend_util.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let g=0,x=1,v=0,y=s[0];for(;;){let t=0;if(x=t)throw Error(a.backend_util.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(y<0||y>=d)throw Error(a.backend_util.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y,d));y>v&&h.fill(i,v*c,y*c);for(let t=g;t=p[0])throw Error(a.backend_util.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(t,n[t],p[0]));for(let t=0;tu)break}return vi),s.export(r,"sqrt",()=>u),s.export(r,"sqrtConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.sqrt(e)),u=(0,l.unaryKernelFunc)(a.Sqrt,e=>Math.sqrt(e)),p={kernelName:a.Sqrt,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_impl":"iRTzA","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4q6UK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"squaredDifferenceImpl",()=>i),s.export(r,"squaredDifference",()=>u),s.export(r,"squaredDifferenceConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>{let r=e-t;return r*r}),u=(0,l.binaryKernelFunc)(a.SquaredDifference,i),p={kernelName:a.SquaredDifference,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6lMX2":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"staticRegexReplaceImpl",()=>i),s.export(r,"staticRegexReplaceConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)((e,t)=>{let{pattern:r,replaceGlobal:n,rewrite:s}=t;return e.replace(new RegExp(r,n?"g":""),s)}),u=(0,l.unaryKernelFuncFromImpl)(a.StaticRegexReplace,i),p={kernelName:a.StaticRegexReplace,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_impl":"iRTzA","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3XL7y":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stridedSliceImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n){let s=(0,a.buffer)(e,t.dtype);for(let e=0;el);var a=e("@tensorflow/tfjs-core");class o{constructor(e,t,r,n,s,o){this.separator=a.util.encodeString(e),this.nGramWidths=t,this.leftPad=a.util.encodeString(r),this.rightPad=a.util.encodeString(n),this.padWidth=s,this.preserveShort=o}getPadWidth(e){return Math.min(this.padWidth<0?e-1:this.padWidth,e-1)}getNumNGrams(e,t){return Math.max(0,e+2*this.getPadWidth(t)-t+1)}createNGrams(e,t,r,n,s,a){for(let o=0;o0?0:o-i);l=0+u*this.leftPad.length;for(let t=0;te.forEach(e=>f[m++]=e);for(let e=0;e0){h(e[d+c-1]);for(let e=0;e0){let e=t[0];if(0!==e)throw Error(`First split value must be 0, got ${e}`);for(let s=1;s=e;if(!(n=n&&t[s]<=r))throw Error(`Invalid split value ${t[s]}, must be in [${e}, ${r}]`);e=t[s]}if(e!==r)throw Error(`Last split value must be data size. Expected ${r}, got ${e}`)}let s=n-1,o=a.util.getArrayFromDType("int32",n);if(0===r||0===n){let e=Array(r);for(let e=0;e<=s;++e)o[e]=0;return[e,o]}o[0]=0;for(let e=1;e<=s;++e){let r=t[e]-t[e-1],n=0;this.nGramWidths.forEach(e=>{n+=this.getNumNGrams(r,e)}),this.preserveShort&&r>0&&0===n&&(n=1),o[e]=o[e-1]+n}let l=Array(o[s]);for(let r=0;r{let o=t[r+1]-t[r],i=this.getNumNGrams(o,a);this.createNGrams(e,n,l,s,i,a),s+=i}),this.preserveShort&&s===o[r]){let a=t[r+1]-t[r];if(0===a)continue;let o=a+2*this.padWidth;this.createNGrams(e,n,l,s,1,o)}}return[l,o]}}function l(e,t,r,n,s,a,l,i){return new o(r,n,s,a,l,i).compute(e,t)}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hVXkV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringSplitImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r){let n=e.length,s=[],o=0,l=0,i=Array(n);for(let a=0;ao);var a=e("@tensorflow/tfjs-core");function o(e,t){let r=a.util.getArrayFromDType("int32",e.length);for(let n=0;ni),s.export(r,"subComplexImpl",()=>u),s.export(r,"sub",()=>p),s.export(r,"subConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e-t),u=(0,l.createComplexBinaryKernelImpl)((e,t,r,n)=>({real:e-r,imag:t-n})),p=(0,l.binaryKernelFunc)(a.Sub,i,u),c={kernelName:a.Sub,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1lWzm":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tileImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t){let r=Array(e.rank);for(let n=0;nl);var a=e("@tensorflow/tfjs-core");let o=(e,t)=>{let r=t.value-e.value;return 0===r?e.index-t.index:r};function l(e,t,r,n,s){let l=t[t.length-1],[i,u]=[e.length/l,l],p=a.util.getTypedArrayFromDType(r,i*n),c=a.util.getTypedArrayFromDType("int32",i*n);for(let t=0;ti[t]={value:e,index:t}),nn;){if(s-n>600){let a=s-n+1,o=r-n+1,l=Math.log(a),i=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*i*(a-i)/a)*Math.sign(o-a/2),p=Math.max(n,Math.floor(r-o*i/a+u)),c=Math.min(s,Math.floor(r+(a-o)*i/a+u));e(t,r,p,c)}let l=t[r],i=n,u=s;for(a.util.swap(t,n,r),o(t[s],l)>0&&a.util.swap(t,n,s);io(t[i],l);)i+=1;for(;o(t[u],l)>0;)u-=1}0===o(t[n],l)?a.util.swap(t,n,u):(u+=1,a.util.swap(t,u,s)),u<=r&&(n=u+1),r<=u&&(s=u-1)}}(i,n),i=i.slice(0,n)),s&&i.sort(o);let d=t*n,f=p.subarray(d,d+n),m=c.subarray(d,d+n);for(let e=0;eo);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n){let s=a.util.parseAxisParam(t,r)[0],o=[1,r[0],1];for(let e=0;e{for(let r=0;ri);var a=e("./gpgpu_math"),o=e("./packing_util"),l=e("./shader_compiler");class i{constructor(e){if(this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length),0===this.rank)this.userCode=` + void main() { + setOutput(vec4(getA(), 0., 0., 0.)); + } + `;else{let e=(0,o.getChannels)("rc",this.rank),t=(0,l.getCoordsDataType)(this.rank),r=this.getOutOfBoundsCondition(e),n=this.getSetup(e),s=this.getOutput(e);this.userCode=` + void main() { + ${t} rc = getOutputCoords(); + + if(${r}) { + setOutput(vec4(0)); + } else { + ${n} + + setOutput(vec4(${s})); + } + } + `}}getSourceCoordsArr(e){let t=[];for(let r=0;r<=1;r++)for(let n=0;n<=1;n++){let s=`${0===r?"r":"rp1"}, ${0===n?"c":"cp1"}`;for(let t=2;t ${this.enableShapeUniforms?"outShape":this.outputShape[0]}`;let t="";for(let r=this.rank-2;r= ${this.enableShapeUniforms?`outShape[${r}]`:this.outputShape[r]}`,r= ${r}; + bool rEdge = rp1 >= ${n}; + `}getOutput(e){let t=this.getSourceCoordsArr(e);if(1===this.rank){let e=this.enableShapeUniforms?"outShape":this.outputShape[0];return`getA(rc), (rc + 1 >= ${e} ? 0. : getA(rc + 1)), 0, 0`}return`getA(${t[0]}), + cEdge ? 0. : getA(${t[1]}), + rEdge ? 0. : getA(${t[2]}), + rEdge || cEdge ? 0. : getA(${t[3]})`}}},{"./gpgpu_math":"1F9Jp","./packing_util":"k3hej","./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],k3hej:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){return["x","y","z","w","u","v"].slice(0,t).map(t=>`${e}.${t}`)}function o(e,t){return 1===t?[e]:a(e,t)}function l(e,t){if(1===e)return"rc";let r="";for(let n=0;na),s.export(r,"getChannels",()=>o),s.export(r,"getSourceCoords",()=>l)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"72Xgh":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ReshapePackedProgram",()=>l);var a=e("./gpgpu_math"),o=e("./shader_compiler_util");class l{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length);let r="";for(let e=0;e<4;e++){let t="thisRC = rc;";e%2==1&&(t+="thisRC.z += 1;"),e>1&&(t+="thisRC.y += 1;"),r+=` + ${t} + ${e>0?"if(thisRC.y < rows && thisRC.z < cols){":""} + int flatIndex = getFlatIndex(thisRC); + + ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex); + vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z)); + + result[${e}] = + getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); + ${e>0?"}":""} + `}this.userCode=` + ${function(e,t){let r=t?o.getLogicalCoordinatesFromFlatIndexByUniform(["r","c","d"],"inputShape"):o.getLogicalCoordinatesFromFlatIndex(["r","c","d"],e);return` + ivec3 inputCoordsFromReshapedOutCoords(int index) { + ${r} + return ivec3(r, c, d); + } + `}(t,this.enableShapeUniforms)} + ${this.enableShapeUniforms?o.getFlatIndexFrom3DOutput():o.getFlatIndexFrom3D(e)} + + void main() { + ivec3 rc = getOutputCoords(); + + vec4 result = vec4(0.); + + ivec3 thisRC; + int rows = ${this.enableShapeUniforms?"outShape[1]":e[1]}; + int cols = ${this.enableShapeUniforms?"outShape[2]":e[2]}; + + ${r} + + setOutput(result); + } + `}}},{"./gpgpu_math":"1F9Jp","./shader_compiler_util":"cJiqQ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jLwum:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TextureManager",()=>i),s.export(r,"computeBytes",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_util"),l=e("./tex_util");class i{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(e,t,r){let n,s=p(t,r),a=c(e,s,r);a in this.freeTextures||(this.freeTextures[a]=[]),a in this.usedTextures||(this.usedTextures[a]=[]);let o=u(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,r);if(this.freeTextures[a].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=o,this.log();let e=this.freeTextures[a].pop();return this.usedTextures[a].push(e),e}return s===l.PhysicalTextureType.PACKED_2X2_FLOAT32?n=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):s===l.PhysicalTextureType.PACKED_2X2_FLOAT16?n=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):s===l.PhysicalTextureType.UNPACKED_FLOAT32?n=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):s===l.PhysicalTextureType.UNPACKED_FLOAT16?n=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):s===l.PhysicalTextureType.PACKED_4X1_UNSIGNED_BYTE&&(n=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[a].push(n),this.numUsedTextures++,this._numBytesAllocated+=o,this.log(),n}releaseTexture(e,t,r,n){if(null==this.freeTextures)return;let s=p(r,n),o=c(t,s,n);o in this.freeTextures||(this.freeTextures[o]=[]);let l=u(t,s,this.gpgpu.gl,this.gpgpu.textureConfig,n),i=(0,a.env)().getNumber("WEBGL_DELETE_TEXTURE_THRESHOLD");-1!==i&&this._numBytesAllocated>i?(this.gpgpu.deleteMatrixTexture(e.texture),this._numBytesAllocated-=l):(this.freeTextures[o].push(e),this.numFreeTextures++,this._numBytesFree+=l),this.numUsedTextures--;let d=this.usedTextures[o],f=d&&d.indexOf(e);if(null==f||f<0)throw Error("Cannot release a texture that was never provided by this texture manager");d[f]=d[d.length-1],d.pop(),this.log()}log(){if(!this.logEnabled)return;let e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);let t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(null!=this.freeTextures){for(let e in this.freeTextures)this.freeTextures[e].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});for(let e in this.usedTextures)this.usedTextures[e].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}}function u(e,t,r,n,s){let a,i=function(e,t){switch(e){case l.PhysicalTextureType.PACKED_2X2_FLOAT32:return(0,o.getInternalFormatForPackedMatrixTexture)(t);case l.PhysicalTextureType.PACKED_2X2_FLOAT16:return(0,o.getInternalFormatForFloat16PackedMatrixTexture)(t);case l.PhysicalTextureType.UNPACKED_FLOAT32:return(0,o.getInternalFormatForFloat32MatrixTexture)(t);case l.PhysicalTextureType.UNPACKED_FLOAT16:return(0,o.getInternalFormatForFloat16MatrixTexture)(t);case l.PhysicalTextureType.PACKED_4X1_UNSIGNED_BYTE:return(0,o.getInternalFormatForUnsignedBytesMatrixTexture)(t);default:throw Error(`Unknown physical texture type ${e}`)}}(t,n);if(s){let[t,r]=(0,l.getPackedMatrixTextureShapeWidthHeight)(e[0],e[1]);a=t*r}else{let[t,r]=(0,l.getUnpackedMatrixTextureShapeWidthHeight)(e[0],e[1]);a=t*r}return a*function(e,t){if(t===e.R32F)return 4;if(t===e.R16F)return 2;if(t===e.RGBA32F)return 16;if(t===e.RGBA)return 16;if(t===e.RGBA16F)return 8;else if(t===e.RGBA8)return 4;throw Error(`Unknown internal format ${t}`)}(r,i)}function p(e,t){if(e===l.TextureUsage.UPLOAD)return l.PhysicalTextureType.PACKED_2X2_FLOAT32;if(e===l.TextureUsage.RENDER||null==e)return(0,a.env)().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?t?l.PhysicalTextureType.PACKED_2X2_FLOAT32:l.PhysicalTextureType.UNPACKED_FLOAT32:t?l.PhysicalTextureType.PACKED_2X2_FLOAT16:l.PhysicalTextureType.UNPACKED_FLOAT16;if(e===l.TextureUsage.DOWNLOAD||e===l.TextureUsage.PIXELS)return l.PhysicalTextureType.PACKED_4X1_UNSIGNED_BYTE;throw Error(`Unknown logical texture type ${e}`)}function c(e,t,r){return`${e[0]}_${e[1]}_${t}_${r}`}},{"@tensorflow/tfjs-core":"biUij","./gpgpu_util":"hYx9D","./tex_util":"jmYC7","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],LccPS:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"UnaryOpProgram",()=>o),s.export(r,"CHECK_NAN_SNIPPET",()=>l),s.export(r,"LINEAR",()=>i),s.export(r,"ABS",()=>u),s.export(r,"STEP",()=>p),s.export(r,"ELU",()=>c),s.export(r,"RELU",()=>d),s.export(r,"RELU6",()=>f),s.export(r,"CLONE",()=>m),s.export(r,"SIGMOID",()=>h);var a=e("./gpgpu_math");class o{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length),this.userCode=` + float unaryOperation(float x) { + ${t} + } + + void main() { + float x = getAAtOutCoords(); + float y = unaryOperation(x); + + setOutput(y); + } + `}}let l="if (isnan(x)) return x;",i="return x;",u="return abs(x);";function p(e=0){return l+` + return x > 0.0 ? 1.0 : float(${e}); + `}let c="return (x >= 0.0) ? x : (exp(x) - 1.0);",d=l+` + return (x < 0.0) ? 0.0 : x; +`,f=l+` + return (x < 0.0) ? 0.0 : min(6.0, x); +`,m="return x;",h="return 1.0 / (1.0 + exp(-1.0 * x));"},{"./gpgpu_math":"1F9Jp","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2qT48":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LINEAR",()=>o),s.export(r,"ELU",()=>l),s.export(r,"RELU",()=>i),s.export(r,"RELU6",()=>u),s.export(r,"SIGMOID",()=>p),s.export(r,"UnaryOpPackedProgram",()=>c);var a=e("./gpgpu_math");let o="return x;",l=` + vec4 result; + + result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); + result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0); + result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0); + result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); + + return result; +`,i=` + vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`,u=` + vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`,p="return 1.0 / (1.0 + exp(-1.0 * x));";class c{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length),this.userCode=` + vec4 unaryOperation(vec4 x) { + ${t} + } + + void main() { + vec4 x = getAAtOutCoords(); + vec4 y = unaryOperation(x); + + setOutput(y); + } + `}}},{"./gpgpu_math":"1F9Jp","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jD6NV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"UnpackProgram",()=>i);var a=e("./gpgpu_math"),o=e("./packing_util"),l=e("./shader_compiler");class i{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length);let t=e.length,r=(0,o.getChannels)("rc",t),n=(0,l.getCoordsDataType)(t),s=(0,o.getSourceCoords)(t,r),i=r.slice(-2),u=t<=1?"rc":`vec2(${i.join(",")})`;this.userCode=` + void main() { + ${n} rc = getOutputCoords(); + vec4 packedInput = getA(${s}); + + setOutput(getChannel(packedInput, ${u})); + } + `}}},{"./gpgpu_math":"1F9Jp","./packing_util":"k3hej","./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lkdID:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"version",()=>a);let a="4.22.0"},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8EsbE":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MathBackendWebGL",()=>i.MathBackendWebGL),s.export(r,"setWebGLContext",()=>u.setWebGLContext),s.export(r,"GPGPUContext",()=>p.GPGPUContext),s.export(r,"gpgpu_util",()=>o),s.export(r,"webgl_util",()=>l),s.export(r,"forceHalfFloat",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_util"),l=e("./webgl_util"),i=e("./backend_webgl"),u=e("./canvas_util"),p=e("./gpgpu_context");function c(){(0,a.env)().set("WEBGL_FORCE_F16_TEXTURES",!0)}},{"@tensorflow/tfjs-core":"biUij","./gpgpu_util":"hYx9D","./webgl_util":"8Bhtc","./backend_webgl":"b3oid","./canvas_util":"6lv4k","./gpgpu_context":"eTBiK","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hyRXv:[function(e,t,r,n){var s=e("@tensorflow/tfjs-core"),a=e("./kernels/_FusedMatMul"),o=e("./kernels/Abs"),l=e("./kernels/Acos"),i=e("./kernels/Acosh"),u=e("./kernels/Add"),p=e("./kernels/AddN"),c=e("./kernels/All"),d=e("./kernels/Any"),f=e("./kernels/ArgMax"),m=e("./kernels/ArgMin"),h=e("./kernels/Asin"),g=e("./kernels/Asinh"),x=e("./kernels/Atan"),v=e("./kernels/Atan2"),y=e("./kernels/Atanh"),b=e("./kernels/AvgPool"),_=e("./kernels/AvgPool3D"),k=e("./kernels/AvgPool3DGrad"),j=e("./kernels/AvgPoolGrad"),I=e("./kernels/BatchMatMul"),w=e("./kernels/BatchNorm"),T=e("./kernels/BatchToSpaceND"),N=e("./kernels/Bincount"),S=e("./kernels/BitwiseAnd"),C=e("./kernels/BroadcastArgs"),E=e("./kernels/Cast"),F=e("./kernels/Ceil"),A=e("./kernels/ClipByValue"),R=e("./kernels/Complex"),P=e("./kernels/ComplexAbs"),D=e("./kernels/Concat"),$=e("./kernels/Conv2D"),O=e("./kernels/Conv2DBackpropFilter"),M=e("./kernels/Conv2DBackpropInput"),W=e("./kernels/Conv3D"),B=e("./kernels/Conv3DBackpropFilterV2"),L=e("./kernels/Conv3DBackpropInputV2"),V=e("./kernels/Cos"),U=e("./kernels/Cosh"),G=e("./kernels/CropAndResize"),z=e("./kernels/Cumprod"),Q=e("./kernels/Cumsum"),q=e("./kernels/DenseBincount"),H=e("./kernels/DepthToSpace"),K=e("./kernels/DepthwiseConv2dNative"),X=e("./kernels/DepthwiseConv2dNativeBackpropFilter"),Y=e("./kernels/DepthwiseConv2dNativeBackpropInput"),J=e("./kernels/Diag"),Z=e("./kernels/Dilation2D"),ee=e("./kernels/Einsum"),et=e("./kernels/Elu"),er=e("./kernels/EluGrad"),en=e("./kernels/Equal"),es=e("./kernels/Erf"),ea=e("./kernels/Exp"),eo=e("./kernels/ExpandDims"),el=e("./kernels/Expm1"),ei=e("./kernels/FFT"),eu=e("./kernels/Fill"),ep=e("./kernels/FlipLeftRight"),ec=e("./kernels/Floor"),ed=e("./kernels/FloorDiv"),ef=e("./kernels/FromPixels"),em=e("./kernels/FusedConv2D"),eh=e("./kernels/FusedDepthwiseConv2D"),eg=e("./kernels/GatherNd"),ex=e("./kernels/GatherV2"),ev=e("./kernels/Greater"),ey=e("./kernels/GreaterEqual"),eb=e("./kernels/Identity"),e_=e("./kernels/IFFT"),ek=e("./kernels/Imag"),ej=e("./kernels/IsFinite"),eI=e("./kernels/IsInf"),ew=e("./kernels/IsNaN"),eT=e("./kernels/LeakyRelu"),eN=e("./kernels/Less"),eS=e("./kernels/LessEqual"),eC=e("./kernels/LinSpace"),eE=e("./kernels/Log"),eF=e("./kernels/Log1p"),eA=e("./kernels/LogicalAnd"),eR=e("./kernels/LogicalNot"),eP=e("./kernels/LogicalOr"),eD=e("./kernels/LRN"),e$=e("./kernels/LRNGrad"),eO=e("./kernels/Max"),eM=e("./kernels/Maximum"),eW=e("./kernels/MaxPool"),eB=e("./kernels/MaxPool3D"),eL=e("./kernels/MaxPool3DGrad"),eV=e("./kernels/MaxPoolGrad"),eU=e("./kernels/MaxPoolWithArgmax"),eG=e("./kernels/Mean"),ez=e("./kernels/Min"),eQ=e("./kernels/Minimum"),eq=e("./kernels/MirrorPad"),eH=e("./kernels/Mod"),eK=e("./kernels/Multinomial"),eX=e("./kernels/Multiply"),eY=e("./kernels/Neg"),eJ=e("./kernels/NonMaxSuppressionV3"),eZ=e("./kernels/NonMaxSuppressionV4"),e0=e("./kernels/NonMaxSuppressionV5"),e1=e("./kernels/NotEqual"),e2=e("./kernels/OneHot"),e3=e("./kernels/OnesLike"),e5=e("./kernels/Pack"),e4=e("./kernels/PadV2"),e6=e("./kernels/Pow"),e8=e("./kernels/Prelu"),e9=e("./kernels/Prod"),e7=e("./kernels/RaggedGather"),te=e("./kernels/RaggedRange"),tt=e("./kernels/RaggedTensorToTensor"),tr=e("./kernels/Range"),tn=e("./kernels/Real"),ts=e("./kernels/RealDiv"),ta=e("./kernels/Reciprocal"),to=e("./kernels/Relu"),tl=e("./kernels/Relu6"),ti=e("./kernels/Reshape"),tu=e("./kernels/ResizeBilinear"),tp=e("./kernels/ResizeBilinearGrad"),tc=e("./kernels/ResizeNearestNeighbor"),td=e("./kernels/ResizeNearestNeighborGrad"),tf=e("./kernels/Reverse"),tm=e("./kernels/RotateWithOffset"),th=e("./kernels/Round"),tg=e("./kernels/Rsqrt"),tx=e("./kernels/ScatterNd"),tv=e("./kernels/SearchSorted"),ty=e("./kernels/Select"),tb=e("./kernels/Selu"),t_=e("./kernels/Sigmoid"),tk=e("./kernels/Sign"),tj=e("./kernels/Sin"),tI=e("./kernels/Sinh"),tw=e("./kernels/Slice"),tT=e("./kernels/Softmax"),tN=e("./kernels/Softplus"),tS=e("./kernels/SpaceToBatchND"),tC=e("./kernels/SparseFillEmptyRows"),tE=e("./kernels/SparseReshape"),tF=e("./kernels/SparseSegmentMean"),tA=e("./kernels/SparseSegmentSum"),tR=e("./kernels/SparseToDense"),tP=e("./kernels/SplitV"),tD=e("./kernels/Sqrt"),t$=e("./kernels/Square"),tO=e("./kernels/SquaredDifference"),tM=e("./kernels/StaticRegexReplace"),tW=e("./kernels/Step"),tB=e("./kernels/StridedSlice"),tL=e("./kernels/StringNGrams"),tV=e("./kernels/StringSplit"),tU=e("./kernels/StringToHashBucketFast"),tG=e("./kernels/Sub"),tz=e("./kernels/Sum"),tQ=e("./kernels/Tan"),tq=e("./kernels/Tanh"),tH=e("./kernels/TensorScatterUpdate"),tK=e("./kernels/Tile"),tX=e("./kernels/TopK"),tY=e("./kernels/Transform"),tJ=e("./kernels/Transpose"),tZ=e("./kernels/Unique"),t0=e("./kernels/Unpack"),t1=e("./kernels/UnsortedSegmentSum"),t2=e("./kernels/ZerosLike");for(let e of[a._fusedMatMulConfig,o.absConfig,l.acosConfig,i.acoshConfig,u.addConfig,p.addNConfig,c.allConfig,d.anyConfig,f.argMaxConfig,m.argMinConfig,h.asinConfig,g.asinhConfig,x.atanConfig,v.atan2Config,y.atanhConfig,b.avgPoolConfig,_.avgPool3DConfig,k.avgPool3DGradConfig,j.avgPoolGradConfig,I.batchMatMulConfig,w.batchNormConfig,T.batchToSpaceNDConfig,N.bincountConfig,S.bitwiseAndConfig,C.broadcastArgsConfig,E.castConfig,F.ceilConfig,A.clipByValueConfig,R.complexConfig,P.complexAbsConfig,D.concatConfig,$.conv2DConfig,O.conv2DBackpropFilterConfig,M.conv2DBackpropInputConfig,W.conv3DConfig,B.conv3DBackpropFilterV2Config,L.conv3DBackpropInputConfig,V.cosConfig,U.coshConfig,G.cropAndResizeConfig,z.cumprodConfig,Q.cumsumConfig,q.denseBincountConfig,H.depthToSpaceConfig,K.depthwiseConv2dNativeConfig,X.depthwiseConv2dNativeBackpropFilterConfig,Y.depthwiseConv2dNativeBackpropInputConfig,J.diagConfig,Z.dilation2DConfig,ee.einsumConfig,et.eluConfig,er.eluGradConfig,en.equalConfig,es.erfConfig,ea.expConfig,eo.expandDimsConfig,el.expm1Config,ei.fftConfig,eu.fillConfig,ep.flipLeftRightConfig,ec.floorConfig,ed.floorDivConfig,ef.fromPixelsConfig,em.fusedConv2DConfig,eh.fusedDepthwiseConv2DConfig,eg.gatherNdConfig,ex.gatherV2Config,ev.greaterConfig,ey.greaterEqualConfig,eb.identityConfig,e_.ifftConfig,ek.imagConfig,ej.isFiniteConfig,eI.isInfConfig,ew.isNaNConfig,eT.leakyReluConfig,eN.lessConfig,eS.lessEqualConfig,eC.linSpaceConfig,eE.logConfig,eF.log1pConfig,eA.logicalAndConfig,eR.logicalNotConfig,eP.logicalOrConfig,eD.LRNConfig,e$.LRNGradConfig,eO.maxConfig,eM.maximumConfig,eW.maxPoolConfig,eB.maxPool3DConfig,eL.maxPool3DGradConfig,eV.maxPoolGradConfig,eU.maxPoolWithArgmaxConfig,eG.meanConfig,ez.minConfig,eQ.minimumConfig,eq.mirrorPadConfig,eH.modConfig,eK.multinomialConfig,eX.multiplyConfig,eY.negConfig,eJ.nonMaxSuppressionV3Config,eZ.nonMaxSuppressionV4Config,e0.nonMaxSuppressionV5Config,e1.notEqualConfig,e2.oneHotConfig,e3.onesLikeConfig,e5.packConfig,e4.padV2Config,e6.powConfig,e8.preluConfig,e9.prodConfig,e7.raggedGatherConfig,te.raggedRangeConfig,tt.raggedTensorToTensorConfig,tr.rangeConfig,tn.realConfig,ts.realDivConfig,ta.reciprocalConfig,to.reluConfig,tl.relu6Config,ti.reshapeConfig,tu.resizeBilinearConfig,tp.resizeBilinearGradConfig,tc.resizeNearestNeighborConfig,td.resizeNearestNeighborGradConfig,tf.reverseConfig,tm.rotateWithOffsetConfig,th.roundConfig,tg.rsqrtConfig,tx.scatterNdConfig,tv.searchSortedConfig,ty.selectConfig,tb.seluConfig,t_.sigmoidConfig,tk.signConfig,tj.sinConfig,tI.sinhConfig,tw.sliceConfig,tT.softmaxConfig,tN.softplusConfig,tS.spaceToBatchNDConfig,tC.sparseFillEmptyRowsConfig,tE.sparseReshapeConfig,tF.sparseSegmentMeanConfig,tA.sparseSegmentSumConfig,tR.sparseToDenseConfig,tP.splitVConfig,tD.sqrtConfig,t$.squareConfig,tO.squaredDifferenceConfig,tM.staticRegexReplaceConfig,tW.stepConfig,tB.stridedSliceConfig,tL.stringNGramsConfig,tV.stringSplitConfig,tU.stringToHashBucketFastConfig,tG.subConfig,tz.sumConfig,tQ.tanConfig,tq.tanhConfig,tH.tensorScatterUpdateConfig,tK.tileConfig,tX.topKConfig,tY.transformConfig,tJ.transposeConfig,tZ.uniqueConfig,t0.unpackConfig,t1.unsortedSegmentSumConfig,t2.zerosLikeConfig])(0,s.registerKernel)(e)},{"@tensorflow/tfjs-core":"biUij","./kernels/_FusedMatMul":"iBNae","./kernels/Abs":"jWk5l","./kernels/Acos":"7j3gu","./kernels/Acosh":"1VbjA","./kernels/Add":"9hSg4","./kernels/AddN":"7lUKm","./kernels/All":"a4kv4","./kernels/Any":"dOsa2","./kernels/ArgMax":"dIvKh","./kernels/ArgMin":"heJQD","./kernels/Asin":"bf3iO","./kernels/Asinh":"9Bin5","./kernels/Atan":"kvGKe","./kernels/Atan2":"9Y9Q9","./kernels/Atanh":"8Ly0o","./kernels/AvgPool":"1D3SK","./kernels/AvgPool3D":"9sCwx","./kernels/AvgPool3DGrad":"luoao","./kernels/AvgPoolGrad":"6L0OF","./kernels/BatchMatMul":"i8dTA","./kernels/BatchNorm":"aHEBx","./kernels/BatchToSpaceND":"eNBxD","./kernels/Bincount":"fObx5","./kernels/BitwiseAnd":"jEqiV","./kernels/BroadcastArgs":"hwBjc","./kernels/Cast":"gbr2B","./kernels/Ceil":"bv9f4","./kernels/ClipByValue":"8fEM6","./kernels/Complex":"fN7J8","./kernels/ComplexAbs":"huldI","./kernels/Concat":"99eNw","./kernels/Conv2D":"2AXF2","./kernels/Conv2DBackpropFilter":"adj3h","./kernels/Conv2DBackpropInput":"37yY1","./kernels/Conv3D":"j7XkX","./kernels/Conv3DBackpropFilterV2":"12kPy","./kernels/Conv3DBackpropInputV2":"99k4w","./kernels/Cos":"cRH7x","./kernels/Cosh":"84qKA","./kernels/CropAndResize":"kVL9C","./kernels/Cumprod":"6Iebd","./kernels/Cumsum":"3ElbW","./kernels/DenseBincount":"j1F7G","./kernels/DepthToSpace":"lBwE2","./kernels/DepthwiseConv2dNative":"iybmn","./kernels/DepthwiseConv2dNativeBackpropFilter":"1PECr","./kernels/DepthwiseConv2dNativeBackpropInput":"5kFJD","./kernels/Diag":"9P3no","./kernels/Dilation2D":"hIDhJ","./kernels/Einsum":"hb4tp","./kernels/Elu":"bP2Cy","./kernels/EluGrad":"2chy9","./kernels/Equal":"8hRle","./kernels/Erf":"glNIu","./kernels/Exp":"1Az5Y","./kernels/ExpandDims":"8Gccb","./kernels/Expm1":"27kYG","./kernels/FFT":"9VoBN","./kernels/Fill":"e9rdf","./kernels/FlipLeftRight":"7AJEx","./kernels/Floor":"fmbXP","./kernels/FloorDiv":"19u50","./kernels/FromPixels":"aePD5","./kernels/FusedConv2D":"hPMC4","./kernels/FusedDepthwiseConv2D":"70OVY","./kernels/GatherNd":"bxpkW","./kernels/GatherV2":"4oWqG","./kernels/Greater":"l81Xk","./kernels/GreaterEqual":"1GezO","./kernels/Identity":"fI9uV","./kernels/IFFT":"eHC6h","./kernels/Imag":"2YczW","./kernels/IsFinite":"hHolW","./kernels/IsInf":"ec2An","./kernels/IsNaN":"19SeZ","./kernels/LeakyRelu":"je8JA","./kernels/Less":"6Lpyh","./kernels/LessEqual":"aCE7c","./kernels/LinSpace":"iUEf1","./kernels/Log":"igGOt","./kernels/Log1p":"96DB5","./kernels/LogicalAnd":"bpNAW","./kernels/LogicalNot":"k1Nis","./kernels/LogicalOr":"35UMf","./kernels/LRN":"8GTy8","./kernels/LRNGrad":"huUNV","./kernels/Max":"ibDAd","./kernels/Maximum":"DKfrD","./kernels/MaxPool":"1hHzY","./kernels/MaxPool3D":"aNSAI","./kernels/MaxPool3DGrad":"7sDRX","./kernels/MaxPoolGrad":"1t5hC","./kernels/MaxPoolWithArgmax":"eO2cQ","./kernels/Mean":"fEe2K","./kernels/Min":"4VMnf","./kernels/Minimum":"eyWlc","./kernels/MirrorPad":"62hPs","./kernels/Mod":"eKw5T","./kernels/Multinomial":"68mmd","./kernels/Multiply":"2bVHl","./kernels/Neg":"8rsJ0","./kernels/NonMaxSuppressionV3":"9Mwgd","./kernels/NonMaxSuppressionV4":"K4Pwt","./kernels/NonMaxSuppressionV5":"4ytP0","./kernels/NotEqual":"gUjt7","./kernels/OneHot":"8dpOL","./kernels/OnesLike":"3l0Co","./kernels/Pack":"kp21h","./kernels/PadV2":"7yedB","./kernels/Pow":"dU2VT","./kernels/Prelu":"3CdUY","./kernels/Prod":"1tGYF","./kernels/RaggedGather":"7W42z","./kernels/RaggedRange":"81NyQ","./kernels/RaggedTensorToTensor":"i0jiS","./kernels/Range":"5tyAf","./kernels/Real":"8FQ28","./kernels/RealDiv":"gEqYa","./kernels/Reciprocal":"zLtsg","./kernels/Relu":"1s4ab","./kernels/Relu6":"lH0Kr","./kernels/Reshape":"2Do1g","./kernels/ResizeBilinear":"cjsd8","./kernels/ResizeBilinearGrad":"2huuw","./kernels/ResizeNearestNeighbor":"1Dxyi","./kernels/ResizeNearestNeighborGrad":"kFmpF","./kernels/Reverse":"3J3Rk","./kernels/RotateWithOffset":"65v6T","./kernels/Round":"8ECWg","./kernels/Rsqrt":"dcXmB","./kernels/ScatterNd":"loFfE","./kernels/SearchSorted":"DXpUT","./kernels/Select":"2PWLQ","./kernels/Selu":"9NWHQ","./kernels/Sigmoid":"6cCYC","./kernels/Sign":"dp8JZ","./kernels/Sin":"ct2Dv","./kernels/Sinh":"c26Zq","./kernels/Slice":"25e33","./kernels/Softmax":"gepZ2","./kernels/Softplus":"4j2t3","./kernels/SpaceToBatchND":"8STND","./kernels/SparseFillEmptyRows":"biy3L","./kernels/SparseReshape":"jOyRx","./kernels/SparseSegmentMean":"iD0FM","./kernels/SparseSegmentSum":"1QCK1","./kernels/SparseToDense":"7Aqau","./kernels/SplitV":"1NShq","./kernels/Sqrt":"dZ6U9","./kernels/Square":"deYhi","./kernels/SquaredDifference":"5unPR","./kernels/StaticRegexReplace":"91ayt","./kernels/Step":"6OAPh","./kernels/StridedSlice":"haVF6","./kernels/StringNGrams":"hsdG9","./kernels/StringSplit":"dBtFt","./kernels/StringToHashBucketFast":"grEDz","./kernels/Sub":"eoz4W","./kernels/Sum":"jCPqj","./kernels/Tan":"1DxYi","./kernels/Tanh":"6x3XV","./kernels/TensorScatterUpdate":"eknBm","./kernels/Tile":"2QC1Z","./kernels/TopK":"1Xjlv","./kernels/Transform":"fm65S","./kernels/Transpose":"c9udT","./kernels/Unique":"8c1i6","./kernels/Unpack":"eFQSo","./kernels/UnsortedSegmentSum":"34lCk","./kernels/ZerosLike":"k8pQn"}],iBNae:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"_fusedMatMul",()=>l),s.export(r,"_fusedMatMulConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./BatchMatMul_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{a:s,b:a,bias:l,preluActivationWeights:i}=t,{transposeA:u,transposeB:p,activation:c,leakyreluAlpha:d}=n;return(0,o.batchMatMulImpl)({a:s,b:a,transposeA:u,transposeB:p,backend:r,bias:l,preluActivationWeights:i,leakyreluAlpha:d,activation:c})}let i={kernelName:a._FusedMatMul,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./BatchMatMul_impl":"5lxDH","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5lxDH":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MATMUL_SHARED_DIM_THRESHOLD",()=>d),s.export(r,"batchMatMulImpl",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../mulmat_packed_gpu"),i=e("./Multiply"),u=e("./Reshape"),p=e("./Sum"),c=e("./Transpose");let d=1e3;function f({a:e,b:t,transposeA:r,transposeB:n,backend:s,bias:f=null,preluActivationWeights:m=null,leakyreluAlpha:h=0,activation:g=null}){let x,v=e.shape.length,y=t.shape.length,b=r?e.shape[v-2]:e.shape[v-1],_=n?t.shape[y-1]:t.shape[y-2],k=r?e.shape[v-1]:e.shape[v-2],j=n?t.shape[y-2]:t.shape[y-1],I=e.shape.slice(0,-2),w=t.shape.slice(0,-2),T=a.util.sizeFromShape(I),N=a.util.sizeFromShape(w),S=a.broadcast_util.assertAndGetBroadcastShape(e.shape.slice(0,-2),t.shape.slice(0,-2)).concat([k,j]);a.util.assert(b===_,()=>`Error in matMul: inner shapes (${b}) and (${_}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${r} and transposeB=${n} must match.`);let C=r?[T,b,k]:[T,k,b],E=n?[N,j,_]:[N,_,j],F=(0,u.reshape)({inputs:{x:e},backend:s,attrs:{shape:C}}),A=(0,u.reshape)({inputs:{x:t},backend:s,attrs:{shape:E}}),R=[F,A],P=Math.max(T,N),D=r?F.shape[1]:F.shape[2],$=null!=f,O=null!=m,M="leakyrelu"===g,W=null!=g?(0,o.mapActivationToShaderProgram)(g,!0):null,B=$||O||M||null!=W;if((1===k||1===j)&&D>d&&!1===B){let e=F,t=A;r&&(e=(0,c.transpose)({inputs:{x:F},backend:s,attrs:{perm:[0,2,1]}}),R.push(e)),n&&(t=(0,c.transpose)({inputs:{x:A},backend:s,attrs:{perm:[0,2,1]}}),R.push(t));let a=1!==j,o=1===j,l=e;a&&(l=(0,u.reshape)({inputs:{x:e},backend:s,attrs:{shape:[P,D,1]}}),R.push(l));let d=t;o&&(d=(0,u.reshape)({inputs:{x:t},backend:s,attrs:{shape:[P,1,D]}}),R.push(d));let f=(0,i.multiply)({inputs:{a:l,b:d},backend:s});x=(0,p.sum)({inputs:{x:f},backend:s,attrs:{axis:1===j?2:1,keepDims:!0}}),R.push(f)}else{let o=(0,a.upcastType)(e.dtype,t.dtype),i=new(0,l.MatMulPackedProgram)(C,E,[P,k,j],r,n,$,W,O,M),u=[F,A];if(null!=f&&u.push(f),O&&u.push(m),M){let e=s.makeTensorInfo([],"float32",a.util.createScalarValue(h,"float32"));u.push(e),R.push(e)}x=s.runWebGLProgram(i,u,o)}let L=(0,u.reshape)({inputs:{x:x},backend:s,attrs:{shape:S}});for(let e of(R.push(x),R))s.disposeIntermediateTensorInfo(e);return L}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../mulmat_packed_gpu":"laYzs","./Multiply":"2bVHl","./Reshape":"2Do1g","./Sum":"jCPqj","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5WW6u":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"CHECK_NAN_SNIPPET_UNARY",()=>f),s.export(r,"unaryKernelFunc",()=>m),s.export(r,"binaryKernelFunc",()=>h),s.export(r,"mapActivationToShaderProgram",()=>g);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu"),i=e("../kernels/Complex"),u=e("../kernels/LeakyRelu"),p=e("../kernels/Prelu"),c=e("../unaryop_gpu"),d=e("../unaryop_packed_gpu");let f="if (isnan(x)) return x;";function m({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:r,dtype:n}){return({inputs:s,backend:o})=>{let l,{x:i}=s,u=n||i.dtype;if(o.shouldExecuteOnCPU([i])&&null!=r){let e=r(o.texData.get(i.dataId).values,u);return o.makeTensorInfo(i.shape,u,e)}return l=(0,a.env)().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&null!=t?new(0,d.UnaryOpPackedProgram)(i.shape,t):new(0,c.UnaryOpProgram)(i.shape,e),o.runWebGLProgram(l,[i],u)}}function h({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:r=!1,supportsComplex:n=!1,cpuKernelImpl:s,dtype:u}){return({inputs:p,backend:c})=>{let d,{a:f,b:m}=p;if(n&&"complex64"===f.dtype){let t=c.texData.get(f.dataId),r=c.texData.get(m.dataId),[n,s]=[[t.complexTensorInfos.real,r.complexTensorInfos.real],[t.complexTensorInfos.imag,r.complexTensorInfos.imag]].map(t=>{let[r,n]=t,s={dataId:r.dataId,dtype:r.dtype,shape:f.shape},l={dataId:n.dataId,dtype:n.dtype,shape:m.shape},i=new(0,o.BinaryOpProgram)(e,f.shape,m.shape);return c.runWebGLProgram(i,[s,l],(0,a.upcastType)(r.dtype,n.dtype))}),l=(0,i.complex)({inputs:{real:n,imag:s},backend:c});return c.disposeIntermediateTensorInfo(n),c.disposeIntermediateTensorInfo(s),l}let h=u||(0,a.upcastType)(f.dtype,m.dtype);if(("string"===f.dtype||"string"===m.dtype||c.shouldExecuteOnCPU([f,m]))&&null!=s){let e=c.texData.get(f.dataId).values,t=c.texData.get(m.dataId).values,r="string"===f.dtype?a.backend_util.fromUint8ToStringArray(e):e,n="string"===f.dtype?a.backend_util.fromUint8ToStringArray(t):t,[o,l]=s(f.shape,m.shape,r,n,h),i=c.makeTensorInfo(l,h);return c.texData.get(i.dataId).values=o,i}return d=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&null!=t?new(0,l.BinaryOpPackedProgram)(t,f.shape,m.shape,r):new(0,o.BinaryOpProgram)(e,f.shape,m.shape),c.runWebGLProgram(d,[f,m],h)}}function g(e,t=!1){if("linear"===e)return t?d.LINEAR:c.LINEAR;if("relu"===e)return t?d.RELU:c.RELU;if("elu"===e)return t?d.ELU:c.ELU;if("relu6"===e)return t?d.RELU6:c.RELU6;if("prelu"===e)return t?p.PRELU_PACKED:p.PRELU;else if("leakyrelu"===e)return t?u.LEAKYRELU_PACKED:u.LEAKYRELU;else if("sigmoid"===e)return t?d.SIGMOID:c.SIGMOID;throw Error(`Activation ${e} has not been implemented for the WebGL backend.`)}},{"@tensorflow/tfjs-core":"biUij","../binaryop_gpu":"iq2Hg","../binaryop_packed_gpu":"g7FAa","../kernels/Complex":"fN7J8","../kernels/LeakyRelu":"je8JA","../kernels/Prelu":"3CdUY","../unaryop_gpu":"LccPS","../unaryop_packed_gpu":"2qT48","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iq2Hg:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"CHECK_NAN_SNIPPET",()=>l),s.export(r,"SQUARED_DIFFERENCE",()=>i),s.export(r,"BinaryOpProgram",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_math");let l=` + if (isnan(a)) return a; + if (isnan(b)) return b; +`,i="return (a - b) * (a - b);";class u{constructor(e,t,r){this.variableNames=["A","B"],this.outputShape=a.backend_util.assertAndGetBroadcastShape(t,r),this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length),this.userCode=` + float binaryOperation(float a, float b) { + ${e} + } + + void main() { + float a = getAAtOutCoords(); + float b = getBAtOutCoords(); + setOutput(binaryOperation(a, b)); + } + `}}},{"@tensorflow/tfjs-core":"biUij","./gpgpu_math":"1F9Jp","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],g7FAa:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"CHECK_NAN_SNIPPET_PACKED",()=>u),s.export(r,"ELU_DER",()=>p),s.export(r,"NOT_EQUAL",()=>c),s.export(r,"BinaryOpPackedProgram",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_math"),l=e("./packing_util"),i=e("./shader_compiler");let u=` + result.r = isNaN.r ? NAN : result.r; + result.g = isNaN.g ? NAN : result.g; + result.b = isNaN.b ? NAN : result.b; + result.a = isNaN.a ? NAN : result.a; +`,p=` + vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); + return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); +`,c=` + return vec4(notEqual(a, b)); +`;class d{constructor(e,t,r,n=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=a.backend_util.assertAndGetBroadcastShape(t,r);let s=this.outputShape.length;this.enableShapeUniforms=(0,o.useShapeUniforms)(s);let u="";if(n)if(0===s||1===a.util.sizeFromShape(this.outputShape))u=` + result.y = 0.; + result.z = 0.; + result.w = 0.; + `;else{let e=(0,i.getCoordsDataType)(s);if(u=` + ${e} coords = getOutputCoords(); + `,1===s)this.enableShapeUniforms?u+=` + result.y = (coords + 1) >= outShape ? 0. : result.y; + result.z = 0.; + result.w = 0.; + `:u+=` + result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y; + result.z = 0.; + result.w = 0.; + `;else{let e=(0,l.getChannels)("coords",s);this.enableShapeUniforms?u+=` + bool nextRowOutOfBounds = + (${e[s-2]} + 1) >= outShape[${s} - 2]; + bool nextColOutOfBounds = + (${e[s-1]} + 1) >= outShape[${s} - 1]; + result.y = nextColOutOfBounds ? 0. : result.y; + result.z = nextRowOutOfBounds ? 0. : result.z; + result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w; + `:u+=` + bool nextRowOutOfBounds = + (${e[s-2]} + 1) >= ${this.outputShape[s-2]}; + bool nextColOutOfBounds = + (${e[s-1]} + 1) >= ${this.outputShape[s-1]}; + result.y = nextColOutOfBounds ? 0. : result.y; + result.z = nextRowOutOfBounds ? 0. : result.z; + result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w; + `}}this.userCode=` + vec4 binaryOperation(vec4 a, vec4 b) { + ${e} + } + + void main() { + vec4 a = getAAtOutCoords(); + vec4 b = getBAtOutCoords(); + + vec4 result = binaryOperation(a, b); + ${u} + + setOutput(result); + } + `}}},{"@tensorflow/tfjs-core":"biUij","./gpgpu_math":"1F9Jp","./packing_util":"k3hej","./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fN7J8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"complex",()=>l),s.export(r,"complexConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Identity");function l(e){let{inputs:t,backend:r}=e,{real:n,imag:s}=t,a=r.makeTensorInfo(n.shape,"complex64"),l=r.texData.get(a.dataId);return l.complexTensorInfos={real:(0,o.identity)({inputs:{x:n},backend:r}),imag:(0,o.identity)({inputs:{x:s},backend:r})},a}let i={kernelName:a.Complex,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Identity":"fI9uV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fI9uV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r}=e,{x:n}=t;return r.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}s.defineInteropFlag(r),s.export(r,"identity",()=>a),s.export(r,"identityConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Identity,backendName:"webgl",kernelFunc:a}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],je8JA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LEAKYRELU",()=>i),s.export(r,"LEAKYRELU_PACKED",()=>u),s.export(r,"leakyRelu",()=>p),s.export(r,"leakyReluConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu");let i="return (a < 0.) ? b * a : a;",u=` + vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); + return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); +`;function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{alpha:p}=n,c=r.makeTensorInfo([],"float32",a.util.createScalarValue(p,"float32")),d=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new(0,l.BinaryOpPackedProgram)(u,s.shape,c.shape):new(0,o.BinaryOpProgram)(i,s.shape,c.shape),f=r.runWebGLProgram(d,[s,c],"float32");return r.disposeIntermediateTensorInfo(c),f}let c={kernelName:a.LeakyRelu,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../binaryop_gpu":"iq2Hg","../binaryop_packed_gpu":"g7FAa","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3CdUY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"PRELU",()=>i),s.export(r,"PRELU_PACKED",()=>u),s.export(r,"prelu",()=>p),s.export(r,"preluConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu");let i="return (a < 0.) ? b * a : a;",u=` + vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); + return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); +`;function p(e){let{inputs:t,backend:r}=e,{x:n,alpha:s}=t,p=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new(0,l.BinaryOpPackedProgram)(u,n.shape,s.shape):new(0,o.BinaryOpProgram)(i,n.shape,s.shape);return r.runWebGLProgram(p,[n,s],"float32")}let c={kernelName:a.Prelu,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../binaryop_gpu":"iq2Hg","../binaryop_packed_gpu":"g7FAa","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],laYzs:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MatMulPackedProgram",()=>o);var a=e("./gpgpu_math");class o{constructor(e,t,r,n=!1,s=!1,o=!1,l=null,i=!1,u=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=r,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length);let p=Math.ceil((n?e[1]:e[2])/2),c=n?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],d=s?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],f="",m="";l&&(f=i?`vec4 activation(vec4 a) { + vec4 b = getPreluActivationWeightsAtOutCoords(); + ${l} + }`:u?`vec4 activation(vec4 a) { + vec4 b = getLeakyreluAlphaAtOutCoords(); + ${l} + }`:`vec4 activation(vec4 x) { + ${l} + }`,m="result = activation(result);"),o&&this.variableNames.push("bias"),i&&this.variableNames.push("preluActivationWeights"),u&&this.variableNames.push("leakyreluAlpha");let h="rc.x",g="rc.x";e[0]d),s.export(r,"multiplyConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_complex_gpu"),l=e("../binaryop_gpu"),i=e("../binaryop_packed_gpu"),u=e("../kernel_utils/shared"),p=e("./Complex");let c="return a * b;";function d(e){let t,{inputs:r,backend:n}=e,{a:s,b:d}=r,f=a.backend_util.upcastType(s.dtype,d.dtype);if("complex64"===s.dtype){let e=n.texData.get(s.dataId),t=n.texData.get(d.dataId),r=new(0,o.BinaryOpComplexProgram)(o.COMPLEX_MULTIPLY.REAL,s.shape,d.shape),a=new(0,o.BinaryOpComplexProgram)(o.COMPLEX_MULTIPLY.IMAG,s.shape,d.shape),l=[{dataId:e.complexTensorInfos.real.dataId,dtype:e.complexTensorInfos.real.dtype,shape:s.shape},{dataId:e.complexTensorInfos.imag.dataId,dtype:e.complexTensorInfos.imag.dtype,shape:s.shape},{dataId:t.complexTensorInfos.real.dataId,dtype:t.complexTensorInfos.real.dtype,shape:d.shape},{dataId:t.complexTensorInfos.imag.dataId,dtype:t.complexTensorInfos.imag.dtype,shape:d.shape}],i=n.runWebGLProgram(r,l,"float32"),u=n.runWebGLProgram(a,l,"float32"),c=(0,p.complex)({inputs:{real:i,imag:u},backend:n});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(u),c}if(n.shouldExecuteOnCPU([s,d])){let e=n.texData.get(s.dataId),t=n.texData.get(d.dataId),[r,a]=(0,u.multiplyImplCPU)(s.shape,d.shape,e.values,t.values,f),o=n.makeTensorInfo(a,f);return n.texData.get(o.dataId).values=r,o}return t=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new(0,i.BinaryOpPackedProgram)(c,s.shape,d.shape):new(0,l.BinaryOpProgram)(c,s.shape,d.shape),n.runWebGLProgram(t,[s,d],f)}let f={kernelName:a.Multiply,backendName:"webgl",kernelFunc:d}},{"@tensorflow/tfjs-core":"biUij","../binaryop_complex_gpu":"3Y6aD","../binaryop_gpu":"iq2Hg","../binaryop_packed_gpu":"g7FAa","../kernel_utils/shared":"lQim5","./Complex":"fN7J8","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3Y6aD":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"COMPLEX_MULTIPLY",()=>o),s.export(r,"BinaryOpComplexProgram",()=>l);var a=e("@tensorflow/tfjs-core");let o={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"};class l{constructor(e,t,r){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=a.backend_util.assertAndGetBroadcastShape(t,r),this.userCode=` + float binaryOpComplex( + float areal, float aimag, float breal, float bimag) { + ${e} + } + + void main() { + float areal = getARealAtOutCoords(); + float aimag = getAImagAtOutCoords(); + float breal = getBRealAtOutCoords(); + float bimag = getBImagAtOutCoords(); + setOutput(binaryOpComplex(areal, aimag, breal, bimag)); + } + `}}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2Do1g":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reshape",()=>i),s.export(r,"reshapeConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reshape"),l=e("../webgl_util");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{shape:i}=n,u=a.util.sizeFromShape(s.shape),p=a.util.inferFromImplicitShape(i,u),c=a.util.sizeFromShape(p);a.util.assert(u===c,()=>`The new shape (${p}) has ${c} elements and the old shape (${s.shape}) has ${u} elements. The new shape and old shape must have the same number of elements.`);let d=r.texData.get(s.dataId);return!d.isPacked||(0,l.isReshapeFree)(s.shape,p)||null!==d.texture&&(0,l.isReshapeFree)(d.shape,p)?(r.incRef(s.dataId),{dataId:s.dataId,shape:p,dtype:s.dtype}):(0,o.packedReshape)(s,p,r)}let u={kernelName:a.Reshape,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/reshape":"57d96","../webgl_util":"8Bhtc","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"57d96":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"packedReshape",()=>l);var a=e("../reshape_packed_gpu"),o=e("../webgl_util");function l(e,t,r){let n=[(0,o.getBatchDim)(e.shape),...(0,o.getRowsCols)(e.shape)],s={dtype:e.dtype,shape:n,dataId:e.dataId},l=[(0,o.getBatchDim)(t),...(0,o.getRowsCols)(t)],i=new(0,a.ReshapePackedProgram)(l,n),u=r.runWebGLProgram(i,[s],e.dtype,[n],!0);return{dataId:u.dataId,shape:t,dtype:u.dtype}}},{"../reshape_packed_gpu":"72Xgh","../webgl_util":"8Bhtc","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jCPqj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sum",()=>l),s.export(r,"sumConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Sum_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:a,keepDims:l}=n;return(0,o.sumImpl)(s,a,l,r)}let i={kernelName:a.Sum,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Sum_impl":"hiAsR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hiAsR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sumImpl",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("./Reshape"),i=e("./Transpose_impl");function u(e,t,r,n){let s=e.shape.length,u=a.util.parseAxisParam(t,e.shape),p=u,c=a.backend_util.getAxesPermutation(p,s),d=null!=c,f=e;d&&(f=(0,i.transposeImpl)(e,c,n),p=a.backend_util.getInnerMostAxes(p.length,s)),a.backend_util.assertAxesAreInnerMostDims("sum",p,s);let[m,h]=a.backend_util.computeOutAndReduceShapes(f.shape,p),g=m;r&&(g=a.backend_util.expandShapeToKeepDim(m,u));let x=a.util.sizeFromShape(h),v=a.util.sizeFromShape(e.shape),y=(0,l.reshape)({inputs:{x:f},attrs:{shape:[v/x,x]},backend:n}),b=(0,a.sumOutType)(e.dtype),_=(0,o.reduce)(y,b,"sum",n),k=(0,l.reshape)({inputs:{x:_},attrs:{shape:g},backend:n});return n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(_),d&&n.disposeIntermediateTensorInfo(f),k}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/reduce":"3I7Fk","./Reshape":"2Do1g","./Transpose_impl":"eGbyc","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3I7Fk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reduce",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../mean_gpu"),l=e("../reduce_gpu");function i(e,t,r,n){let s=function(e){let t=[];for(;0===t.length||1!==t[t.length-1].outSize;){let r=t.length?t[t.length-1].outSize:e[1],n=a.backend_util.computeOptimalWindowSize(r);t.push({inSize:r,windowSize:n,outSize:Math.ceil(r/n)})}return t}(e.shape),i=e;for(let a=0;ao);var a=e("@tensorflow/tfjs-core");class o{constructor(e,t){this.variableNames=["x"];let{windowSize:r,batchSize:n,inSize:s,outSize:o}=e;this.outputShape=[n,o];let l=4*Math.floor(r/4),i=r%4,u="sumValue += dot(values, ones);";if(null!=t){let e=1/t;u=`sumValue += dot(values * ${a.util.isInt(e)?e.toPrecision(2):e}, ones);`}let p="";s%r>0&&(p=` + if (inIdx < 0 || inIdx >= ${s}) { + return 0.0; + } + `),this.userCode=` + const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); + + float getValue(int batch, int inIdx) { + ${p} + return getX(batch, inIdx); + } + + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int outIdx = coords[1]; + int inOffset = outIdx * ${r}; + + float sumValue = 0.0; + + for (int i = 0; i < ${l}; i += 4) { + int inIdx = inOffset + i; + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + getValue(batch, inIdx + 3) + ); + + ${u} + } + + int inIdx = inOffset + ${l}; + if (${1===i}) { + vec4 values = vec4(getValue(batch, inIdx), 0.0, 0.0, 0.0); + + ${u} + } else if (${2===i}) { + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), 0.0, 0.0); + + ${u} + } else if (${3===i}) { + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), 0.0); + + ${u} + } + setOutput(sumValue); + } + `}}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3rKEU":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ReduceProgram",()=>a);class a{constructor(e,t){this.variableNames=["x"];let{windowSize:r,batchSize:n,inSize:s,outSize:a}=e;this.outputShape=[n,a];let o="0.0",l="";"prod"===t?o="1.0":"min"===t?(o="1.0 / 1e-20",l="min"):"max"===t&&(o="-1.0 / 1e-20",l="max");let i=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"sum"===t?i="sumValue":"prod"===t?i="prodValue":"all"===t?i="allValue":"any"===t&&(i="anyValue");let u=4*Math.floor(r/4),p=r%4,c=` + if (${"sum"===t}) { + sumValue += dot(values, ones); + } else if (${"prod"===t}) { + vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]); + prodValue *= tmp[0] * tmp[1]; + } else { + minMaxValue = ${l}(values, minMaxValue); + if (${"min"===t} || ${"max"===t}) { + minMaxValue = ${l}(values, minMaxValue); + bvec4 isNaN = isnan(values); + if (isNaN.r || isNaN.g || isNaN.b || isNaN.a) { + minMaxValue = vec4(NAN); + } + } + } + `,d="vec4";"all"===t?(o="1.0",c=` + bool reducedAllValue = all(values); + float floatedReducedAllValue = float(reducedAllValue); + allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0); + `,d="bvec4"):"any"===t&&(o="0.0",c=` + bool reducedAnyValue = any(values); + float floatedReducedAnyValue = float(reducedAnyValue); + anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0); + `,d="bvec4");let f="";s%r>0&&(f=` + if (inIdx < 0 || inIdx >= ${s}) { + return initializationValue; + } + `),this.userCode=` + const float initializationValue = ${o}; + const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); + + float getValue(int batch, int inIdx) { + ${f} + return getX(batch, inIdx); + } + + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int outIdx = coords[1]; + int inOffset = outIdx * ${r}; + + vec4 minMaxValue = vec4(${o}); + float prodValue = 1.0; + float sumValue = 0.0; + float allValue = 1.0; + float anyValue = 0.0; + + for (int i = 0; i < ${u}; i += 4) { + int inIdx = inOffset + i; + ${d} values = ${d}( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + getValue(batch, inIdx + 3) + ); + + ${c} + } + + int inIdx = inOffset + ${u}; + if (${1===p}) { + ${d} values = ${d}( + getValue(batch, inIdx), + initializationValue, + initializationValue, + initializationValue + ); + + ${c} + } else if (${2===p}) { + ${d} values = ${d}( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + initializationValue, + initializationValue + ); + + ${c} + } else if (${3===p}) { + ${d} values = ${d}( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + initializationValue + ); + + ${c} + } + setOutput(${i}); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eGbyc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transposeImpl",()=>u),s.export(r,"transposeImplCPU",()=>o.transposeImplCPU);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../transpose_gpu"),i=e("../transpose_packed_gpu");function u(e,t,r){let n=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new(0,i.TransposePackedProgram)(e.shape,t):new(0,l.TransposeProgram)(e.shape,t);return r.runWebGLProgram(n,[e],e.dtype)}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","../transpose_gpu":"cl3Ds","../transpose_packed_gpu":"luOxI","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cl3Ds:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TransposeProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t){this.variableNames=["A"];let r=Array(e.length);for(let n=0;n6)throw Error(`Transpose for rank ${t} is not yet supported`);let r=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],n=Array(t);for(let t=0;tl);var a=e("./packing_util"),o=e("./shader_compiler");class l{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0;let r=Array(e.length);for(let n=0;n6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let n=(0,o.getCoordsDataType)(this.rank),s=(0,a.getVecChannels)("rc",this.rank),l=Array(this.rank);for(let e=0;el),s.export(r,"transposeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Transpose_impl");function l(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:a}=r,{perm:l}=s,i=Array(a.shape.length);for(let e=0;ep),s.export(r,"absConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../unaryop_gpu"),i=e("../unaryop_packed_gpu");let u="return abs(x);";function p(e){let t,{inputs:r,backend:n}=e,{x:s}=r;if(n.shouldExecuteOnCPU([s])&&"complex64"!==s.dtype){let e=n.texData.get(s.dataId),t=(0,o.simpleAbsImplCPU)(e.values);return n.makeTensorInfo(s.shape,s.dtype,t)}return t=(0,a.env)().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new(0,i.UnaryOpPackedProgram)(s.shape,u):new(0,l.UnaryOpProgram)(s.shape,u),n.runWebGLProgram(t,[s],s.dtype)}let c={kernelName:a.Abs,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","../unaryop_gpu":"LccPS","../unaryop_packed_gpu":"2qT48","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7j3gu":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acos",()=>i),s.export(r,"acosConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` + if (abs(x) > 1.) { + return NAN; + } + return acos(x); +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Acos,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../unaryop_gpu":"LccPS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1VbjA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acosh",()=>i),s.export(r,"acoshConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` + if (x < 1.0) return NAN; +return log(x + sqrt(x * x - 1.0));`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Acosh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../unaryop_gpu":"LccPS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9hSg4":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addKernelFunc",()=>u),s.export(r,"addConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return a + b;",u=(0,o.binaryKernelFunc)({opSnippet:i,packedOpSnippet:i,supportsComplex:!0,cpuKernelImpl:l.addImplCPU}),p={kernelName:a.Add,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7lUKm":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addN",()=>u),s.export(r,"addNConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../addn_gpu"),l=e("../addn_packed_gpu"),i=e("./Identity");function u(e){let{inputs:t,backend:r}=e;if(1===t.length)return(0,i.identity)({inputs:{x:t[0]},backend:r});if(t.length>(0,a.env)().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){let e=Math.floor(t.length/2),n=u({inputs:t.slice(0,e),backend:r}),s=u({inputs:t.slice(e),backend:r});return u({inputs:[n,s],backend:r})}let n=t.map(e=>e.dtype).reduce((e,t)=>(0,a.upcastType)(e,t)),s=t.map(e=>e.shape),p=(0,a.env)().getBool("WEBGL_PACK")?new(0,l.AddNPackedProgram)(t[0].shape,s):new(0,o.AddNProgram)(t[0].shape,s);return r.runWebGLProgram(p,t,n)}let p={kernelName:a.AddN,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../addn_gpu":"4gcRF","../addn_packed_gpu":"24fmd","./Identity":"fI9uV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4gcRF":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AddNProgram",()=>a);class a{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((e,t)=>`T${t}`);let r=[];this.variableNames.forEach(e=>{r.push(`float v${e} = get${e}AtOutCoords();`)});let n=this.variableNames.map(e=>`v${e}`).join(" + ");this.userCode=` + void main() { + ${r.join("\n ")} + + float result = ${n}; + setOutput(result); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"24fmd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AddNPackedProgram",()=>a);class a{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((e,t)=>`T${t}`);let r=[];this.variableNames.forEach(e=>{r.push(`vec4 v${e} = get${e}AtOutCoords();`)});let n=this.variableNames.map(e=>`v${e}`).join(" + ");this.userCode=` + void main() { + ${r.join("\n ")} + + vec4 result = ${n}; + setOutput(result); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],a4kv4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"all",()=>u),s.export(r,"allConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("./Reshape"),i=e("./Transpose");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u}=r,{axis:p,keepDims:c}=s,d=u.shape.length,f=a.util.parseAxisParam(p,u.shape),m=f,h=a.backend_util.getAxesPermutation(m,d),g=u;null!=h&&(g=(0,i.transpose)({inputs:{x:u},backend:n,attrs:{perm:h}}),m=a.backend_util.getInnerMostAxes(m.length,d)),a.backend_util.assertAxesAreInnerMostDims("all",m,d);let[x,v]=a.backend_util.computeOutAndReduceShapes(g.shape,m),y=a.util.sizeFromShape(v),b=(0,l.reshape)({inputs:{x:g},backend:n,attrs:{shape:[-1,y]}}),_=(0,o.reduce)(b,b.dtype,"all",n);if(c){let e=a.backend_util.expandShapeToKeepDim(x,f);t=(0,l.reshape)({inputs:{x:_},backend:n,attrs:{shape:e}})}else t=(0,l.reshape)({inputs:{x:_},backend:n,attrs:{shape:x}});return n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(_),null!=h&&n.disposeIntermediateTensorInfo(g),t}let p={kernelName:a.All,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/reduce":"3I7Fk","./Reshape":"2Do1g","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dOsa2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"any",()=>u),s.export(r,"anyConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("./Reshape"),i=e("./Transpose");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u}=r,{axis:p,keepDims:c}=s,d=u.shape.length,f=a.util.parseAxisParam(p,u.shape),m=f,h=a.backend_util.getAxesPermutation(m,d),g=u;null!=h&&(g=(0,i.transpose)({inputs:{x:u},backend:n,attrs:{perm:h}}),m=a.backend_util.getInnerMostAxes(m.length,d)),a.backend_util.assertAxesAreInnerMostDims("any",m,d);let[x,v]=a.backend_util.computeOutAndReduceShapes(g.shape,m),y=a.util.sizeFromShape(v),b=(0,l.reshape)({inputs:{x:g},backend:n,attrs:{shape:[-1,y]}}),_=(0,o.reduce)(b,b.dtype,"any",n);if(c){let e=a.backend_util.expandShapeToKeepDim(x,f);t=(0,l.reshape)({inputs:{x:_},backend:n,attrs:{shape:e}})}else t=(0,l.reshape)({inputs:{x:_},backend:n,attrs:{shape:x}});return n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(_),null!=h&&n.disposeIntermediateTensorInfo(g),t}let p={kernelName:a.Any,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/reduce":"3I7Fk","./Reshape":"2Do1g","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dIvKh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMax",()=>i),s.export(r,"argMaxConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/arg_min_max"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i}=n,u=a.util.parseAxisParam(i,s.shape),p=a.backend_util.getAxesPermutation(u,s.shape.length),c=s,d=[];null!=p&&(d.push(c=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:p}})),u=a.backend_util.getInnerMostAxes(u.length,c.shape.length)),a.backend_util.assertAxesAreInnerMostDims("argMax",[u[0]],c.shape.length);let f=(0,o.argMinMaxReduce)(r,c,u[0],"max");return d.forEach(e=>r.disposeIntermediateTensorInfo(e)),f}let u={kernelName:a.ArgMax,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/arg_min_max":"28xQ9","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"28xQ9":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMinMaxReduce",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../argminmax_gpu"),l=e("../argminmax_packed_gpu"),i=e("../kernels/Reshape");function u(e,t,r,n){let s=[r];if(a.backend_util.assertAxesAreInnerMostDims("arg"+n.charAt(0).toUpperCase()+n.slice(1),s,t.shape.length),!(0,a.env)().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let r=[],l=e.texData.get(t.dataId),u=null!==l&&l.isPacked,p=t;u&&r.push(p=e.unpackTensor(t));let[c,d]=a.backend_util.computeOutAndReduceShapes(p.shape,s),f=a.util.sizeFromShape(d),m=(0,i.reshape)({inputs:{x:p},backend:e,attrs:{shape:[-1,f]}});r.push(m);let h=function e(t,r,n,s=null){let l=r.shape[0],i=r.shape[1];null!=s&&(l=s.shape[0],i=s.shape[1]);let u=a.backend_util.computeOptimalWindowSize(i),p={windowSize:u,inSize:i,batchSize:l,outSize:Math.ceil(i/u)},c=new(0,o.ArgMinMaxProgram)(p,n,null==s),d=[r];null!=s&&d.push(s);let f=t.runWebGLProgram(c,d,"int32");if(1===f.shape[1])return f;let m=e(t,r,n,f);return t.disposeIntermediateTensorInfo(f),m}(e,m,n);r.push(h);let g=(0,i.reshape)({inputs:{x:h},backend:e,attrs:{shape:c}});return r.forEach(t=>e.disposeIntermediateTensorInfo(t)),g}return function e(t,r,n,s=null){let o=null!=s?s.shape:r.shape,i=o[o.length-1],u=a.backend_util.computeOptimalWindowSize(i),p=new(0,l.ArgMinMaxPackedProgram)(o,u,n,null==s),c=null==s?[r]:[r,s],d=t.runWebGLProgram(p,c,"int32");if(d.shape.length===r.shape.length){let s=e(t,r,n,d);return t.disposeIntermediateTensorInfo(d),s}return d}(e,t,n)}},{"@tensorflow/tfjs-core":"biUij","../argminmax_gpu":"dQA2L","../argminmax_packed_gpu":"fO3CD","../kernels/Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dQA2L:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ArgMinMaxProgram",()=>a);class a{constructor(e,t,r){this.variableNames=["A"];let{windowSize:n,batchSize:s,outSize:a}=e;r||this.variableNames.push("bestIndicesA"),this.outputShape=[s,a],this.userCode=` + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int outIdx = coords[1]; + int inOffset = outIdx * ${n}; + + int bestIndex = inOffset; + float bestValue = getA(batch, bestIndex); + + for (int i = 0; i < ${n}; i++) { + int inIdx = ${r?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));"}; + float candidate = getA(batch, inIdx); + if (candidate ${"max"===t?">":"<"} bestValue) { + bestValue = candidate; + bestIndex = inIdx; + } + } + setOutput(float(bestIndex)); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fO3CD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ArgMinMaxPackedProgram",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./packing_util"),l=e("./shader_compiler");class i{constructor(e,t,r,n){let s,i;this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,a.util.assert(e.length>2,()=>`Packed arg${r.charAt(0).toUpperCase()+r.slice(1)} supports only inputs with rank above 2.`);let u=Math.ceil(e[e.length-1]/t);this.outputShape=e.slice(0,-1),u>1&&this.outputShape.push(u),n||this.variableNames.push("bestIndicesA");let p=this.outputShape,c=p.length,d=(0,l.getCoordsDataType)(c),f=(0,o.getChannels)("coords",c);if(1===u){i=c+1;let e=(0,l.getCoordsDataType)(i);s=` + ${e} sourceLocR = ${e}(${f.join()}, 0); + ++${f[c-1]}; + ${e} sourceLocG = ${e}(${f.join()}, 0); + ++${f[c-2]}; + ${e} sourceLocA = ${e}(${f.join()}, 0); + --${f[c-1]}; + ${e} sourceLocB = ${e}(${f.join()}, 0); + --${f[c-2]};`}else i=c,s=` + ${d} sourceLocR = coords; + ++${f[c-1]}; + ${d} sourceLocG = coords; + ++${f[c-2]}; + ${d} sourceLocA = coords; + --${f[c-1]}; + ${d} sourceLocB = coords; + --${f[c-2]};`;let m=["x","y","z","w","u","v"].slice(0,i),h="."+m[i-1],g=m.map(e=>"int "+e),x=(0,o.getChannels)("sourceLocR",i-1).concat("inIdx.r"),v=(0,o.getChannels)("sourceLocG",i-1).concat("inIdx.g"),y=(0,o.getChannels)("sourceLocB",i-1).concat("inIdx.b"),b=(0,o.getChannels)("sourceLocA",i-1).concat("inIdx.a"),_="max"===r?"greaterThan":"lessThan",k=n?"":` + inIdx = round(vec4(getBestIndicesAChannel(${x.join()}), + getBestIndicesAChannel(${v.join()}), + getBestIndicesAChannel(${y.join()}), + getBestIndicesAChannel(${b.join()})));`,j=`vec4( + getAChannel(${x.join()}), + hasNextCol ? getAChannel(${v.join()}) : 0., + hasNextRow ? getAChannel(${y.join()}) : 0., + hasNextRow && hasNextCol ? getAChannel(${b.join()}) : 0.)`,I=n?"":` + float getBestIndicesAChannel(${g.join()}) { + return getChannel(getBestIndicesA(${m.join()}), + vec2(${m.slice(-2).join()})); + }`;this.userCode=` + float getAChannel(${g.join()}) { + return getChannel(getA(${m.join()}), + vec2(${m.slice(-2).join()})); + } + ${I} + void main() { + ${d} coords = getOutputCoords(); + bool hasNextCol = ${f[c-1]} < ${p[c-1]-1}; + bool hasNextRow = ${f[c-2]} < ${p[c-2]-1}; + ${s} + ivec4 srcIdx = ivec4(sourceLocR${h}, sourceLocG${h}, + sourceLocB${h}, sourceLocA${h}) * ${t}; + ivec4 inIdx = srcIdx; + vec4 bestIndex = vec4(inIdx); + vec4 bestValue = ${j}; + + for (int i = 0; i < ${t}; i++) { + inIdx = srcIdx; + ${k} + vec4 candidate = ${j}; + bvec4 nan = isnan(candidate); + bvec4 replace = bvec4( + vec4(${_}(candidate, bestValue)) * (vec4(1.0) - vec4(nan))); + + bestValue = vec4(replace.x ? candidate.x : bestValue.x, + replace.y ? candidate.y : bestValue.y, + replace.z ? candidate.z : bestValue.z, + replace.w ? candidate.w : bestValue.w); + bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace)); + srcIdx++; + } + setOutput(bestIndex); + } + `}}},{"@tensorflow/tfjs-core":"biUij","./packing_util":"k3hej","./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],heJQD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMin",()=>i),s.export(r,"argMinConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/arg_min_max"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i}=n,u=a.util.parseAxisParam(i,s.shape),p=a.backend_util.getAxesPermutation(u,s.shape.length),c=s,d=[];null!=p&&(d.push(c=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:p}})),u=a.backend_util.getInnerMostAxes(u.length,c.shape.length)),a.backend_util.assertAxesAreInnerMostDims("argMin",[u[0]],c.shape.length);let f=(0,o.argMinMaxReduce)(r,c,u[0],"min");return d.forEach(e=>r.disposeIntermediateTensorInfo(e)),f}let u={kernelName:a.ArgMin,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/arg_min_max":"28xQ9","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bf3iO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asin",()=>i),s.export(r,"asinConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` + if (abs(x) > 1.) { + return NAN; + } + return asin(x); +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Asin,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../unaryop_gpu":"LccPS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9Bin5":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asinh",()=>i),s.export(r,"asinhConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+"return log(x + sqrt(x * x + 1.0));",i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Asinh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../unaryop_gpu":"LccPS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kvGKe:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan",()=>i),s.export(r,"atanConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` + return atan(x); +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Atan,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../unaryop_gpu":"LccPS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9Y9Q9":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan2",()=>c),s.export(r,"atan2Config",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu"),i=e("../kernel_utils/kernel_funcs_utils");let u=o.CHECK_NAN_SNIPPET+` + return atan(a, b); +`,p=` + vec4 result = atan(a, b); + bvec4 isNaNA = isnan(a); + bvec4 isNaNB = isnan(b); + bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w); + `+l.CHECK_NAN_SNIPPET_PACKED+` + return result; +`,c=(0,i.binaryKernelFunc)({opSnippet:u,packedOpSnippet:p}),d={kernelName:a.Atan2,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"biUij","../binaryop_gpu":"iq2Hg","../binaryop_packed_gpu":"g7FAa","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8Ly0o":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atanh",()=>i),s.export(r,"atanhConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` + if ((x < -1.0) || (x > 1.0)) return NAN; +return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Atanh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../unaryop_gpu":"LccPS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1D3SK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool",()=>u),s.export(r,"avgPoolConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../pool_gpu"),l=e("../webgl_util"),i=e("./Identity");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t;(0,l.assertNotComplex)(s,"avgPool");let{filterSize:u,strides:p,pad:c,dimRoundingMode:d}=n;a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(p,1),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${p} and dilations '1'`);let f=a.backend_util.computePool2DInfo(s.shape,u,p,1,c,d);if(1===f.filterWidth&&1===f.filterHeight&&a.util.arraysEqual(f.inShape,f.outShape))return(0,i.identity)({inputs:{x:s},backend:r});let m=new(0,o.Pool2DProgram)(f,"avg",!1);return r.runWebGLProgram(m,[s],"float32")}let p={kernelName:a.AvgPool,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../pool_gpu":"fEtti","../webgl_util":"8Bhtc","./Identity":"fI9uV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fEtti:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Pool2DProgram",()=>a),s.export(r,"Pool3DProgram",()=>o);class a{constructor(e,t,r,n=!1,s=!1){if(this.variableNames=["x"],"avg"===t&&r)throw Error("Cannot compute positions for average pool.");let a=e.filterWidth,o=e.strideHeight,l=e.strideWidth,i=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterHeight,c=e.effectiveFilterWidth,d=e.padInfo.top,f=e.padInfo.left;this.outputShape=e.outShape;let m="avg"===t,h=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`,x="0.0";if(m||(x="-1.0 / 1e-20"),r){this.userCode=` + const ivec2 strides = ivec2(${o}, ${l}); + const ivec2 pads = ivec2(${d}, ${f}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d = coords[3]; + + ivec2 xRCCorner = coords.yz * strides - pads; + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + // max/min x(?, ?, d) to get y(yR, yC, d). + // ? = to be determined + float minMaxValue = 0.0; + float minMaxValueFound = 0.0; + int minMaxPosition = 0; + float avgValue = 0.0; + + for (int wR = 0; wR < ${p}; + wR += ${i}) { + int xR = xRCorner + wR; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${c}; + wC += ${u}) { + int xC = xCCorner + wC; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + float value = getX(batch, xR, xC, d); + + // If a min / max value has already been found, use it. If not, + // use the current value. + float currMinMaxValue = mix( + value, minMaxValue, minMaxValueFound); + if (value >= currMinMaxValue) { + minMaxValue = value; + minMaxValueFound = 1.0; + minMaxPosition = ${n?s?h:g:`wR * ${c} + wC`}; + } + } + } + setOutput(float(minMaxPosition)); + } + `;return}let v=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"avg"===t&&(v="avgValue / max(count, 1.0)");let y=4*Math.floor(a/4),b=a%4,_=` + if (${m}) { + avgValue += dot(values, ones); + } else { + minMaxValue = max(values, minMaxValue); + } + `;this.userCode=` + const ivec2 strides = ivec2(${o}, ${l}); + const ivec2 pads = ivec2(${d}, ${f}); + const float initializationValue = ${x}; + const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); + + float count = 0.0; + + float getValue(int batch, int xR, int xC, int d) { + if (xC < 0 || xC >= ${e.inWidth}) { + return initializationValue; + } + count += 1.0; + return getX(batch, xR, xC, d); + } + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d = coords[3]; + + ivec2 xRCCorner = coords.yz * strides - pads; + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + // max/min x(?, ?, d) to get y(yR, yC, d). + // ? = to be determined + vec4 minMaxValue = vec4(${x}); + float avgValue = 0.0; + count = 0.0; + + for (int wR = 0; wR < ${p}; + wR += ${i}) { + int xR = xRCorner + wR; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${y}; wC += 4) { + int xC = xCCorner + wC * ${u}; + + vec4 values = vec4( + getValue(batch, xR, xC, d), + getValue(batch, xR, xC + ${u}, d), + getValue(batch, xR, xC + 2 * ${u}, d), + getValue(batch, xR, xC + 3 * ${u}, d) + ); + + ${_} + } + + int xC = xCCorner + ${y}; + if (${1===b}) { + vec4 values = vec4( + getValue(batch, xR, xC, d), + initializationValue, + initializationValue, + initializationValue + ); + + ${_} + } else if (${2===b}) { + vec4 values = vec4( + getValue(batch, xR, xC, d), + getValue(batch, xR, xC + ${u}, d), + initializationValue, + initializationValue + ); + + ${_} + } else if (${3===b}) { + vec4 values = vec4( + getValue(batch, xR, xC, d), + getValue(batch, xR, xC + ${u}, d), + getValue(batch, xR, xC + 2 * ${u}, d), + initializationValue + ); + + ${_} + } + } + setOutput(${v}); + } + `}}class o{constructor(e,t,r,n=!1,s=!1){if(this.variableNames=["x"],"avg"===t&&r)throw Error("Cannot compute positions for average pool.");let a=e.filterWidth,o=e.strideDepth,l=e.strideHeight,i=e.strideWidth,u=e.dilationDepth,p=e.dilationHeight,c=e.dilationWidth,d=e.effectiveFilterDepth,f=e.effectiveFilterHeight,m=e.effectiveFilterWidth,h=e.padInfo.front,g=e.padInfo.top,x=e.padInfo.left;this.outputShape=e.outShape;let v="avg"===t,y="0.0";if(v||(y="-1.0 / 1e-20"),r){this.userCode=` + const ivec3 strides = + ivec3(${o}, ${l}, ${i}); + const ivec3 pads = ivec3(${h}, ${g}, ${x}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; + int xDCorner = xCorner.x; + int xRCorner = xCorner.y; + int xCCorner = xCorner.z; + + // max/min x(?, ?, ?, ch) to get y(yD, yR, yC, ch). + // ? = to be determined + float minMaxValue = 0.0; + float minMaxValueFound = 0.0; + int minMaxPosition = 0; + + for (int wD = 0; wD < ${d}; + wD += ${u}) { + int xD = xDCorner + wD; + + if (xD < 0 || xD >= ${e.inDepth}) { + continue; + } + + for (int wR = 0; wR < ${f}; + wR += ${p}) { + int xR = xRCorner + wR; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${m}; + wC += ${c}) { + int xC = xCCorner + wC; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + float value = getX(batch, xD, xR, xC, ch); + + // If a min / max value has already been found, use it. If not, + // use the current value. + float currMinMaxValue = mix( + value, minMaxValue, minMaxValueFound); + if (value >= currMinMaxValue) { + minMaxValue = value; + minMaxValueFound = 1.0; + minMaxPosition = ${n?s?`(((batch * ${e.inDepth} + xD) * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`((xD * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`wD * ${f} * ${m} + + wR * ${m} + wC`}; + } + } + } + } + setOutput(float(minMaxPosition)); + } + `;return}let b=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"avg"===t&&(b="avgValue / max(count, 1.0)");let _=4*Math.floor(a/4),k=a%4,j=` + if (${v}) { + avgValue += dot(values, ones); + } else { + minMaxValue = max(values, minMaxValue); + } + `;this.userCode=` + const ivec3 strides = + ivec3(${o}, ${l}, ${i}); + const ivec3 pads = ivec3(${h}, ${g}, ${x}); + const float initializationValue = ${y}; + const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); + + float count = 0.0; + + float getValue(int batch, int xD, int xR, int xC, int ch) { + if (xC < 0 || xC >= ${e.inWidth}) { + return initializationValue; + } + count += 1.0; + return getX(batch, xD, xR, xC, ch); + } + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; + int xDCorner = xCorner.x; + int xRCorner = xCorner.y; + int xCCorner = xCorner.z; + + // max/min x(?, ?, ?, d) to get y(yD, yR, yC, ch). + // ? = to be determined + vec4 minMaxValue = vec4(${y}); + float avgValue = 0.0; + count = 0.0; + + for (int wD = 0; wD < ${d}; + wD += ${u}) { + int xD = xDCorner + wD; + + if (xD < 0 || xD >= ${e.inDepth}) { + continue; + } + + for (int wR = 0; wR < ${f}; + wR += ${p}) { + int xR = xRCorner + wR; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${_}; wC += 4) { + int xC = xCCorner + wC * ${c}; + + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + getValue(batch, xD, xR, xC + ${c}, ch), + getValue(batch, xD, xR, xC + 2 * ${c}, ch), + getValue(batch, xD, xR, xC + 3 * ${c}, ch) + ); + + ${j} + } + + int xC = xCCorner + ${_}; + if (${1===k}) { + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + initializationValue, + initializationValue, + initializationValue + ); + + ${j} + } else if (${2===k}) { + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + getValue(batch, xD, xR, xC + ${c}, ch), + initializationValue, + initializationValue + ); + + ${j} + } else if (${3===k}) { + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + getValue(batch, xD, xR, xC + ${c}, ch), + getValue(batch, xD, xR, xC + 2 * ${c}, ch), + initializationValue + ); + + ${j} + } + } + } + setOutput(${b}); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9sCwx":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool3D",()=>l),s.export(r,"avgPool3DConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../pool_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{filterSize:l,strides:i,pad:u,dimRoundingMode:p,dataFormat:c}=n,d=a.backend_util.computePool3DInfo(s.shape,l,i,[1,1,1],u,p,c),f=new(0,o.Pool3DProgram)(d,"avg",!1);return r.runWebGLProgram(f,[s],"float32")}let i={kernelName:a.AvgPool3D,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../pool_gpu":"fEtti","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],luoao:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool3DGrad",()=>l),s.export(r,"avgPool3DGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../avg_pool_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:l}=t,{filterSize:i,strides:u,pad:p,dimRoundingMode:c}=n,d=a.backend_util.computePool3DInfo(l.shape,i,u,[1,1,1],p,c),f=new(0,o.AvgPool3DBackpropProgram)(d);return r.runWebGLProgram(f,[s],l.dtype)}let i={kernelName:a.AvgPool3DGrad,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../avg_pool_backprop_gpu":"gntgh","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gntgh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AvgPool2DBackpropProgram",()=>a),s.export(r,"AvgPool3DBackpropProgram",()=>o);class a{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,r=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a=e.dilationHeight,o=e.dilationWidth,l=e.effectiveFilterHeight,i=e.effectiveFilterWidth,u=l-1-e.padInfo.top,p=i-1-e.padInfo.left;this.userCode=` + const ivec2 pads = ivec2(${u}, ${p}); + const float avgMultiplier = float(${1/(t*r)}); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + + ivec2 dyRCCorner = coords.yz - pads; + int dyRCorner = dyRCCorner.x; + int dyCCorner = dyRCCorner.y; + + // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${l}; + wR += ${a}) { + float dyR = float(dyRCorner + wR) / ${n}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${i}; + wC+= ${o}) { + float dyC = float(dyCCorner + wC) / ${s}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(b, idyR, idyC, d); + + dotProd += dyValue * avgMultiplier; + } + } + setOutput(dotProd); + } + `}}class o{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,r=e.filterHeight,n=e.filterWidth,s=e.strideDepth,a=e.strideHeight,o=e.strideWidth,l=e.dilationDepth,i=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterDepth,c=e.effectiveFilterHeight,d=e.effectiveFilterWidth,f=p-1-e.padInfo.front,m=c-1-e.padInfo.top,h=d-1-e.padInfo.left;this.userCode=` + const ivec3 pads = ivec3(${f}, ${m}, ${h}); + const float avgMultiplier = float(${1/(t*r*n)}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; + int dyDCorner = dyCorner.x; + int dyRCorner = dyCorner.y; + int dyCCorner = dyCorner.z; + + // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get + // dx(xD, xR, xC, ch). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + + for (int wD = 0; wD < ${p}; + wD += ${l}) { + float dyD = float(dyDCorner + wD) / ${s}.0; + + if (dyD < 0.0 || dyD >= ${e.outDepth}.0 || fract(dyD) > 0.0) { + continue; + } + int idyD = int(dyD); + + for (int wR = 0; wR < ${c}; + wR += ${i}) { + float dyR = float(dyRCorner + wR) / ${a}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || + fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${d}; + wC += ${u}) { + float dyC = float(dyCCorner + wC) / ${o}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(batch, idyD, idyR, idyC, ch); + + dotProd += dyValue * avgMultiplier; + } + } + } + setOutput(dotProd); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6L0OF":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPoolGrad",()=>i),s.export(r,"avgPoolGradConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../avg_pool_backprop_gpu"),l=e("../webgl_util");function i(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:i}=t;(0,l.assertNotComplex)([s,i],"avgPoolGrad");let{filterSize:u,strides:p,pad:c}=n,d=a.backend_util.computePool2DInfo(i.shape,u,p,1,c),f=new(0,o.AvgPool2DBackpropProgram)(d);return r.runWebGLProgram(f,[s],i.dtype)}let u={kernelName:a.AvgPoolGrad,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../avg_pool_backprop_gpu":"gntgh","../webgl_util":"8Bhtc","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],i8dTA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchMatMul",()=>l),s.export(r,"batchMatMulConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./BatchMatMul_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{a:s,b:a}=t,{transposeA:l,transposeB:i}=n;return(0,o.batchMatMulImpl)({a:s,b:a,transposeA:l,transposeB:i,backend:r})}let i={kernelName:a.BatchMatMul,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./BatchMatMul_impl":"5lxDH","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aHEBx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm",()=>i),s.export(r,"batchNormConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../batchnorm_gpu"),l=e("../batchnorm_packed_gpu");let i=({inputs:e,backend:t,attrs:r})=>{let{x:n,mean:s,variance:i,offset:u,scale:p}=e;a.util.assert(s.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),a.util.assert(null==u||s.shape.length===u.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),a.util.assert(null==p||s.shape.length===p.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:c}=r;null==c&&(c=.001);let d=[n,s,i],f=null;null!=u&&(f=u.shape,d.push(u));let m=null;null!=p&&(m=p.shape,d.push(p));let h=(0,a.env)().getBool("WEBGL_PACK_NORMALIZATION")?new(0,l.BatchNormPackedProgram)(n.shape,s.shape,i.shape,f,m,c):new(0,o.BatchNormProgram)(n.shape,s.shape,i.shape,f,m,c);return t.runWebGLProgram(h,d,d[0].dtype)},u={kernelName:a.FusedBatchNorm,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../batchnorm_gpu":"kqJlo","../batchnorm_packed_gpu":"2VC58","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kqJlo:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"BatchNormProgram",()=>o);var a=e("@tensorflow/tfjs-core");class o{constructor(e,t,r,n,s,o){this.outputShape=[],this.variableNames=["x","mean","variance"],a.backend_util.assertAndGetBroadcastShape(e,t),a.backend_util.assertAndGetBroadcastShape(e,r);let l="0.0";null!=n&&(a.backend_util.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),l="getOffsetAtOutCoords()");let i="1.0";null!=s&&(a.backend_util.assertAndGetBroadcastShape(e,s),this.variableNames.push("scale"),i="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + void main() { + float x = getXAtOutCoords(); + float mean = getMeanAtOutCoords(); + float variance = getVarianceAtOutCoords(); + float offset = ${l}; + float scale = ${i}; + float inv = scale * inversesqrt(variance + float(${o})); + setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); + } + `}}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2VC58":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"BatchNormPackedProgram",()=>o);var a=e("@tensorflow/tfjs-core");class o{constructor(e,t,r,n,s,o){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],a.backend_util.assertAndGetBroadcastShape(e,t),a.backend_util.assertAndGetBroadcastShape(e,r);let l="vec4(0.0)";null!=n&&(a.backend_util.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),l="getOffsetAtOutCoords()");let i="vec4(1.0)";null!=s&&(a.backend_util.assertAndGetBroadcastShape(e,s),this.variableNames.push("scale"),i="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + void main() { + vec4 offset = ${l}; + vec4 scale = ${i}; + + vec4 x = getXAtOutCoords(); + vec4 mean = getMeanAtOutCoords(); + vec4 variance = getVarianceAtOutCoords(); + + vec4 inv = scale * inversesqrt(variance + vec4(${o})); + + setOutput((x - mean) * inv + offset); + } + `}}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eNBxD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchToSpaceND",()=>u),s.export(r,"batchToSpaceNDConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("./Reshape"),l=e("./Slice"),i=e("./Transpose");let u=e=>{let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockShape:u,crops:p}=n;a.util.assert(s.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let c=u.reduce((e,t)=>e*t),d=a.backend_util.getReshaped(s.shape,u,c),f=a.backend_util.getPermuted(d.length,u.length),m=a.backend_util.getReshapedPermuted(s.shape,u,c),h=a.backend_util.getSliceBeginCoords(p,u.length),g=a.backend_util.getSliceSize(m,p,u.length),x=[],v=(0,o.reshape)({inputs:{x:s},backend:r,attrs:{shape:d}}),y=(0,i.transpose)({inputs:{x:v},backend:r,attrs:{perm:f}}),b=(0,o.reshape)({inputs:{x:y},backend:r,attrs:{shape:m}}),_=(0,l.slice)({inputs:{x:b},backend:r,attrs:{begin:h,size:g}});return x.push(v),x.push(y),x.push(b),x.forEach(e=>r.disposeIntermediateTensorInfo(e)),_},p={kernelName:a.BatchToSpaceND,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","./Reshape":"2Do1g","./Slice":"25e33","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"25e33":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice",()=>u),s.export(r,"sliceConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../slice_gpu"),i=e("../slice_packed_gpu");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{begin:u,size:p}=n,[c,d]=a.slice_util.parseSliceParams(s,u,p);if(a.slice_util.assertParamsValid(s,c,d),0===a.util.sizeFromShape(d))return r.makeTensorInfo(d,s.dtype,[]);if(r.shouldExecuteOnCPU([s])||"string"===s.dtype){let e=r.texData.get(s.dataId),t=(0,o.sliceImplCPU)(e.values,c,d,s.shape,s.dtype);return r.makeTensorInfo(d,s.dtype,t)}let{isPacked:f}=r.texData.get(s.dataId),m=a.slice_util.isSliceContinous(s.shape,c,d);if(f||!m){let e=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new(0,i.SlicePackedProgram)(d):new(0,l.SliceProgram)(d),t=[c];return r.runWebGLProgram(e,[s],s.dtype,t)}return r.uploadToGPU(s.dataId),function(e,t,r,n){let s=n.texData.get(e.dataId),o=n.makeTensorInfo(r,e.dtype),l=n.texData.get(o.dataId);Object.assign(l,s),l.refCount=1,l.shape=r,l.dtype=e.dtype;let i=a.slice_util.computeFlatOffset(t,a.util.computeStrides(e.shape));s.slice&&(i+=s.slice.flatOffset),l.slice={flatOffset:i,origDataId:s.slice&&s.slice.origDataId||e.dataId};let u=n.dataRefCount.get(l.slice.origDataId)||1;return n.dataRefCount.set(l.slice.origDataId,u+1),o}(s,c,d,r)}let p={kernelName:a.Slice,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","../slice_gpu":"8fKuU","../slice_packed_gpu":"aDwkt","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8fKuU":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SliceProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e){let t;this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let r=(0,a.getCoordsDataType)(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=function(e){if(1===e)return"sourceLoc";if(e<=6)return l.slice(0,e).map(e=>"sourceLoc."+e).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}(this.rank),s=e.map((e,t)=>`sourceLoc.${l[t]} = start[${t}] + coords.${l[t]};`);t=` + ${r} sourceLoc; + ${r} coords = getOutputCoords(); + ${s.join("\n")} + `,this.userCode=` + void main() { + ${t} + setOutput(getSource(${n})); + } + `}}let l=["x","y","z","w","u","v"]},{"./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aDwkt:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SlicePackedProgram",()=>l);var a=e("./packing_util"),o=e("./shader_compiler");class l{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let t=(0,o.getCoordsDataType)(this.rank),r=(0,a.getChannels)("coords",this.rank),n=(0,a.getChannels)("sourceLoc",this.rank),s=1===this.rank?"sourceLoc":`vec2(${n.slice(-2).join()})`,l=`getChannel(getSource(${n.join()}), ${s})`,i=` + result.x = ${l}; + if (++${r[this.rank-1]} < ${e[this.rank-1]}) { + ++${n[this.rank-1]}; + result.y = ${l}; + --${n[this.rank-1]}; + } + `,u=1===this.rank?"":` + --${r[this.rank-1]}; + if (++${r[this.rank-2]} < ${e[this.rank-2]}) { + ++${n[this.rank-2]}; + result.z = ${l}; + if (++${r[this.rank-1]} < ${e[this.rank-1]}) { + ++${n[this.rank-1]}; + result.w = ${l}; + } + } + `,p=this.rank<=4?`sourceLoc = coords + + ${t}(${e.map((e,t)=>`start[${t}]`).join()});`:e.map((e,t)=>`${n[t]} = ${r[t]} + start[${t}];`).join("\n");this.userCode=` + void main() { + ${t} coords = getOutputCoords(); + ${t} sourceLoc; + ${p} + vec4 result = vec4(0.); + ${i} + ${u} + setOutput(result); + } + `}}},{"./packing_util":"k3hej","./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fObx5:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bincount",()=>l),s.export(r,"bincountConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,weights:a}=t,{size:l}=n,i=r.readSync(s.dataId),u=r.readSync(a.dataId),p=(0,o.bincountImplCPU)(i,u,a.dtype,a.shape,l);return r.makeTensorInfo([l],a.dtype,p)}let i={kernelName:a.Bincount,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jEqiV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"BITWISEAND",()=>u),s.export(r,"BITWISEAND_UNPACKED",()=>p),s.export(r,"bitwiseAnd",()=>c),s.export(r,"bitwiseAndConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu"),i=e("../kernel_utils/shared");let u=` + int r = int(a.r) & int(b.r); + int g = int(a.g) & int(b.g); + int rb = int(a.b) & int(b.b); + int ra = int(a.a) & int(b.a); + return vec4(r, g, rb, ra); +`,p=` + return float(int(a.r) & int(b.r)); +`;function c(e){let t,{inputs:r,backend:n}=e,{a:s,b:c}=r,d=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS"),f=(0,a.env)().getNumber("WEBGL_VERSION");if(n.shouldExecuteOnCPU([s,c])||1===f){let e=n.texData.get(s.dataId).values,t=n.texData.get(c.dataId).values,[r,a]=(0,i.bitwiseAndImplCPU)(s.shape,c.shape,e,t,s.dtype),o=n.makeTensorInfo(a,s.dtype);return n.texData.get(o.dataId).values=r,o}return t=d?new(0,l.BinaryOpPackedProgram)(u,s.shape,c.shape,!1):new(0,o.BinaryOpProgram)(p,s.shape,c.shape),n.runWebGLProgram(t,[s,c],s.dtype)}let d={kernelName:a.BitwiseAnd,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"biUij","../binaryop_gpu":"iq2Hg","../binaryop_packed_gpu":"g7FAa","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hwBjc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"broadcastArgs",()=>o),s.export(r,"broadcastArgsConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r}=e,{s0:n,s1:s}=t,o=r.readSync(n.dataId),l=r.readSync(s.dataId),i=a.backend_util.assertAndGetBroadcastShape(Array.from(o),Array.from(l));return r.makeTensorInfo([i.length],"int32",Int32Array.from(i))}let l={kernelName:a.BroadcastArgs,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gbr2B:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cast",()=>d),s.export(r,"castConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("./Complex"),i=e("./Identity"),u=e("./NotEqual"),p=e("./Real"),c=e("../kernel_utils/int");function d(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{dtype:f}=n;if("complex64"===f){if("complex64"===s.dtype)return(0,i.identity)({inputs:{x:s},backend:r});let e=a.zeros(s.shape),t=d({inputs:{x:s},backend:r,attrs:{dtype:"float32"}}),n=(0,l.complex)({inputs:{real:t,imag:e},backend:r});return e.dispose(),r.disposeIntermediateTensorInfo(t),n}if("complex64"===s.dtype){let e=(0,p.real)({inputs:{input:s},backend:r}),t=d({inputs:{x:e},backend:r,attrs:{dtype:f}});return r.disposeIntermediateTensorInfo(e),t}if(!a.util.hasEncodingLoss(s.dtype,f)){let e=(0,i.identity)({inputs:{x:s},backend:r});return{dataId:e.dataId,shape:e.shape,dtype:f}}if(r.shouldExecuteOnCPU([s])){let e=r.texData.get(s.dataId).values,[t,n,a]=(0,o.castImplCPU)(e,s.shape,s.dtype,f);return r.makeTensorInfo(t,n,a)}if("int32"===f)return(0,c.int)(s,r);if("bool"===f){let e=r.makeTensorInfo([],"bool",a.util.getTypedArrayFromDType("bool",1)),t=(0,u.notEqual)({inputs:{a:s,b:e},backend:r});return r.disposeIntermediateTensorInfo(e),t}throw Error(`Error in Cast: failed to cast ${s.dtype} to ${f}`)}let f={kernelName:a.Cast,backendName:"webgl",kernelFunc:d}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","./Complex":"fN7J8","./Identity":"fI9uV","./NotEqual":"gUjt7","./Real":"8FQ28","../kernel_utils/int":"cdltf","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gUjt7:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"notEqual",()=>i),s.export(r,"notEqualConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=(0,o.binaryKernelFunc)({opSnippet:"return float(a != b);",cpuKernelImpl:l.notEqualImplCPU,dtype:"bool"}),u={kernelName:a.NotEqual,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8FQ28":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"real",()=>l),s.export(r,"realConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Identity");function l(e){let{inputs:t,backend:r}=e,{input:n}=t,s=r.texData.get(n.dataId);return(0,o.identity)({inputs:{x:s.complexTensorInfos.real},backend:r})}let i={kernelName:a.Real,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Identity":"fI9uV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cdltf:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"int",()=>o);var a=e("../unaryop_gpu");function o(e,t){let r=new(0,a.UnaryOpProgram)(e.shape,"return float(int(x));"),n=t.runWebGLProgram(r,[e],"int32");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}},{"../unaryop_gpu":"LccPS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bv9f4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ceil",()=>u),s.export(r,"ceilConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return ceil(x);",u=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:i,cpuKernelImpl:l.ceilImplCPU}),p={kernelName:a.Ceil,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8fEM6":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"clipByValue",()=>i),s.export(r,"clipByValueConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../clip_gpu"),l=e("../clip_packed_gpu");function i(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:i}=r,{clipValueMin:u,clipValueMax:p}=s;return t=(0,a.env)().getBool("WEBGL_PACK_CLIP")?new(0,l.ClipPackedProgram)(i.shape):new(0,o.ClipProgram)(i.shape),n.runWebGLProgram(t,[i],i.dtype,[[u],[p]])}let u={kernelName:a.ClipByValue,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../clip_gpu":"1UjYs","../clip_packed_gpu":"jifqF","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1UjYs":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ClipProgram",()=>a);class a{constructor(e){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` + + void main() { + float value = getAAtOutCoords(); + if (isnan(value)) { + setOutput(value); + return; + } + + setOutput(clamp(value, minVal, maxVal)); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jifqF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ClipPackedProgram",()=>a);class a{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` + void main() { + vec4 value = getAAtOutCoords(); + + if (any(isnan(value))) { + setOutput(value); + return; + } + + setOutput(clamp(value, vec4(minVal), vec4(maxVal))); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],huldI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"complexAbs",()=>i),s.export(r,"complexAbsConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../complex_abs_gpu");function l(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}function i(e){let{inputs:t,backend:r}=e,{x:n}=t,s=r.texData.get(n.dataId),a=new(0,o.ComplexAbsProgram)(n.shape),i=[l(n,s.complexTensorInfos.real),l(n,s.complexTensorInfos.imag)];return r.runWebGLProgram(a,i,i[0].dtype)}let u={kernelName:a.ComplexAbs,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../complex_abs_gpu":"cfthk","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cfthk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ComplexAbsProgram",()=>a);class a{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` + void main() { + float re = abs(getRealAtOutCoords()); + float im = abs(getImagAtOutCoords()); + float mx = max(re, im); + + // sadly the length function in glsl is not underflow-safe + // (at least not on Intel GPUs). So the safe solution is + // to ensure underflow-safety in all cases. + setOutput( + mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) + ); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"99eNw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat",()=>i),s.export(r,"concatConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./Concat_impl"),l=e("./Identity");function i(e){let{inputs:t,backend:r,attrs:n}=e,{axis:s}=n,i=a.util.parseAxisParam(s,t[0].shape)[0],u=t.map(e=>e.shape);a.backend_util.assertParamsConsistent(u,i);let p=a.backend_util.computeOutShape(t.map(e=>e.shape),i);if(0===a.util.sizeFromShape(p))return r.makeTensorInfo(p,t[0].dtype,[]);let c=t.filter(e=>a.util.sizeFromShape(e.shape)>0);return 1===c.length?(0,l.identity)({inputs:{x:c[0]},backend:r}):(0,o.concatImpl)(c,i,r)}let u={kernelName:a.Concat,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","./Concat_impl":"gAUaq","./Identity":"fI9uV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gAUaq:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concatImpl",()=>function e(t,r,n){let s=t[0].dtype;if("complex64"===s){let s=t.map(e=>(0,f.real)({inputs:{input:e},backend:n})),a=t.map(e=>(0,d.imag)({inputs:{input:e},backend:n})),o=e(s,r,n),l=e(a,r,n),i=(0,c.complex)({inputs:{real:o,imag:l},backend:n});return s.forEach(e=>n.disposeIntermediateTensorInfo(e)),a.forEach(e=>n.disposeIntermediateTensorInfo(e)),n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),i}let h=n.shouldExecuteOnCPU(t);if("string"===s&&(h=!0),h){let e=t.map(e=>{let t=a.util.sizeFromShape(e.shape.slice(r));return(0,m.reshape)({inputs:{x:e},backend:n,attrs:{shape:[-1,t]}})}),o=e.map(e=>({vals:n.readSync(e.dataId),shape:e.shape})),l=a.backend_util.computeOutShape(e.map(e=>e.shape),1),u=1===e[0].shape[0],p=(0,i.concatImplCPU)(o,l,s,u),c=a.backend_util.computeOutShape(t.map(e=>e.shape),r),d=n.makeTensorInfo(c,s,p);return e.forEach(e=>n.disposeIntermediateTensorInfo(e)),d}let g=t.filter(e=>a.util.sizeFromShape(e.shape)>0),x=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&g[0].shape.length>1;if(1===g.length){let e=x?new(0,u.UnaryOpProgram)(t[0].shape,u.CLONE):new(0,p.UnaryOpPackedProgram)(t[0].shape,u.CLONE);return n.runWebGLProgram(e,t,s)}let v=(0,a.env)().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(g.length>v){let t=[];for(let s=0;se.shape),r);return n.runWebGLProgram(e,g,s)}let{tensors2D:y,outShape:b}=function(e,t,r){let n=a.backend_util.computeOutShape(e.map(e=>e.shape),t);return{tensors2D:e.map(e=>(0,m.reshape)({inputs:{x:e},attrs:{shape:[-1,a.util.sizeFromShape(e.shape.slice(t))]},backend:r})),outShape:n}}(g,r,n),_=new(0,o.ConcatProgram)(y.map(e=>e.shape)),k=n.runWebGLProgram(_,y,s);y.forEach(e=>n.disposeIntermediateTensorInfo(e));let j=(0,m.reshape)({inputs:{x:k},attrs:{shape:b},backend:n});return n.disposeIntermediateTensorInfo(k),j});var a=e("@tensorflow/tfjs-core"),o=e("../concat_gpu"),l=e("../concat_packed_gpu"),i=e("../kernel_utils/shared"),u=e("../unaryop_gpu"),p=e("../unaryop_packed_gpu"),c=e("./Complex"),d=e("./Imag"),f=e("./Real"),m=e("./Reshape")},{"@tensorflow/tfjs-core":"biUij","../concat_gpu":"551tf","../concat_packed_gpu":"aEbBH","../kernel_utils/shared":"lQim5","../unaryop_gpu":"LccPS","../unaryop_packed_gpu":"2qT48","./Complex":"fN7J8","./Imag":"2YczW","./Real":"8FQ28","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"551tf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ConcatProgram",()=>o);var a=e("@tensorflow/tfjs-core");class o{constructor(e){this.outputShape=[],this.outputShape=a.backend_util.computeOutShape(e,1),this.variableNames=e.map((e,t)=>`T${t}`);let t=Array(e.length-1);t[0]=e[0][1];for(let r=1;ri);var a=e("@tensorflow/tfjs-core"),o=e("./packing_util"),l=e("./shader_compiler");class i{constructor(e,t){this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[],this.outputShape=a.backend_util.computeOutShape(e,t);let r=this.outputShape,n=r.length,s=(0,l.getCoordsDataType)(n),i=(0,o.getChannels)("coords",n),p=["x","y","z","w","u","v"].slice(0,n);this.variableNames=e.map((e,t)=>`T${t}`);let c=Array(e.length-1);c[0]=e[0][t];for(let r=1;r= ${c[e-1]}) { + return getChannel( + getT${e}(${u(p,d,t)}), + vec2(${u(f,d,t)})); + }`}let g=c.length,x=c[c.length-1];h+=` + return getChannel( + getT${g}(${u(p,d,x)}), + vec2(${u(f,d,x)}));`,this.userCode=` + float getValue(${p.map(e=>"int "+e)}) { + ${h} + } + + void main() { + ${s} coords = getOutputCoords(); + vec4 result = vec4(getValue(${i}), 0., 0., 0.); + + ${i[n-1]} = ${i[n-1]} + 1; + if (${i[n-1]} < ${r[n-1]}) { + result.g = getValue(${i}); + } + + ${i[n-2]} = ${i[n-2]} + 1; + if (${i[n-2]} < ${r[n-2]}) { + result.a = getValue(${i}); + } + + ${i[n-1]} = ${i[n-1]} - 1; + if (${i[n-2]} < ${r[n-2]} && + ${i[n-1]} < ${r[n-1]}) { + result.b = getValue(${i}); + } + setOutput(result); + } + `}}function u(e,t,r){let n=e.indexOf(t);return e.map((e,t)=>t===n?`${e} - ${r}`:e).join()}},{"@tensorflow/tfjs-core":"biUij","./packing_util":"k3hej","./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2YczW":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"imag",()=>l),s.export(r,"imagConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Identity");function l(e){let{inputs:t,backend:r}=e,{input:n}=t,s=r.texData.get(n.dataId);return(0,o.identity)({inputs:{x:s.complexTensorInfos.imag},backend:r})}let i={kernelName:a.Imag,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Identity":"fI9uV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2AXF2":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2d",()=>p),s.export(r,"conv2DConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../conv_gpu"),l=e("../conv_packed_gpu"),i=e("./Conv2D_impl"),u=e("./Reshape");function p(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:p,filter:c}=r,{strides:d,pad:f,dataFormat:m,dilations:h,dimRoundingMode:g}=s,x=a.backend_util.convertConv2DDataFormat(m),v=a.backend_util.computeConv2DInfo(p.shape,c.shape,d,h,f,g,!1,x);if(1===v.filterHeight&&1===v.filterWidth&&1===v.dilationHeight&&1===v.dilationWidth&&1===v.strideHeight&&1===v.strideWidth&&("SAME"===v.padInfo.type||"VALID"===v.padInfo.type))t=(0,i.conv2dByMatMul)({x:p,filter:c,convInfo:v,backend:n});else if(v.strideWidth<=2&&"channelsLast"===x&&(0,a.env)().getBool("WEBGL_EXP_CONV")){let e=new(0,l.Conv2DPackedProgram)(v),r=[[v.padInfo.top,v.padInfo.left],[v.strideHeight,v.strideWidth],[v.dilationHeight,v.dilationWidth],[v.inHeight,v.inWidth]];t=n.runWebGLProgram(e,[p,c],"float32",r)}else if((0,a.env)().getBool("WEBGL_CONV_IM2COL"))t=(0,i.conv2dWithIm2Row)({x:p,filter:c,convInfo:v,backend:n});else{let e=new(0,o.Conv2DProgram)(v);t=n.runWebGLProgram(e,[p,c],"float32")}let y=(0,u.reshape)({inputs:{x:t},backend:n,attrs:{shape:v.outShape}});return n.disposeIntermediateTensorInfo(t),y}let c={kernelName:a.Conv2D,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../conv_gpu":"lCtEK","../conv_packed_gpu":"63vcn","./Conv2D_impl":"cOUbb","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lCtEK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Conv2DProgram",()=>a),s.export(r,"Conv3DProgram",()=>o);class a{constructor(e,t=!1,r=null,n=!1,s=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let a=e.padInfo.top,o=e.padInfo.left,l=e.strideHeight,i=e.strideWidth,u=e.dilationHeight,p=e.dilationWidth,c=e.filterHeight,d=e.filterWidth,f=4*Math.floor(e.inChannels/4),m=e.inChannels%4,h="channelsLast"===e.dataFormat,g="",x="";r&&(g=n?`float activation(float a) { + float b = getPreluActivationWeightsAtOutCoords(); + ${r} + }`:s?`float activation(float a) { + float b = getLeakyreluAlphaAtOutCoords(); + ${r} + }`:` + float activation(float x) { + ${r} + } + `,x="result = activation(result);"),t&&this.variableNames.push("bias"),n&&this.variableNames.push("preluActivationWeights"),s&&this.variableNames.push("leakyreluAlpha"),this.userCode=` + ${g} + + const ivec2 strides = ivec2(${l}, ${i}); + const ivec2 pads = ivec2(${a}, ${o}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d2 = coords[${h?3:1}]; + + ivec2 xRCCorner = + ivec2(coords[${h?1:2}], coords[${h?2:3}]) * strides - pads; + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${c}; wR++) { + int xR = xRCorner + wR * ${u}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${d}; wC++) { + int xC = xCCorner + wC * ${p}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + for (int d1 = 0; d1 < ${f}; d1 += 4) { + vec4 wValues = vec4( + getW(wR, wC, d1, d2), + getW(wR, wC, d1 + 1, d2), + getW(wR, wC, d1 + 2, d2), + getW(wR, wC, d1 + 3, d2) + ); + + if (${h}) { + vec4 xValues = vec4( + getX(batch, xR, xC, d1), + getX(batch, xR, xC, d1 + 1), + getX(batch, xR, xC, d1 + 2), + getX(batch, xR, xC, d1 + 3) + ); + dotProd += dot(xValues, wValues); + } else { + vec4 xValues = vec4( + getX(batch, d1, xR, xC), + getX(batch, d1 + 1, xR, xC), + getX(batch, d1 + 2, xR, xC), + getX(batch, d1 + 3, xR, xC) + ); + dotProd += dot(xValues, wValues); + } + } + + if (${1===m}) { + + if (${h}) { + dotProd += + getX(batch, xR, xC, ${f}) * + getW(wR, wC, ${f}, d2); + } else { + dotProd += + getX(batch, ${f}, xR, xC) * + getW(wR, wC, ${f}, d2); + } + + } else if (${2===m}) { + vec2 wValues = vec2( + getW(wR, wC, ${f}, d2), + getW(wR, wC, ${f} + 1, d2) + ); + + if (${h}) { + vec2 xValues = vec2( + getX(batch, xR, xC, ${f}), + getX(batch, xR, xC, ${f} + 1) + ); + dotProd += dot(xValues, wValues); + } else { + vec2 xValues = vec2( + getX(batch, ${f}, xR, xC), + getX(batch, ${f} + 1, xR, xC) + ); + dotProd += dot(xValues, wValues); + } + + } else if (${3===m}) { + vec3 wValues = vec3( + getW(wR, wC, ${f}, d2), + getW(wR, wC, ${f} + 1, d2), + getW(wR, wC, ${f} + 2, d2) + ); + + if (${h}) { + vec3 xValues = vec3( + getX(batch, xR, xC, ${f}), + getX(batch, xR, xC, ${f} + 1), + getX(batch, xR, xC, ${f} + 2) + ); + dotProd += dot(xValues, wValues); + } else { + vec3 xValues = vec3( + getX(batch, ${f}, xR, xC), + getX(batch, ${f} + 1, xR, xC), + getX(batch, ${f} + 2, xR, xC) + ); + dotProd += dot(xValues, wValues); + } + + } + } + } + + float result = dotProd; + ${t?"result += getBiasAtOutCoords();":""} + ${x} + setOutput(result); + } + `}}class o{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,r=e.padInfo.top,n=e.padInfo.left,s=e.strideDepth,a=e.strideHeight,o=e.strideWidth,l=e.dilationDepth,i=e.dilationHeight,u=e.dilationWidth,p=e.filterDepth,c=e.filterHeight,d=e.filterWidth,f=4*Math.floor(e.inChannels/4),m=e.inChannels%4;this.userCode=` + const ivec3 strides = ivec3(${s}, ${a}, ${o}); + const ivec3 pads = ivec3(${t}, ${r}, ${n}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int d2 = coords.u; + + ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; + int xFCorner = xFRCCorner.x; + int xRCorner = xFRCCorner.y; + int xCCorner = xFRCCorner.z; + + // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get + // y(yF, yR, yC, d2). ? = to be determined. : = across all + // values in that axis. + float dotProd = 0.0; + for (int wF = 0; wF < ${p}; wF++) { + int xF = xFCorner + wF * ${l}; + + if (xF < 0 || xF >= ${e.inDepth}) { + continue; + } + + for (int wR = 0; wR < ${c}; wR++) { + int xR = xRCorner + wR * ${i}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${d}; wC++) { + int xC = xCCorner + wC * ${u}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + for (int d1 = 0; d1 < ${f}; d1 += 4) { + vec4 xValues = vec4( + getX(batch, xF, xR, xC, d1), + getX(batch, xF, xR, xC, d1 + 1), + getX(batch, xF, xR, xC, d1 + 2), + getX(batch, xF, xR, xC, d1 + 3) + ); + vec4 wValues = vec4( + getW(wF, wR, wC, d1, d2), + getW(wF, wR, wC, d1 + 1, d2), + getW(wF, wR, wC, d1 + 2, d2), + getW(wF, wR, wC, d1 + 3, d2) + ); + + dotProd += dot(xValues, wValues); + } + + if (${1===m}) { + dotProd += + getX(batch, xF, xR, xC, ${f}) * + getW(wF, wR, wC, ${f}, d2); + } else if (${2===m}) { + vec2 xValues = vec2( + getX(batch, xF, xR, xC, ${f}), + getX(batch, xF, xR, xC, ${f} + 1) + ); + vec2 wValues = vec2( + getW(wF, wR, wC, ${f}, d2), + getW(wF, wR, wC, ${f} + 1, d2) + ); + dotProd += dot(xValues, wValues); + } else if (${3===m}) { + vec3 xValues = vec3( + getX(batch, xF, xR, xC, ${f}), + getX(batch, xF, xR, xC, ${f} + 1), + getX(batch, xF, xR, xC, ${f} + 2) + ); + vec3 wValues = vec3( + getW(wF, wR, wC, ${f}, d2), + getW(wF, wR, wC, ${f} + 1, d2), + getW(wF, wR, wC, ${f} + 2, d2) + ); + dotProd += dot(xValues, wValues); + } + } + } + } + setOutput(dotProd); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"63vcn":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Conv2DPackedProgram",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_math");class l{constructor(e,t=!1,r=null,n=!1,s=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length);let l=e.padInfo.left,i=e.strideWidth,u=e.dilationWidth,p=e.filterHeight,c=e.filterWidth,d=` + int xR; int xC; int xCOffset; + vec4 wTexel; vec4 previous; vec4 final;`;for(let e=0;e=0 && xR < inDims[0]) { + `;for(let t=0;t<(c+1)/2;t++){let r=2*t;if(d+=` + xC = xCCorner + ${r*u}; + `,1===i){if(r= 0 && xCOffset < inDims[1] && xTexelC${r}Ready == 0) { + xTexelC${r} = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + xTexelC${r}.zw = vec2(0.0); + } + xTexelC${r}Ready = 1; + } + `,1===u&&r>0?d+=` + xC${r} = vec4(xTexelC${r-2}.zw, xTexelC${r}.xy); + `:d+=` + xCOffset = xC + 1 - 2; + + if (xCOffset >= 0 && xCOffset < inDims[1]) { + previous = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + previous.zw = vec2(0.0); + } + + xC${r} = vec4(previous.zw, xTexelC${r}.xy); + } else { + xC${r} = vec4(0.0, 0.0, xTexelC${r}.xy); + } + `):d+=` + if (xC >= 0 && xC < inDims[1] && xTexelC${r}Ready == 0) { + xTexelC${r} = getX(batch, xR, xC, d1); + if (xC + 1 >= inDims[1]) { + xTexelC${r}.zw = vec2(0.0); + } + xTexelC${r}Ready = 1; + } + + xC${r} = xTexelC${r}; + `,r+1= 0 && xCOffset < inDims[1] && xTexelC${r+1}Ready == 0) { + xTexelC${r+1} = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + xTexelC${r+1}.zw = vec2(0.0); + } + xTexelC${r+1}Ready = 1; + } + `,u>1?d+=` + xCOffset -= 2; + if (xCOffset >= 0 && xCOffset < inDims[1]) { + previous = getX(batch, xR, xCOffset, d1); + xC${r+1} = vec4(previous.zw, xTexelC${r+1}.xy); + } else { + xC${r+1} = vec4(0.0, 0.0, xTexelC${r+1}.xy); + } + `:d+=` + xC${r+1} = vec4(xTexelC${r}.zw, xTexelC${r+1}.xy); + `):1===e?d+=` + xC${r+1} = xTexelC${r}; + `:d+=` + xCOffset = xC + ${e}; + + if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${r+1}Ready == 0) { + xTexelC${r+1} = getX(batch, xR, xCOffset, d1); + if (xCOffset + 1 >= inDims[1]) { + xTexelC${r+1}.zw = vec2(0.0); + } + xTexelC${r+1}Ready = 1; + } + + xC${r+1} = xTexelC${r+1}; + `}}else r= 0 && xCOffset < inDims[1] && xTexelC${r}Ready == 0) { + xTexelC${r} = getX(batch, xR, xCOffset, d1); + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + xTexelC${r}.zw = vec2(0.0); + } + xTexelC${r}Ready = 1; + } + + if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${r+1}Ready == 0) { + xTexelC${r+1} = getX(batch, xR, xC + 1, d1); + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xC + 2 >= inDims[1]) { + xTexelC${r+1}.zw = vec2(0.0); + } + xTexelC${r+1}Ready = 1; + } + + xC${r} = vec4(xTexelC${r}.zw, xTexelC${r+1}.zw); + `,r+1= 0 && xCOffset < inDims[1]) { + final = getX(batch, xR, xCOffset, d1); + } + xC${r+1} = vec4(xTexelC${r+1}.xy, final.xy); + `)):(d+=` + if(xC >= 0 && xC < inDims[1] && xTexelC${r}Ready == 0) { + xTexelC${r} = getX(batch, xR, xC, d1); + if (xC + 1 >= inDims[1]) { + xTexelC${r}.zw = vec2(0.0); + } + xTexelC${r}Ready = 1; + } + + xCOffset = xC + strides[1]; + if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${r+1}Ready == 0) { + xTexelC${r+1} = getX(batch, xR, xCOffset, d1); + if (xCOffset + 1 >= inDims[1]) { + xTexelC${r+1}.zw = vec2(0.); + } + xTexelC${r+1}Ready = 1; + } + + xC${r} = vec4( + xTexelC${r}.xy, xTexelC${r+1}.xy); + `,r+1m),s.export(r,"conv2dWithIm2Row",()=>h);var a=e("@tensorflow/tfjs-core"),o=e("../im2col_packed_gpu"),l=e("../kernel_utils/kernel_funcs_utils"),i=e("../mulmat_packed_gpu"),u=e("../webgl_util"),p=e("./BatchMatMul_impl"),c=e("./Identity"),d=e("./Reshape");function f(e,t){let r=e.length;return r>=3?t?[...e.slice(0,-3),e[r-3]*e[r-2],e[r-1]]:[...e.slice(0,-3),e[r-3],e[r-2]*e[r-1]]:!t&&1===r&&e[0]>1?[e[0],1]:null}function m({x:e,filter:t,convInfo:r,backend:n,bias:s=null,preluActivationWeights:o=null,leakyreluAlpha:l=0,activation:i=null}){let m,h=e.shape,g=n.texData.get(e.dataId),x=r.inChannels,v=h[0]*h[1]*h[2],y=r.outChannels,b="channelsLast"===r.dataFormat,_=[];if(null!=o){let e=f(o.shape,b);null!=e&&(o=(0,d.reshape)({inputs:{x:o},backend:n,attrs:{shape:e}}),_.push(o))}if(null!=s){let e=f(s.shape,b);null!=e&&(s=(0,d.reshape)({inputs:{x:s},backend:n,attrs:{shape:e}}),_.push(s))}if(!((1===v||1===y)&&x>p.MATMUL_SHARED_DIM_THRESHOLD)&&g.isPacked&&b&&null!=g.texture&&h[2]%2!=0&&a.util.arraysEqual(g.shape.slice(-3),h.slice(-3))){let f=h[0]*h[1]*(h[2]+1),x={dataId:e.dataId,shape:[1,f,r.inChannels],dtype:e.dtype},v=g.shape;g.shape=g.shape.slice(),g.shape[g.shape.length-2]++,a.util.assert(u.isReshapeFree(g.shape,x.shape),()=>`packed reshape ${g.shape} to ${x.shape} isn't free`);let y=(0,d.reshape)({inputs:{x:t},backend:n,attrs:{shape:[1,r.inChannels,r.outChannels]}});_.push(y);let b=(0,p.batchMatMulImpl)({a:x,b:y,backend:n,transposeA:!1,transposeB:!1,bias:s,activation:i,preluActivationWeights:o,leakyreluAlpha:l}),k=n.texData.get(b.dataId);a.util.assert(k.isPacked,()=>"batchMatMul result is expected to be packed"),g.shape=v,k.shape=r.outShape,(m=(0,c.identity)({inputs:{x:b},backend:n})).shape=r.outShape,_.push(b)}else{let a=r.outHeight*r.outWidth,u=(0,d.reshape)({inputs:{x:e},backend:n,attrs:{shape:b?[r.batchSize,a,r.inChannels]:[r.batchSize,r.inChannels,a]}}),c=(0,d.reshape)({inputs:{x:t},backend:n,attrs:{shape:[1,r.inChannels,r.outChannels]}}),f=(0,p.batchMatMulImpl)({a:b?u:c,b:b?c:u,transposeA:!b,transposeB:!1,backend:n,bias:s,activation:i,preluActivationWeights:o,leakyreluAlpha:l});m=(0,d.reshape)({inputs:{x:f},backend:n,attrs:{shape:r.outShape}}),_.push(u),_.push(c),_.push(f)}for(let e of _)n.disposeIntermediateTensorInfo(e);return m}function h({x:e,filter:t,convInfo:r,backend:n,bias:s=null,preluActivationWeights:u=null,leakyreluAlpha:p=0,activation:c=null}){let{filterWidth:m,filterHeight:h,inChannels:g,outWidth:x,outHeight:v,dataFormat:y}=r,b="channelsLast"===y,_=m*h*g,k=v*x,j=[r.batchSize,_,k],I=[];if(null!=u){let e=f(u.shape,b);null!=e&&(u=(0,d.reshape)({inputs:{x:u},backend:n,attrs:{shape:e}}),I.push(u))}if(null!=s){let e=f(s.shape,b);null!=e&&(s=(0,d.reshape)({inputs:{x:s},backend:n,attrs:{shape:e}}),I.push(s))}let w=(0,d.reshape)({inputs:{x:t},backend:n,attrs:{shape:[1,_,a.util.sizeFromShape(t.shape)/_]}});I.push(w);let T=new(0,o.Im2ColPackedProgram)(j,r),N=[e.shape,[r.padInfo.top,r.padInfo.left],[r.strideHeight,r.strideWidth],[r.dilationHeight,r.dilationWidth],[r.inChannels],[r.filterWidth*r.inChannels],[r.outWidth]],S=n.runWebGLProgram(T,[e],"float32",N),C=(0,d.reshape)({inputs:{x:S},backend:n,attrs:{shape:j}});I.push(S),I.push(C);let E=null!=s,F=null!=u,A="leakyrelu"===c,R=c?(0,l.mapActivationToShaderProgram)(c,!0):null,P=new(0,i.MatMulPackedProgram)(b?C.shape:w.shape,b?w.shape:C.shape,b?[r.batchSize,k,r.outChannels]:[r.batchSize,r.outChannels,k],!0,!1,E,R,F,A),D=b?[C,w]:[w,C];if(s&&D.push(s),F&&D.push(u),A){let e=n.makeTensorInfo([],"float32",a.util.createScalarValue(p,"float32"));D.push(e),I.push(e)}let $=n.runWebGLProgram(P,D,"float32"),O=(0,d.reshape)({inputs:{x:$},backend:n,attrs:{shape:r.outShape}});for(let e of(I.push($),I))n.disposeIntermediateTensorInfo(e);return O}},{"@tensorflow/tfjs-core":"biUij","../im2col_packed_gpu":"2pm04","../kernel_utils/kernel_funcs_utils":"5WW6u","../mulmat_packed_gpu":"laYzs","../webgl_util":"8Bhtc","./BatchMatMul_impl":"5lxDH","./Identity":"fI9uV","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2pm04":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Im2ColPackedProgram",()=>l);var a=e("./glsl_version"),o=e("./gpgpu_math");class l{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec4"},{name:"pad",type:"ivec2"},{name:"stride",type:"ivec2"},{name:"dilation",type:"ivec2"},{name:"inChannels",type:"int"},{name:"itemsPerBlockRow",type:"int"},{name:"outWidth",type:"int"}],this.outputShape=e,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length);let{dataFormat:r}=t,n=(0,a.getGlslDifferences)(),s="channelsLast"===r,l=s?1:2,i=s?2:3,u=this.enableShapeUniforms?"if(blockIndex < outShape[2] && pos < outShape[1]) {":`if(blockIndex < ${e[2]} && pos < ${e[1]}) {`,p="";for(let e=0;e<=1;e++)for(let t=0;t<=1;t++)p+=` + blockIndex = rc.z + ${t}; + pos = rc.y + ${e}; + + ${u} + offsetY = int(blockIndex / outWidth) * stride[0] - pad[0]; + d0 = offsetY + dilation[0] * (pos / itemsPerBlockRow); + + if(d0 < inputShape[${l}] && d0 >= 0) { + // Use custom imod instead mod. On Intel GPU, mod may generate + // unexpected value. + // https://github.com/tensorflow/tfjs/issues/5447 + offsetX = imod(blockIndex, outWidth) * stride[1] - pad[1]; + d1 = offsetX + dilation[1] * (imod(pos, itemsPerBlockRow) / + inChannels); + + if(d1 < inputShape[${i}] && d1 >= 0) { + + ch = imod(pos, inChannels); + + if (${s}) { + innerDims = vec2(d1, ch); + result[${2*e+t}] = getChannel( + getA(rc.x, d0, int(innerDims.x), + int(innerDims.y)), innerDims); + } else { + innerDims = vec2(d0, d1); + result[${2*e+t}] = getChannel( + getA(rc.x, ch, int(innerDims.x), + int(innerDims.y)), innerDims); + } + } + } + } + `;this.userCode=` + void main() { + ivec3 rc = getOutputCoords(); + + vec4 result = vec4(0); + + int blockIndex, pos, offsetY, d0, offsetX, d1, ch; + vec2 innerDims; + + ${p} + + ${n.output} = result; + } + `}}},{"./glsl_version":"9EOgg","./gpgpu_math":"1F9Jp","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],adj3h:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2DBackpropFilter",()=>l),s.export(r,"conv2DBackpropFilterConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,pad:u,dataFormat:p,dimRoundingMode:c,filterShape:d}=n,f=a.backend_util.convertConv2DDataFormat(p),m=a.backend_util.computeConv2DInfo(s.shape,d,i,1,u,c,!1,f),h=new(0,o.Conv2DDerFilterProgram)(m);return r.runWebGLProgram(h,[s,l],"float32")}let i={kernelName:a.Conv2DBackpropFilter,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../conv_backprop_gpu":"lGDHL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lGDHL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Conv2DDerFilterProgram",()=>a),s.export(r,"Conv2DDerInputProgram",()=>o),s.export(r,"Conv3DDerFilterProgram",()=>l),s.export(r,"Conv3DDerInputProgram",()=>i);class a{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,r=e.strideWidth,n=e.padInfo.top,s=e.padInfo.left,a="channelsLast"===e.dataFormat;this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int wR = coords.x; + int wC = coords.y; + int d1 = coords.z; + int d2 = coords.w; + + // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + + for (int b = 0; b < ${e.batchSize}; b++) { + for (int yR = 0; yR < ${e.outHeight}; yR++) { + int xR = wR + yR * ${t} - ${n}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int yC = 0; yC < ${e.outWidth}; yC++) { + int xC = wC + yC * ${r} - ${s}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + ${a?`float dyValue = getDy(b, yR, yC, d2); + float xValue = getX(b, xR, xC, d1); + dotProd += (xValue * dyValue);`:`float dyValue = getDy(b, d2, yR, yC); + float xValue = getX(b, d1, xR, xC); + dotProd += (xValue * dyValue);`} + } + } + } + setOutput(dotProd); + } + `}}class o{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,r=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a="channelsLast"===e.dataFormat,o=t-1-e.padInfo.top,l=r-1-e.padInfo.left;this.userCode=` + const ivec2 pads = ivec2(${o}, ${l}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d1 = coords[${a?3:1}]; + + ivec2 dyCorner = ivec2(coords[${a?1:2}], coords[${a?2:3}]) - pads; + int dyRCorner = dyCorner.x; + int dyCCorner = dyCorner.y; + + // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${t}; wR++) { + float dyR = float(dyRCorner + wR) / ${n}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + int wRPerm = ${t} - 1 - wR; + + for (int wC = 0; wC < ${r}; wC++) { + float dyC = float(dyCCorner + wC) / ${s}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + int wCPerm = ${r} - 1 - wC; + + for (int d2 = 0; d2 < ${e.outChannels}; d2++) { + + if (${a}) { + float xValue = getDy(batch, idyR, idyC, d2); + float wValue = getW(wRPerm, wCPerm, d1, d2); + dotProd += xValue * wValue; + } else { + float xValue = getDy(batch, d2, idyR, idyC); + float wValue = getW(wRPerm, wCPerm, d1, d2); + dotProd += xValue * wValue; + } + + } + } + } + setOutput(dotProd); + } + `}}class l{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,r=e.strideHeight,n=e.strideWidth,s=e.padInfo.front,a=e.padInfo.top,o=e.padInfo.left;this.userCode=` + void main() { + ivec5 coords = getOutputCoords(); + int wF = coords.x; + int wR = coords.y; + int wC = coords.z; + int d1 = coords.w; + int d2 = coords.u; + + float dotProd = 0.0; + + for (int b = 0; b < ${e.batchSize}; b++) { + for (int yF = 0; yF < ${e.outDepth}; yF++) { + int xF = wF + yF * ${t} - ${s}; + + if (xF < 0 || xF >= ${e.inDepth}) { + continue; + } + + for (int yR = 0; yR < ${e.outHeight}; yR++) { + int xR = wR + yR * ${r} - ${a}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int yC = 0; yC < ${e.outWidth}; yC++) { + int xC = wC + yC * ${n} - ${o}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + float dyValue = getDy(b, yF, yR, yC, d2); + float xValue = getX(b, xF, xR, xC, d1); + dotProd += (xValue * dyValue); + } + } + } + } + setOutput(dotProd); + } + `}}class i{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,r=e.filterHeight,n=e.filterWidth,s=e.strideDepth,a=e.strideHeight,o=e.strideWidth,l=t-1-e.padInfo.front,i=r-1-e.padInfo.top,u=n-1-e.padInfo.left;this.userCode=` + const ivec3 pads = ivec3(${l}, ${i}, ${u}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int d1 = coords.u; + + + ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; + int dyFCorner = dyCorner.x; + int dyRCorner = dyCorner.y; + int dyCCorner = dyCorner.z; + + float dotProd = 0.0; + for (int wF = 0; wF < ${t}; wF++) { + float dyF = float(dyFCorner + wF) / ${s}.0; + + if (dyF < 0.0 || dyF >= ${e.outDepth}.0 || fract(dyF) > 0.0) { + continue; + } + int idyF = int(dyF); + + int wFPerm = ${t} - 1 - wF; + + for (int wR = 0; wR < ${r}; wR++) { + float dyR = float(dyRCorner + wR) / ${a}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || + fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + int wRPerm = ${r} - 1 - wR; + + for (int wC = 0; wC < ${n}; wC++) { + float dyC = float(dyCCorner + wC) / ${o}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + int wCPerm = ${n} - 1 - wC; + + for (int d2 = 0; d2 < ${e.outChannels}; d2++) { + float xValue = getDy(batch, idyF, idyR, idyC, d2); + float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2); + dotProd += xValue * wValue; + } + } + } + } + setOutput(dotProd); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"37yY1":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2DBackpropInput",()=>i),s.export(r,"conv2DBackpropInputConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu"),l=e("../conv_backprop_packed_gpu");function i(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:i}=t,{inputShape:u,strides:p,pad:c,dataFormat:d,dimRoundingMode:f}=n,m=a.backend_util.convertConv2DDataFormat(d),h=a.backend_util.computeConv2DInfo(u,i.shape,p,1,c,f,!1,m);if((0,a.env)().getBool("WEBGL_PACK_CONV2DTRANSPOSE")&&"channelsLast"===m){let e=[[h.strideHeight,h.strideWidth]],t=new(0,l.Conv2DDerInputPackedProgram)(h);return r.runWebGLProgram(t,[s,i],"float32",e)}{let e=new(0,o.Conv2DDerInputProgram)(h);return r.runWebGLProgram(e,[s,i],"float32")}}let u={kernelName:a.Conv2DBackpropInput,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../conv_backprop_gpu":"lGDHL","../conv_backprop_packed_gpu":"5dBE0","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5dBE0":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Conv2DDerInputPackedProgram",()=>o);var a=e("./gpgpu_math");class o{constructor(e){this.variableNames=["dy","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"strides",type:"vec2"}],this.outputShape=e.inShape,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length);let t=e.filterHeight,r=e.filterWidth,n=t-1-e.padInfo.top,s=r-1-e.padInfo.left;this.userCode=` + const ivec2 pads = ivec2(${n}, ${s}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d1 = coords[3]; + + ivec2 dyCorner = ivec2(coords[1], coords[2]) - pads; + int dyRCorner = dyCorner.x; + int dyCCorner = dyCorner.y; + + vec4 result = vec4(0.); + for (int wR = 0; wR < ${t}; wR++) { + float dyR = float(dyRCorner + wR) / strides[0]; + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + int wRPerm = ${t} - 1 - wR; + + for (int wC = 0; wC < ${r}; wC++) { + int wCPerm = ${r} - 1 - wC; + + float dyC = float(dyCCorner + wC) / strides[1]; + bool idyCVal = (dyC >= 0.0) && (dyC < ${e.outWidth}.0) + && (fract(dyC) == 0.0); + int idyC = int(dyC); + + float dyC2 = float(dyCCorner + wC + 1) / strides[1]; + bool idyCVal2 = (dyC2 >= 0.0) && (dyC2 < ${e.outWidth}.0) + && (fract(dyC2) == 0.0); + int idyC2 = int(dyC2); + + if (idyCVal && idyCVal2) { + for (int d2 = 0; d2 < ${e.outChannels}; d2 += 2) { + vec4 wValue = getW(wRPerm, wCPerm, d1, d2); + vec4 dySample = getDy(batch, idyR, idyC, d2); + vec4 dySample2 = (idyC / 2 == idyC2 / 2) ? + dySample : getDy(batch, idyR, idyC2, d2); + + vec2 dyValue = mod(float(idyC), 2.) == 0. ? + dySample.xy : dySample.zw; + result.xy += vec2(dot(dyValue, wValue.xy), + dot(dyValue, wValue.zw)); + + dyValue = mod(float(idyC2), 2.) == 0. ? + dySample2.xy : dySample2.zw; + result.zw += vec2(dot(dyValue, wValue.xy), + dot(dyValue, wValue.zw)); + } + } else if (idyCVal) { + for (int d2 = 0; d2 < ${e.outChannels}; d2 += 2) { + vec4 wValue = getW(wRPerm, wCPerm, d1, d2); + vec4 dySample = getDy(batch, idyR, idyC, d2); + vec2 dyValue = mod(float(idyC), 2.) == 0. ? + dySample.xy : dySample.zw; + result.xy += vec2(dot(dyValue, wValue.xy), + dot(dyValue, wValue.zw)); + } + } else if (idyCVal2) { + for (int d2 = 0; d2 < ${e.outChannels}; d2 += 2) { + vec4 wValue = getW(wRPerm, wCPerm, d1, d2); + vec4 dySample = getDy(batch, idyR, idyC2, d2); + vec2 dyValue = mod(float(idyC2), 2.) == 0. ? + dySample.xy : dySample.zw; + result.zw += vec2(dot(dyValue, wValue.xy), + dot(dyValue, wValue.zw)); + } + } + } + } + setOutput(result); + } + `}}},{"./gpgpu_math":"1F9Jp","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],j7XkX:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3D",()=>l),s.export(r,"conv3DConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:l}=t,{strides:i,pad:u,dilations:p}=n,c=a.backend_util.computeConv3DInfo(s.shape,l.shape,i,p,u),d=new(0,o.Conv3DProgram)(c);return r.runWebGLProgram(d,[s,l],"float32")}let i={kernelName:a.Conv3D,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../conv_gpu":"lCtEK","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"12kPy":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3DBackpropFilterV2",()=>l),s.export(r,"conv3DBackpropFilterV2Config",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,pad:u,filterShape:p}=n,c=a.backend_util.computeConv3DInfo(s.shape,p,i,1,u),d=new(0,o.Conv3DDerFilterProgram)(c);return r.runWebGLProgram(d,[s,l],"float32")}let i={kernelName:a.Conv3DBackpropFilterV2,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../conv_backprop_gpu":"lGDHL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"99k4w":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3DBackpropInput",()=>l),s.export(r,"conv3DBackpropInputConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:l}=t,{pad:i,strides:u,inputShape:p}=n,c=a.backend_util.computeConv3DInfo(p,l.shape,u,1,i),d=new(0,o.Conv3DDerInputProgram)(c);return r.runWebGLProgram(d,[s,l],"float32")}let i={kernelName:a.Conv3DBackpropInputV2,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../conv_backprop_gpu":"lGDHL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cRH7x:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cos",()=>p),s.export(r,"cosConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_packed_gpu"),l=e("../kernel_utils/kernel_funcs_utils");let i=l.CHECK_NAN_SNIPPET_UNARY+` + return cos(x); +`,u=` + vec4 result = cos(x); + bvec4 isNaN = isnan(x); + ${o.CHECK_NAN_SNIPPET_PACKED} + return result; +`,p=(0,l.unaryKernelFunc)({opSnippet:i,packedOpSnippet:u}),c={kernelName:a.Cos,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../binaryop_packed_gpu":"g7FAa","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"84qKA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cosh",()=>i),s.export(r,"coshConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + float e2x = exp(-x); + return (e2x + 1.0 / e2x) / 2.0; +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Cosh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kVL9C:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cropAndResize",()=>l),s.export(r,"cropAndResizeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../crop_and_resize_gpu");let l=e=>{let{inputs:t,backend:r,attrs:n}=e,{image:s,boxes:a,boxInd:l}=t,{cropSize:i,method:u,extrapolationValue:p}=n,c=new(0,o.CropAndResizeProgram)(s.shape,a.shape,i,u,p);return r.runWebGLProgram(c,[s,a,l],"float32")},i={kernelName:a.CropAndResize,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../crop_and_resize_gpu":"lzvvE","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lzvvE:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"CropAndResizeProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[a,o,l,i]=e,[u]=t,[p,c]=r;this.outputShape=[u,p,c,i];let[d,f]=[`${o-1}.0`,`${l-1}.0`],[m,h,g]=p>1?[`${(o-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${d} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${d}`],[x,v,y]=c>1?[`${(l-1)/(c-1)}`,"(x2-x1) * width_ratio",`x1*${f} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${f}`];this.userCode=` + const float height_ratio = float(${m}); + const float width_ratio = float(${x}); + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int y = coords[1]; + int x = coords[2]; + int d = coords[3]; + + // get box vals + float y1 = getBoxes(b,0); + float x1 = getBoxes(b,1); + float y2 = getBoxes(b,2); + float x2 = getBoxes(b,3); + + // get image in batch index + int bInd = round(getBoxInd(b)); + if(bInd < 0 || bInd >= ${a}) { + return; + } + + float height_scale = ${h}; + float width_scale = ${v}; + + float in_y = ${g}; + if( in_y < 0.0 || in_y > ${d} ) { + setOutput(float(${s})); + return; + } + float in_x = ${y}; + if( in_x < 0.0 || in_x > ${f} ) { + setOutput(float(${s})); + return; + } + + vec2 sourceFracIndexCR = vec2(in_x,in_y); + if(${+("bilinear"===n)} == 1) { + // Compute the four integer indices. + ivec2 sourceFloorCR = ivec2(sourceFracIndexCR); + ivec2 sourceCeilCR = ivec2(ceil(sourceFracIndexCR)); + + float topLeft = getImage(b, sourceFloorCR.y, sourceFloorCR.x, d); + float bottomLeft = getImage(b, sourceCeilCR.y, sourceFloorCR.x, d); + float topRight = getImage(b, sourceFloorCR.y, sourceCeilCR.x, d); + float bottomRight = getImage(b, sourceCeilCR.y, sourceCeilCR.x, d); + + vec2 fracCR = sourceFracIndexCR - vec2(sourceFloorCR); + + float top = topLeft + (topRight - topLeft) * fracCR.x; + float bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x; + float newValue = top + (bottom - top) * fracCR.y; + setOutput(newValue); + } else { + // Compute the coordinators of nearest neighbor point. + ivec2 sourceNearestCR = ivec2(floor( + sourceFracIndexCR + vec2(0.5,0.5))); + float newValue = getImage(b, sourceNearestCR.y, sourceNearestCR.x, d); + setOutput(newValue); + } + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6Iebd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumprod",()=>i),s.export(r,"cumprodConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cum_gpu"),l=e("./Cum_impl");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:a,exclusive:i,reverse:u}=n;return(0,l.cumImpl)(o.CumOpType.Prod,s,r,a,i,u)}let u={kernelName:a.Cumprod,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cum_gpu":"keig2","./Cum_impl":"8Wtpq","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],keig2:[function(e,t,r,n){var s,a,o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"CumOpType",()=>a),o.export(r,"CumProgram",()=>i);var l=e("./shader_compiler");(s=a||(a={})).Prod="*",s.Sum="+";class i{constructor(e,t,r,n){this.op=e,this.outputShape=t,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];let s=this.outputShape.length,o=this.op===a.Prod?"1.0":"0.0",i=r?o:`getX(${u(s,"coords",this.op)})`,c=this.outputShape[this.outputShape.length-1],d="",f="";r?(d=n?`end != ${c-1}`:"end != 0",f=n?"end + 1":"end - 1"):(d=n?`end + pow2 < ${c}`:"end >= pow2",f=n?"end + pow2":"end - pow2"),this.userCode=` + void main() { + ${(0,l.getCoordsDataType)(s)} coords = getOutputCoords(); + int end = ${p(s,"coords",this.op)}; + float val = ${i}; + int pow2 = int(pow(2.0, index)); + if (${d}) { + int idx = ${f}; + ${p(s,"coords",this.op)} = idx; + val ${this.op}= getX(${u(s,"coords",this.op)}); + } + setOutput(val); + } + `}}function u(e,t,r){if(1===e)return`${t}`;if(2===e)return`${t}.x, ${t}.y`;if(3===e)return`${t}.x, ${t}.y, ${t}.z`;if(4===e)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw Error(`Cumulative ${r} for rank ${e} is not yet supported`)}function p(e,t,r){if(1===e)return`${t}`;if(2===e)return`${t}.y`;if(3===e)return`${t}.z`;if(4===e)return`${t}.w`;throw Error(`Cumulative ${r} for rank ${e} is not yet supported`)}},{"./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8Wtpq":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumImpl",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cum_gpu"),l=e("./Identity"),i=e("./Transpose");function u(e,t,r,n,s,u){let p=t.shape.length,c=a.backend_util.getAxesPermutation([n],p),d=t;null!=c&&(d=(0,i.transpose)({inputs:{x:t},backend:r,attrs:{perm:c}}));let f=a.backend_util.getInnerMostAxes(1,p)[0];if(f!==p-1)throw Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${n}`);let m=d.shape[f],h=(0,l.identity)({inputs:{x:d},backend:r});for(let t=0;t<=Math.ceil(Math.log2(m))-1;t++){let n=new(0,o.CumProgram)(e,d.shape,!1,u),s=[[t]],a=h;h=r.runWebGLProgram(n,[h],h.dtype,s),r.disposeIntermediateTensorInfo(a)}if(s){let t=new(0,o.CumProgram)(e,d.shape,s,u),n=h;h=r.runWebGLProgram(t,[h],h.dtype),r.disposeIntermediateTensorInfo(n)}if(null!=c){let e=a.backend_util.getUndoAxesPermutation(c),t=(0,i.transpose)({inputs:{x:h},backend:r,attrs:{perm:e}});return r.disposeIntermediateTensorInfo(h),r.disposeIntermediateTensorInfo(d),t}return h}},{"@tensorflow/tfjs-core":"biUij","../cum_gpu":"keig2","./Identity":"fI9uV","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3ElbW":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumsum",()=>i),s.export(r,"cumsumConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cum_gpu"),l=e("./Cum_impl");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:a,exclusive:i,reverse:u}=n;return(0,l.cumImpl)(o.CumOpType.Sum,s,r,a,i,u)}let u={kernelName:a.Cumsum,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cum_gpu":"keig2","./Cum_impl":"8Wtpq","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],j1F7G:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"denseBincount",()=>l),s.export(r,"denseBincountConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,weights:a}=t,{size:l,binaryOutput:i}=n;if(1===s.shape.length){let e=r.readSync(s.dataId),t=r.readSync(a.dataId),n=(0,o.bincountImplCPU)(e,t,a.dtype,a.shape,l);return r.makeTensorInfo([l],a.dtype,n)}if(2===s.shape.length){let e=r.bufferSync(s),t=r.bufferSync(a),n=(0,o.bincountReduceImplCPU)(e,t,l,i);return r.makeTensorInfo(n.shape,a.dtype,n.values)}throw Error(`Error in denseBincount: input must be at most rank 2, but got rank${s.shape.length}.`)}let i={kernelName:a.DenseBincount,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lBwE2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthToSpace",()=>l),s.export(r,"depthToSpaceConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../depth_to_space_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockSize:a,dataFormat:l}=n,i=s.shape[0],u="NHWC"===l?s.shape[1]:s.shape[2],p="NHWC"===l?s.shape[2]:s.shape[3],c="NHWC"===l?s.shape[3]:s.shape[1],d=u*a,f=p*a,m=c/(a*a),h=new(0,o.DepthToSpaceProgram)("NHWC"===l?[i,d,f,m]:[i,m,d,f],a,l);return r.runWebGLProgram(h,[s],s.dtype)}let i={kernelName:a.DepthToSpace,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../depth_to_space_gpu":"3giZ7","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3giZ7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DepthToSpaceProgram",()=>a);class a{constructor(e,t,r){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=r,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int h = ${this.getHeightCoordString()}; + int w = ${this.getWidthCoordString()}; + int d = ${this.getDepthCoordString()}; + + int in_h = h / ${t}; + int offset_h = imod(h, ${t}); + int in_w = w / ${t}; + int offset_w = imod(w, ${t}); + int offset_d = (offset_h * ${t} + offset_w) * + ${this.getOutputDepthSize()}; + int in_d = d + offset_d; + + float result = ${this.getInputSamplingString()}; + setOutput(result); + } + `}getHeightCoordString(){return"NHWC"===this.dataFormat?"coords[1]":"coords[2]"}getWidthCoordString(){return"NHWC"===this.dataFormat?"coords[2]":"coords[3]"}getDepthCoordString(){return"NHWC"===this.dataFormat?"coords[3]":"coords[1]"}getOutputDepthSize(){return"NHWC"===this.dataFormat?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return"NHWC"===this.dataFormat?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iybmn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNative",()=>i),s.export(r,"depthwiseConv2dNativeConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../conv_gpu_depthwise"),l=e("../conv_packed_gpu_depthwise");function i(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:i,filter:u}=r,{strides:p,pad:c,dilations:d,dimRoundingMode:f}=s,m=d;null==m&&(m=[1,1]),a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(p,m),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${p} and dilations '${m}'`);let h=a.backend_util.computeConv2DInfo(i.shape,u.shape,p,m,c,f,!0);t=(0,a.env)().getBool("WEBGL_PACK_DEPTHWISECONV")&&h.strideWidth<=2&&h.outChannels/h.inChannels==1?new(0,l.DepthwiseConvPacked2DProgram)(h):new(0,o.DepthwiseConv2DProgram)(h);let g=[[h.padInfo.top,h.padInfo.left],[h.strideHeight,h.strideWidth],[h.dilationHeight,h.dilationWidth],[h.inHeight,h.inWidth]];return n.runWebGLProgram(t,[i,u],"float32",g)}let u={kernelName:a.DepthwiseConv2dNative,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../conv_gpu_depthwise":"fvJLC","../conv_packed_gpu_depthwise":"eBfIK","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fvJLC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DepthwiseConv2DProgram",()=>o);var a=e("./gpgpu_math");class o{constructor(e,t=!1,r=null,n=!1,s=!1){this.variableNames=["x","W"],this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length);let o=e.filterHeight,l=e.filterWidth,i=e.outChannels/e.inChannels,u="",p="";r&&(u=n?`float activation(float a) { + float b = getPreluActivationWeightsAtOutCoords(); + ${r} + }`:s?`float activation(float a) { + float b = getLeakyreluAlphaAtOutCoords(); + ${r} + }`:` + float activation(float x) { + ${r} + } + `,p="result = activation(result);"),t&&this.variableNames.push("bias"),n&&this.variableNames.push("preluActivationWeights"),s&&this.variableNames.push("leakyreluAlpha"),this.userCode=` + ${u} + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords.x; + ivec2 xRCCorner = coords.yz * strides - pads; + int d2 = coords.w; + int d1 = d2 / ${i}; + int q = d2 - d1 * ${i}; + + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations. + for (int wR = 0; wR < ${o}; wR++) { + int xR = xRCorner + wR * dilations[0]; + + if (xR < 0 || xR >= inDims[0]) { + continue; + } + + for (int wC = 0; wC < ${l}; wC++) { + int xC = xCCorner + wC * dilations[1]; + + if (xC < 0 || xC >= inDims[1]) { + continue; + } + + float xVal = getX(batch, xR, xC, d1); + float wVal = getW(wR, wC, d1, q); + dotProd += xVal * wVal; + } + } + + float result = dotProd; + ${t?"result += getBiasAtOutCoords();":""} + ${p} + setOutput(result); + } + `}}},{"./gpgpu_math":"1F9Jp","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eBfIK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DepthwiseConvPacked2DProgram",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_math");class l{constructor(e,t=!1,r=null,n=!1,s=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length);let l=e.outChannels/e.inChannels,i=e.padInfo.left,u=e.strideWidth,p=e.dilationWidth,c=e.filterHeight,d=e.filterWidth,f=` + int xR; int xC; int xCOffset; + vec4 wTexel; vec4 previous; vec4 final;`;for(let e=0;e=0 && xR < inDims[0]) { + `;for(let e=0;e<(d+1)/2;e++){let t=2*e;if(f+=` + xC = xCCorner + ${t*p}; + `,1===u){if(t= 0 && xCOffset < inDims[1] && xTexelC${t}Ready == 0) { + xTexelC${t} = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + xTexelC${t}.zw = vec2(0.0); + } + xTexelC${t}Ready = 1; + } + `,1===p&&t>0?f+=` + xC${t} = vec4(xTexelC${t-2}.zw, xTexelC${t}.xy); + `:f+=` + xCOffset = xC + 1 - 2; + + if (xCOffset >= 0 && xCOffset < inDims[1]) { + previous = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + previous.zw = vec2(0.0); + } + + xC${t} = vec4(previous.zw, xTexelC${t}.xy); + } else { + xC${t} = vec4(0.0, 0.0, xTexelC${t}.xy); + } + `):f+=` + if (xC >= 0 && xC < inDims[1] && xTexelC${t}Ready == 0) { + xTexelC${t} = getX(batch, xR, xC, d1); + if (xC + 1 >= inDims[1]) { + xTexelC${t}.zw = vec2(0.0); + } + xTexelC${t}Ready = 1; + } + + xC${t} = xTexelC${t}; + `,t+1= 0 && xCOffset < inDims[1] && xTexelC${t+1}Ready == 0) { + xTexelC${t+1} = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + xTexelC${t+1}.zw = vec2(0.0); + } + xTexelC${t+1}Ready = 1; + } + `,p>1?f+=` + xCOffset -= 2; + if (xCOffset >= 0 && xCOffset < inDims[1]) { + previous = getX(batch, xR, xCOffset, d1); + xC${t+1} = vec4(previous.zw, xTexelC${t+1}.xy); + } else { + xC${t+1} = vec4(0.0, 0.0, xTexelC${t+1}.xy); + } + `:f+=` + xC${t+1} = vec4(xTexelC${t}.zw, xTexelC${t+1}.xy); + `):1===e?f+=` + xC${t+1} = xTexelC${t}; + `:f+=` + xCOffset = xC + ${e}; + + if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${t+1}Ready == 0) { + xTexelC${t+1} = getX(batch, xR, xCOffset, d1); + if (xCOffset + 1 >= inDims[1]) { + xTexelC${t+1}.zw = vec2(0.0); + } + xTexelC${t+1}Ready = 1; + } + + xC${t+1} = xTexelC${t+1}; + `}}else t= 0 && xCOffset < inDims[1] && xTexelC${t}Ready == 0) { + xTexelC${t} = getX(batch, xR, xCOffset, d1); + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + xTexelC${t}.zw = vec2(0.0); + } + xTexelC${t}Ready = 1; + } + + if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${t+1}Ready == 0) { + xTexelC${t+1} = getX(batch, xR, xC + 1, d1); + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xC + 2 >= inDims[1]) { + xTexelC${t+1}.zw = vec2(0.0); + } + xTexelC${t+1}Ready = 1; + } + + xC${t} = vec4(xTexelC${t}.zw, xTexelC${t+1}.zw); + `,t+1= 0 && xCOffset < inDims[1]) { + final = getX(batch, xR, xCOffset, d1); + } + xC${t+1} = vec4(xTexelC${t+1}.xy, final.xy); + `)):(f+=` + if(xC >= 0 && xC < inDims[1] && xTexelC${t}Ready == 0) { + xTexelC${t} = getX(batch, xR, xC, d1); + if (xC + 1 >= inDims[1]) { + xTexelC${t}.zw = vec2(0.0); + } + xTexelC${t}Ready = 1; + } + + xCOffset = xC + strides[1]; + if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${t+1}Ready == 0) { + xTexelC${t+1} = getX(batch, xR, xCOffset, d1); + if (xCOffset + 1 >= inDims[1]) { + xTexelC${t+1}.zw = vec2(0.); + } + xTexelC${t+1}Ready = 1; + } + + xC${t} = vec4( + xTexelC${t}.xy, xTexelC${t+1}.xy); + `,t+1l),s.export(r,"depthwiseConv2dNativeBackpropFilterConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu_depthwise");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,dilations:u,pad:p,dimRoundingMode:c,filterShape:d}=n,f=a.backend_util.computeConv2DInfo(s.shape,d,i,u,p,c,!0),m=new(0,o.DepthwiseConv2DDerFilterProgram)(f);return r.runWebGLProgram(m,[s,l],"float32")}let i={kernelName:a.DepthwiseConv2dNativeBackpropFilter,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../conv_backprop_gpu_depthwise":"dzYcR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dzYcR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DepthwiseConv2DDerFilterProgram",()=>a),s.export(r,"DepthwiseConv2DDerInputProgram",()=>o);class a{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,r=e.strideWidth,n=e.padInfo.top,s=e.padInfo.left,a=e.outChannels/e.inChannels;this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int wR = coords.x; + int wC = coords.y; + int d1 = coords.z; + int dm = coords.w; + int d2 = d1 * ${a} + dm; + + float dotProd = 0.0; + + // TO DO: Vec4 over the batch size + for (int b = 0; b < ${e.batchSize}; b++) { + for (int yR = 0; yR < ${e.outHeight}; yR++) { + int xR = wR + yR * ${t} - ${n}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int yC = 0; yC < ${e.outWidth}; yC++) { + int xC = wC + yC * ${r} - ${s}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + float dyValue = getDy(b, yR, yC, d2); + float xValue = getX(b, xR, xC, d1); + dotProd += (xValue * dyValue); + } + } + } + setOutput(dotProd); + } + `}}class o{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,r=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a=t-1-e.padInfo.top,o=r-1-e.padInfo.left,l=e.outChannels/e.inChannels;this.userCode=` + const ivec2 pads = ivec2(${a}, ${o}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d1 = coords[3]; + ivec2 dyCorner = coords.yz - pads; + int dyRCorner = dyCorner.x; + int dyCCorner = dyCorner.y; + + float dotProd = 0.0; + + for (int wR = 0; wR < ${t}; wR++) { + float dyR = float(dyRCorner + wR) / ${n}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + int wRPerm = ${t} - 1 - wR; + + for (int wC = 0; wC < ${r}; wC++) { + float dyC = float(dyCCorner + wC) / ${s}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + int wCPerm = ${r} - 1 - wC; + + // TO DO: Vec4 over the channelMul + for (int dm = 0; dm < ${l}; dm++) { + int d2 = d1 * ${l} + dm; + float xValue = getDy(batch, idyR, idyC, d2); + float wValue = getW(wRPerm, wCPerm, d1, dm); + dotProd += xValue * wValue; + } + } + } + setOutput(dotProd); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5kFJD":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNativeBackpropInput",()=>l),s.export(r,"depthwiseConv2dNativeBackpropInputConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu_depthwise");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:l}=t,{strides:i,dilations:u,pad:p,dimRoundingMode:c,inputShape:d}=n,f=a.backend_util.computeConv2DInfo(d,l.shape,i,u,p,c,!0),m=new(0,o.DepthwiseConv2DDerInputProgram)(f);return r.runWebGLProgram(m,[s,l],"float32")}let i={kernelName:a.DepthwiseConv2dNativeBackpropInput,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../conv_backprop_gpu_depthwise":"dzYcR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9P3no":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"diag",()=>i),s.export(r,"diagConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../diag_gpu"),l=e("./Reshape");function i(e){let{inputs:t,backend:r}=e,{x:n}=t,s=[...n.shape,...n.shape],i=a.util.sizeFromShape(n.shape),u=(0,l.reshape)({inputs:{x:n},backend:r,attrs:{shape:[i]}}),p=new(0,o.DiagProgram)(i),c=r.runWebGLProgram(p,[u],u.dtype),d=(0,l.reshape)({inputs:{x:c},backend:r,attrs:{shape:s}});return r.disposeIntermediateTensorInfo(u),r.disposeIntermediateTensorInfo(c),d}let u={kernelName:a.Diag,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../diag_gpu":"7wcCN","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7wcCN":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DiagProgram",()=>a);class a{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` + void main() { + ivec2 coords = getOutputCoords(); + float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0; + setOutput(val); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hIDhJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dilation2D",()=>i),s.export(r,"dilation2DConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../dilation_gpu"),l=e("./Reshape");function i(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:i,filter:u}=r,{strides:p,pad:c,dilations:d}=s,f=a.backend_util.computeDilation2DInfo(i.shape,u.shape,p,c,"NHWC",d),m=new(0,o.Dilation2DProgram)(f);t=n.runWebGLProgram(m,[i,u],"float32");let h=(0,l.reshape)({inputs:{x:t},backend:n,attrs:{shape:f.outShape}});return n.disposeIntermediateTensorInfo(t),h}let u={kernelName:a.Dilation2D,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../dilation_gpu":"cLxI8","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cLxI8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Dilation2DProgram",()=>a);class a{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:r,padInfo:n,strideHeight:s,strideWidth:a,filterHeight:o,filterWidth:l,dilationHeight:i,dilationWidth:u}=e,{top:p,left:c}=n;this.userCode=` + const ivec2 strides = ivec2(${s}, ${a}); + const ivec2 pads = ivec2(${p}, ${c}); + const float neg_infinity = -3.4e38; + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords.x; + int d1 = coords.w; + ivec2 outTopLeftCorner = + coords.yz * strides - pads; + int hBeg = outTopLeftCorner.x; + int wBeg = outTopLeftCorner.y; + + float curVal = neg_infinity; + for (int h = 0; h < ${o}; h++) { + int hIn = hBeg + h * ${i}; + + if (hIn >= 0 && hIn < ${t}) { + for (int w = 0; w < ${l}; w++) { + int wIn = wBeg + w * ${u}; + + if (wIn >= 0 && wIn < ${r}) { + float xVal = getX(batch, hIn, wIn, d1); + float wVal = getW(h, w, d1); + + float val = xVal + wVal; + if (val > curVal) { + curVal = val; + } + } + } + } + } + + float result = curVal; + setOutput(result); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hb4tp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"einsum",()=>p),s.export(r,"einsumConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./Multiply"),l=e("./Reshape"),i=e("./Sum"),u=e("./Transpose");function p(e){let{inputs:t,backend:r,attrs:n}=e,{equation:s}=n,{allDims:p,summedDims:c,idDims:d}=a.backend_util.decodeEinsumEquation(s,t.length);a.backend_util.checkEinsumDimSizes(p.length,d,t);let{path:f,steps:m}=a.backend_util.getEinsumComputePath(c,d),h=m.length,g=null,x=p.length,v=[];for(let e=0;e=0&&(g=(0,i.sum)({inputs:{x:g},backend:r,attrs:{axis:f[e]-(p.length-x),keepDims:!1}}),v.push(g)),x--)}for(let e of v)e!==g&&r.disposeIntermediateTensorInfo(e);return g}let c={kernelName:a.Einsum,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","./Multiply":"2bVHl","./Reshape":"2Do1g","./Sum":"jCPqj","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bP2Cy:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"eluConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + vec4 result; + + result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); + result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0); + result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0); + result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); + + return result; +`,i=(0,o.unaryKernelFunc)({opSnippet:"return (x >= 0.0) ? x : (exp(x) - 1.0);",packedOpSnippet:l}),u={kernelName:a.Elu,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2chy9":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"eluGrad",()=>u),s.export(r,"eluGradConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu");let i=` + vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); + return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); +`,u=e=>{let{inputs:t,backend:r}=e,{dy:n,y:s}=t,u=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new(0,l.BinaryOpPackedProgram)(i,n.shape,s.shape):new(0,o.BinaryOpProgram)("return (b >= 0.0) ? a : a * (b + 1.0);",n.shape,s.shape);return r.runWebGLProgram(u,[n,s],n.dtype)},p={kernelName:a.EluGrad,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../binaryop_gpu":"iq2Hg","../binaryop_packed_gpu":"g7FAa","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8hRle":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"equal",()=>u),s.export(r,"equalConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=` + return vec4(equal(a, b)); +`,u=(0,o.binaryKernelFunc)({opSnippet:"return float(a == b);",packedOpSnippet:i,dtype:"bool",cpuKernelImpl:l.equalImplCPU}),p={kernelName:a.Equal,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],glNIu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"erf",()=>i),s.export(r,"erfConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + // Error function is calculated approximately with elementary function. + // See "Handbook of Mathematical Functions with Formulas, + // Graphs, and Mathematical Tables", Abramowitz and Stegun. + float p = ${a.backend_util.ERF_P}; + float a1 = ${a.backend_util.ERF_A1}; + float a2 = ${a.backend_util.ERF_A2}; + float a3 = ${a.backend_util.ERF_A3}; + float a4 = ${a.backend_util.ERF_A4}; + float a5 = ${a.backend_util.ERF_A5}; + + float sign = sign(x); + x = abs(x); + float t = 1.0 / (1.0 + p * x); + return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x)); +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Erf,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1Az5Y":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EXP",()=>i),s.export(r,"exp",()=>p),s.export(r,"expConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=o.CHECK_NAN_SNIPPET_UNARY+` + return exp(x); +`,u=` + vec4 result = exp(x); + bvec4 isNaN = isnan(x); + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`,p=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:u,cpuKernelImpl:l.expImplCPU,dtype:"float32"}),c={kernelName:a.Exp,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8Gccb":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expandDims",()=>l),s.export(r,"expandDimsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Reshape");function l(e){let{inputs:t,attrs:r,backend:n}=e,{dim:s}=r,{input:l}=t,i=l.shape.length,u=l.shape.slice(),p=s;return s<0&&(a.util.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),p=i+s+1),u.splice(p,0,1),(0,o.reshape)({inputs:{x:l},backend:n,attrs:{shape:u}})}let i={kernelName:a.ExpandDims,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"27kYG":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expm1",()=>u),s.export(r,"expm1Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return exp(x) - 1.0;",u=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:i,cpuKernelImpl:l.expm1ImplCPU}),p={kernelName:a.Expm1,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9VoBN":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fft",()=>l),s.export(r,"fftConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./FFT_impl");function l(e){let{inputs:t,backend:r}=e,{input:n}=t;return(0,o.fftImpl)(n,!1,r)}let i={kernelName:a.FFT,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./FFT_impl":"01g1S","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"01g1S":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fftImpl",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../fft_gpu"),l=e("./Complex"),i=e("./Reshape");function u(e,t,r){let n=r.texData.get(e.dataId),s=a.util.sizeFromShape(e.shape),u=e.shape[e.shape.length-1],p=(0,i.reshape)({inputs:{x:e},backend:r,attrs:{shape:[s/u,u]}}),c=p.shape,d=new(0,o.FFTProgram)("real",c,t),f=new(0,o.FFTProgram)("imag",c,t),m=[{dataId:n.complexTensorInfos.real.dataId,dtype:n.complexTensorInfos.real.dtype,shape:c},{dataId:n.complexTensorInfos.imag.dataId,dtype:n.complexTensorInfos.imag.dtype,shape:c}],h=r.runWebGLProgram(d,m,"float32"),g=r.runWebGLProgram(f,m,"float32"),x=(0,l.complex)({inputs:{real:h,imag:g},backend:r});r.disposeIntermediateTensorInfo(h),r.disposeIntermediateTensorInfo(g);let v=(0,i.reshape)({inputs:{x:x},backend:r,attrs:{shape:e.shape}});return r.disposeIntermediateTensorInfo(p),r.disposeIntermediateTensorInfo(x),v}},{"@tensorflow/tfjs-core":"biUij","../fft_gpu":"2RJfY","./Complex":"fN7J8","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2RJfY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"FFTProgram",()=>a);class a{constructor(e,t,r){let n;this.variableNames=["real","imag"];let s=t[1];this.outputShape=t;let a=r?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,o=r?`${s}.0`:"1.0";if("real"===e)n="return real * expR - imag * expI;";else if("imag"===e)n="return real * expI + imag * expR;";else throw Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` + const float exponentMultiplier = ${a}; + + float unaryOpComplex(float real, float expR, float imag, float expI) { + ${n} + } + + float mulMatDFT(int batch, int index) { + float indexRatio = float(index) / float(${s}); + float exponentMultiplierTimesIndexRatio = + exponentMultiplier * indexRatio; + + float result = 0.0; + + for (int i = 0; i < ${s}; i++) { + // x = (-2|2 * PI / N) * index * i; + float x = exponentMultiplierTimesIndexRatio * float(i); + float expR = cos(x); + float expI = sin(x); + float real = getReal(batch, i); + float imag = getImag(batch, i); + + result += + unaryOpComplex(real, expR, imag, expI) / ${o}; + } + + return result; + } + + void main() { + ivec2 coords = getOutputCoords(); + setOutput(mulMatDFT(coords[0], coords[1])); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],e9rdf:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fill",()=>l),s.export(r,"fillConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../fill_gpu");function l(e){let{backend:t,attrs:r}=e,{shape:n,value:s}=r,{dtype:l}=r;if("string"===(l=l||a.util.inferDtype(s))){let e=a.util.getArrayFromDType(l,a.util.sizeFromShape(n));return e.fill(s),t.makeTensorInfo(n,l,e)}{let e=new(0,o.FillProgram)(n,s),r=[[s]];return t.runWebGLProgram(e,[],l,r)}}let i={kernelName:a.Fill,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../fill_gpu":"2OgHL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2OgHL":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"FillProgram",()=>a);class a{constructor(e,t){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=e,this.userCode=` + void main() { + // Input can be obtained from uniform value. + setOutput(value); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7AJEx":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"flipLeftRightConfig",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("../flip_left_right_gpu");let l={kernelName:a.FlipLeftRight,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:r}=e,n=new(0,o.FlipLeftRightProgram)(r.shape);return t.runWebGLProgram(n,[r],r.dtype)}}},{"@tensorflow/tfjs-core":"biUij","../flip_left_right_gpu":"9baEm","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9baEm":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"FlipLeftRightProgram",()=>a);class a{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int x = coords[2]; + + int coordX = ${t} - x - 1; + float outputValue; + if(coordX >= 0 && coordX < ${t}) { + outputValue = getImage(coords[0], coords[1], coordX, coords[3]); + } else { + outputValue = getImage(coords[0], coords[1], coords[2], coords[3]); + } + setOutput(outputValue); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fmbXP:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floor",()=>u),s.export(r,"floorConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return floor(x);",u=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:i,cpuKernelImpl:l.floorImplCPU}),p={kernelName:a.Floor,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"19u50":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floorDiv",()=>u),s.export(r,"floorDivConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + float s = sign(a) * sign(b); + int ia = round(a); + int ib = round(b); + if (ib != 0) { + // Windows (D3D) wants guaranteed non-zero int division at compile-time. + return float(idiv(ia, ib, s)); + } else { + return NAN; + } +`,i=` + ivec4 ia = round(a); + ivec4 ib = round(b); + bvec4 cond = notEqual(ib, ivec4(0)); + ivec4 result = ivec4(0); + vec4 s = sign(a) * sign(b); + + // Windows (D3D) wants guaranteed non-zero int division at compile-time. + if (cond[0]) { + result[0] = idiv(ia[0], ib[0], s[0]); + } + if (cond[1]) { + result[1] = idiv(ia[1], ib[1], s[1]); + } + if (cond[2]) { + result[2] = idiv(ia[2], ib[2], s[2]); + } + if (cond[3]) { + result[3] = idiv(ia[3], ib[3], s[3]); + } + return vec4(result); +`,u=(0,o.binaryKernelFunc)({opSnippet:l,packedOpSnippet:i,dtype:"int32"}),p={kernelName:a.FloorDiv,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aePD5:[function(e,t,r,n){let s;var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"fromPixelsConfig",()=>p);var o=e("@tensorflow/tfjs-core"),l=e("../tex_util"),i=e("./FromPixels_utils/from_pixels_gpu"),u=e("./FromPixels_utils/from_pixels_packed_gpu");let p={kernelName:o.FromPixels,backendName:"webgl",kernelFunc:function(e){let{inputs:t,backend:r,attrs:n}=e,{pixels:a}=t,{numChannels:p}=n,d="undefined"!=typeof HTMLVideoElement&&a instanceof HTMLVideoElement,f="undefined"!=typeof HTMLImageElement&&a instanceof HTMLImageElement,[m,h]=d?[a.videoWidth,a.videoHeight]:[a.width,a.height],g=[h,m],x=[h,m,p];if(f||d){let e=(0,o.env)().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(null==s||e!==c)&&(c=e,s=document.createElement("canvas").getContext("2d",{willReadFrequently:c})),s.canvas.width=m,s.canvas.height=h,s.drawImage(a,0,0,m,h),a=s.canvas}let v=r.makeTensorInfo(g,"int32");r.texData.get(v.dataId).usage=l.TextureUsage.PIXELS,r.gpgpu.uploadPixelDataToTexture(r.getTexture(v.dataId),a);let y=(0,o.env)().getBool("WEBGL_PACK")?new(0,u.FromPixelsPackedProgram)(x):new(0,i.FromPixelsProgram)(x),b=r.runWebGLProgram(y,[v],"int32");return r.disposeData(v.dataId),b}},c=(0,o.env)().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU")},{"@tensorflow/tfjs-core":"biUij","../tex_util":"jmYC7","./FromPixels_utils/from_pixels_gpu":"dzapw","./FromPixels_utils/from_pixels_packed_gpu":"bZSIj","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dzapw:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"FromPixelsProgram",()=>o);var a=e("../../glsl_version");class o{constructor(e){this.variableNames=["A"];let t=(0,a.getGlslDifferences)(),[r,n]=e;this.outputShape=e,this.userCode=` + void main() { + ivec3 coords = getOutputCoords(); + int texR = coords[0]; + int texC = coords[1]; + int depth = coords[2]; + vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${n}.0, ${r}.0); + + vec4 values = ${t.texture2D}(A, uv); + float value; + if (depth == 0) { + value = values.r; + } else if (depth == 1) { + value = values.g; + } else if (depth == 2) { + value = values.b; + } else if (depth == 3) { + value = values.a; + } + + setOutput(floor(value * 255.0 + 0.5)); + } + `}}},{"../../glsl_version":"9EOgg","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bZSIj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"FromPixelsPackedProgram",()=>o);var a=e("../../glsl_version");class o{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=(0,a.getGlslDifferences)(),[r,n]=e;this.outputShape=e,this.userCode=` + void main() { + ivec3 coords = getOutputCoords(); + int texR = coords[0]; + int texC = coords[1]; + int depth = coords[2]; + + vec4 result = vec4(0.); + + for(int row=0; row<=1; row++) { + for(int col=0; col<=1; col++) { + texC = coords[1] + row; + depth = coords[2] + col; + + vec2 uv = (vec2(texC, texR) + halfCR) / + vec2(${n}.0, ${r}.0); + vec4 values = ${t.texture2D}(A, uv); + float value; + if (depth == 0) { + value = values.r; + } else if (depth == 1) { + value = values.g; + } else if (depth == 2) { + value = values.b; + } else if (depth == 3) { + value = values.a; + } + + result[row * 2 + col] = floor(value * 255.0 + 0.5); + } + } + + ${t.output} = result; + } + `}}},{"../../glsl_version":"9EOgg","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hPMC4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fusedConv2d",()=>c),s.export(r,"fusedConv2DConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("../conv_gpu"),l=e("../conv_packed_gpu"),i=e("../kernel_utils/kernel_funcs_utils"),u=e("./Conv2D_impl"),p=e("./Reshape");function c(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:c,filter:d,bias:f,preluActivationWeights:m}=r,{strides:h,pad:g,dataFormat:x,dilations:v,dimRoundingMode:y,activation:b,leakyreluAlpha:_}=s,k=a.backend_util.convertConv2DDataFormat(x),j=a.backend_util.computeConv2DInfo(c.shape,d.shape,h,v,g,y,!1,k),I=[],w=null!=f,T=null!=m,N="leakyrelu"===b,S=()=>{let e=[c,d],t=(e,t)=>{if("NCHW"===t&&1===e.shape.length&&1!==e.shape[0]){let t=(0,p.reshape)({inputs:{x:e},backend:n,attrs:{shape:[e.shape[0],1,1]}});return I.push(t),t}return e};if(w&&e.push(t(f,x)),T&&e.push(t(m,x)),N){let t=n.makeTensorInfo([],"float32",a.util.createScalarValue(_,"float32"));e.push(t),I.push(t)}return e};if(1===j.filterHeight&&1===j.filterWidth&&1===j.dilationHeight&&1===j.dilationWidth&&1===j.strideHeight&&1===j.strideWidth&&("SAME"===j.padInfo.type||"VALID"===j.padInfo.type))t=(0,u.conv2dByMatMul)({x:c,filter:d,convInfo:j,backend:n,bias:f,activation:b,preluActivationWeights:m,leakyreluAlpha:_});else if(j.strideWidth<=2&&"channelsLast"===k&&(0,a.env)().getBool("WEBGL_EXP_CONV")){let e=b?(0,i.mapActivationToShaderProgram)(b,!0):null,r=new(0,l.Conv2DPackedProgram)(j,w,e,T,N),s=[[j.padInfo.top,j.padInfo.left],[j.strideHeight,j.strideWidth],[j.dilationHeight,j.dilationWidth],[j.inHeight,j.inWidth]],a=S();t=n.runWebGLProgram(r,a,"float32",s)}else if((0,a.env)().getBool("WEBGL_CONV_IM2COL"))t=(0,u.conv2dWithIm2Row)({x:c,filter:d,convInfo:j,backend:n,bias:f,activation:b,preluActivationWeights:m,leakyreluAlpha:_});else{let e=b?(0,i.mapActivationToShaderProgram)(b,!1):null,r=new(0,o.Conv2DProgram)(j,w,e,T,N),s=S();t=n.runWebGLProgram(r,s,"float32")}let C=(0,p.reshape)({inputs:{x:t},backend:n,attrs:{shape:j.outShape}});return I.push(t),I.forEach(e=>n.disposeIntermediateTensorInfo(e)),C}let d={kernelName:a.FusedConv2D,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"biUij","../conv_gpu":"lCtEK","../conv_packed_gpu":"63vcn","../kernel_utils/kernel_funcs_utils":"5WW6u","./Conv2D_impl":"cOUbb","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"70OVY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fusedDepthwiseConv2D",()=>u),s.export(r,"fusedDepthwiseConv2DConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../conv_gpu_depthwise"),l=e("../conv_packed_gpu_depthwise"),i=e("../kernel_utils/kernel_funcs_utils");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u,filter:p,bias:c,preluActivationWeights:d}=r,{strides:f,pad:m,dilations:h,dimRoundingMode:g,activation:x,leakyreluAlpha:v}=s,y=[],b=h;null==b&&(b=[1,1]),a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(f,b),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${f} and dilations '${b}'`);let _=a.backend_util.computeConv2DInfo(u.shape,p.shape,f,b,m,g,!0),k=(0,a.env)().getBool("WEBGL_PACK_DEPTHWISECONV")&&_.strideWidth<=2&&_.outChannels/_.inChannels==1,j=x?(0,i.mapActivationToShaderProgram)(x,k):null,I=[u,p],w=null!=c,T=null!=d,N="leakyrelu"===x;if(w&&I.push(c),T&&I.push(d),N){let e=n.makeTensorInfo([],"float32",a.util.createScalarValue(v,"float32"));I.push(e),y.push(e)}t=k?new(0,l.DepthwiseConvPacked2DProgram)(_,w,j,T,N):new(0,o.DepthwiseConv2DProgram)(_,w,j,T,N);let S=[[_.padInfo.top,_.padInfo.left],[_.strideHeight,_.strideWidth],[_.dilationHeight,_.dilationWidth],[_.inHeight,_.inWidth]],C=n.runWebGLProgram(t,I,"float32",S);return y.forEach(e=>n.disposeIntermediateTensorInfo(e)),C}let p={kernelName:a.FusedDepthwiseConv2D,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../conv_gpu_depthwise":"fvJLC","../conv_packed_gpu_depthwise":"eBfIK","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bxpkW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherNd",()=>u),s.export(r,"gatherNdConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../gather_nd_gpu"),l=e("../kernel_utils/shared"),i=e("./Reshape");function u(e){let{inputs:t,backend:r}=e,{params:n,indices:s}=t,u=s.shape,p=u[u.length-1],c=a.util.sizeFromShape(n.shape),[d,f,m,h]=a.backend_util.prepareAndValidate(n,s),g=(0,i.reshape)({inputs:{x:s},backend:r,attrs:{shape:[f,p]}}),x=(0,i.reshape)({inputs:{x:n},backend:r,attrs:{shape:[a.util.sizeFromShape(n.shape)/m,m]}});if(r.shouldExecuteOnCPU([n,s])||"string"===n.dtype){let e=r.readSync(s.dataId),t=r.bufferSync(n),a=(0,l.gatherNdImplCPU)(e,t,n.dtype,f,p,m,h,n.shape,c);return r.makeTensorInfo(d,n.dtype,a.values)}let v=new(0,o.GatherNDProgram)(p,h,[f,m],n.shape),y=r.runWebGLProgram(v,[x,g],x.dtype),b=(0,i.reshape)({inputs:{x:y},backend:r,attrs:{shape:d}});return r.disposeIntermediateTensorInfo(g),r.disposeIntermediateTensorInfo(x),r.disposeIntermediateTensorInfo(y),b}let p={kernelName:a.GatherNd,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../gather_nd_gpu":"bTRYg","../kernel_utils/shared":"lQim5","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bTRYg:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"GatherNDProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r,n){this.sliceDim=e,this.strides=t,this.paramsShape=n,this.variableNames=["x","indices"],this.outputShape=r;let s=(0,a.getCoordsDataType)(r.length),o=` + int index;`;for(let e=0;e= ${this.paramsShape[e]}; + flattenIndex += index * ${this.strides[e]};`;this.userCode=` + void main() { + ${s} coords = getOutputCoords(); + int flattenIndex = 0; + bool out_of_bounds = false; + + ${o} + + setOutput(out_of_bounds ? 0.0 : getX(flattenIndex, coords[1])); + } + `}}},{"./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4oWqG":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherV2",()=>u),s.export(r,"gatherV2Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../gather_gpu"),l=e("../kernel_utils/shared"),i=e("./Reshape");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,indices:u}=t,{axis:p,batchDims:c}=n,d=a.util.parseAxisParam(p,s.shape)[0];if((0,a.env)().get("DEBUG")){let e=r.readSync(u.dataId),t=s.shape[d];for(let r=0;r=0,()=>`GatherV2: the index value ${n} is not in [0, ${t-1}]`)}}let f=a.backend_util.segment_util.collectGatherOpShapeInfo(s,u,d,c),m=a.util.sizeFromShape(u.shape),h=[],g=(0,i.reshape)({inputs:{x:s},backend:r,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),x=(0,i.reshape)({inputs:{x:u},backend:r,attrs:{shape:[f.batchSize,m/f.batchSize]}});h.push(g),h.push(x);let v=[f.batchSize,f.outerSize,m/f.batchSize,f.sliceSize];if(r.shouldExecuteOnCPU([s,u])||"string"===s.dtype){let e=r.bufferSync(x),t=r.bufferSync(g),n=(0,l.gatherV2ImplCPU)(t,e,v);return h.forEach(e=>r.disposeIntermediateTensorInfo(e)),r.makeTensorInfo(f.outputShape,n.dtype,n.values)}let y=new(0,o.GatherProgram)(g.shape,v),b=r.runWebGLProgram(y,[g,x],g.dtype);h.push(b);let _=(0,i.reshape)({inputs:{x:b},backend:r,attrs:{shape:f.outputShape}});return h.forEach(e=>r.disposeIntermediateTensorInfo(e)),_}let p={kernelName:a.GatherV2,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../gather_gpu":"3f5Vd","../kernel_utils/shared":"lQim5","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3f5Vd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"GatherProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;let r=(0,a.getCoordsDataType)(this.rank),n=function(e,t){let r=["resRC.x","resRC.y","resRC.z","resRC.w"],n=[];for(let t=0;t= 0) && (index < ${e[2]}) ? 1.0 : 0.0; + setOutput(inBounds * getA(${n})); + } + `}}},{"./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],l81Xk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"greater",()=>u),s.export(r,"greaterConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=` + return vec4(greaterThan(a, b)); +`,u=(0,o.binaryKernelFunc)({opSnippet:"return float(a > b);",packedOpSnippet:i,cpuKernelImpl:l.greaterImplCPU,dtype:"bool"}),p={kernelName:a.Greater,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1GezO":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"greaterEqual",()=>u),s.export(r,"greaterEqualConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=` + return vec4(greaterThanEqual(a, b)); +`,u=(0,o.binaryKernelFunc)({opSnippet:"return float(a >= b);",packedOpSnippet:i,dtype:"bool",cpuKernelImpl:l.greaterEqualImplCPU}),p={kernelName:a.GreaterEqual,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eHC6h:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ifft",()=>l),s.export(r,"ifftConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./FFT_impl");function l(e){let{inputs:t,backend:r}=e,{input:n}=t;return(0,o.fftImpl)(n,!0,r)}let i={kernelName:a.IFFT,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./FFT_impl":"01g1S","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hHolW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isFinite",()=>o),s.export(r,"isFiniteConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return float(!isnan(x) && !isinf(x));",dtype:"bool"}),l={kernelName:a.IsFinite,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ec2An:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isInf",()=>o),s.export(r,"isInfConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return float(isinf(x));",dtype:"bool"}),l={kernelName:a.IsInf,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"19SeZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isNaN",()=>o),s.export(r,"isNaNConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return float(isnan(x));",dtype:"bool"}),l={kernelName:a.IsNan,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6Lpyh":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"less",()=>u),s.export(r,"lessConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=` + return vec4(lessThan(a, b)); +`,u=(0,o.binaryKernelFunc)({opSnippet:"return float(a < b);",packedOpSnippet:i,cpuKernelImpl:l.lessImplCPU,dtype:"bool"}),p={kernelName:a.Less,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aCE7c:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LESS_EQUAL",()=>i),s.export(r,"LESS_EQUAL_PACKED",()=>u),s.export(r,"lessEqual",()=>p),s.export(r,"lessEqualConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return float(a <= b);",u=` + return vec4(lessThanEqual(a, b)); +`,p=(0,o.binaryKernelFunc)({opSnippet:i,packedOpSnippet:u,cpuKernelImpl:l.lessEqualImplCPU,dtype:"bool"}),c={kernelName:a.LessEqual,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iUEf1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"linSpace",()=>l),s.export(r,"linSpaceConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{backend:t,attrs:r}=e,{start:n,stop:s,num:a}=r,l=(0,o.linSpaceImplCPU)(n,s,a);return t.makeTensorInfo([l.length],"float32",l)}let i={kernelName:a.LinSpace,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],igGOt:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"log",()=>p),s.export(r,"logConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=o.CHECK_NAN_SNIPPET_UNARY+` + return x < 0.0 ? 0./0. : log(x); +`,u=` + vec4 result = log(x); + bvec4 isNaN = isnan(x); + result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r); + result.g = isNaN.g ? x.g : (x.g < 0.0 ? 0./0. : result.g); + result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b); + result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a); + return result; +`,p=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:u,cpuKernelImpl:l.logImplCPU}),c={kernelName:a.Log,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"96DB5":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"log1p",()=>i),s.export(r,"log1pConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=o.CHECK_NAN_SNIPPET_UNARY+` + return log(1.0 + x); +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Log1p,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bpNAW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalAnd",()=>i),s.export(r,"logicalAndConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + return vec4( + vec4(greaterThanEqual(a, vec4(1.0))) * + vec4(greaterThanEqual(b, vec4(1.0)))); +`,i=(0,o.binaryKernelFunc)({opSnippet:"return float(a >= 1.0 && b >= 1.0);",packedOpSnippet:l,dtype:"bool"}),u={kernelName:a.LogicalAnd,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],k1Nis:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalNot",()=>o),s.export(r,"logicalNotConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return float(!(x >= 1.0));"}),l={kernelName:a.LogicalNot,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"35UMf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalOr",()=>i),s.export(r,"logicalOrConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + return min( + vec4(greaterThanEqual(a, vec4(1.0))) + + vec4(greaterThanEqual(b, vec4(1.0))), + vec4(1.0)); +`,i=(0,o.binaryKernelFunc)({opSnippet:"return float(a >= 1.0 || b >= 1.0);",packedOpSnippet:l,dtype:"bool"}),u={kernelName:a.LogicalOr,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8GTy8":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lrn",()=>i),s.export(r,"LRNConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../lrn_gpu"),l=e("../lrn_packed_gpu");let i=e=>{let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{depthRadius:i,bias:u,alpha:p,beta:c}=n,d=(0,a.env)().getBool("WEBGL_PACK_NORMALIZATION")?new(0,l.LRNPackedProgram)(s.shape,i,u,p,c):new(0,o.LRNProgram)(s.shape,i,u,p,c);return r.runWebGLProgram(d,[s],s.dtype)},u={kernelName:a.LRN,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../lrn_gpu":"2SdDz","../lrn_packed_gpu":"k5f5n","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2SdDz":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LRNProgram",()=>a);class a{constructor(e,t,r,n,s){let a;this.variableNames=["x"],this.outputShape=[];let o=e[3]-1;this.outputShape=e;let l=`float(${r}) + float(${n}) * sum`;a=.5===s?`inversesqrt(${l})`:1===s?`1.0/(${l})`:`exp(log(${l}) * float(-${s}));`,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int r = coords[1]; + int c = coords[2]; + int d = coords[3]; + float x = getX(b, r, c, d); + float sum = 0.0; + for (int j = -${t}; j <= ${t}; j++) { + int idx = d + j; + if (idx >= 0 && idx <= ${o}) { + float z = getX(b, r, c, idx); + sum += z * z; + } + } + float val = x * ${a}; + setOutput(val); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],k5f5n:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LRNPackedProgram",()=>a);class a{constructor(e,t,r,n,s){let a;this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let o=e[3]-1;this.outputShape=e;let l=`float(${r}) + float(${n}) * sum`;a=.5===s?`inversesqrt(${l})`:1===s?`1.0/(${l})`:`exp(log(${l}) * float(-${s}));`,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords.x; + int r = coords.y; + int c = coords.z; + int d = coords.w; + + bool hasNextCol = d < ${this.outputShape[3]}; + bool hasNextRow = c < ${this.outputShape[2]}; + + vec4 sum = vec4(0.); + vec4 xFragAtOutputCoords = getX(b, r, c, d); + + vec4 xAtOutputCoords = vec4( + getChannel(xFragAtOutputCoords, vec2(c, d)), + hasNextCol ? + getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0, + hasNextRow ? + getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0, + (hasNextRow && hasNextCol) ? + getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0 + ); + + int firstChannel = d - ${t}; + vec2 cache = vec2(0.); + if(firstChannel >= 0){ + vec4 firstChannelFrag = getX(b, r, c, firstChannel); + cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel)); + if(hasNextRow){ + cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel)); + } + } + + ivec2 depth = ivec2(d, d + 1); + for (int j = - ${t}; j <= ${t}; j++) { + ivec2 idx = depth + j; + bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0)); + bvec2 belowUpperBound = lessThanEqual(idx, ivec2(${o})); + + bool depthInRange = aboveLowerBound.x && belowUpperBound.x; + bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y; + + if(depthInRange || depthPlusOneInRange){ + vec4 z = vec4(0.); + vec4 xFragAtCurrentDepth; + z.xz = cache.xy; + if(depthPlusOneInRange && hasNextCol){ + xFragAtCurrentDepth = idx.y != d ? + getX(b, r, c, idx.y) : xFragAtOutputCoords; + z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y)); + if(hasNextRow){ + z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y)); + } + } + cache.xy = z.yw; + sum += z * z; + } + } + vec4 result = xAtOutputCoords * ${a}; + setOutput(result); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],huUNV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lrnGrad",()=>l),s.export(r,"LRNGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../lrn_grad_gpu");let l=e=>{let{inputs:t,backend:r,attrs:n}=e,{x:s,y:a,dy:l}=t,{depthRadius:i,bias:u,alpha:p,beta:c}=n,d=new(0,o.LRNGradProgram)(s.shape,i,u,p,c);return r.runWebGLProgram(d,[s,a,l],s.dtype)},i={kernelName:a.LRNGrad,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../lrn_grad_gpu":"6uQsE","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6uQsE":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LRNGradProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=r,this.alpha=n,this.beta=s,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int r = coords[1]; + int c = coords[2]; + + float result = 0.0; + for (int d = 0; d < ${this.depth}; ++d) { + int depthBegin = int(max(0.0, float(d - ${t}))); + int depthEnd = int(min(float(${this.depth}), + float(d + ${t} + 1))); + + const int MIN_DEPTH_BEGIN = 0; + const int MAX_DEPTH_END = ${this.depth}; + + float norm = 0.0; + for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) { + if (k < depthBegin){ + continue; + } + else if (k >= depthBegin && k < depthEnd) { + norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k); + } + else { + break; + } + } + + norm = float(${n}) * norm + float(${r}); + + for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){ + if (k < depthBegin){ + continue; + } + else if (k >= depthBegin && k < depthEnd){ + float dyi = -2.0 * float(${n}) + * float(${s}) + * getInputImage(b, r, c, k) * getOutputImage(b, r, c, d) + / norm; + if (k == d) { + dyi += pow(norm, -1.0 * ${s}); + } + if (k == coords[3]) { + dyi *= getDy(b, r, c, d); + result += dyi; + } + } + else { + break; + } + } + } + setOutput(result); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ibDAd:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"max",()=>u),s.export(r,"maxConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("./Max_impl"),i=e("./Transpose_impl");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u}=r,{reductionIndices:p,keepDims:c}=s,d=u.shape.length,f=a.util.parseAxisParam(p,u.shape),m=f,h=a.backend_util.getAxesPermutation(m,d),g=null!=h,x=n.shouldExecuteOnCPU([u]),v=u;if(g){if(x){let e=n.texData.get(v.dataId).values,t=Array(d);for(let e=0;ei);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("../kernels/Reshape");function i(e,t,r,n){let s=a.util.sizeFromShape(t),i=a.util.sizeFromShape(e.shape),u=(0,l.reshape)({inputs:{x:e},attrs:{shape:[i/s,s]},backend:n}),p=(0,o.reduce)(u,e.dtype,"max",n),c=(0,l.reshape)({inputs:{x:p},attrs:{shape:r},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),c}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/reduce":"3I7Fk","../kernels/Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],DKfrD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maximum",()=>d),s.export(r,"maximumConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu"),i=e("../kernel_utils/kernel_funcs_utils"),u=e("../kernel_utils/shared");let p=o.CHECK_NAN_SNIPPET+` + return max(a, b); +`,c=` + vec4 result = vec4(max(a, b)); + bvec4 isNaNA = isnan(a); + bvec4 isNaNB = isnan(b); + bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w); + `+l.CHECK_NAN_SNIPPET_PACKED+` + return result; +`,d=(0,i.binaryKernelFunc)({opSnippet:p,packedOpSnippet:c,cpuKernelImpl:u.maximumImplCPU}),f={kernelName:a.Maximum,backendName:"webgl",kernelFunc:d}},{"@tensorflow/tfjs-core":"biUij","../binaryop_gpu":"iq2Hg","../binaryop_packed_gpu":"g7FAa","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1hHzY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool",()=>u),s.export(r,"maxPoolConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../pool_gpu"),l=e("../webgl_util"),i=e("./Identity");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t;(0,l.assertNotComplex)(s,"maxPool");let{filterSize:u,strides:p,pad:c,dimRoundingMode:d}=n;a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(p,1),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${p} and dilations '1'`);let f=a.backend_util.computePool2DInfo(s.shape,u,p,1,c,d);if(1===f.filterWidth&&1===f.filterHeight&&a.util.arraysEqual(f.inShape,f.outShape))return(0,i.identity)({inputs:{x:s},backend:r});let m=new(0,o.Pool2DProgram)(f,"max",!1);return r.runWebGLProgram(m,[s],s.dtype)}let p={kernelName:a.MaxPool,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../pool_gpu":"fEtti","../webgl_util":"8Bhtc","./Identity":"fI9uV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aNSAI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool3d",()=>l),s.export(r,"maxPool3DConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../pool_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{filterSize:l,strides:i,pad:u,dataFormat:p,dimRoundingMode:c}=n,d=a.backend_util.computePool3DInfo(s.shape,l,i,[1,1,1],u,c,p),f=new(0,o.Pool3DProgram)(d,"max",!1);return r.runWebGLProgram(f,[s],s.dtype)}let i={kernelName:a.MaxPool3D,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../pool_gpu":"fEtti","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7sDRX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool3DGrad",()=>i),s.export(r,"maxPool3DGradConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../max_pool_backprop_gpu"),l=e("../pool_gpu");function i(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:i}=t,{filterSize:u,strides:p,pad:c,dimRoundingMode:d}=n,f=a.backend_util.computePool3DInfo(i.shape,u,p,[1,1,1],c,d),m=new(0,l.Pool3DProgram)(f,"max",!0),h=r.runWebGLProgram(m,[i],i.dtype),g=new(0,o.MaxPool3DBackpropProgram)(f),x=r.runWebGLProgram(g,[s,h],i.dtype);return r.disposeIntermediateTensorInfo(h),x}let u={kernelName:a.MaxPool3DGrad,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../max_pool_backprop_gpu":"hjmzw","../pool_gpu":"fEtti","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hjmzw:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MaxPool2DBackpropProgram",()=>a),s.export(r,"MaxPool3DBackpropProgram",()=>o);class a{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,r=e.strideWidth,n=e.dilationHeight,s=e.effectiveFilterHeight,a=e.effectiveFilterWidth,o=s-1-e.padInfo.top,l=a-1-e.padInfo.left;this.userCode=` + const ivec2 pads = ivec2(${o}, ${l}); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + + ivec2 dyRCCorner = coords.yz - pads; + int dyRCorner = dyRCCorner.x; + int dyCCorner = dyRCCorner.y; + + // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${s}; + wR += ${n}) { + float dyR = float(dyRCorner + wR) / ${t}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${a}; wC++) { + float dyC = float(dyCCorner + wC) / ${r}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(b, idyR, idyC, d); + int maxPosValue = ${s*a-1} - int(getMaxPos(b, idyR, idyC, d)); + + // Get the current value, check it against the value from the + // position matrix. + int curPosValue = wR * ${a} + wC; + float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0); + + dotProd += dyValue * mask; + } + } + setOutput(dotProd); + } + `}}class o{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,r=e.strideHeight,n=e.strideWidth,s=e.dilationDepth,a=e.dilationHeight,o=e.dilationWidth,l=e.effectiveFilterDepth,i=e.effectiveFilterHeight,u=e.effectiveFilterWidth,p=l-1-e.padInfo.front,c=i-1-e.padInfo.top,d=u-1-e.padInfo.left;this.userCode=` + const ivec3 pads = ivec3(${p}, ${c}, ${d}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; + int dyDCorner = dyCorner.x; + int dyRCorner = dyCorner.y; + int dyCCorner = dyCorner.z; + + // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get + // dx(xD, xR, xC, ch). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + + for (int wD = 0; wD < ${l}; + wD += ${s}) { + float dyD = float(dyDCorner + wD) / ${t}.0; + + if (dyD < 0.0 || dyD >= ${e.outDepth}.0 || fract(dyD) > 0.0) { + continue; + } + int idyD = int(dyD); + + for (int wR = 0; wR < ${i}; + wR += ${a}) { + float dyR = float(dyRCorner + wR) / ${r}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || + fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${u}; + wC += ${o}) { + float dyC = float(dyCCorner + wC) / ${n}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(batch, idyD, idyR, idyC, ch); + int maxPosValue = ${l*i*u-1} - + int(getMaxPos(batch, idyD, idyR, idyC, ch)); + + // Get the current value, check it against the value from the + // position matrix. + int curPosValue = + wD * ${i} * ${u} + + wR * ${u} + wC; + float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0); + + dotProd += dyValue * mask; + } + } + } + setOutput(dotProd); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1t5hC":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolGrad",()=>u),s.export(r,"maxPoolGradConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../max_pool_backprop_gpu"),l=e("../pool_gpu"),i=e("../webgl_util");function u(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:u,output:p}=t;(0,i.assertNotComplex)([u,p],"maxPoolGrad");let{filterSize:c,strides:d,pad:f,dimRoundingMode:m}=n,h=a.backend_util.computePool2DInfo(u.shape,c,d,1,f,m),g=new(0,l.Pool2DProgram)(h,"max",!0),x=r.runWebGLProgram(g,[u],u.dtype),v=new(0,o.MaxPool2DBackpropProgram)(h),y=r.runWebGLProgram(v,[s,x],u.dtype);return r.disposeIntermediateTensorInfo(x),y}let p={kernelName:a.MaxPoolGrad,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../max_pool_backprop_gpu":"hjmzw","../pool_gpu":"fEtti","../webgl_util":"8Bhtc","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eO2cQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolWithArgmaxConfig",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("./MaxPoolWithArgmax_impl");let l={kernelName:a.MaxPoolWithArgmax,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{x:n}=e,{filterSize:s,strides:l,pad:i,includeBatchInIndex:u}=t;a.util.assert(4===n.shape.length,()=>`Error in maxPool: input must be rank 4 but got rank ${n.shape.length}.`);let p=[1,1];a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(l,p),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${l} and dilations '${p}'`);let c=a.backend_util.computePool2DInfo(n.shape,s,l,p,i),[d,f]=(0,o.maxPoolWithArgmaxImpl)(n,u,c,r);return[d,f]}}},{"@tensorflow/tfjs-core":"biUij","./MaxPoolWithArgmax_impl":"3YWVw","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3YWVw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolWithArgmaxImpl",()=>o);var a=e("../pool_gpu");function o(e,t,r,n){let s=new(0,a.Pool2DProgram)(r,"max",!1),o=n.runWebGLProgram(s,[e],"float32");return s=new(0,a.Pool2DProgram)(r,"max",!0,!0,t),[o,n.runWebGLProgram(s,[e],"float32")]}},{"../pool_gpu":"fEtti","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fEe2K:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"meanConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Mean_impl"),l=e("./Transpose_impl");let i={kernelName:a.Mean,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{x:n}=e,{keepDims:s,axis:i}=t,u=n.shape.length,p=a.util.parseAxisParam(i,n.shape),c=p,d=a.backend_util.getAxesPermutation(c,u),f=null!=d,m=r.shouldExecuteOnCPU([n]),h=[],g=n;if(f){if(m){let e=r.texData.get(g.dataId).values,t=Array(u);for(let e=0;ei);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("../kernels/Reshape");function i(e,t,r,n){let s=a.util.sizeFromShape(t),i=a.util.sizeFromShape(e.shape),u=(0,l.reshape)({inputs:{x:e},attrs:{shape:[i/s,s]},backend:n}),p=(0,o.reduce)(u,"float32","mean",n),c=(0,l.reshape)({inputs:{x:p},attrs:{shape:r},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),c}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/reduce":"3I7Fk","../kernels/Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4VMnf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"min",()=>u),s.export(r,"minConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("./Reshape"),i=e("./Transpose");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u}=r,{axis:p,keepDims:c}=s,d=u.shape.length,f=a.util.parseAxisParam(p,u.shape),m=f,h=a.backend_util.getAxesPermutation(m,d),g=u;null!=h&&(g=(0,i.transpose)({inputs:{x:u},backend:n,attrs:{perm:h}}),m=a.backend_util.getInnerMostAxes(m.length,u.shape.length)),a.backend_util.assertAxesAreInnerMostDims("min",m,d);let[x,v]=a.backend_util.computeOutAndReduceShapes(g.shape,m),y=a.util.sizeFromShape(v),b=(0,l.reshape)({inputs:{x:g},backend:n,attrs:{shape:[-1,y]}}),_=(0,o.reduce)(b,b.dtype,"min",n);if(c){let e=a.backend_util.expandShapeToKeepDim(x,f);t=(0,l.reshape)({inputs:{x:_},backend:n,attrs:{shape:e}})}else t=(0,l.reshape)({inputs:{x:_},backend:n,attrs:{shape:x}});return n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(_),null!=h&&n.disposeIntermediateTensorInfo(g),t}let p={kernelName:a.Min,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/reduce":"3I7Fk","./Reshape":"2Do1g","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eyWlc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"minimum",()=>d),s.export(r,"minimumConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu"),i=e("../kernel_utils/kernel_funcs_utils"),u=e("../kernel_utils/shared");let p=o.CHECK_NAN_SNIPPET+` + return min(a, b); +`,c=` + vec4 result = vec4(min(a, b)); + bvec4 isNaNA = isnan(a); + bvec4 isNaNB = isnan(b); + bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w); + `+l.CHECK_NAN_SNIPPET_PACKED+` + return result; +`,d=(0,i.binaryKernelFunc)({opSnippet:p,packedOpSnippet:c,cpuKernelImpl:u.minimumImplCPU}),f={kernelName:a.Minimum,backendName:"webgl",kernelFunc:d}},{"@tensorflow/tfjs-core":"biUij","../binaryop_gpu":"iq2Hg","../binaryop_packed_gpu":"g7FAa","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"62hPs":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mirrorPadKernelFunc",()=>i),s.export(r,"mirrorPadConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../mirror_pad_gpu"),l=e("../mirror_pad_packed_gpu");let i=({inputs:e,backend:t,attrs:r})=>{let{x:n}=e,{paddings:s,mode:i}=r,u=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new(0,l.MirrorPadPackedProgram)(n.shape,s,i):new(0,o.MirrorPadProgram)(n.shape,s,i);return t.runWebGLProgram(u,[n],n.dtype)},u={kernelName:a.MirrorPad,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../mirror_pad_gpu":"4gGb3","../mirror_pad_packed_gpu":"8cArO","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4gGb3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MirrorPadProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r){this.variableNames=["x"],this.outputShape=t.map((t,r)=>t[0]+e[r]+t[1]);let n=e.length,s=(0,a.getCoordsDataType)(n),o=t.map(e=>e[0]).join(","),l=t.map((t,r)=>t[0]+e[r]).join(","),i=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,n),u=+("reflect"!==r);if(1===n){this.userCode=` + int start = ${o}; + int end = ${l}; + + void main() { + int outC = getOutputCoords(); + if (outC < start) { + outC = start * 2 - outC - ${u}; + } else if(outC >= end) { + outC = (end - 1) * 2 - outC + ${u}; + } + setOutput(getX(outC - start)); + } + `;return}this.userCode=` + ${s} start = ${s}(${o}); + ${s} end = ${s}(${l}); + + void main() { + ${s} outC = getOutputCoords(); + for (int i = 0; i < ${n}; i++) { + if (outC[i] < start[i]) { + outC[i] = start[i] * 2 - outC[i] - ${u}; + } else if(outC[i] >= end[i]) { + outC[i] = (end[i] - 1) * 2 - outC[i] + ${u}; + } + } + ${s} coords = outC - start; + setOutput(getX(${i})); + } + `}}},{"./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8cArO":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MirrorPadPackedProgram",()=>l);var a=e("./packing_util"),o=e("./shader_compiler");class l{constructor(e,t,r){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((t,r)=>t[0]+e[r]+t[1]);let n=e.length,s=(0,o.getCoordsDataType)(n),l=t.map(e=>e[0]).join(","),i=t.map((t,r)=>t[0]+e[r]).join(","),u=(0,a.getChannels)("rc",n),p=(0,a.getChannels)("source",n),c=`${u[n-1]} < ${this.outputShape[n-1]}`,d=1===n?"source":`vec2(${p.slice(-2).join()})`,f=+("reflect"!==r),m="";if(1===n){let e=` + ${s} source = rc; + if (source < start) { + source = start * 2 - source - ${f}; + } else if (source >= end) { + source = (end - 1) * 2 - source + ${f}; + } + source -= start; + `;m=` + ${s} rc = outputLoc; + ${e} + result[0] = getChannel(getX(${p.join()}), ${d}); + ${u[n-1]} += 1; + if(${c}) { + ${e} + result[1] = getChannel(getX(${p.join()}), ${d}); + } + `}else{let e=` + ${s} source = rc; + ${s} lt = ${s}(lessThan(source, start)); + ${s} gte = ${s}(greaterThanEqual(source, end)); + ${s} orig = 1 - (lt + gte); + source = orig * source + + lt * (start * 2 - source - ${f}) + + gte * ((end - 1) * 2 - source + ${f}); + source -= start; + `;m=` + ${s} rc = outputLoc; + ${e} + result[0] = getChannel(getX(${p.join()}), ${d}); + ${u[n-1]} += 1; + if(${c}) { + ${e} + result[1] = getChannel(getX(${p.join()}), ${d}); + } + rc = outputLoc; + ${u[n-2]} += 1; + if(${u[n-2]} < ${this.outputShape[n-2]}) { + ${e} + result[2] = getChannel(getX(${p.join()}), ${d}); + ${u[n-1]} += 1; + if(${c}) { + ${e} + result[3] = getChannel(getX(${p.join()}), ${d}); + } + } + `}this.userCode=` + const ${s} start = ${s}(${l}); + const ${s} end = ${s}(${i}); + + void main() { + ${s} outputLoc = getOutputCoords(); + vec4 result = vec4(0.); + ${m} + setOutput(result); + } + `}}},{"./packing_util":"k3hej","./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eKw5T:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mod",()=>p),s.export(r,"modConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_packed_gpu"),l=e("../kernel_utils/kernel_funcs_utils");let i=`if (b == 0.0) return NAN; + return mod(a, b);`,u=` + vec4 result = mod(a, b); + bvec4 isNaN = equal(b, vec4(0.0)); + `+o.CHECK_NAN_SNIPPET_PACKED+` + return result; +`,p=(0,l.binaryKernelFunc)({opSnippet:i,packedOpSnippet:u}),c={kernelName:a.Mod,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../binaryop_packed_gpu":"g7FAa","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"68mmd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"multinomial",()=>i),s.export(r,"multinomialConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../multinomial_gpu"),l=e("./Softmax");function i(e){let{inputs:t,backend:r,attrs:n}=e,{logits:s}=t,{numSamples:a,seed:i,normalized:u}=n,p=u?s:(0,l.softmax)({inputs:{logits:s},backend:r,attrs:{dim:s.shape.length-1}}),c=p.shape[0],d=p.shape[1],f=new(0,o.MultinomialProgram)(c,d,a),m=r.runWebGLProgram(f,[p],"int32",[[i]]);return u||r.disposeIntermediateTensorInfo(p),m}let u={kernelName:a.Multinomial,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../multinomial_gpu":"1YoCf","./Softmax":"gepZ2","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1YoCf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MultinomialProgram",()=>a);class a{constructor(e,t,r){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[e,r],this.userCode=` + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + + float r = random(seed); + float cdf = 0.0; + + for (int i = 0; i < ${t-1}; i++) { + cdf += getProbs(batch, i); + + if (r < cdf) { + setOutput(float(i)); + return; + } + } + + // If no other event happened, last event happened. + setOutput(float(${t-1})); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gepZ2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softmax",()=>d),s.export(r,"softmaxConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("./Exp"),l=e("./Max"),i=e("./RealDiv"),u=e("./Reshape"),p=e("./Sub"),c=e("./Sum");function d(e){let{inputs:t,backend:r,attrs:n}=e,{logits:s}=t,{dim:d}=n,f=a.util.parseAxisParam([d],s.shape),m=(0,l.max)({inputs:{x:s},backend:r,attrs:{reductionIndices:f,keepDims:!1}}),h=a.backend_util.expandShapeToKeepDim(m.shape,f),g=(0,u.reshape)({inputs:{x:m},backend:r,attrs:{shape:h}}),x=(0,p.sub)({inputs:{a:s,b:g},backend:r}),v=(0,o.exp)({inputs:{x:x},backend:r}),y=(0,c.sum)({inputs:{x:v},backend:r,attrs:{axis:f,keepDims:!1}}),b=(0,u.reshape)({inputs:{x:y},backend:r,attrs:{shape:h}}),_=(0,i.realDiv)({inputs:{a:v,b:b},backend:r});return r.disposeIntermediateTensorInfo(m),r.disposeIntermediateTensorInfo(g),r.disposeIntermediateTensorInfo(x),r.disposeIntermediateTensorInfo(v),r.disposeIntermediateTensorInfo(y),r.disposeIntermediateTensorInfo(b),_}let f={kernelName:a.Softmax,backendName:"webgl",kernelFunc:d}},{"@tensorflow/tfjs-core":"biUij","./Exp":"1Az5Y","./Max":"ibDAd","./RealDiv":"gEqYa","./Reshape":"2Do1g","./Sub":"eoz4W","./Sum":"jCPqj","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gEqYa:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"realDiv",()=>u),s.export(r,"realDivConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` +if (a == b) { + return 1.0; +}; +return a / b;`,i=` + // vec4 one = vec4(equal(a, b)); + // return one + (vec4(1.0) - one) * a / b; + vec4 result = a / b; + if(a.x == b.x) { + result.x = 1.; + } + if(a.y == b.y) { + result.y = 1.; + } + if(a.z == b.z) { + result.z = 1.; + } + if(a.w == b.w) { + result.w = 1.; + } + + return result; +`,u=(0,o.binaryKernelFunc)({opSnippet:l,packedOpSnippet:i,checkOutOfBounds:!0}),p={kernelName:a.RealDiv,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eoz4W:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sub",()=>u),s.export(r,"subConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return a - b;",u=(0,o.binaryKernelFunc)({opSnippet:i,packedOpSnippet:i,supportsComplex:!0,cpuKernelImpl:l.subImplCPU}),p={kernelName:a.Sub,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8rsJ0":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"neg",()=>c),s.export(r,"negConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../unaryop_gpu"),i=e("../unaryop_packed_gpu");let u=l.CHECK_NAN_SNIPPET+` + return -x; +`,p=` + vec4 result = -x; + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`;function c(e){let t,{inputs:r,backend:n}=e,{x:s}=r;if(n.shouldExecuteOnCPU([s])){let e=n.texData.get(s.dataId),[t,r]=(0,o.negImplCPU)(e.values,s.shape,s.dtype);return n.makeTensorInfo(r,s.dtype,t)}return t=(0,a.env)().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new(0,i.UnaryOpPackedProgram)(s.shape,p):new(0,l.UnaryOpProgram)(s.shape,u),n.runWebGLProgram(t,[s],s.dtype)}let d={kernelName:a.Neg,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","../unaryop_gpu":"LccPS","../unaryop_packed_gpu":"2qT48","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9Mwgd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV3",()=>l),s.export(r,"nonMaxSuppressionV3Config",()=>i);var a=e("@tensorflow/tfjs-core");let o=a.kernel_impls.nonMaxSuppressionV3Impl;function l(e){a.backend_util.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:l}=t,{maxOutputSize:i,iouThreshold:u,scoreThreshold:p}=n,{selectedIndices:c}=o(r.readSync(s.dataId),r.readSync(l.dataId),i,u,p);return r.makeTensorInfo([c.length],"int32",new Int32Array(c))}let i={kernelName:a.NonMaxSuppressionV3,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],K4Pwt:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV4",()=>l),s.export(r,"nonMaxSuppressionV4Config",()=>i);var a=e("@tensorflow/tfjs-core");let o=a.kernel_impls.nonMaxSuppressionV4Impl;function l(e){a.backend_util.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:l}=t,{maxOutputSize:i,iouThreshold:u,scoreThreshold:p,padToMaxOutputSize:c}=n,{selectedIndices:d,validOutputs:f}=o(r.readSync(s.dataId),r.readSync(l.dataId),i,u,p,c);return[r.makeTensorInfo([d.length],"int32",new Int32Array(d)),r.makeTensorInfo([],"int32",new Int32Array([f]))]}let i={kernelName:a.NonMaxSuppressionV4,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4ytP0":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV5",()=>l),s.export(r,"nonMaxSuppressionV5Config",()=>i);var a=e("@tensorflow/tfjs-core");let o=a.kernel_impls.nonMaxSuppressionV5Impl;function l(e){a.backend_util.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:l}=t,{maxOutputSize:i,iouThreshold:u,scoreThreshold:p,softNmsSigma:c}=n,d=r.readSync(s.dataId),{selectedIndices:f,selectedScores:m}=o(d,r.readSync(l.dataId),i,u,p,c);return[r.makeTensorInfo([f.length],"int32",new Int32Array(f)),r.makeTensorInfo([m.length],"float32",new Float32Array(m))]}let i={kernelName:a.NonMaxSuppressionV5,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8dpOL":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"oneHot",()=>i),s.export(r,"oneHotConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../onehot_gpu"),l=e("./Reshape");let i=e=>{let{inputs:t,backend:r,attrs:n}=e,{indices:s}=t,{dtype:i,depth:u,onValue:p,offValue:c}=n,d=a.util.sizeFromShape(s.shape),f=new(0,o.OneHotProgram)(d,u,p,c),m=(0,l.reshape)({inputs:{x:s},backend:r,attrs:{shape:[d]}}),h=r.runWebGLProgram(f,[m],i);r.disposeIntermediateTensorInfo(m);let g=[...s.shape,u],x=(0,l.reshape)({inputs:{x:h},backend:r,attrs:{shape:g}});return r.disposeIntermediateTensorInfo(h),x},u={kernelName:a.OneHot,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../onehot_gpu":"22PBA","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"22PBA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"OneHotProgram",()=>a);class a{constructor(e,t,r,n){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` + void main() { + ivec2 coords = getOutputCoords(); + int index = round(getIndices(coords.x)); + setOutput(mix(float(${n}), float(${r}), + float(index == coords.y))); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3l0Co":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"onesLike",()=>c),s.export(r,"onesLikeConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("./Complex"),l=e("./Fill"),i=e("./Imag"),u=e("./Real"),p=e("./ZerosLike");function c(e){let{inputs:t,backend:r}=e,{x:n}=t;if("string"===n.dtype)throw Error("onesLike is not supported under string dtype");if("complex64"!==n.dtype)return(0,l.fill)({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:r});{let e=(0,u.real)({inputs:{input:n},backend:r}),t=c({inputs:{x:e},backend:r}),s=(0,i.imag)({inputs:{input:n},backend:r}),a=(0,p.zerosLike)({inputs:{x:s},backend:r}),l=(0,o.complex)({inputs:{real:t,imag:a},backend:r});return r.disposeIntermediateTensorInfo(e),r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(a),l}}let d={kernelName:a.OnesLike,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"biUij","./Complex":"fN7J8","./Fill":"e9rdf","./Imag":"2YczW","./Real":"8FQ28","./ZerosLike":"k8pQn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],k8pQn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"zerosLike",()=>p),s.export(r,"zerosLikeConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./Complex"),l=e("./Fill"),i=e("./Imag"),u=e("./Real");function p(e){let{inputs:t,backend:r}=e,{x:n}=t;if("complex64"!==n.dtype)return(0,l.fill)({attrs:{shape:n.shape,dtype:n.dtype,value:"string"===n.dtype?"":0},backend:r});{let e=(0,u.real)({inputs:{input:n},backend:r}),t=p({inputs:{x:e},backend:r}),s=(0,i.imag)({inputs:{input:n},backend:r}),a=p({inputs:{x:s},backend:r}),l=(0,o.complex)({inputs:{real:t,imag:a},backend:r});return r.disposeIntermediateTensorInfo(e),r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(a),l}}let c={kernelName:a.ZerosLike,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","./Complex":"fN7J8","./Fill":"e9rdf","./Imag":"2YczW","./Real":"8FQ28","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kp21h:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pack",()=>i),s.export(r,"packConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./Concat"),l=e("./ExpandDims");function i(e){let{inputs:t,backend:r,attrs:n}=e,{axis:s}=n;if(1===t.length)return(0,l.expandDims)({inputs:{input:t[0]},backend:r,attrs:{dim:s}});let i=t[0].shape,u=t[0].dtype;t.forEach(e=>{a.util.assertShapesMatch(i,e.shape,"All tensors passed to stack must have matching shapes"),a.util.assert(u===e.dtype,()=>"All tensors passed to stack must have matching dtypes")});let p=[],c=t.map(e=>{let t=(0,l.expandDims)({inputs:{input:e},backend:r,attrs:{dim:s}});return p.push(t),t}),d=(0,o.concat)({inputs:c,backend:r,attrs:{axis:s}});return p.forEach(e=>r.disposeIntermediateTensorInfo(e)),d}let u={kernelName:a.Pack,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","./Concat":"99eNw","./ExpandDims":"8Gccb","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7yedB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"padV2",()=>u),s.export(r,"padV2Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../pad_gpu"),l=e("../pad_packed_gpu"),i=e("./Fill");let u=e=>{let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{paddings:u,constantValue:p}=n;if(0===a.util.sizeFromShape(s.shape)){let e=u.map((e,t)=>e[0]+s.shape[t]+e[1]);return(0,i.fill)({backend:r,attrs:{shape:e,value:p,dtype:s.dtype}})}let c=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new(0,l.PadPackedProgram)(s.shape,u,p):new(0,o.PadProgram)(s.shape,u,p),d=[[p]];return r.runWebGLProgram(c,[s],s.dtype,d)},p={kernelName:a.PadV2,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../pad_gpu":"6QVVM","../pad_packed_gpu":"80Rbg","./Fill":"e9rdf","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6QVVM":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"PadProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((t,r)=>t[0]+e[r]+t[1]);let n=e.length,s=(0,a.getCoordsDataType)(n),o=t.map(e=>e[0]).join(","),l=t.map((t,r)=>t[0]+e[r]).join(","),i=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,n);if(1===n){this.userCode=` + int start = ${o}; + int end = ${l}; + + void main() { + int outC = getOutputCoords(); + if (outC < start || outC >= end) { + setOutput(value); + } else { + setOutput(getX(outC - start)); + } + } + `;return}this.userCode=` + ${s} start = ${s}(${o}); + ${s} end = ${s}(${l}); + + void main() { + ${s} outC = getOutputCoords(); + if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) { + setOutput(value); + } else { + ${s} coords = outC - start; + setOutput(getX(${i})); + } + } + `}}},{"./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"80Rbg":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"PadPackedProgram",()=>l);var a=e("./packing_util"),o=e("./shader_compiler");class l{constructor(e,t,r){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((t,r)=>t[0]+e[r]+t[1]);let n=e.length,s=(0,o.getCoordsDataType)(n),l=t.map(e=>e[0]).join(","),i=t.map((t,r)=>t[0]+e[r]).join(","),u=(0,a.getChannels)("rc",n),p=(0,a.getChannels)("source",n),c=`${u[n-1]} < ${this.outputShape[n-1]}`,d=1===n?"source":`vec2(${p.slice(-2).join()})`,f=[`${s} rc = outputLoc;`,`${u[n-1]} += 1; + if(${c}) { + `,1===n?"":`} + rc = outputLoc; + ${u[n-2]} += 1; + if(${u[n-2]} < ${this.outputShape[n-2]}) {`,1===n?"":` ${u[n-1]} += 1; + if(${c}) {`],m=1===n?"rc < start || rc >= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))",h="";for(let e=0,t=1===n?2:4;ep),s.export(r,"powConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_packed_gpu"),l=e("../kernel_utils/kernel_funcs_utils");let i=` + if(a < 0.0 && floor(b) < b){ + return NAN; + } + if (b == 0.0) { + return 1.0; + } + return (round(mod(b, 2.0)) != 1) ? + pow(abs(a), b) : sign(a) * pow(abs(a), b); +`,u=` + // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise. + vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1))); + vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1); + vec4 result = multiplier * pow(abs(a), b); + + // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS + bvec4 isExpZero = equal(b, vec4(0.0)); + result.r = isExpZero.r ? 1.0 : result.r; + result.g = isExpZero.g ? 1.0 : result.g; + result.b = isExpZero.b ? 1.0 : result.b; + result.a = isExpZero.a ? 1.0 : result.a; + + bvec4 isNaN1 = lessThan(a, vec4(0.0)); + bvec4 isNaN2 = lessThan(floor(b), b); + bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w); + `+o.CHECK_NAN_SNIPPET_PACKED+` + return result; +`,p=(0,l.binaryKernelFunc)({opSnippet:i,packedOpSnippet:u}),c={kernelName:a.Pow,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../binaryop_packed_gpu":"g7FAa","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1tGYF":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prod",()=>p),s.export(r,"prodConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("../kernel_utils/shared"),i=e("./Reshape"),u=e("./Transpose");function p(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:p}=r,{axis:c,keepDims:d}=s,f=p.shape.length,m=[],h=a.util.parseAxisParam(c,p.shape),g=h,x=a.backend_util.getAxesPermutation(g,f),v=p;if(null!=x&&(v=(0,u.transpose)({inputs:{x:p},backend:n,attrs:{perm:x}}),g=a.backend_util.getInnerMostAxes(g.length,f),m.push(v)),a.backend_util.assertAxesAreInnerMostDims("prod",g,f),n.shouldExecuteOnCPU([v])){let e=n.texData.get(v.dataId).values,{outVals:r,outShape:s,outDtype:a}=(0,l.prodImplCPU)(v.shape,v.dtype,e,g);t=n.makeTensorInfo(s,a,r)}else{let[e,r]=a.backend_util.computeOutAndReduceShapes(v.shape,g),s=a.util.sizeFromShape(r),l=(0,i.reshape)({inputs:{x:v},backend:n,attrs:{shape:[-1,s]}}),u=(0,a.sumOutType)(p.dtype),c=(0,o.reduce)(l,u,"prod",n);t=(0,i.reshape)({inputs:{x:c},backend:n,attrs:{shape:e}}),m.push(l),m.push(c)}if(d){m.push(t);let e=a.backend_util.expandShapeToKeepDim(t.shape,h);t=(0,i.reshape)({inputs:{x:t},backend:n,attrs:{shape:e}})}return m.forEach(e=>n.disposeIntermediateTensorInfo(e)),t}let c={kernelName:a.Prod,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/reduce":"3I7Fk","../kernel_utils/shared":"lQim5","./Reshape":"2Do1g","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7W42z":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedGather",()=>l),s.export(r,"raggedGatherConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{paramsNestedSplits:s,paramsDenseValues:a,indices:l}=t,{outputRaggedRank:i}=n,u=s.map(e=>r.readSync(e.dataId)),p=s.map(e=>e.shape),c=r.readSync(a.dataId),d=r.readSync(l.dataId),[f,m,h]=(0,o.raggedGatherImplCPU)(u,p,c,a.shape,a.dtype,d,l.shape,i),g=f.map(e=>r.makeTensorInfo([e.length],"int32",e)),x=r.makeTensorInfo(h,a.dtype,m);return g.concat([x])}let i={kernelName:a.RaggedGather,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"81NyQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedRange",()=>l),s.export(r,"raggedRangeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r}=e,{starts:n,limits:s,deltas:a}=t,l=r.readSync(n.dataId),i=r.readSync(s.dataId),u=r.readSync(a.dataId),[p,c]=(0,o.raggedRangeImplCPU)(l,n.shape,n.dtype,i,s.shape,u,a.shape);return[r.makeTensorInfo([p.length],"int32",p),r.makeTensorInfo([c.length],n.dtype,c)]}let i={kernelName:a.RaggedRange,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],i0jiS:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedTensorToTensor",()=>l),s.export(r,"raggedTensorToTensorConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{shape:s,values:a,defaultValue:l,rowPartitionTensors:i}=t,{rowPartitionTypes:u}=n,p=r.readSync(s.dataId),c=r.readSync(a.dataId),d=r.readSync(l.dataId),f=i.map(e=>r.readSync(e.dataId)),m=i.map(e=>e.shape),[h,g]=(0,o.raggedTensorToTensorImplCPU)(p,s.shape,c,a.shape,a.dtype,d,l.shape,f,m,u);return r.makeTensorInfo(h,a.dtype,g)}let i={kernelName:a.RaggedTensorToTensor,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5tyAf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"range",()=>l),s.export(r,"rangeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");let l=e=>{let{backend:t,attrs:r}=e,{start:n,stop:s,step:a,dtype:l}=r,i=(0,o.rangeImplCPU)(n,s,a,l);return t.makeTensorInfo([i.length],l,i)},i={kernelName:a.Range,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],zLtsg:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reciprocal",()=>o),s.export(r,"reciprocalConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return 1.0 / x;"}),l={kernelName:a.Reciprocal,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1s4ab":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu",()=>u),s.export(r,"reluConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` + return (x < 0.0) ? 0.0 : x; +`,i=` + vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`,u=(0,o.unaryKernelFunc)({opSnippet:l,packedOpSnippet:i}),p={kernelName:a.Relu,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../unaryop_gpu":"LccPS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lH0Kr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu6",()=>u),s.export(r,"relu6Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` + return (x < 0.0) ? 0.0 : min(6.0, x); +`,i=` + vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`,u=(0,o.unaryKernelFunc)({opSnippet:l,packedOpSnippet:i}),p={kernelName:a.Relu6,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../unaryop_gpu":"LccPS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cjsd8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeBilinear",()=>i),s.export(r,"resizeBilinearConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../resize_bilinear_gpu"),l=e("../resize_bilinear_packed_gpu");function i(e){let{inputs:t,backend:r,attrs:n}=e,{images:s}=t,{alignCorners:i,halfPixelCenters:u,size:p}=n,[c,d]=p,f=(0,a.env)().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new(0,l.ResizeBilinearPackedProgram)(s.shape,c,d,i,u):new(0,o.ResizeBilinearProgram)(s.shape,c,d,i,u);return r.runWebGLProgram(f,[s],"float32")}let u={kernelName:a.ResizeBilinear,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../resize_bilinear_gpu":"2qHvI","../resize_bilinear_packed_gpu":"3Fe23","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2qHvI":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeBilinearProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["A"],this.outputShape=[];let[a,o,l,i]=e;this.outputShape=[a,t,r,i];let u=[n&&t>1?o-1:o,n&&r>1?l-1:l],p=[n&&t>1?t-1:t,n&&r>1?r-1:r];this.userCode=` + const vec2 effectiveInputOverOutputRatioRC = vec2( + ${u[0]/p[0]}, + ${u[1]/p[1]}); + const vec2 inputShapeRC = vec2(${o}.0, ${l}.0); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + ivec2 yRC = coords.yz; + + // Fractional source index. + vec2 sourceFracIndexRC = ${s?"(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":"vec2(yRC) * effectiveInputOverOutputRatioRC"}; + + // Compute the four integer indices. + ivec2 sourceFloorRC = ivec2(max(sourceFracIndexRC, vec2(0.0))); + ivec2 sourceCeilRC = ivec2( + min(inputShapeRC - 1.0, ceil(sourceFracIndexRC))); + + float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d); + float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d); + float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d); + float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d); + + vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC); + + float top = topLeft + (topRight - topLeft) * fracRC.y; + float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y; + float newValue = top + (bottom - top) * fracRC.x; + + setOutput(newValue); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3Fe23":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeBilinearPackedProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[a,o,l,i]=e;this.outputShape=[a,t,r,i];let u=[n&&t>1?o-1:o,n&&r>1?l-1:l],p=[n&&t>1?t-1:t,n&&r>1?r-1:r];this.userCode=` + const vec3 effectiveInputOverOutputRatioRC = vec3( + ${u[0]/p[0]}, + ${u[1]/p[1]}, + ${u[1]/p[1]}); + const vec3 inputShapeRC = vec3(${o}.0, ${l}.0, + ${l}.0); + + float getAValue(int b, int r, int c, int d) { + return getChannel(getA(b, r, c, d), vec2(c, d)); + } + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + // Calculate values for next column in yRC.z. + ivec3 yRC = coords.yzz + ivec3(0, 0, 1); + + // Fractional source index. + vec3 sourceFracIndexRC = ${s?"(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":"vec3(yRC) * effectiveInputOverOutputRatioRC"}; + + // Compute the four integer indices. + ivec3 sourceFloorRC = ivec3(max(sourceFracIndexRC, vec3(0.0))); + ivec3 sourceCeilRC = ivec3( + min(inputShapeRC - 1.0, ceil(sourceFracIndexRC))); + + // Should we calculate next column and row elements in 2x2 packed cell. + bool hasNextCol = d < ${i-1}; + bool hasNextRow = coords.z < ${r-1}; + + // In parallel, construct four corners for all four components in + // packed 2x2 cell. + vec4 topLeft = vec4( + getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d), + hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0); + + vec4 bottomLeft = vec4( + getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d), + hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0); + + vec4 topRight = vec4( + getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d), + hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0); + + vec4 bottomRight = vec4( + getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d), + hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0); + + vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC); + + vec4 top = mix(topLeft, topRight, fracRC.yyzz); + vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz); + vec4 newValue = mix(top, bottom, fracRC.x); + + setOutput(newValue); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2huuw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeBilinearGrad",()=>l),s.export(r,"resizeBilinearGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../resize_bilinear_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s,dy:a}=t,{alignCorners:l}=n,i=new(0,o.ResizeBilinearBackpropProgram)(a.shape,s.shape,l);return r.runWebGLProgram(i,[a],a.dtype)}let i={kernelName:a.ResizeBilinearGrad,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../resize_bilinear_backprop_gpu":"i5dOB","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],i5dOB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeBilinearBackpropProgram",()=>a);class a{constructor(e,t,r){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,n,s]=t,[,a,o]=e,l=[r&&a>1?n-1:n,r&&o>1?s-1:s],i=[r&&a>1?a-1:a,r&&o>1?o-1:o],u=l[0]/i[0],p=l[1]/i[1],c=1/u,d=1/p,f=2*Math.ceil(c)+2,m=2*Math.ceil(d)+2;this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + int r = coords[1]; + int c = coords[2]; + + float accumulator = 0.0; + + const float heightScale = float(${u}); + const float widthScale = float(${p}); + + const float invHeightScale = float(${c}); + const float invWidthScale = float(${d}); + + const int winHeight = int(${f}); + const int winWidth = int(${m}); + + // Compute bounds for where in dy we will look + float startRLerp = floor(float(r) * invHeightScale); + int startDyR = int(startRLerp - float(winHeight / 2)); + + float startCLerp = floor(float(c) * invWidthScale); + int startDyC = int(startCLerp - float(winWidth / 2)); + + // Loop over dy + for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) { + int dyR = dyROffset + startDyR; + + // Guard against the window exceeding the bounds of dy + if (dyR < 0 || dyR >= ${a}) { + continue; + } + + for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) { + int dyC = dyCOffset + startDyC; + + // Guard against the window exceeding the bounds of dy + if (dyC < 0 || dyC >= ${o}) { + continue; + } + + float dxR = float(dyR) * heightScale; + int topDxRIndex = int(floor(dxR)); + int bottomDxRIndex = int(min(ceil(dxR), ${n-1}.0)); + float dxRLerp = dxR - float(topDxRIndex); + float inverseDxRLerp = 1.0 - dxRLerp; + + float dxC = float(dyC) * widthScale; + int leftDxCIndex = int(floor(dxC)); + int rightDxCIndex = int(min(ceil(dxC), ${s-1}.0)); + float dxCLerp = dxC - float(leftDxCIndex); + float inverseDxCLerp = 1.0 - dxCLerp; + + if (r == topDxRIndex && c == leftDxCIndex) { + // topLeft + accumulator += + getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp; + } + + if (r == topDxRIndex && c == rightDxCIndex) { + // topRight + accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp; + } + + if (r == bottomDxRIndex && c == leftDxCIndex) { + // bottomLeft + accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp; + } + + if (r == bottomDxRIndex && c == rightDxCIndex) { + // bottomRight + accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp; + } + } + } + // End loop over dy + + setOutput(accumulator); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1Dxyi":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeNearestNeighbor",()=>i),s.export(r,"resizeNearestNeighborConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../resize_nearest_neighbor_gpu"),l=e("../resize_nearest_neighbor_packed_gpu");function i(e){let{inputs:t,backend:r,attrs:n}=e,{images:s}=t,{alignCorners:i,halfPixelCenters:u,size:p}=n,[c,d]=p,f=(0,a.env)().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new(0,l.ResizeNearestNeighborPackedProgram)(s.shape,c,d,i,u):new(0,o.ResizeNearestNeighborProgram)(s.shape,c,d,i,u);return r.runWebGLProgram(f,[s],s.dtype)}let u={kernelName:a.ResizeNearestNeighbor,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../resize_nearest_neighbor_gpu":"2B9OP","../resize_nearest_neighbor_packed_gpu":"cmzy3","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2B9OP":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeNearestNeighborProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["A"],this.outputShape=[];let[a,o,l,i]=e;this.outputShape=[a,t,r,i];let u=[n&&t>1?o-1:o,n&&r>1?l-1:l],p=[n&&t>1?t-1:t,n&&r>1?r-1:r];this.userCode=` + const vec2 effectiveInputOverOutputRatioRC = vec2( + ${u[0]/p[0]}, + ${u[1]/p[1]}); + const vec2 inputShapeRC = vec2(${o}.0, ${l}.0); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + ivec2 yRC = coords.yz; + + // Fractional source index. + vec2 sourceFracIndexRC = ${s?"max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":"vec2(yRC) * effectiveInputOverOutputRatioRC"}; + + // Compute the coordinators of nearest neighbor point. + ivec2 sourceNearestRC = ivec2( + min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${n?"0.5":"0.0"}))); + float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d); + + setOutput(newValue); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cmzy3:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeNearestNeighborPackedProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[a,o,l,i]=e;this.outputShape=[a,t,r,i];let u=[n&&t>1?o-1:o,n&&r>1?l-1:l],p=[n&&t>1?t-1:t,n&&r>1?r-1:r];this.userCode=` + const vec3 effectiveInputOverOutputRatioRC = vec3( + ${u[0]/p[0]}, + ${u[1]/p[1]}, + ${u[1]/p[1]}); + const vec3 inputShapeRC = vec3(${o}.0, ${l}.0, + ${l}.0); + + float getAValue(int b, int r, int c, int d) { + return getChannel(getA(b, r, c, d), vec2(c, d)); + } + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + // Calculate values for next column in yRC.z. + ivec3 yRC = coords.yzz + ivec3(0, 0, 1); + + // Fractional source index. + vec3 sourceFracIndexRC = ${s?"max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":"vec3(yRC) * effectiveInputOverOutputRatioRC"}; + + // Compute the coordinators of nearest neighbor point. + ivec3 sourceNearestRC = ivec3( + min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${n?"0.5":"0.0"}))); + + // Should we calculate next column and row elements in 2x2 packed cell. + bool hasNextCol = d < ${i-1}; + bool hasNextRow = coords.z < ${r-1}; + + vec4 newValue = vec4( + getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d), + hasNextCol ? getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d + 1) : 0.0); + + setOutput(newValue); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kFmpF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeNearestNeighborGrad",()=>l),s.export(r,"resizeNearestNeighborGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../resize_nearest_neighbor_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s,dy:a}=t,{alignCorners:l}=n,i=new(0,o.ResizeNearestNeigborBackpropProgram)(a.shape,s.shape,l);return r.runWebGLProgram(i,[a],a.dtype)}let i={kernelName:a.ResizeNearestNeighborGrad,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../resize_nearest_neighbor_backprop_gpu":"5mHW0","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5mHW0":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeNearestNeigborBackpropProgram",()=>a);class a{constructor(e,t,r){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,n,s]=t,[,a,o]=e,l=[r&&a>1?n-1:n,r&&o>1?s-1:s],i=[r&&a>1?a-1:a,r&&o>1?o-1:o],u=l[0]/i[0],p=l[1]/i[1],c=1/u,d=1/p,f=2*Math.ceil(c)+2,m=2*Math.ceil(d)+2;this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + int r = coords[1]; + int c = coords[2]; + + float accumulator = 0.0; + + const float heightScale = float(${u}); + const float widthScale = float(${p}); + + const float invHeightScale = float(${c}); + const float invWidthScale = float(${d}); + + const int winHeight = int(${f}); + const int winWidth = int(${m}); + + // Compute bounds for where in dy we will look + float startRLerp = floor(float(r) * invHeightScale); + int startDyR = int(floor(startRLerp - float(winHeight / 2))); + + float startCLerp = floor(float(c) * invWidthScale); + int startDyC = int(floor(startCLerp - float(winWidth / 2))); + + // Loop over dy + for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) { + int dyR = dyROffset + startDyR; + + // Guard against the window exceeding the bounds of dy + if (dyR < 0 || dyR >= ${a}) { + continue; + } + + for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) { + int dyC = dyCOffset + startDyC; + + // Guard against the window exceeding the bounds of dy + if (dyC < 0 || dyC >= ${o}) { + continue; + } + + float sourceFracRow = + float(${l[0]}) * + (float(dyR) / float(${i[0]})); + + float sourceFracCol = + float(${l[1]}) * + (float(dyC) / float(${i[1]})); + + int sourceNearestRow = int(min( + float(int(${n}) - 1), + ${r} ? float(round(sourceFracRow)) : + float(floor(sourceFracRow)))); + + int sourceNearestCol = int(min( + float(int(${s}) - 1), + ${r} ? float(round(sourceFracCol)) : + float(floor(sourceFracCol)))); + + if (r == sourceNearestRow && c == sourceNearestCol) { + accumulator += getDy(b, dyR, dyC, d); + } + } + } + // End loop over dy + + setOutput(accumulator); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3J3Rk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse",()=>u),s.export(r,"reverseConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../reverse_gpu"),l=e("../reverse_packed_gpu"),i=e("./Identity");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{dims:u}=n,p=s.shape.length,c=a.util.parseAxisParam(u,s.shape);if(0===p)return(0,i.identity)({inputs:{x:s},backend:r});let d=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new(0,l.ReversePackedProgram)(s.shape,c):new(0,o.ReverseProgram)(s.shape,c);return r.runWebGLProgram(d,[s],s.dtype)}let p={kernelName:a.Reverse,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../reverse_gpu":"05h8z","../reverse_packed_gpu":"lhQ1z","./Identity":"fI9uV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"05h8z":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ReverseProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t){this.variableNames=["x"];let r=e.length;if(r>4)throw Error(`WebGL backend: Reverse of rank-${r} tensor is not yet supported`);if(this.outputShape=e,1===r){this.userCode=` + void main() { + int coord = getOutputCoords(); + setOutput(getX(${e[0]} - coord - 1)); + } + `;return}let n=r=>-1!==t.indexOf(r)&&1!==e[r]?`${e[r]} - coords[${r}] - 1`:`coords[${r}]`,s=e.map((e,t)=>n(t)).join(","),o=(0,a.getCoordsDataType)(r);this.userCode=` + void main() { + ${o} coords = getOutputCoords(); + setOutput(getX(${s})); + } + `}}},{"./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lhQ1z:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ReversePackedProgram",()=>l);var a=e("./packing_util"),o=e("./shader_compiler");class l{constructor(e,t){var r,n,s;this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let l=e.length;if(l>4)throw Error(`WebGL backend: Reverse of rank-${l} tensor is not yet supported`);this.outputShape=e;let i=(0,a.getChannels)("rc",l),u=`${i[l-1]} + 1 < ${this.outputShape[l-1]}`,p=`${i[l-2]} + 1 < ${this.outputShape[l-2]}`,c=(0,o.getCoordsDataType)(l);function d(r){let n=e.map((n,s)=>{var a,o;return a=s,o=r,-1!==t.indexOf(a)&&1!==e[a]?`${e[a]} - ${o[a]} - 1`:`${o[a]}`}),s=n.join(","),a=n.slice(-2).join(",");return`getChannel(getX(${s}), vec2(${a}))`}1===l?this.userCode=` + void main(){ + int rc = getOutputCoords(); + vec4 result = vec4(0.); + result.r = getChannel(getX(${e[0]} - rc - 1), + ${e[0]} - rc - 1); + if(${u}){ + result.g = getChannel(getX(${e[0]} - (rc + 1) - 1), + ${e[0]} - (rc + 1) - 1); + } + setOutput(result); + } + `:this.userCode=` + void main() { + ${c} rc = getOutputCoords(); + vec4 result = vec4(0.); + result.r = ${d(i.slice())}; + if(${u}){ + result.g = ${(r=i.slice())[l-1]="("+r[l-1]+" + 1)",d(r)}; + } + if(${p}) { + result.b = ${(n=i.slice())[l-2]="("+n[l-2]+" + 1)",d(n)}; + if(${u}) { + result.a = ${(s=i.slice())[l-1]="("+s[l-1]+" + 1)",s[l-2]="("+s[l-2]+" + 1)",d(s)}; + } + } + setOutput(result); + } + `}}},{"./packing_util":"k3hej","./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"65v6T":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rotateWithOffsetConfig",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("../rotate_gpu");let l={kernelName:a.RotateWithOffset,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{image:n}=e,{radians:s,fillValue:l,center:i}=t,u=new(0,o.RotateProgram)(n.shape,l),[p,c]=a.backend_util.getImageCenter(i,n.shape[1],n.shape[2]),d=[[p,c,Math.sin(s),Math.cos(s)]];return r.runWebGLProgram(u,[n],n.dtype,d)}}},{"@tensorflow/tfjs-core":"biUij","../rotate_gpu":"79DqB","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"79DqB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"RotateProgram",()=>a);class a{constructor(e,t){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];let r=e[1],n=e[2];this.outputShape=e;let s="";s="number"==typeof t?`float outputValue = ${t.toFixed(2)};`:` + vec3 fill = vec3(${t.join(",")}); + float outputValue = fill[coords[3]];`,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int x = coords[2]; + int y = coords[1]; + float coordXFloat = (float(x) - params[0]) * params[3] - + (float(y) - params[1]) * params[2]; + float coordYFloat = (float(x) - params[0]) * params[2] + + (float(y) - params[1]) * params[3]; + int coordX = int(round(coordXFloat + params[0])); + int coordY = int(round(coordYFloat + params[1])); + ${s} + if(coordX >= 0 && coordX < ${n} && coordY >= 0 && coordY < ${r}) { + outputValue = getImage(coords[0], coordY, coordX, coords[3]); + } + setOutput(outputValue); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8ECWg":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"round",()=>i),s.export(r,"roundConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + // OpenGL ES does not support round function. + // The algorithm is based on banker's rounding. + float base = floor(x); + if ((x - base) < 0.5) { + return floor(x); + } else if ((x - base) > 0.5) { + return ceil(x); + } else { + if (mod(base, 2.0) == 0.0) { + return base; + } else { + return base + 1.0; + } + } +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Round,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dcXmB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rsqrt",()=>i),s.export(r,"rsqrtConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=(0,o.unaryKernelFunc)({opSnippet:"return inversesqrt(x);",cpuKernelImpl:l.rsqrtImplCPU}),u={kernelName:a.Rsqrt,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],loFfE:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"scatterNd",()=>u),s.export(r,"scatterNdConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../scatter_gpu"),l=e("../scatter_packed_gpu"),i=e("./Reshape");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{indices:u,updates:p}=r,{shape:c}=s,{sliceRank:d,numUpdates:f,sliceSize:m,strides:h,outputSize:g}=a.backend_util.calculateShapes(p,u,c),x=[g/m,m];if(0===g)return n.makeTensorInfo(c,u.dtype);let v=(0,i.reshape)({inputs:{x:u},backend:n,attrs:{shape:[f,d]}}),y=(0,i.reshape)({inputs:{x:p},backend:n,attrs:{shape:[f,m]}}),b=n.makeTensorInfo([],"float32",new Float32Array([0]));t=(0,a.env)().getBool("WEBGL_PACK")?new(0,l.ScatterPackedProgram)(f,d,v.shape.length,y.shape.length,h,x):new(0,o.ScatterProgram)(f,d,v.shape.length,y.shape.length,h,x);let _=n.runWebGLProgram(t,[y,v,b],y.dtype),k=(0,i.reshape)({inputs:{x:_},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(_),n.disposeIntermediateTensorInfo(b),k}let p={kernelName:a.ScatterNd,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../scatter_gpu":"86nzQ","../scatter_packed_gpu":"eR3XB","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"86nzQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ScatterProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r,n,s,o,l=!0,i=!1){this.variableNames=["updates","indices","defaultValue"],this.outputShape=o;let u=(0,a.getCoordsDataType)(s.length),p=(0,a.getCoordsDataType)(o.length),c="";1===r?c="i":2===r&&(c="i, j");let d=`getIndices(${c})`,f="";1===n?f="i":2===n&&(f="i, coords[1]");let m=`getUpdates(${f})`,h="";i&&(h="coords[0], coords[1]");let g=`getDefaultValue(${h})`;this.userCode=` + ${u} strides = ${u}(${s}); + + void main() { + ${p} coords = getOutputCoords(); + float sum = 0.0; + bool found = false; + for (int i = 0; i < ${e}; i++) { + int flattenedIndex = 0; + for (int j = 0; j < ${t}; j++) { + int index = round(${d}); + flattenedIndex += index * ${t>1?"strides[j]":"strides"}; + } + if (flattenedIndex == coords[0]) { + sum += ${m}; + found = true; + } + } + setOutput(mix(${g}, sum, float(found))); + } + `}}},{"./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eR3XB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ScatterPackedProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r,n,s,o,l=!0,i=!1){this.variableNames=["updates","indices","defaultValue"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=o;let u=(0,a.getCoordsDataType)(s.length),p=(0,a.getCoordsDataType)(o.length),c="";1===r?c="i":2===r&&(c="i, j");let d=`getIndices(${c})`,f="";1===n?f="i":2===n&&(f="i, coords[1]");let m=`getUpdates(${f})`,h="";i&&(h="coords[0], coords[1]");let g=`getDefaultValue(${h})`;this.userCode=` + ${u} strides = ${u}(${s}); + + void main() { + ${p} coords = getOutputCoords(); + vec4 sum = vec4(0.); + vec4 found = vec4(0.); + for (int i = 0; i < ${e}; i+=2) { + ivec2 flattenedIndex = ivec2(0); + for (int j = 0; j < ${t}; j+=2) { + ivec4 index = round(${d}); + flattenedIndex += index.xz * ${t>1?"strides[j]":"strides"}; + if (j + 1 < ${t}) { + flattenedIndex += index.yw * ${t>1?"strides[j + 1]":"strides"}; + } + } + if (flattenedIndex[0] == coords[0] || flattenedIndex[1] == coords[0] || + flattenedIndex[0] == coords[0] + 1 || flattenedIndex[1] == coords[0] + 1) { + vec4 updVals = ${m}; + if (flattenedIndex[0] == coords[0]) { + sum.xy += updVals.xy; + found.xy = vec2(1.); + } else if (flattenedIndex[0] == coords[0] + 1) { + sum.zw += updVals.xy; + found.zw = vec2(1.); + } + if (flattenedIndex[1] == coords[0]) { + sum.xy += updVals.zw; + found.xy = vec2(1.); + } else if (flattenedIndex[1] == coords[0] + 1) { + sum.zw += updVals.zw; + found.zw = vec2(1.); + } + } + } + setOutput(mix(${g}, sum, found)); + } + `}}},{"./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],DXpUT:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"searchSorted",()=>l),s.export(r,"searchSortedConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../search_sorted_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{sortedSequence:s,values:a}=t,{side:l}=n,i=new(0,o.SearchSortedProgram)(s.shape[0],s.shape[1],a.shape[1],l),u=[[s.shape[1]]];return r.runWebGLProgram(i,[s,a],"int32",u)}let i={kernelName:a.SearchSorted,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../search_sorted_gpu":"2Xu5p","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2Xu5p":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SearchSortedProgram",()=>o);var a=e("@tensorflow/tfjs-core");class o{constructor(e,t,r,n){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[e,r];let s=`for (int i = 0; i < ${Math.ceil(Math.log2(t+1))}; ++i) { if (left >= right) break;`,o=2===(0,a.env)().getNumber("WEBGL_VERSION")?"while (left < right) {":s;this.userCode=` + int findBound(int batch, float value) { + int left = 0; + int right = numInputs; + int mid; + ${o} + mid = (left + right) / 2; + if (getSortedSequence(batch, mid) ${"left"===n?"<":"<="} value) { + left = mid + 1; + } else { + right = mid; + } + } + return right; + } + + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int valueIndex = coords[1]; + + float value = getValues(batch, valueIndex); + + setOutput(float(findBound(batch, value))); + } + `}}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2PWLQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"select",()=>l),s.export(r,"selectConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../select_gpu");function l(e){let{inputs:t,backend:r}=e,{condition:n,t:s,e:l}=t,i=new(0,o.SelectProgram)(n.shape.length,s.shape,s.shape.length);return r.runWebGLProgram(i,[n,s,l],(0,a.upcastType)(s.dtype,l.dtype))}let i={kernelName:a.Select,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../select_gpu":"bhoEI","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bhoEI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SelectProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r){let n,s;if(this.variableNames=["c","a","b"],this.outputShape=t,r>4)throw Error(`Where for rank ${r} is not yet supported`);if(1===r)s="resRC",n="resRC";else{let r=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[],o=[];for(let n=0;n= 1.0) { + setOutput(getA(${s})); + } else { + setOutput(getB(${s})); + } + } + `}}},{"./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9NWHQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"selu",()=>i),s.export(r,"seluConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + // Stable and Attracting Fixed Point (0, 1) for Normalized Weights. + // see: https://arxiv.org/abs/1706.02515 + float scaleAlpha = ${a.backend_util.SELU_SCALEALPHA}; + float scale = ${a.backend_util.SELU_SCALE}; + return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0); +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Selu,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6cCYC":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sigmoid",()=>p),s.export(r,"sigmoidConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=o.CHECK_NAN_SNIPPET_UNARY+` + return 1.0 / (1.0 + exp(-1.0 * x)); +`,u=` + vec4 result = 1.0 / (1.0 + exp(-1.0 * x)); + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`,p=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:u,cpuKernelImpl:l.sigmoidImplCPU}),c={kernelName:a.Sigmoid,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dp8JZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sign",()=>i),s.export(r,"signConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + if (isnan(x)) { return 0.0; } + return sign(x); +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Sign,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ct2Dv:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sin",()=>p),s.export(r,"sinConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_packed_gpu"),l=e("../kernel_utils/kernel_funcs_utils");let i=l.CHECK_NAN_SNIPPET_UNARY+` + return sin(x); +`,u=` + vec4 result = sin(x); + bvec4 isNaN = isnan(x); + ${o.CHECK_NAN_SNIPPET_PACKED} + return result; +`,p=(0,l.unaryKernelFunc)({opSnippet:i,packedOpSnippet:u}),c={kernelName:a.Sin,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../binaryop_packed_gpu":"g7FAa","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],c26Zq:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sinh",()=>i),s.export(r,"sinhConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + float e2x = exp(x); + return (e2x - 1.0 / e2x) / 2.0; +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Sinh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4j2t3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softplus",()=>i),s.export(r,"softplusConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + float epsilon = 1.1920928955078125e-7; + float threshold = log(epsilon) + 2.0; + + bool too_large = x > -threshold; + bool too_small = x < threshold; + + float result; + float exp_x = exp(x); + + if (too_large){ + result = x; + } + else if (too_small){ + result = exp_x; + } + else{ + result = log(exp_x + 1.0); + } + return result; +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Softplus,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8STND":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"spaceToBatchND",()=>u),s.export(r,"spaceToBatchNDConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("./PadV2"),l=e("./Reshape"),i=e("./Transpose");let u=e=>{let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockShape:u,paddings:p}=n;a.util.assert(s.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let c=u.reduce((e,t)=>e*t),d=[[0,0]];d.push(...p);for(let e=1+u.length;er.disposeIntermediateTensorInfo(e)),b},p={kernelName:a.SpaceToBatchND,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","./PadV2":"7yedB","./Reshape":"2Do1g","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],biy3L:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseFillEmptyRows",()=>l),s.export(r,"sparseFillEmptyRowsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r}=e,{indices:n,values:s,denseShape:a,defaultValue:l}=t;if(1!==a.shape.length)throw Error(`Dense shape must be a vector, saw: + ${a.shape}`);if(2!==n.shape.length)throw Error(`Indices must be a matrix, saw: + ${n.shape}`);if(1!==s.shape.length)throw Error(`Values must be a vector, saw: + ${s.shape}`);if(0!==l.shape.length)throw Error(`Default value must be a scalar, saw: + ${l.shape}`);let i=r.readSync(n.dataId),u=r.readSync(s.dataId),p=r.readSync(a.dataId),c=r.readSync(l.dataId)[0],[d,f,m,h,g]=(0,o.sparseFillEmptyRowsImplCPU)(i,n.shape,n.dtype,u,s.dtype,p,c);return[r.makeTensorInfo(f,n.dtype,d),r.makeTensorInfo([f[0]],s.dtype,m),r.makeTensorInfo([h.length],"bool",new Uint8Array(h.map(e=>Number(e)))),r.makeTensorInfo([g.length],n.dtype,new Int32Array(g))]}let i={kernelName:a.SparseFillEmptyRows,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jOyRx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseReshape",()=>l),s.export(r,"sparseReshapeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r}=e,{inputIndices:n,inputShape:s,newShape:a}=t;if(2!==n.shape.length)throw Error(`Input indices should be a matrix but received shape ${n.shape}`);if(1!==s.shape.length)throw Error(`Input shape should be a vector but received shape ${s.shape}`);if(1!==a.shape.length)throw Error(`Target shape should be a vector but received shape ${a.shape}`);let l=Array.from(r.readSync(s.dataId)),i=r.readSync(n.dataId),u=Array.from(r.readSync(a.dataId)),[p,c,d]=(0,o.sparseReshapeImplCPU)(i,n.shape,n.dtype,l,u);return[r.makeTensorInfo(c,n.dtype,p),r.makeTensorInfo([d.length],a.dtype,new Int32Array(d))]}let i={kernelName:a.SparseReshape,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iD0FM:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentMean",()=>l),s.export(r,"sparseSegmentMeanConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r}=e,{data:n,indices:s,segmentIds:a}=t;if(n.shape.length<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.shape.length)throw Error(`Indices should be a vector but received shape + ${s.shape}`);if(1!==a.shape.length)throw Error(`Segment ids should be a vector but received shape + ${a.shape}`);let l=r.readSync(n.dataId),i=r.readSync(s.dataId),u=r.readSync(a.dataId),[p,c]=(0,o.sparseSegmentReductionImplCPU)(l,n.shape,n.dtype,i,u,!0);return r.makeTensorInfo(c,n.dtype,p)}let i={kernelName:a.SparseSegmentMean,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1QCK1":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentSum",()=>l),s.export(r,"sparseSegmentSumConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r}=e,{data:n,indices:s,segmentIds:a}=t;if(n.shape.length<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.shape.length)throw Error(`Indices should be a vector but received shape + ${s.shape}`);if(1!==a.shape.length)throw Error(`Segment ids should be a vector but received shape + ${a.shape}`);let l=r.readSync(n.dataId),i=r.readSync(s.dataId),u=r.readSync(a.dataId),[p,c]=(0,o.sparseSegmentReductionImplCPU)(l,n.shape,n.dtype,i,u);return r.makeTensorInfo(c,n.dtype,p)}let i={kernelName:a.SparseSegmentSum,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7Aqau":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseToDense",()=>u),s.export(r,"sparseToDenseConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../scatter_gpu"),i=e("./Reshape");function u(e){let{inputs:t,backend:r,attrs:n}=e,{sparseIndices:s,sparseValues:u,defaultValue:p}=t,{outputShape:c}=n,{sliceRank:d,numUpdates:f,sliceSize:m,strides:h,outputSize:g}=a.backend_util.calculateShapes(u,s,c);if("string"===u.dtype){let e=r.bufferSync(s),t=r.bufferSync(u),n=a.util.decodeString(r.readSync(p.dataId)[0]),l=(0,o.scatterImplCPU)(e,t,c,g,m,f,d,h,n,!1);return r.makeTensorInfo(c,l.dtype,l.values)}let x=new(0,l.ScatterProgram)(f,d,s.shape.length,u.shape.length,h,[g,1],!1),v=r.runWebGLProgram(x,[u,s,p],u.dtype),y=(0,i.reshape)({inputs:{x:v},backend:r,attrs:{shape:c}});return r.disposeIntermediateTensorInfo(v),y}let p={kernelName:a.SparseToDense,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","../scatter_gpu":"86nzQ","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1NShq":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"splitV",()=>l),s.export(r,"splitVConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Slice");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{numOrSizeSplits:l,axis:i}=n,u=a.util.parseAxisParam(i,s.shape)[0],p=a.backend_util.prepareSplitSize(s,l,u),c=Array(s.shape.length).fill(0),d=s.shape.slice();return p.map(e=>{let t=[...d];t[u]=e;let n=(0,o.slice)({inputs:{x:s},backend:r,attrs:{begin:c,size:t}});return c[u]+=e,n})}let i={kernelName:a.SplitV,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Slice":"25e33","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dZ6U9:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sqrt",()=>u),s.export(r,"sqrtConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return sqrt(x);",u=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:i,cpuKernelImpl:l.sqrtImplCPU}),p={kernelName:a.Sqrt,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],deYhi:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"square",()=>o),s.export(r,"squareConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return x * x;"}),l={kernelName:a.Square,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5unPR":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"squaredDifference",()=>i),s.export(r,"squaredDifferenceConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l="return (a - b) * (a - b);",i=(0,o.binaryKernelFunc)({opSnippet:l,packedOpSnippet:l}),u={kernelName:a.SquaredDifference,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"91ayt":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"staticRegexReplace",()=>l),s.export(r,"staticRegexReplaceConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t;if("string"!==s.dtype)throw Error("Input must be of datatype string");let l=r.readSync(s.dataId),i=a.backend_util.fromUint8ToStringArray(l),u=(0,o.staticRegexReplaceImplCPU)(i,"string",n);return r.makeTensorInfo(s.shape,"string",u)}let i={kernelName:a.StaticRegexReplace,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6OAPh":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"step",()=>l),s.export(r,"stepConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../unaryop_gpu");function l({inputs:e,attrs:t,backend:r}){let{x:n}=e,s=o.CHECK_NAN_SNIPPET+` + return x > 0.0 ? 1.0 : float(${t.alpha}); + `,a=new(0,o.UnaryOpProgram)(n.shape,s);return r.runWebGLProgram(a,[n],n.dtype)}let i={kernelName:a.Step,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../unaryop_gpu":"LccPS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],haVF6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stridedSlice",()=>p),s.export(r,"stridedSliceConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../strided_slice_gpu"),i=e("./Reshape"),u=e("./Slice");function p(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:p}=r,{begin:c,end:d,strides:f,beginMask:m,endMask:h,ellipsisMask:g,newAxisMask:x,shrinkAxisMask:v}=s,{finalShapeSparse:y,finalShape:b,isIdentity:_,sliceDim0:k,isSimpleSlice:j,begin:I,end:w,strides:T}=a.slice_util.sliceInfo(p.shape,c,d,f,m,h,g,x,v);if(_)t=(0,i.reshape)({inputs:{x:p},backend:n,attrs:{shape:b}});else if(k||j){a.util.assert(p.shape.length>=1,()=>`Input must have rank at least 1, got: ${p.shape.length}`);let e=a.slice_util.computeOutShape(I,w,T),r=(0,u.slice)({inputs:{x:p},backend:n,attrs:{begin:I,size:e}});t=(0,i.reshape)({inputs:{x:r},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(r)}else if(n.shouldExecuteOnCPU([p])){let e=n.readSync(p.dataId),r=(0,a.buffer)(p.shape,p.dtype,e),s=(0,o.stridedSliceImplCPU)(y,r,T,I);t=n.makeTensorInfo(b,p.dtype,s.values)}else{let e=new(0,l.StridedSliceProgram)(I,T,y);t=n.runWebGLProgram(e,[p],p.dtype)}let N=(0,i.reshape)({inputs:{x:t},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(t),N}let c={kernelName:a.StridedSlice,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","../strided_slice_gpu":"fdsbZ","./Reshape":"2Do1g","./Slice":"25e33","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fdsbZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"StridedSliceProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r){this.variableNames=["x"],this.outputShape=r;let n=r.length,s=(0,a.getCoordsDataType)(r.length),o=(0,a.getCoordsDataType)(r.length),l="";if(1===n)l="coords * strides + begin";else{let e=0;l=r.map((t,n)=>(e++,1===r.length?`coords * strides[${n}] + begin[${n}]`:`coords[${e-1}] * strides[${n}] + begin[${n}]`)).join(",")}this.userCode=` + ${s} begin = ${s}(${e}); + ${s} strides = ${s}(${t}); + + void main() { + ${o} coords = getOutputCoords(); + setOutput(getX(${l})); + } + `}}},{"./shader_compiler":"euDKG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hsdG9:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringNGrams",()=>l),s.export(r,"stringNGramsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{separator:s,nGramWidths:a,leftPad:l,rightPad:i,padWidth:u,preserveShortSequences:p}=n,{data:c,dataSplits:d}=t,f=r.readSync(c.dataId),m=r.readSync(d.dataId),[h,g]=(0,o.stringNGramsImplCPU)(f,m,s,a,l,i,u,p);return[r.makeTensorInfo([h.length],"string",h),r.makeTensorInfo(d.shape,"int32",g)]}let i={kernelName:a.StringNGrams,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dBtFt:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringSplit",()=>l),s.export(r,"stringSplitConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{skipEmpty:s}=n,{input:a,delimiter:l}=t;if("string"!==a.dtype)throw Error("Input must be of datatype string");if(1!==a.shape.length)throw Error(`Input must be a vector, got shape: ${a.shape}`);if(0!==l.shape.length)throw Error(`Delimiter must be a scalar, got shape: ${l.shape}`);let i=r.readSync(a.dataId),u=r.readSync(l.dataId)[0],[p,c,d]=(0,o.stringSplitImplCPU)(i,u,s),f=c.length;return[r.makeTensorInfo([f,2],"int32",p),r.makeTensorInfo([f],"string",c),r.makeTensorInfo([2],"int32",new Int32Array(d))]}let i={kernelName:a.StringSplit,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],grEDz:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringToHashBucketFast",()=>l),s.export(r,"stringToHashBucketFastConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{numBuckets:s}=n,{input:a}=t;if("string"!==a.dtype)throw Error("Input must be of datatype string");if(s<=0)throw Error("Number of buckets must be at least 1");let l=r.readSync(a.dataId),i=(0,o.stringToHashBucketFastImplCPU)(l,s);return r.makeTensorInfo(a.shape,"int32",i)}let i={kernelName:a.StringToHashBucketFast,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1DxYi":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tan",()=>o),s.export(r,"tanConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return tan(x);"}),l={kernelName:a.Tan,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6x3XV":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tanh",()=>i),s.export(r,"tanhConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` + float e2x = exp(-2.0 * abs(x)); + return sign(x) * (1.0 - e2x) / (1.0 + e2x); +`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Tanh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/kernel_funcs_utils":"5WW6u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eknBm:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensorScatterUpdate",()=>i),s.export(r,"tensorScatterUpdateConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../scatter_gpu"),l=e("./Reshape");function i(e){let{inputs:t,backend:r,attrs:n}=e,{tensor:s,indices:i,updates:u}=t,{}=n,{sliceRank:p,numUpdates:c,sliceSize:d,strides:f,outputSize:m}=a.backend_util.calculateShapes(u,i,s.shape),h=[m/d,d];if(0===m)return r.makeTensorInfo(s.shape,i.dtype);let g=(0,l.reshape)({inputs:{x:i},backend:r,attrs:{shape:[c,p]}}),x=(0,l.reshape)({inputs:{x:u},backend:r,attrs:{shape:[c,d]}}),v=(0,l.reshape)({inputs:{x:s},backend:r,attrs:{shape:h}}),y=new(0,o.ScatterProgram)(c,p,g.shape.length,x.shape.length,f,h,!1,!0),b=r.runWebGLProgram(y,[x,g,v],v.dtype),_=(0,l.reshape)({inputs:{x:b},backend:r,attrs:{shape:s.shape}});return r.disposeIntermediateTensorInfo(g),r.disposeIntermediateTensorInfo(x),r.disposeIntermediateTensorInfo(v),r.disposeIntermediateTensorInfo(b),_}let u={kernelName:a.TensorScatterUpdate,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../scatter_gpu":"86nzQ","./Reshape":"2Do1g","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2QC1Z":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tile",()=>i),s.export(r,"tileConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../tile_gpu");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{reps:i}=n;if("string"===s.dtype||s.shape.length>5){let e=r.readSync(s.dataId),t="string"===s.dtype?e.map(e=>a.util.decodeString(e)):e,n=(0,a.buffer)(s.shape,s.dtype,t),l=(0,o.tileImplCPU)(n,i);return r.makeTensorInfo(l.shape,l.dtype,l.values)}let u=new(0,l.TileProgram)(s.shape,i);return r.runWebGLProgram(u,[s],s.dtype)}let u={kernelName:a.Tile,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","../tile_gpu":"9pjGL","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9pjGL":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TileProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t){this.variableNames=["A"];let r=Array(e.length);for(let n=0;n5)throw Error(`Tile for rank ${t} is not yet supported`);if(1===t)return`imod(resRC, ${e[0]})`;let r=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],n=[];for(let t=0;tm),s.export(r,"topKConfig",()=>h);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../top_k_gpu"),i=e("./Fill"),u=e("./GatherV2"),p=e("./Reshape"),c=e("./Slice");function d(e,t){null!==t&&e.disposeIntermediateTensorInfo(t)}function f(e){let t=1;for(;tx){let e=r.readSync(s.dataId),[t,n]=(0,o.topKImplCPU)(e,v,s.dtype,m,h);return[r.makeTensorInfo(t.shape,t.dtype,t.values),r.makeTensorInfo(n.shape,n.dtype,n.values)]}if(0===m)return v[v.length-1]=0,[r.makeTensorInfo(v,s.dtype,[]),r.makeTensorInfo(v,"int32",[])];if(1===y)return[s,(0,i.fill)({attrs:{shape:v,dtype:"int32",value:0},backend:r})];let b=r.texData.get(s.dataId),_=null!==b&&b.isPacked,k=_?r.unpackTensor(s):s,j=a.util.sizeFromShape(v)/y,I=(0,p.reshape)({inputs:{x:k},attrs:{shape:[j,y]},backend:r});_&&d(r,k);let w=f(m),T=f(y),N=null,S=()=>null===N?[I,I]:[I,N],C=(e,t,n)=>{let s=S(),a=new(0,l.SwapProgram)(n),o=[[y],[+(null===N)],[Number.NEGATIVE_INFINITY],[e],[t]],i=N;N=r.runWebGLProgram(a,s,"int32",o),d(r,i)};for(let e=1;e=1;r/=2)C(t,r,[j,T])}for(let e=T;e>w;e/=2){let t=S(),n=new(0,l.MergeProgram)([j,e/2]),s=[[y],[+(null===N)],[w]],a=N;N=r.runWebGLProgram(n,t,"int32",s),d(r,a);let o=w/2,i=2*o;for(let e=o;e>=1;e/=2)C(i,e,N.shape)}let E=N;N=(0,c.slice)({inputs:{x:N},backend:r,attrs:{begin:0,size:[j,m]}}),d(r,E);let F=(0,u.gatherV2)({inputs:{x:I,indices:N},backend:r,attrs:{axis:1,batchDims:1}});d(r,I);let A=v.slice(0,-1);A.push(m),E=N,N=(0,p.reshape)({inputs:{x:N},attrs:{shape:A},backend:r}),d(r,E);let R=F;return F=(0,p.reshape)({inputs:{x:F},attrs:{shape:A},backend:r}),d(r,R),[F,N]}let h={kernelName:a.TopK,backendName:"webgl",kernelFunc:m}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","../top_k_gpu":"cCvXi","./Fill":"e9rdf","./GatherV2":"4oWqG","./Reshape":"2Do1g","./Slice":"25e33","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],cCvXi:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SwapProgram",()=>a),s.export(r,"MergeProgram",()=>o);class a{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"negativeInf",type:"float"},{name:"dir",type:"int"},{name:"inc",type:"int"}],this.outputShape=e,this.userCode=` + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int elemIdx = coords[1]; + + // We compare elements pair-wise within a group of size 2 * inc. + // The comparing rule for each group alternates between ascending + // and descending. Within each group, we compare each pair at + // positions i and i+inc. To decide whether an element at position i + // is x0 or x1, we mod it by 2 * inc, if the result is smaller than + // inc, it is in the first half of the group, we denote it as x0, + // otherwise we denote it as x1. + // For example, as shown in the Bitonic top K paper referenced above, + // Figure5(a) shows that element[1] is in the + // second half of the group when group size is 2, but it is in the + // first half of the group when group size is 4. + + bool isFirstInPair = imod(elemIdx, 2 * inc) < inc; + int i = isFirstInPair ? elemIdx : elemIdx - inc; + + int i0 = firstPass == 1 ? i : int(getIndices(batch, i)); + int i1 = firstPass == 1 ? i + inc : int(getIndices(batch, i + inc)); + float x0 = i0 < n ? getX(batch, i0) : negativeInf; + float x1 = i1 < n ? getX(batch, i1) : negativeInf; + + // Denotes which direction indices are in (ascending or descending). + bool reverse = imod(elemIdx, 2 * dir) >= dir; + bool isGreater = x0 > x1 || (x0 == x1 && i1 > i0); + if (reverse == isGreater) { // Elements in opposite order of direction + int iTemp = i0; + i0 = i1; + i1 = iTemp; + } + if (isFirstInPair) { + setOutput(float(i0)); + } else { + setOutput(float(i1)); + } + } + `}}class o{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"k",type:"int"}],this.outputShape=e,this.userCode=` + void main() { + // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ... + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int elemIdx = coords[1]; + + // The output size is half of the previous size. + // If the previous sequence is | | | | _ _ _ _ | | | | _ _ _ _ (k=4), + // we only need to output the indices at positions |, the indices at + // positions _ can be thrown away, see Figure5(b) After Phase 2 + // (Merge phase) in the Bitonic Top K paper referenced above. + // For example, the paper shows we only need to output the orange bars. + // The output sequence should look like this | | | | | | | |. + // Because the sequence is halved, to map the output index back + // to the previous sequence to find the corresponding value, + // we need to double the index. When we double the index, + // we basically interpolate a position, so 2i looks like + // | _ | _ | _ | _ | _ | _ | _. We move the | to the first k position + // of each 2k positions by - elemIdx % k. E.g. for output at + // index 4,5,6,7, we want to get the corresponding element at + // original index 8,9,10,11, for output at index 8,9,10,11, + // we want to get the corresponding element at original index + // 16,17,18,19, so on and so forth. + + int i = elemIdx < k ? elemIdx : (elemIdx * 2 - imod(elemIdx, k)); + int i0 = firstPass == 1 ? i : int(getIndices(batch, i)); + int i1 = firstPass == 1 ? i + k : int(getIndices(batch, i + k)); + + float x0 = getX(batch, i0); + float x1 = i1 < n ? getX(batch, i1) : x0; + + setOutput(x0 >= x1 ? float(i0) : float(i1)); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fm65S:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transform",()=>l),s.export(r,"transformConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../transform_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{image:s,transforms:a}=t,{interpolation:l,fillMode:i,fillValue:u,outputShape:p}=n,[c,d,f,m]=s.shape,[h,g]=null!=p?p:[d,f],x=new(0,o.TransformProgram)(d,f,l,i,u,[c,h,g,m]);return r.runWebGLProgram(x,[s,a],"float32")}let i={kernelName:a.Transform,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../transform_gpu":"ffFJY","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ffFJY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TransformProgram",()=>a);class a{constructor(e,t,r,n,s,a){let o;switch(this.variableNames=["Image","Transforms"],this.outputShape=a,n){case"constant":default:o=1;break;case"reflect":o=2;break;case"wrap":o=3;break;case"nearest":o=4}this.userCode=` + float mapCoord(float outCoord, float len) { + float inCoord = outCoord; + if(${o} == 2) { + if (inCoord < 0.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz2 = 2.0 * len; + if (inCoord < sz2) { + inCoord = sz2 * float(int(float(-inCoord / sz2))) + + inCoord; + } + inCoord = inCoord < -len ? inCoord + sz2 : -inCoord - 1.0; + } + } else if (inCoord > len - 1.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz2 = 2.0 * len; + inCoord -= sz2 * float(int(float(inCoord / sz2))); + if (inCoord >= len) { + inCoord = sz2 - inCoord - 1.0; + } + } + } + return clamp(inCoord, 0.0, len - 1.0); + } else if (${o} == 3) { + if (inCoord < 0.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz = len - 1.0; + inCoord += len * (float(int(float(-inCoord / sz))) + 1.0); + } + } else if (inCoord > len - 1.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz = len - 1.0; + inCoord -= len * float(int(float(inCoord / sz))); + } + } + return clamp(inCoord, 0.0, len - 1.0); + } else if (${o} == 4) { + return clamp(outCoord, 0.0, len - 1.0); + } else { + return outCoord; + } + } + + float readWithFillValue(int batch, int coordY, int coordX, + int channel) { + float outputValue; + if (0 <= coordY && coordY < ${e} && 0 <= coordX && coordX < ${t}) { + outputValue = getImage(batch, coordY, coordX, channel); + } else { + outputValue = float(${s}); + } + return outputValue; + } + + void main() { + ivec4 coords = getOutputCoords(); + float outputValue; + int batch = coords[0]; + int x = coords[2]; + int y = coords[1]; + int channel = coords[3]; + float xf = float(x); + float yf = float(y); + float a1 = getTransforms(batch, 0); + float a2 = getTransforms(batch, 1); + float a3 = getTransforms(batch, 2); + float b1 = getTransforms(batch, 3); + float b2 = getTransforms(batch, 4); + float b3 = getTransforms(batch, 5); + float c1 = getTransforms(batch, 6); + float c2 = getTransforms(batch, 7); + float projection = c1 * xf + c2 * yf + 1.0; + if (projection == 0.0) { + outputValue = float(${s}); + } else { + float inX = (a1 * xf + a2 * yf + a3) / projection; + float inY = (b1 * xf + b2 * yf + b3) / projection; + float mapX = mapCoord(inX, float(${t})); + float mapY = mapCoord(inY, float(${e})); + + if (${"nearest"===r?1:2} == 1) { + int coordY = int(round(mapY)); + int coordX = int(round(mapX)); + outputValue = readWithFillValue(batch, coordY, coordX, + channel); + } else { + float yFloor = floor(mapY); + float xFloor = floor(mapX); + float yCeil = yFloor + 1.0; + float xCeil = xFloor + 1.0; + float valueYFloor = (xCeil - mapX) * + readWithFillValue(batch, int(yFloor), int(xFloor), channel) + + (mapX - xFloor) * + readWithFillValue(batch, int(yFloor), int(xCeil), channel); + float valueYCeil = (xCeil - mapX) * + readWithFillValue(batch, int(yCeil), int(xFloor), channel) + + (mapX - xFloor) * + readWithFillValue(batch, int(yCeil), int(xCeil), channel); + outputValue = (yCeil - mapY) * valueYFloor + + (mapY - yFloor) * valueYCeil; + } + } + setOutput(outputValue); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8c1i6":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unique",()=>i),s.export(r,"uniqueConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../webgl_util");function i(e){let{inputs:t,attrs:r,backend:n}=e,{axis:s}=r,{x:a}=t;(0,l.assertNotComplex)(a,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=n.readSync(a.dataId),{outputValues:u,outputShape:p,indices:c}=(0,o.uniqueImplCPU)(i,s,a.shape,a.dtype);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([c.length],"int32",c)]}let u={kernelName:a.Unique,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../kernel_utils/shared":"lQim5","../webgl_util":"8Bhtc","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eFQSo:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unpack",()=>i),s.export(r,"unpackConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./Reshape"),l=e("./Slice");function i(e){let{inputs:t,backend:r,attrs:n}=e,{value:s}=t,{axis:a}=n;a<0&&(a+=s.shape.length);let i=s.shape.length,u=s.shape[a],p=Array(i-1),c=0;for(let e=0;er.disposeIntermediateTensorInfo(e)),h}let u={kernelName:a.Unpack,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","./Reshape":"2Do1g","./Slice":"25e33","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"34lCk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unsortedSegmentSum",()=>c),s.export(r,"unsortedSegmentSumConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("../segment_gpu"),l=e("./Range"),i=e("./Reshape"),u=e("./Tile"),p=e("./Transpose");function c(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,segmentIds:c}=t,{numSegments:d}=n,f=s.shape.length,m=[],h=0,g=a.backend_util.getAxesPermutation([h],f),x=s;null!=g&&(x=(0,p.transpose)({inputs:{x:s},backend:r,attrs:{perm:g}}),m.push(x),h=a.backend_util.getInnerMostAxes(1,f)[0]);let v=a.backend_util.segment_util.computeOutShape(x.shape,h,d),y=a.util.sizeFromShape([x.shape[h]]),b=(0,i.reshape)({inputs:{x:x},backend:r,attrs:{shape:[-1,y]}});m.push(b);let _=(0,a.sumOutType)(s.dtype),k=(e,t,n,s,i)=>{let p=e.shape[0],c=e.shape[1],d=a.backend_util.segment_util.segOpComputeOptimalWindowSize(c,i),f=new(0,o.SegmentOpProgram)({windowSize:d,inSize:c,batchSize:p,numSegments:i},t),h=r.compileAndRun(f,[e,n],s);if(m.push(h),h.shape[1]===i)return h;let g=(0,l.range)({backend:r,attrs:{start:0,stop:i,step:1,dtype:"float32"}}),x=(0,u.tile)({inputs:{x:g},backend:r,attrs:{reps:[c/d]}});return m.push(g),m.push(x),k(h,t,x,s,i)},j=k(b,"unsortedSegmentSum",c,_,d),I=(0,i.reshape)({inputs:{x:j},backend:r,attrs:{shape:v}}),w=I;if(null!=g){m.push(I);let e=a.backend_util.getUndoAxesPermutation(g);w=(0,p.transpose)({inputs:{x:w},backend:r,attrs:{perm:e}})}return m.forEach(e=>r.disposeIntermediateTensorInfo(e)),w}let d={kernelName:a.UnsortedSegmentSum,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"biUij","../segment_gpu":"fC50C","./Range":"5tyAf","./Reshape":"2Do1g","./Tile":"2QC1Z","./Transpose":"c9udT","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fC50C:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SegmentOpProgram",()=>a);class a{constructor(e,t){this.variableNames=["x","segmentIds"];let r=e.windowSize,n=e.batchSize,s=e.inSize,a=e.numSegments,o=a*Math.ceil(s/r);this.outputShape=[n,o];let l=4*Math.floor(r/4),i=r%4,u=` + sumValue += dot(values, segFilter); + `,p="";s%r>0&&(p=` + if (inIdx < 0 || inIdx >= ${s}) { + return initializationValue; + } + `);let c="";s%r>0&&(c=` + if (inIdx < 0 || inIdx >= ${s}) { + return -1.0; + } + `),this.userCode=` + const float initializationValue = 0.0; + + float getValue(int batch, int inIdx) { + ${p} + return getX(batch, inIdx); + } + + float getSegmentIdAtIndex(int inIdx) { + ${c} + return getSegmentIds(inIdx); + } + + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int outIdx = coords[1]; + int inOffset = int(floor(float(outIdx) / float( + ${a})) * float(${r})); + int currentSeg = int(mod(float(outIdx), float(${a}))); + + float sumValue = 0.0; + + for (int i = 0; i < ${l}; i += 4) { + int inIdx = inOffset + i; + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + getValue(batch, inIdx + 3) + ); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0 + ); + + ${u} + } + + int inIdx = inOffset + ${l}; + if (${1===i}) { + vec4 values = vec4( + getValue(batch, inIdx), + initializationValue, + initializationValue, + initializationValue + ); + + int inIdxSeg = int(getSegmentIdAtIndex(inIdx)); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + 0, + 0, + 0 + ); + + ${u} + } else if (${2===i}) { + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + initializationValue, + initializationValue + ); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, + 0, + 0 + ); + + ${u} + } else if (${3===i}) { + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + initializationValue + ); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0, + 0 + ); + + ${u} + } + setOutput(sumValue); + } + `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hOvdB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r);var a=e("./base");s.exportAll(a,r),e("./register_all_kernels")},{"./base":"64q5J","./register_all_kernels":"9EOTG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"64q5J":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MathBackendCPU",()=>o.MathBackendCPU),s.export(r,"version_cpu",()=>i.version),s.export(r,"shared",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("./backend_cpu"),l=e("./shared"),i=e("./version");(0,a.registerBackend)("cpu",()=>new(0,o.MathBackendCPU),1)},{"@tensorflow/tfjs-core":"biUij","./backend_cpu":"jpjJ0","./shared":"8xYEJ","./version":"1GcQ3","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jpjJ0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MathBackendCPU",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./cpu_util");let l=a.kernel_impls.whereImpl;class i extends a.KernelBackend{nextDataId(){return i.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new(0,a.DataStorage)(this,(0,a.engine)())}write(e,t,r){this.firstUse&&(this.firstUse=!1,(0,a.env)().get("IS_NODE")&&a.backend_util.warn("\n============================\nHi, looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, visit https://github.com/tensorflow/tfjs-node for more details. \n============================"));let n={id:this.nextDataId()};return this.data.set(n,{values:e,dtype:r,refCount:1}),n}makeTensorInfo(e,t,r){let n;if("string"===t&&null!=r&&r.length>0&&a.util.isString(r[0])){let s=r.map(e=>a.util.encodeString(e));n=this.write(s,e,t)}else n=this.write(r,e,t);return{dataId:n,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,r,n,s){this.data.set(e,{values:t,dtype:n,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:r}=this.data.get(e);if("complex64"===t){let e=this.readSync(r.real.dataId),t=this.readSync(r.imag.dataId);return a.backend_util.mergeRealAndImagArrays(e,t)}return a.util.convertBackendValuesAndArrayBuffer(this.data.get(e).values,t)}bufferSync(e){let t=this.readSync(e.dataId);if("string"===e.dtype)try{let r=t.map(e=>a.util.decodeString(e));return(0,a.buffer)(e.shape,e.dtype,r)}catch(e){throw Error("Failed to decode encoded string bytes into utf-8")}return(0,a.buffer)(e.shape,e.dtype,t)}makeOutput(e,t,r){return(0,a.engine)().makeTensorFromTensorInfo(this.makeTensorInfo(t,r,e),this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;let{complexTensorInfos:r}=this.data.get(e);null!=r&&(this.disposeData(r.real.dataId,!0),this.disposeData(r.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){let t=a.util.now();return e(),{kernelMs:a.util.now()-t}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(e){(0,o.assertNotComplex)([e],"where");let t=this.readSync(e.dataId);return l(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}}i.nextDataId=0},{"@tensorflow/tfjs-core":"biUij","./cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1GcQ3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"version",()=>a);let a="4.22.0"},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9EOTG":[function(e,t,r,n){var s=e("@tensorflow/tfjs-core"),a=e("./kernels/_FusedMatMul"),o=e("./kernels/Abs"),l=e("./kernels/Acos"),i=e("./kernels/Acosh"),u=e("./kernels/Add"),p=e("./kernels/AddN"),c=e("./kernels/All"),d=e("./kernels/Any"),f=e("./kernels/ArgMax"),m=e("./kernels/ArgMin"),h=e("./kernels/Asin"),g=e("./kernels/Asinh"),x=e("./kernels/Atan"),v=e("./kernels/Atan2"),y=e("./kernels/Atanh"),b=e("./kernels/AvgPool"),_=e("./kernels/AvgPool3D"),k=e("./kernels/AvgPool3DGrad"),j=e("./kernels/AvgPoolGrad"),I=e("./kernels/BatchMatMul"),w=e("./kernels/BatchNorm"),T=e("./kernels/BatchToSpaceND"),N=e("./kernels/Bincount"),S=e("./kernels/BitwiseAnd"),C=e("./kernels/BroadcastArgs"),E=e("./kernels/Cast"),F=e("./kernels/Ceil"),A=e("./kernels/ClipByValue"),R=e("./kernels/Complex"),P=e("./kernels/ComplexAbs"),D=e("./kernels/Concat"),$=e("./kernels/Conv2D"),O=e("./kernels/Conv2DBackpropFilter"),M=e("./kernels/Conv2DBackpropInput"),W=e("./kernels/Conv3D"),B=e("./kernels/Conv3DBackpropFilterV2"),L=e("./kernels/Conv3DBackpropInputV2"),V=e("./kernels/Cos"),U=e("./kernels/Cosh"),G=e("./kernels/CropAndResize"),z=e("./kernels/Cumprod"),Q=e("./kernels/Cumsum"),q=e("./kernels/DenseBincount"),H=e("./kernels/DepthToSpace"),K=e("./kernels/DepthwiseConv2dNative"),X=e("./kernels/DepthwiseConv2dNativeBackpropFilter"),Y=e("./kernels/DepthwiseConv2dNativeBackpropInput"),J=e("./kernels/Diag"),Z=e("./kernels/Dilation2D"),ee=e("./kernels/Dilation2DBackpropFilter"),et=e("./kernels/Dilation2DBackpropInput"),er=e("./kernels/Draw"),en=e("./kernels/Einsum"),es=e("./kernels/Elu"),ea=e("./kernels/EluGrad"),eo=e("./kernels/Equal"),el=e("./kernels/Erf"),ei=e("./kernels/Exp"),eu=e("./kernels/ExpandDims"),ep=e("./kernels/Expm1"),ec=e("./kernels/FFT"),ed=e("./kernels/Fill"),ef=e("./kernels/FlipLeftRight"),em=e("./kernels/Floor"),eh=e("./kernels/FloorDiv"),eg=e("./kernels/FusedConv2D"),ex=e("./kernels/FusedDepthwiseConv2D"),ev=e("./kernels/GatherNd"),ey=e("./kernels/GatherV2"),eb=e("./kernels/Greater"),e_=e("./kernels/GreaterEqual"),ek=e("./kernels/Identity"),ej=e("./kernels/IFFT"),eI=e("./kernels/Imag"),ew=e("./kernels/IsFinite"),eT=e("./kernels/IsInf"),eN=e("./kernels/IsNaN"),eS=e("./kernels/LeakyRelu"),eC=e("./kernels/Less"),eE=e("./kernels/LessEqual"),eF=e("./kernels/LinSpace"),eA=e("./kernels/Log"),eR=e("./kernels/Log1p"),eP=e("./kernels/LogicalAnd"),eD=e("./kernels/LogicalNot"),e$=e("./kernels/LogicalOr"),eO=e("./kernels/LRN"),eM=e("./kernels/LRNGrad"),eW=e("./kernels/Max"),eB=e("./kernels/Maximum"),eL=e("./kernels/MaxPool"),eV=e("./kernels/MaxPool3D"),eU=e("./kernels/MaxPool3DGrad"),eG=e("./kernels/MaxPoolGrad"),ez=e("./kernels/MaxPoolWithArgmax"),eQ=e("./kernels/Mean"),eq=e("./kernels/Min"),eH=e("./kernels/Minimum"),eK=e("./kernels/MirrorPad"),eX=e("./kernels/Mod"),eY=e("./kernels/Multinomial"),eJ=e("./kernels/Multiply"),eZ=e("./kernels/Neg"),e0=e("./kernels/NonMaxSuppressionV3"),e1=e("./kernels/NonMaxSuppressionV4"),e2=e("./kernels/NonMaxSuppressionV5"),e3=e("./kernels/NotEqual"),e5=e("./kernels/OneHot"),e4=e("./kernels/OnesLike"),e6=e("./kernels/Pack"),e8=e("./kernels/PadV2"),e9=e("./kernels/Pow"),e7=e("./kernels/Prelu"),te=e("./kernels/Prod"),tt=e("./kernels/RaggedGather"),tr=e("./kernels/RaggedRange"),tn=e("./kernels/RaggedTensorToTensor"),ts=e("./kernels/Range"),ta=e("./kernels/Real"),to=e("./kernels/RealDiv"),tl=e("./kernels/Reciprocal"),ti=e("./kernels/Relu"),tu=e("./kernels/Relu6"),tp=e("./kernels/Reshape"),tc=e("./kernels/ResizeBilinear"),td=e("./kernels/ResizeBilinearGrad"),tf=e("./kernels/ResizeNearestNeighbor"),tm=e("./kernels/ResizeNearestNeighborGrad"),th=e("./kernels/Reverse"),tg=e("./kernels/RotateWithOffset"),tx=e("./kernels/Round"),tv=e("./kernels/Rsqrt"),ty=e("./kernels/ScatterNd"),tb=e("./kernels/SearchSorted"),t_=e("./kernels/Select"),tk=e("./kernels/Selu"),tj=e("./kernels/Sigmoid"),tI=e("./kernels/Sign"),tw=e("./kernels/Sin"),tT=e("./kernels/Sinh"),tN=e("./kernels/Slice"),tS=e("./kernels/Softmax"),tC=e("./kernels/Softplus"),tE=e("./kernels/SpaceToBatchND"),tF=e("./kernels/SparseFillEmptyRows"),tA=e("./kernels/SparseReshape"),tR=e("./kernels/SparseSegmentMean"),tP=e("./kernels/SparseSegmentSum"),tD=e("./kernels/SparseToDense"),t$=e("./kernels/SplitV"),tO=e("./kernels/Sqrt"),tM=e("./kernels/Square"),tW=e("./kernels/SquaredDifference"),tB=e("./kernels/StaticRegexReplace"),tL=e("./kernels/Step"),tV=e("./kernels/StridedSlice"),tU=e("./kernels/StringNGrams"),tG=e("./kernels/StringSplit"),tz=e("./kernels/StringToHashBucketFast"),tQ=e("./kernels/Sub"),tq=e("./kernels/Sum"),tH=e("./kernels/Tan"),tK=e("./kernels/Tanh"),tX=e("./kernels/TensorScatterUpdate"),tY=e("./kernels/Tile"),tJ=e("./kernels/TopK"),tZ=e("./kernels/Transform"),t0=e("./kernels/Transpose"),t1=e("./kernels/Unique"),t2=e("./kernels/Unpack"),t3=e("./kernels/UnsortedSegmentSum"),t5=e("./kernels/ZerosLike");for(let e of[a._fusedMatMulConfig,o.absConfig,l.acosConfig,i.acoshConfig,u.addConfig,p.addNConfig,c.allConfig,d.anyConfig,f.argMaxConfig,m.argMinConfig,h.asinConfig,g.asinhConfig,x.atanConfig,v.atan2Config,y.atanhConfig,b.avgPoolConfig,_.avgPool3DConfig,k.avgPool3DGradConfig,j.avgPoolGradConfig,I.batchMatMulConfig,w.batchNormConfig,T.batchToSpaceNDConfig,N.bincountConfig,S.bitwiseAndConfig,C.broadcastArgsConfig,E.castConfig,F.ceilConfig,A.clipByValueConfig,R.complexConfig,P.complexAbsConfig,D.concatConfig,$.conv2DConfig,O.conv2DBackpropFilterConfig,M.conv2DBackpropInputConfig,W.conv3DConfig,B.conv3DBackpropFilterV2Config,L.conv3DBackpropInputV2Config,V.cosConfig,U.coshConfig,G.cropAndResizeConfig,z.cumprodConfig,Q.cumsumConfig,q.denseBincountConfig,H.depthToSpaceConfig,K.depthwiseConv2dNativeConfig,X.depthwiseConv2dNativeBackpropFilterConfig,Y.depthwiseConv2dNativeBackpropInputConfig,J.diagConfig,Z.dilation2DConfig,ee.dilation2DBackpropFilterConfig,et.dilation2DBackpropInputConfig,er.drawConfig,en.einsumConfig,es.eluConfig,ea.eluGradConfig,eo.equalConfig,el.erfConfig,ei.expConfig,eu.expandDimsConfig,ep.expm1Config,ec.fftConfig,ed.fillConfig,ef.flipLeftRightConfig,em.floorConfig,eh.floorDivConfig,eg.fusedConv2DConfig,ex.fusedDepthwiseConv2DConfig,ev.gatherNdConfig,ey.gatherV2Config,eb.greaterConfig,e_.greaterEqualConfig,ek.identityConfig,ej.ifftConfig,eI.imagConfig,ew.isFiniteConfig,eT.isInfConfig,eN.isNaNConfig,eS.leakyReluConfig,eC.lessConfig,eE.lessEqualConfig,eF.linSpaceConfig,eA.logConfig,eR.log1pConfig,eP.logicalAndConfig,eD.logicalNotConfig,e$.logicalOrConfig,eO.LRNConfig,eM.LRNGradConfig,eW.maxConfig,eB.maximumConfig,eL.maxPoolConfig,eV.maxPool3DConfig,eU.maxPool3DGradConfig,eG.maxPoolGradConfig,ez.maxPoolWithArgmaxConfig,eQ.meanConfig,eq.minConfig,eH.minimumConfig,eK.mirrorPadConfig,eX.modConfig,eY.multinomialConfig,eJ.multiplyConfig,eZ.negConfig,e0.nonMaxSuppressionV3Config,e1.nonMaxSuppressionV4Config,e2.nonMaxSuppressionV5Config,e3.notEqualConfig,e5.oneHotConfig,e4.onesLikeConfig,e6.packConfig,e8.padV2Config,e9.powConfig,e7.preluConfig,te.prodConfig,tt.raggedGatherConfig,tr.raggedRangeConfig,tn.raggedTensorToTensorConfig,ts.rangeConfig,ta.realConfig,to.realDivConfig,tl.reciprocalConfig,ti.reluConfig,tu.relu6Config,tp.reshapeConfig,tc.resizeBilinearConfig,td.resizeBilinearGradConfig,tf.resizeNearestNeighborConfig,tm.resizeNearestNeighborGradConfig,th.reverseConfig,tg.rotateWithOffsetConfig,tx.roundConfig,tv.rsqrtConfig,ty.scatterNdConfig,tb.searchSortedConfig,t_.selectConfig,tk.seluConfig,tj.sigmoidConfig,tI.signConfig,tw.sinConfig,tT.sinhConfig,tN.sliceConfig,tS.softmaxConfig,tC.softplusConfig,tE.spaceToBatchNDConfig,tF.sparseFillEmptyRowsConfig,tA.sparseReshapeConfig,tR.sparseSegmentMeanConfig,tP.sparseSegmentSumConfig,tD.sparseToDenseConfig,t$.splitVConfig,tO.sqrtConfig,tM.squareConfig,tW.squaredDifferenceConfig,tB.staticRegexReplaceConfig,tL.stepConfig,tV.stridedSliceConfig,tU.stringNGramsConfig,tG.stringSplitConfig,tz.stringToHashBucketFastConfig,tQ.subConfig,tq.sumConfig,tH.tanConfig,tK.tanhConfig,tX.tensorScatterUpdateConfig,tY.tileConfig,tJ.topKConfig,tZ.transformConfig,t0.transposeConfig,t1.uniqueConfig,t2.unpackConfig,t3.unsortedSegmentSumConfig,t5.zerosLikeConfig])(0,s.registerKernel)(e)},{"@tensorflow/tfjs-core":"biUij","./kernels/_FusedMatMul":"Fk37D","./kernels/Abs":"l1fu2","./kernels/Acos":"5VEd4","./kernels/Acosh":"b84lp","./kernels/Add":"1JfHj","./kernels/AddN":"6nzKX","./kernels/All":"2rsUF","./kernels/Any":"gFVsm","./kernels/ArgMax":"57HHQ","./kernels/ArgMin":"9McgA","./kernels/Asin":"fN54S","./kernels/Asinh":"gfdKx","./kernels/Atan":"1rRFg","./kernels/Atan2":"dSlnZ","./kernels/Atanh":"7AqYq","./kernels/AvgPool":"lnXJr","./kernels/AvgPool3D":"5EgHg","./kernels/AvgPool3DGrad":"61bpN","./kernels/AvgPoolGrad":"3XHe7","./kernels/BatchMatMul":"d9KMZ","./kernels/BatchNorm":"lHPc4","./kernels/BatchToSpaceND":"gQ1kN","./kernels/Bincount":"7JaDV","./kernels/BitwiseAnd":"jaEPk","./kernels/BroadcastArgs":"dxlnS","./kernels/Cast":"cMwEt","./kernels/Ceil":"9E97z","./kernels/ClipByValue":"7rJsa","./kernels/Complex":"iqjKD","./kernels/ComplexAbs":"gE0Mq","./kernels/Concat":"hyLXC","./kernels/Conv2D":"hzyQd","./kernels/Conv2DBackpropFilter":"39TtF","./kernels/Conv2DBackpropInput":"bGQaK","./kernels/Conv3D":"8PeVU","./kernels/Conv3DBackpropFilterV2":"cqOvE","./kernels/Conv3DBackpropInputV2":"4HOac","./kernels/Cos":"6Lnfw","./kernels/Cosh":"b5PVs","./kernels/CropAndResize":"5J4XN","./kernels/Cumprod":"f3kx5","./kernels/Cumsum":"RioKC","./kernels/DenseBincount":"4qnDM","./kernels/DepthToSpace":"9VHVI","./kernels/DepthwiseConv2dNative":"hmHEE","./kernels/DepthwiseConv2dNativeBackpropFilter":"cjk6x","./kernels/DepthwiseConv2dNativeBackpropInput":"7wT3F","./kernels/Diag":"3JK4S","./kernels/Dilation2D":"ffWm6","./kernels/Dilation2DBackpropFilter":"bcDl4","./kernels/Dilation2DBackpropInput":"8501X","./kernels/Draw":"f8VnK","./kernels/Einsum":"glqva","./kernels/Elu":"3z4EC","./kernels/EluGrad":"6X5Ul","./kernels/Equal":"hGYXP","./kernels/Erf":"gqzzC","./kernels/Exp":"d2WVN","./kernels/ExpandDims":"gtxdI","./kernels/Expm1":"6wCyc","./kernels/FFT":"bwwwi","./kernels/Fill":"8G2vQ","./kernels/FlipLeftRight":"49ycw","./kernels/Floor":"d8vHS","./kernels/FloorDiv":"24gWZ","./kernels/FusedConv2D":"cU37i","./kernels/FusedDepthwiseConv2D":"1KNlo","./kernels/GatherNd":"dOdTx","./kernels/GatherV2":"dSKbR","./kernels/Greater":"1ATD8","./kernels/GreaterEqual":"aNJ5D","./kernels/Identity":"bdLxl","./kernels/IFFT":"ceizA","./kernels/Imag":"e6EoH","./kernels/IsFinite":"a08wP","./kernels/IsInf":"94AkQ","./kernels/IsNaN":"dpzCA","./kernels/LeakyRelu":"6Kjso","./kernels/Less":"8Tr8X","./kernels/LessEqual":"kA9T4","./kernels/LinSpace":"4VJty","./kernels/Log":"cZeHh","./kernels/Log1p":"a7xiG","./kernels/LogicalAnd":"1NhiJ","./kernels/LogicalNot":"NHJ8x","./kernels/LogicalOr":"eTk4U","./kernels/LRN":"5HgVT","./kernels/LRNGrad":"lGWHu","./kernels/Max":"2jSAF","./kernels/Maximum":"9lCQT","./kernels/MaxPool":"cSUpf","./kernels/MaxPool3D":"fLuEK","./kernels/MaxPool3DGrad":"78uii","./kernels/MaxPoolGrad":"b5hfv","./kernels/MaxPoolWithArgmax":"8bYQt","./kernels/Mean":"53jlm","./kernels/Min":"aBv4l","./kernels/Minimum":"31JS7","./kernels/MirrorPad":"bNCDt","./kernels/Mod":"1szcc","./kernels/Multinomial":"bYw6t","./kernels/Multiply":"dvGJ0","./kernels/Neg":"iuSgJ","./kernels/NonMaxSuppressionV3":"hn7XJ","./kernels/NonMaxSuppressionV4":"fJHJc","./kernels/NonMaxSuppressionV5":"9OSbH","./kernels/NotEqual":"3Xx4N","./kernels/OneHot":"iaBfp","./kernels/OnesLike":"ehLLx","./kernels/Pack":"au22V","./kernels/PadV2":"eqxgc","./kernels/Pow":"gJsYY","./kernels/Prelu":"eRHHo","./kernels/Prod":"4VmTK","./kernels/RaggedGather":"5kWLJ","./kernels/RaggedRange":"bkwKj","./kernels/RaggedTensorToTensor":"hkBd0","./kernels/Range":"dIyXK","./kernels/Real":"bLoe4","./kernels/RealDiv":"ZONlP","./kernels/Reciprocal":"d8MTu","./kernels/Relu":"8L9W3","./kernels/Relu6":"954yw","./kernels/Reshape":"gdyYW","./kernels/ResizeBilinear":"2yL6g","./kernels/ResizeBilinearGrad":"ds0Ve","./kernels/ResizeNearestNeighbor":"gVkI2","./kernels/ResizeNearestNeighborGrad":"g7quM","./kernels/Reverse":"3pDzx","./kernels/RotateWithOffset":"iMYaS","./kernels/Round":"4NENY","./kernels/Rsqrt":"4j1GM","./kernels/ScatterNd":"3ihOs","./kernels/SearchSorted":"5lVnK","./kernels/Select":"8bLgQ","./kernels/Selu":"c843Y","./kernels/Sigmoid":"8bByZ","./kernels/Sign":"jWrc0","./kernels/Sin":"g3CCU","./kernels/Sinh":"8kEME","./kernels/Slice":"dHddY","./kernels/Softmax":"hvkGj","./kernels/Softplus":"6OJKi","./kernels/SpaceToBatchND":"knIdy","./kernels/SparseFillEmptyRows":"ft3WI","./kernels/SparseReshape":"fvimw","./kernels/SparseSegmentMean":"jt8fg","./kernels/SparseSegmentSum":"4W4rq","./kernels/SparseToDense":"gNkA2","./kernels/SplitV":"hlKME","./kernels/Sqrt":"45xsA","./kernels/Square":"csjoO","./kernels/SquaredDifference":"4q6UK","./kernels/StaticRegexReplace":"6lMX2","./kernels/Step":"i1YBD","./kernels/StridedSlice":"2rqzs","./kernels/StringNGrams":"30Jsy","./kernels/StringSplit":"1Ko5Y","./kernels/StringToHashBucketFast":"iHsXF","./kernels/Sub":"5EzoO","./kernels/Sum":"jeTUE","./kernels/Tan":"6VGWn","./kernels/Tanh":"kUHbY","./kernels/TensorScatterUpdate":"h8wzB","./kernels/Tile":"5w8Av","./kernels/TopK":"fceZ4","./kernels/Transform":"VkSQG","./kernels/Transpose":"3cgqd","./kernels/Unique":"XBUgl","./kernels/Unpack":"a4FH4","./kernels/UnsortedSegmentSum":"lDm8A","./kernels/ZerosLike":"ioFSD"}],Fk37D:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"_fusedMatMul",()=>u),s.export(r,"_fusedMatMulConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/fused_utils"),l=e("./Add"),i=e("./BatchMatMul");function u(e){let t,r,n,{inputs:s,backend:a,attrs:u}=e,{a:p,b:c,bias:d,preluActivationWeights:f}=s,{transposeA:m,transposeB:h,activation:g,leakyreluAlpha:x}=u,v=[];for(let e of(t=(0,i.batchMatMul)({inputs:{a:p,b:c},attrs:{transposeA:m,transposeB:h},backend:a}),d&&(r=(0,l.add)({inputs:{a:t,b:d},backend:a}),v.push(t),t=r),g&&(n=(0,o.applyActivation)(a,t,g,f,x),v.push(t),t=n),v))a.disposeIntermediateTensorInfo(e);return t}let p={kernelName:a._FusedMatMul,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/fused_utils":"3crDv","./Add":"1JfHj","./BatchMatMul":"d9KMZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3crDv":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"applyActivation",()=>d);var a=e("../kernels/Elu"),o=e("../kernels/Identity"),l=e("../kernels/LeakyRelu"),i=e("../kernels/Prelu"),u=e("../kernels/Relu"),p=e("../kernels/Relu6"),c=e("../kernels/Sigmoid");function d(e,t,r,n,s){if("linear"===r)return(0,o.identity)({inputs:{x:t},backend:e});if("relu"===r)return(0,u.relu)({inputs:{x:t},backend:e});if("elu"===r)return(0,a.elu)({inputs:{x:t},backend:e});if("relu6"===r)return(0,p.relu6)({inputs:{x:t},backend:e});if("prelu"===r)return(0,i.prelu)({inputs:{x:t,alpha:n},backend:e});else if("leakyrelu"===r)return(0,l.leakyRelu)({inputs:{x:t},backend:e,attrs:{alpha:s}});else if("sigmoid"===r)return(0,c.sigmoid)({inputs:{x:t},backend:e});throw Error(`Activation ${r} has not been implemented for the CPU backend.`)}},{"../kernels/Elu":"3z4EC","../kernels/Identity":"bdLxl","../kernels/LeakyRelu":"6Kjso","../kernels/Prelu":"eRHHo","../kernels/Relu":"8L9W3","../kernels/Relu6":"954yw","../kernels/Sigmoid":"8bByZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3z4EC":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"elu",()=>o),s.export(r,"eluConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Elu,e=>e>=0?e:Math.exp(e)-1),l={kernelName:a.Elu,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6Kjso":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"leakyRelu",()=>l),s.export(r,"leakyReluConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{alpha:l}=n;(0,o.assertNotComplex)([s],"leakyRelu");let i=a.util.sizeFromShape(s.shape),u=r.data.get(s.dataId).values,p=a.util.getTypedArrayFromDType("float32",i);for(let e=0;ei),s.export(r,"preluConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");let l=(0,e("../utils/binary_impl").createSimpleBinaryKernelImpl)((e,t)=>e<0?t*e:e);function i(e){let{inputs:t,backend:r}=e,{x:n,alpha:s}=t;(0,o.assertNotComplex)([n,s],"prelu");let a=r.data.get(n.dataId).values,i=r.data.get(s.dataId).values,[u,p]=l(n.shape,s.shape,a,i,"float32");return r.makeTensorInfo(p,"float32",u)}let u={kernelName:a.Prelu,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","../utils/binary_impl":"1mxo2","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8L9W3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu",()=>o),s.export(r,"reluConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Relu,e=>Math.max(0,e)),l={kernelName:a.Relu,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"954yw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu6",()=>o),s.export(r,"relu6Config",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Relu6,e=>Math.min(Math.max(0,e),6)),l={kernelName:a.Relu6,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],d9KMZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchMatMul",()=>i),s.export(r,"batchMatMulConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape");function i(e){let{inputs:t,backend:r,attrs:n}=e,{a:s,b:i}=t,{transposeA:u,transposeB:p}=n;(0,o.assertNotComplex)([s,i],"matMul");let c=s.shape.length,d=i.shape.length,f=u?s.shape[c-2]:s.shape[c-1],m=p?i.shape[d-1]:i.shape[d-2],h=u?s.shape[c-1]:s.shape[c-2],g=p?i.shape[d-2]:i.shape[d-1],x=s.shape.slice(0,-2),v=i.shape.slice(0,-2),y=a.util.sizeFromShape(x),b=a.util.sizeFromShape(v),_=a.broadcast_util.assertAndGetBroadcastShape(s.shape.slice(0,-2),i.shape.slice(0,-2)).concat([h,g]);a.util.assert(f===m,()=>`Error in matMul: inner shapes (${f}) and (${m}) of Tensors with shapes ${s.shape} and ${i.shape} and transposeA=${u} and transposeB=${p} must match.`);let k=(0,l.reshape)({inputs:{x:s},backend:r,attrs:{shape:u?[y,f,h]:[y,h,f]}}),j=(0,l.reshape)({inputs:{x:i},backend:r,attrs:{shape:p?[b,g,m]:[b,m,g]}}),I=u?k.shape[1]:k.shape[2],w=u?k.shape[2]:k.shape[1],T=p?j.shape[1]:j.shape[2],N=Math.max(y,b),S=r.data.get(k.dataId).values,C=r.data.get(j.dataId).values,E=a.util.computeStrides(k.shape),F=a.util.computeStrides(j.shape),[A,R,P]=u?[E[0],1,E[1]]:[E[0],E[1],1],[D,$,O]=p?[1,F[1],F[0]]:[F[1],1,F[0]],M=w*T,W=(0,a.buffer)([N,w,T],k.dtype),B=W.values,L=r.blockSize;for(let e=0;eo),s.export(r,"reshapeConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{shape:o}=n,l=a.util.sizeFromShape(s.shape),i=a.util.inferFromImplicitShape(o,l),u=a.util.sizeFromShape(i);a.util.assert(l===u,()=>`The new shape (${i}) has ${u} elements and the old shape (${s.shape}) has ${l} elements. The new shape and old shape must have the same number of elements.`),r.incRef(s.dataId);let p=r.data.get(s.dataId);if(null!=p.complexTensorInfos){let e=p.complexTensorInfos.real,t=p.complexTensorInfos.imag;e.shape=i,t.shape=i}return{dataId:s.dataId,shape:i,dtype:s.dtype}}let l={kernelName:a.Reshape,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5VEd4":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acos",()=>o),s.export(r,"acosConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Acos,e=>Math.acos(e)),l={kernelName:a.Acos,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],b84lp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acosh",()=>o),s.export(r,"acoshConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Acosh,e=>Math.acosh(e)),l={kernelName:a.Acosh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6nzKX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addN",()=>l),s.export(r,"addNConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r}=e;(0,o.assertNotComplex)(t,"addN");let n=t.map(e=>r.data.get(e.dataId).values),s=(0,a.buffer)(t[0].shape,t[0].dtype),l=s.values;for(let e=0;eu),s.export(r,"allConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape"),i=e("./Transpose");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:u,keepDims:p}=n;(0,o.assertNotComplex)(s,"all");let c=a.util.parseAxisParam(u,s.shape),d=c,f=a.backend_util.getAxesPermutation(d,s.shape.length),m=s;null!=f&&(m=(0,i.transpose)({inputs:{x:s},backend:r,attrs:{perm:f}}),d=a.backend_util.getInnerMostAxes(d.length,s.shape.length)),a.backend_util.assertAxesAreInnerMostDims("all",d,m.shape.length);let[h,g]=a.backend_util.computeOutAndReduceShapes(m.shape,d),x=a.util.sizeFromShape(g),v=a.util.makeZerosTypedArray(a.util.sizeFromShape(h),m.dtype),y=r.data.get(m.dataId).values;for(let e=0;eu),s.export(r,"anyConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape"),i=e("./Transpose");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:u,keepDims:p}=n;(0,o.assertNotComplex)(s,"any");let c=a.util.parseAxisParam(u,s.shape),d=c,f=a.backend_util.getAxesPermutation(d,s.shape.length),m=s;null!=f&&(m=(0,i.transpose)({inputs:{x:s},backend:r,attrs:{perm:f}}),d=a.backend_util.getInnerMostAxes(d.length,s.shape.length)),a.backend_util.assertAxesAreInnerMostDims("any",d,m.shape.length);let[h,g]=a.backend_util.computeOutAndReduceShapes(m.shape,d),x=a.util.sizeFromShape(g),v=a.util.makeZerosTypedArray(a.util.sizeFromShape(h),m.dtype),y=r.data.get(m.dataId).values;for(let e=0;ei),s.export(r,"argMaxConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i}=n;(0,o.assertNotComplex)(s,"argMax");let u=a.util.parseAxisParam(i,s.shape),p=a.backend_util.getAxesPermutation(u,s.shape.length),c=s,d=[];null!=p&&(d.push(c=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:p}})),u=a.backend_util.getInnerMostAxes(u.length,c.shape.length)),u=[u[0]],a.backend_util.assertAxesAreInnerMostDims("argMax",u,c.shape.length);let[f,m]=a.backend_util.computeOutAndReduceShapes(c.shape,u),h=a.util.sizeFromShape(f),g=a.util.makeZerosTypedArray(h,"int32"),x=a.util.sizeFromShape(m),v=r.data.get(c.dataId).values;for(let e=0;er&&(r=s,n=e)}g[e]=n}return d.forEach(e=>r.disposeIntermediateTensorInfo(e)),r.makeTensorInfo(f,"int32",g)}let u={kernelName:a.ArgMax,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./Transpose":"3cgqd","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9McgA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMin",()=>i),s.export(r,"argMinConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i}=n;(0,o.assertNotComplex)(s,"argMin");let u=a.util.parseAxisParam(i,s.shape),p=a.backend_util.getAxesPermutation(u,s.shape.length),c=s,d=[];null!=p&&(d.push(c=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:p}})),u=a.backend_util.getInnerMostAxes(u.length,c.shape.length)),u=[u[0]],a.backend_util.assertAxesAreInnerMostDims("argMin",u,c.shape.length);let[f,m]=a.backend_util.computeOutAndReduceShapes(c.shape,u),h=a.util.sizeFromShape(f),g=a.util.makeZerosTypedArray(h,"int32"),x=a.util.sizeFromShape(m),v=r.data.get(c.dataId).values;for(let e=0;er.disposeIntermediateTensorInfo(e)),r.makeTensorInfo(f,"int32",g)}let u={kernelName:a.ArgMin,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./Transpose":"3cgqd","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fN54S:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asin",()=>o),s.export(r,"asinConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Asin,e=>Math.asin(e)),l={kernelName:a.Asin,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gfdKx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asinh",()=>o),s.export(r,"asinhConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Asinh,e=>Math.asinh(e)),l={kernelName:a.Asinh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1rRFg":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan",()=>o),s.export(r,"atanConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Atan,e=>Math.atan(e)),l={kernelName:a.Atan,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dSlnZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan2Impl",()=>i),s.export(r,"atan2",()=>u),s.export(r,"atan2Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>Math.atan2(e,t)),u=(0,l.binaryKernelFunc)(a.Atan2,i),p={kernelName:a.Atan2,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7AqYq":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atanh",()=>o),s.export(r,"atanhConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Atanh,e=>Math.atanh(e)),l={kernelName:a.Atanh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lnXJr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool",()=>u),s.export(r,"avgPoolConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils"),i=e("./Identity");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u}=r;(0,o.assertNotComplex)(u,"avgPool");let{filterSize:p,strides:c,pad:d,dimRoundingMode:f}=s;a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(c,1),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${c} and dilations '1'`);let m=a.backend_util.computePool2DInfo(u.shape,p,c,1,d,f);if(1===m.filterWidth&&1===m.filterHeight&&a.util.arraysEqual(m.inShape,m.outShape))t=(0,i.identity)({inputs:{x:u},backend:n});else{let e=n.data.get(u.dataId).values,r=a.util.computeStrides(u.shape),s=(0,l.pool)(e,u.shape,u.dtype,r,m,"avg");t=n.makeTensorInfo(m.outShape,u.dtype,s.values)}return t}let p={kernelName:a.AvgPool,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","../utils/pool_utils":"5iT7r","./Identity":"bdLxl","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5iT7r":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pool",()=>o),s.export(r,"maxPoolPositions",()=>l),s.export(r,"pool3d",()=>i),s.export(r,"maxPool3dPositions",()=>u);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o){let l=s.strideHeight,i=s.strideWidth,u=s.dilationHeight,p=s.dilationWidth,c=s.effectiveFilterHeight,d=s.effectiveFilterWidth,f=s.padInfo.top,m=s.padInfo.left,h="max"===o?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,g=(0,a.buffer)(s.outShape,r),x=g.values,v=s.outShape[1]*s.outShape[2]*s.outShape[3],y=s.outShape[2]*s.outShape[3],b=s.outShape[3];for(let t=0;tg?g=a:"avg"===o&&(v+=a,y++)}if(isNaN(g))break}x[j+r*b+t]="avg"===o?v/y:g}}}return g}function l(e,t,r,n,s=!1,o=!1){let i=(0,a.buffer)(n.outShape,"int32"),u=n.strideHeight,p=n.strideWidth,c=n.dilationHeight,d=n.dilationWidth,f=n.effectiveFilterHeight,m=n.effectiveFilterWidth,h=n.padInfo.top,g=n.padInfo.left,x=(0,a.buffer)(t,r,e);for(let e=0;eb&&(b=u,_=s?o?((e*n.inHeight+r)*n.inWidth+a)*n.inChannels+t:(r*n.inWidth+a)*n.inChannels+t:l*m+i)}}i.set(_,e,r,u,t)}}return i}function i(e,t,r,n,s,o){let l=s.strideDepth,i=s.strideHeight,u=s.strideWidth,p=s.dilationDepth,c=s.dilationHeight,d=s.dilationWidth,f=s.effectiveFilterDepth,m=s.effectiveFilterHeight,h=s.effectiveFilterWidth,g=s.padInfo.front,x=s.padInfo.top,v=s.padInfo.left,y="max"===o?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,b=(0,a.buffer)(s.outShape,r),_=b.values,k=s.outShape[1]*s.outShape[2]*s.outShape[3]*s.outShape[4],j=s.outShape[2]*s.outShape[3]*s.outShape[4],I=s.outShape[3]*s.outShape[4],w=s.outShape[4];for(let t=0;tk?k=s:"avg"===o&&(j+=s,I++),isNaN(k))break}if(isNaN(k))break}if(isNaN(k))break}_[x+t]="avg"===o?j/Math.max(I,1):k}}}}return b}function u(e,t){let r=(0,a.buffer)(t.outShape,"int32"),n=t.strideDepth,s=t.strideHeight,o=t.strideWidth,l=t.dilationDepth,i=t.dilationHeight,u=t.dilationWidth,p=t.effectiveFilterDepth,c=t.effectiveFilterHeight,d=t.effectiveFilterWidth,f=t.padInfo.front,m=t.padInfo.top,h=t.padInfo.left;for(let a=0;a=I&&(I=i,w=r*c*d+s*c+l)}}}r.set(w,a,x,n,s,g)}}}return r}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5EgHg":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool3D",()=>i),s.export(r,"avgPool3DConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{filterSize:i,strides:u,pad:p,dimRoundingMode:c,dataFormat:d}=n;(0,o.assertNotComplex)(s,"avgPool3d");let f=a.backend_util.computePool3DInfo(s.shape,i,u,1,p,c,d),m=r.data.get(s.dataId).values,h=(0,l.pool3d)(m,s.shape,s.dtype,a.util.computeStrides(s.shape),f,"avg");return r.makeTensorInfo(h.shape,"float32",h.values)}let u={kernelName:a.AvgPool3D,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","../utils/pool_utils":"5iT7r","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"61bpN":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool3DGrad",()=>l),s.export(r,"avgPool3DGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:l}=t,{filterSize:i,strides:u,pad:p,dimRoundingMode:c}=n;(0,o.assertNotComplex)([s,l],"avgPool3DGrad");let d=a.backend_util.computePool3DInfo(l.shape,i,u,1,p,c),f=d.strideDepth,m=d.strideHeight,h=d.strideWidth,g=d.filterDepth,x=d.filterHeight,v=d.filterWidth,y=d.dilationDepth,b=d.dilationHeight,_=d.dilationWidth,k=d.effectiveFilterDepth,j=d.effectiveFilterHeight,I=d.effectiveFilterWidth,w=k-1-d.padInfo.front,T=I-1-d.padInfo.left,N=j-1-d.padInfo.top,S=(0,a.buffer)(l.shape,"float32"),C=1/(g*x*v),E=r.bufferSync(s);for(let e=0;e=d.outDepth)&&Math.floor(n)===n)for(let r=0;r=d.outHeight)&&Math.floor(s)===s)for(let r=0;r=d.outWidth||Math.floor(a)!==a||(i+=E.get(e,n,s,a,t))}}}S.set(i*C,e,r,n,s,t)}return r.makeTensorInfo(S.shape,S.dtype,S.values)}let i={kernelName:a.AvgPool3DGrad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3XHe7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPoolGrad",()=>l),s.export(r,"avgPoolGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:l}=t;(0,o.assertNotComplex)([s,l],"avgPoolGrad");let{filterSize:i,strides:u,pad:p}=n,c=a.backend_util.computePool2DInfo(l.shape,i,u,1,p),d=c.strideHeight,f=c.strideWidth,m=c.filterHeight,h=c.filterWidth,g=c.dilationHeight,x=c.dilationWidth,v=c.effectiveFilterHeight,y=c.effectiveFilterWidth,b=y-1-c.padInfo.left,_=v-1-c.padInfo.top,k=(0,a.buffer)(l.shape,"float32"),j=1/(m*h),I=r.data.get(s.dataId).values,w=(0,a.buffer)(s.shape,"float32",I);for(let e=0;e=c.outHeight)&&Math.floor(n)===n)for(let r=0;r=c.outWidth||Math.floor(s)!==s||(o+=w.get(e,n,s,t))}}k.set(o*j,e,r,n,t)}return r.makeTensorInfo(k.shape,k.dtype,k.values)}let i={kernelName:a.AvgPoolGrad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lHPc4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm",()=>l),s.export(r,"batchNormConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,scale:l,offset:i,mean:u,variance:p}=t;a.util.assert(u.shape.length===p.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),a.util.assert(null==i||u.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),a.util.assert(null==l||u.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),(0,o.assertNotComplex)([s,u,p,l,i],"batchNorm");let{varianceEpsilon:c}=n;null==c&&(c=.001);let d=r.data.get(s.dataId).values,f=r.data.get(u.dataId).values,m=r.data.get(p.dataId).values,h=l?r.data.get(l.dataId).values:new Float32Array([1]),g=i?r.data.get(i.dataId).values:new Float32Array([0]),x=new Float32Array(d.length),v=g.length,y=h.length,b=m.length,_=f.length,k=0,j=0,I=0,w=0;for(let e=0;e=v&&(k=0),j>=_&&(j=0),I>=y&&(I=0),w>=b&&(w=0);return r.makeTensorInfo(s.shape,s.dtype,x)}let i={kernelName:a.FusedBatchNorm,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gQ1kN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchToSpaceND",()=>p),s.export(r,"batchToSpaceNDConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape"),i=e("./Slice"),u=e("./Transpose");function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockShape:p,crops:c}=n;(0,o.assertNotComplex)([s],"batchToSpaceND");let d=p.reduce((e,t)=>e*t),f=a.backend_util.getReshaped(s.shape,p,d),m=a.backend_util.getPermuted(f.length,p.length),h=a.backend_util.getReshapedPermuted(s.shape,p,d),g=a.backend_util.getSliceBeginCoords(c,p.length),x=a.backend_util.getSliceSize(h,c,p.length),v=(0,l.reshape)({inputs:{x:s},backend:r,attrs:{shape:f}}),y=(0,u.transpose)({inputs:{x:v},backend:r,attrs:{perm:m}}),b=(0,l.reshape)({inputs:{x:y},backend:r,attrs:{shape:h}}),_=(0,i.slice)({inputs:{x:b},backend:r,attrs:{begin:g,size:x}});return r.disposeIntermediateTensorInfo(v),r.disposeIntermediateTensorInfo(y),r.disposeIntermediateTensorInfo(b),_}let c={kernelName:a.BatchToSpaceND,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./Reshape":"gdyYW","./Slice":"dHddY","./Transpose":"3cgqd","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7JaDV":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bincount",()=>l),s.export(r,"bincountConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Bincount_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,weights:a}=t,{size:l}=n,i=r.data.get(s.dataId).values,u=r.data.get(a.dataId).values,p=(0,o.bincountImpl)(i,u,a.dtype,a.shape,l);return r.makeTensorInfo([l],a.dtype,p)}let i={kernelName:a.Bincount,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Bincount_impl":"ceVxB","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dxlnS:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"broadcastArgs",()=>o),s.export(r,"broadcastArgsConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r}=e,{s0:n,s1:s}=t,o=r.data.get(n.dataId).values,l=r.data.get(s.dataId).values,i=a.backend_util.assertAndGetBroadcastShape(Array.from(o),Array.from(l));return r.makeTensorInfo([i.length],"int32",Int32Array.from(i))}let l={kernelName:a.BroadcastArgs,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"7rJsa":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"clipByValue",()=>o),s.export(r,"clipByValueConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.ClipByValue,(e,t)=>e>t.clipValueMax?t.clipValueMax:eo),s.export(r,"complexAbsConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=e=>{let{x:t}=e.inputs,r=e.backend,n=new Float32Array(a.util.sizeFromShape(t.shape)),s=r.data.get(t.dataId),o=s.complexTensorInfos.real,l=s.complexTensorInfos.imag,i=r.data.get(o.dataId).values,u=r.data.get(l.dataId).values;for(let e=0;ed),s.export(r,"concatConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("./Complex"),l=e("./Concat_impl"),i=e("./Identity"),u=e("./Imag"),p=e("./Real"),c=e("./Reshape");function d(e){let{inputs:t,backend:r,attrs:n}=e,{axis:s}=n,f=a.util.parseAxisParam(s,t[0].shape)[0],m=t.map(e=>e.shape);a.backend_util.assertParamsConsistent(m,f);let h=a.backend_util.computeOutShape(t.map(e=>e.shape),f);if(0===a.util.sizeFromShape(h))return r.makeTensorInfo(h,t[0].dtype,[]);let g=t.filter(e=>a.util.sizeFromShape(e.shape)>0);if(1===g.length)return(0,i.identity)({inputs:{x:g[0]},backend:r});if("complex64"===g[0].dtype){let e=g.map(e=>(0,p.real)({inputs:{input:e},backend:r})),t=g.map(e=>(0,u.imag)({inputs:{input:e},backend:r})),n=d({inputs:e,backend:r,attrs:{axis:f}}),s=d({inputs:t,backend:r,attrs:{axis:f}}),a=(0,o.complex)({inputs:{real:n,imag:s},backend:r});return e.forEach(e=>r.disposeIntermediateTensorInfo(e)),t.forEach(e=>r.disposeIntermediateTensorInfo(e)),r.disposeIntermediateTensorInfo(n),r.disposeIntermediateTensorInfo(s),a}let x=g.map(e=>{let t=a.util.sizeFromShape(e.shape.slice(f));return(0,c.reshape)({inputs:{x:e},backend:r,attrs:{shape:[-1,t]}})}),v=x.map(e=>({vals:r.data.get(e.dataId).values,shape:e.shape}));h=a.backend_util.computeOutShape(x.map(e=>e.shape),1);let y=1===x[0].shape[0],b=(0,l.concatImpl)(v,h,t[0].dtype,y),_=a.backend_util.computeOutShape(g.map(e=>e.shape),f),k=r.makeTensorInfo(_,t[0].dtype,b);return x.forEach(e=>r.disposeIntermediateTensorInfo(e)),k}let f={kernelName:a.Concat,backendName:"cpu",kernelFunc:d}},{"@tensorflow/tfjs-core":"biUij","./Complex":"iqjKD","./Concat_impl":"8toKD","./Identity":"bdLxl","./Imag":"e6EoH","./Real":"bLoe4","./Reshape":"gdyYW","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],e6EoH:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r}=e,{input:n}=t,s=r.data.get(n.dataId).complexTensorInfos.imag,a=r.data.get(s.dataId).values;return r.makeTensorInfo(s.shape,s.dtype,a)}s.defineInteropFlag(r),s.export(r,"imag",()=>a),s.export(r,"imagConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Imag,backendName:"cpu",kernelFunc:a}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hzyQd:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2D",()=>l),s.export(r,"conv2DConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:l}=t,{strides:i,pad:u,dataFormat:p,dilations:c,dimRoundingMode:d}=n;(0,o.assertNotComplex)([s,l],"conv2d");let f=a.backend_util.convertConv2DDataFormat(p),m=a.backend_util.computeConv2DInfo(s.shape,l.shape,i,c,u,d,!1,f),h=m.filterHeight,g=m.filterWidth,x=m.dilationHeight,v=m.dilationWidth,y=m.padInfo.left,b=m.padInfo.top,_="channelsLast"===m.dataFormat,k=new(0,a.TensorBuffer)(m.outShape,s.dtype),j=a.util.computeStrides(s.shape),I=a.util.computeStrides(l.shape),w=j[0],T=_?j[1]:j[2],N=_?j[2]:1,S=_?1:j[1],C=k.strides[0],E=_?k.strides[1]:k.strides[2],F=_?k.strides[2]:1,A=_?1:k.strides[1],R=r.data.get(s.dataId).values,P=r.data.get(l.dataId).values,D=k.values;for(let e=0;e=m.inHeight)continue;let a=e*I[0],o=t+r*T;for(let e=0;e=m.inWidth)continue;let s=a+e*I[1],l=o+n*N,i=s;for(let e=0;el),s.export(r,"conv2DBackpropFilterConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,pad:u,dataFormat:p,dimRoundingMode:c,filterShape:d}=n;(0,o.assertNotComplex)([s,l],"conv2dBackpropFilter");let f=a.backend_util.convertConv2DDataFormat(p),m=a.backend_util.computeConv2DInfo(s.shape,d,i,1,u,c,!1,f),{strideHeight:h,strideWidth:g,filterHeight:x,filterWidth:v}=m,y="channelsLast"===m.dataFormat,b=new(0,a.TensorBuffer)(m.filterShape,"float32"),_=m.padInfo.left,k=m.padInfo.top,j=r.data.get(s.dataId).values,I=r.data.get(l.dataId).values,w=new(0,a.TensorBuffer)(s.shape,s.dtype,j),T=new(0,a.TensorBuffer)(l.shape,l.dtype,I);for(let e=0;el),s.export(r,"conv2DBackpropInputConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:l}=t,{inputShape:i,strides:u,pad:p,dataFormat:c,dimRoundingMode:d}=n;(0,o.assertNotComplex)([s,l],"conv2dBackpropInput");let f=a.util.computeStrides(l.shape),m=a.util.computeStrides(s.shape),h=a.backend_util.convertConv2DDataFormat(c),g=a.backend_util.computeConv2DInfo(i,l.shape,u,1,p,d,!1,h),x=new(0,a.TensorBuffer)(g.inShape,"float32"),v=x.values,y=r.data.get(s.dataId).values,b=r.data.get(l.dataId).values,[_,k,j]=f,{batchSize:I,filterHeight:w,filterWidth:T,inChannels:N,inHeight:S,inWidth:C,outChannels:E,outHeight:F,outWidth:A,strideHeight:R,strideWidth:P}=g;h=g.dataFormat;let D=w-1-g.padInfo.top,$=T-1-g.padInfo.left,O="channelsLast"===h,M=x.strides[0],W=O?x.strides[1]:x.strides[2],B=O?x.strides[2]:1,L=O?1:x.strides[1],V=m[0],U=O?m[1]:m[2],G=O?m[2]:1,z=O?1:m[1];for(let e=0;el),s.export(r,"conv3DConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:l}=t,{strides:i,pad:u,dilations:p}=n;(0,o.assertNotComplex)([s,l],"conv3d");let c=a.backend_util.computeConv3DInfo(s.shape,l.shape,i,p,u),{filterDepth:d,filterHeight:f,filterWidth:m,dilationDepth:h,dilationHeight:g,dilationWidth:x,padInfo:v}=c,y=v.front,b=v.left,_=v.top,k=new(0,a.TensorBuffer)(c.outShape,s.dtype),j=r.data.get(s.dataId).values,I=r.data.get(l.dataId).values,w=k.values,T=a.util.computeStrides(s.shape),N=a.util.computeStrides(l.shape);for(let e=0;e=c.inDepth)continue;let a=e*N[0],o=t+r*T[1];for(let e=0;e=c.inHeight)continue;let s=a+e*N[1],l=o+n*T[2];for(let e=0;e=c.inWidth)continue;let a=s+e*N[2],o=l+t*c.inChannels,i=a;for(let e=0;el),s.export(r,"conv3DBackpropFilterV2Config",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,pad:u,filterShape:p}=n;(0,o.assertNotComplex)([s,l],"conv3dBackpropFilterV2");let c=a.util.computeStrides(s.shape),d=a.util.computeStrides(l.shape),f=a.backend_util.computeConv3DInfo(s.shape,p,i,1,u),m=f.strideDepth,h=f.strideHeight,g=f.strideWidth,x=f.filterDepth,v=f.filterHeight,y=f.filterWidth,b=new(0,a.TensorBuffer)(f.filterShape,"float32"),_=b.values,[k,j,I,w]=b.strides,T=r.data.get(l.dataId).values,[N,S,C,E]=d,F=r.data.get(s.dataId).values,[A,R,P,D]=c,$=f.padInfo.front,O=f.padInfo.left,M=f.padInfo.top;for(let e=0;el),s.export(r,"conv3DBackpropInputV2Config",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:l}=t,{pad:i,strides:u,inputShape:p}=n;(0,o.assertNotComplex)([s],"conv3dBackpropInputV2");let c=a.util.computeStrides(s.shape),d=a.util.computeStrides(l.shape),f=a.backend_util.computeConv3DInfo(p,l.shape,u,1,i),m=new(0,a.TensorBuffer)(f.inShape,"float32"),h=m.values,[g,x,v,y]=m.strides,b=r.data.get(s.dataId).values,[_,k,j,I]=c,w=r.data.get(l.dataId).values,[T,N,S,C]=d,{batchSize:E,filterDepth:F,filterHeight:A,filterWidth:R,inChannels:P,inDepth:D,inHeight:$,inWidth:O,outChannels:M,outDepth:W,outHeight:B,outWidth:L,strideDepth:V,strideHeight:U,strideWidth:G}=f,z=F-1-f.padInfo.front,Q=A-1-f.padInfo.top,q=R-1-f.padInfo.left;for(let e=0;eo),s.export(r,"cosConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Cos,e=>Math.cos(e)),l={kernelName:a.Cos,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],b5PVs:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cosh",()=>o),s.export(r,"coshConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Cosh,e=>Math.cosh(e)),l={kernelName:a.Cosh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5J4XN":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cropAndResize",()=>o),s.export(r,"cropAndResizeConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r,attrs:n}=e,{image:s,boxes:o,boxInd:l}=t,{cropSize:i,method:u,extrapolationValue:p}=n,[c,d,f,m]=s.shape,h=o.shape[0],[g,x]=i,v=(0,a.buffer)([h,g,x,m],"float32"),y=r.data.get(o.dataId).values,b=r.data.get(l.dataId).values,_=r.data.get(s.dataId).values,k=a.util.computeStrides(s.shape),j=a.util.computeStrides(v.shape);for(let e=0;e=c)continue;let l=g>1?(s-r)*(d-1)/(g-1):0,i=x>1?(a-n)*(f-1)/(x-1):0;for(let t=0;t1?r*(d-1)+t*l:.5*(r+s)*(d-1);if(c<0||c>d-1){for(let r=0;r1?n*(f-1)+u*i:.5*(n+a)*(f-1);if(c<0||c>f-1){for(let r=0;r1?n*(f-1)+r*i:.5*(n+a)*(f-1);if(s<0||s>f-1){for(let n=0;ni),s.export(r,"cumprodConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i,exclusive:u,reverse:p}=n;(0,o.assertNotComplex)(s,"cumprod");let c=a.backend_util.getAxesPermutation([i],s.shape.length),d=s;null!=c&&(d=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:c}}));let f=a.backend_util.getInnerMostAxes(1,s.shape.length)[0];if(f!==d.shape.length-1)throw Error(`backend.cumprod in CPU expects an inner-most axis=${d.shape.length-1} but got axis=${f}`);let m=(0,a.upcastType)(d.dtype,"int32"),h=a.util.makeOnesTypedArray(a.util.sizeFromShape(d.shape),m),g=r.data.get(d.dataId).values,x=d.shape[d.shape.length-1],v=p?(e,t)=>e+x-t-1:(e,t)=>e+t;for(let e=0;ei),s.export(r,"cumsumConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i,exclusive:u,reverse:p}=n;(0,o.assertNotComplex)(s,"cumsum");let c=a.backend_util.getAxesPermutation([i],s.shape.length),d=s;null!=c&&(d=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:c}}));let f=a.backend_util.getInnerMostAxes(1,s.shape.length)[0];if(f!==d.shape.length-1)throw Error(`backend.cumsum in CPU expects an inner-most axis=${d.shape.length-1} but got axis=${f}`);let m=(0,a.upcastType)(d.dtype,"int32"),h=a.util.makeZerosTypedArray(a.util.sizeFromShape(d.shape),m),g=r.data.get(d.dataId).values,x=d.shape[d.shape.length-1],v=p?(e,t)=>e+x-t-1:(e,t)=>e+t;for(let e=0;el),s.export(r,"denseBincountConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Bincount_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,weights:a}=t,{size:l,binaryOutput:i}=n;if(1===s.shape.length){let e=r.data.get(s.dataId).values,t=r.data.get(a.dataId).values,n=(0,o.bincountImpl)(e,t,a.dtype,a.shape,l);return r.makeTensorInfo([l],a.dtype,n)}if(2===s.shape.length){let e=r.bufferSync(s),t=r.bufferSync(a),n=(0,o.bincountReduceImpl)(e,t,l,i);return r.makeTensorInfo(n.shape,a.dtype,n.values)}throw Error(`Error in denseBincount: input must be at most rank 2, but got rank${s.shape.length}.`)}let i={kernelName:a.DenseBincount,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Bincount_impl":"ceVxB","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9VHVI":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthToSpace",()=>o),s.export(r,"depthToSpaceConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockSize:o,dataFormat:l}=n;a.util.assert("NHWC"===l,()=>`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${l}`);let i=s.shape[0],u=s.shape[1],p=s.shape[2],c=s.shape[3],d=u*o,f=p*o,m=c/(o*o),h=r.data.get(s.dataId).values,g=new Float32Array(i*d*f*m),x=0;for(let e=0;el),s.export(r,"depthwiseConv2dNativeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:l}=t,{strides:i,pad:u,dilations:p,dimRoundingMode:c}=n;(0,o.assertNotComplex)([s,l],"depthwiseConv2DNative");let d=a.util.computeStrides(s.shape),f=a.util.computeStrides(l.shape),m=p;null==m&&(m=[1,1]),a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(i,m),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${m}'`);let h=a.backend_util.computeConv2DInfo(s.shape,l.shape,i,m,u,c,!0),{filterHeight:g,filterWidth:x,dilationHeight:v,dilationWidth:y,padInfo:b}=h,_=b.left,k=b.top,j=h.outChannels/h.inChannels,I=new(0,a.TensorBuffer)(h.outShape,s.dtype),w=r.data.get(s.dataId).values,T=r.data.get(l.dataId).values,N=I.values;for(let e=0;e=h.inHeight)continue;let a=e*f[0],o=t+r*d[1];for(let e=0;e=h.inWidth)continue;let s=a+e*f[1],l=o+n*h.inChannels,i=t,u=s;for(let e=0;el),s.export(r,"depthwiseConv2dNativeBackpropFilterConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,dilations:u,pad:p,dimRoundingMode:c,filterShape:d}=n;(0,o.assertNotComplex)([s,l],"depthwiseConv2dNativeBackpropFilter");let f=a.backend_util.computeConv2DInfo(s.shape,d,i,u,p,c,!0),{strideHeight:m,strideWidth:h,filterHeight:g,filterWidth:x}=f,v=new(0,a.TensorBuffer)(f.filterShape,"float32"),y=f.padInfo.left,b=f.padInfo.top,_=f.outChannels/f.inChannels,k=r.data.get(s.dataId).values,j=new(0,a.TensorBuffer)(s.shape,s.dtype,k),I=r.data.get(l.dataId).values,w=new(0,a.TensorBuffer)(l.shape,l.dtype,I);for(let e=0;el),s.export(r,"depthwiseConv2dNativeBackpropInputConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:l}=t,{strides:i,dilations:u,pad:p,dimRoundingMode:c,inputShape:d}=n;(0,o.assertNotComplex)([s,l],"depthwiseConv2DNativeBackpropInput");let f=a.util.computeStrides(s.shape),m=a.util.computeStrides(l.shape),h=a.backend_util.computeConv2DInfo(d,l.shape,i,u,p,c,!0),g=new(0,a.TensorBuffer)(h.inShape,"float32"),x=g.values,[v,y,b]=g.strides,_=r.data.get(s.dataId).values,[k,j,I]=f,w=r.data.get(l.dataId).values,[T,N,S]=m,{batchSize:C,filterHeight:E,filterWidth:F,inChannels:A,inHeight:R,inWidth:P,outChannels:D,outHeight:$,outWidth:O,strideHeight:M,strideWidth:W}=h,B=E-1-h.padInfo.top,L=F-1-h.padInfo.left,V=D/A;for(let e=0;eo),s.export(r,"diagConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r}=e,{x:n}=t,s=a.util.sizeFromShape(n.shape),o=r.data.get(n.dataId).values,l=(0,a.buffer)([s,s],n.dtype),i=l.values;for(let e=0;eo);var a=e("@tensorflow/tfjs-core");let o={kernelName:a.Dilation2D,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:r})=>{let{x:n,filter:s}=e,{strides:o,pad:l,dilations:i}=r,u=t.data.get(n.dataId).values,p=n.shape.length,c=t.data.get(s.dataId).values,d=s.shape.length,{batchSize:f,inHeight:m,inWidth:h,inChannels:g,outHeight:x,outWidth:v,padInfo:y,strideHeight:b,strideWidth:_,filterHeight:k,filterWidth:j,dilationHeight:I,dilationWidth:w,outShape:T}=a.backend_util.computeDilation2DInfo(n.shape,s.shape,o,l,"NHWC",i),N=a.util.sizeFromShape(T),S=T.length,C=a.util.getArrayFromDType(n.dtype,N);for(let e=0;e=0&&o=0&&mf&&(f=g)}}}C[a.util.locToIndex([e,t,o,i],S,a.util.computeStrides(T))]=f}}}return{dataId:t.write(a.util.toTypedArray(C,n.dtype),T,n.dtype),shape:T,dtype:n.dtype}}}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bcDl4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dilation2DBackpropFilterConfig",()=>o);var a=e("@tensorflow/tfjs-core");let o={kernelName:a.Dilation2DBackpropFilter,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:r})=>{let{x:n,filter:s,dy:o}=e,{strides:l,pad:i,dilations:u}=r,p=a.util.toNestedArray(n.shape,t.data.get(n.dataId).values),c=a.util.toNestedArray(s.shape,t.data.get(s.dataId).values),{batchSize:d,inHeight:f,inWidth:m,inChannels:h,outHeight:g,outWidth:x,padInfo:v,strideHeight:y,strideWidth:b,filterHeight:_,filterWidth:k,dilationHeight:j,dilationWidth:I,outShape:w}=a.backend_util.computeDilation2DInfo(n.shape,s.shape,l,i,"NHWC",u);a.util.assert(o.rank===w.length,()=>`Error in ${a.Dilation2DBackpropFilter}, dy must have the same rank as output ${w.length}, but got ${o.rank}`);let T=a.util.toNestedArray(w,t.data.get(o.dataId).values),N=a.util.makeZerosNestedTypedArray(s.shape,s.dtype);for(let e=0;e=0&&n=0&&uo&&(o=s,l=t,i=r)}}}N[l][i][a]+=T[e][t][n][a]}}}return{dataId:t.write(a.util.toTypedArray(N,n.dtype),s.shape,s.dtype),shape:s.shape,dtype:s.dtype}}}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8501X":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dilation2DBackpropInputConfig",()=>o);var a=e("@tensorflow/tfjs-core");let o={kernelName:a.Dilation2DBackpropInput,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:r})=>{let{x:n,filter:s,dy:o}=e,{strides:l,pad:i,dilations:u}=r,p=a.util.toNestedArray(n.shape,t.data.get(n.dataId).values),c=a.util.toNestedArray(s.shape,t.data.get(s.dataId).values),{batchSize:d,inHeight:f,inWidth:m,inChannels:h,outHeight:g,outWidth:x,padInfo:v,strideHeight:y,strideWidth:b,filterHeight:_,filterWidth:k,dilationHeight:j,dilationWidth:I,outShape:w}=a.backend_util.computeDilation2DInfo(n.shape,s.shape,l,i,"NHWC",u);a.util.assert(o.rank===w.length,()=>`Error in ${a.Dilation2DBackpropInput}, dy must have the same rank as output ${w.length}, but got ${o.rank}`);let T=a.util.toNestedArray(w,t.data.get(o.dataId).values),N=a.util.makeZerosNestedTypedArray(n.shape,n.dtype);for(let e=0;e=0&&n=0&&uo&&(o=s,l=n,i=u)}}}N[e][l][i][a]+=T[e][t][n][a]}}}return{dataId:t.write(a.util.toTypedArray(N,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],f8VnK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r,attrs:n}=e,{image:s}=t,{canvas:a,options:o}=n,{contextOptions:l,imageOptions:i}=o||{},u=(null==i?void 0:i.alpha)||1,p=(null==l?void 0:l.contextType)||"2d";if("2d"!==p)throw Error(`Context type ${l.contextType} is not supported by the CPU backend.`);let c=a.getContext(p,(null==l?void 0:l.contextAttributes)||{});if(null==c)throw Error(`Could not get the context with ${p} type.`);let[d,f]=s.shape.slice(0,2),m=2===s.shape.length?1:s.shape[2],h=r.data.get(s.dataId).values,g="float32"===s.dtype?255:1,x=new Uint8ClampedArray(f*d*4);for(let e=0;e1)throw Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${n}.`)}else if("int32"===s.dtype&&(n<0||n>255))throw Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${n}.`);1===m?(t[0]=n*g,t[1]=n*g,t[2]=n*g):t[r]=n*g}let r=4*e;x[r+0]=Math.round(t[0]),x[r+1]=Math.round(t[1]),x[r+2]=Math.round(t[2]),x[r+3]=Math.round(t[3])}a.width=f,a.height=d;let v=new ImageData(x,f,d);return c.putImageData(v,0,0),s}s.defineInteropFlag(r),s.export(r,"draw",()=>a),s.export(r,"drawConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Draw,backendName:"cpu",kernelFunc:a}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],glqva:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"einsum",()=>p),s.export(r,"einsumConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./Multiply"),l=e("./Reshape"),i=e("./Sum"),u=e("./Transpose");function p(e){let{inputs:t,backend:r,attrs:n}=e,{equation:s}=n,{allDims:p,summedDims:c,idDims:d}=a.backend_util.decodeEinsumEquation(s,t.length);a.backend_util.checkEinsumDimSizes(p.length,d,t);let{path:f,steps:m}=a.backend_util.getEinsumComputePath(c,d),h=m.length,g=null,x=p.length,v=[];for(let e=0;e=0&&(g=(0,i.sum)({inputs:{x:g},backend:r,attrs:{axis:f[e]-(p.length-x),keepDims:!1}}),v.push(g)),x--)}for(let e of v)e!==g&&r.disposeIntermediateTensorInfo(e);return g}let c={kernelName:a.Einsum,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","./Multiply":"dvGJ0","./Reshape":"gdyYW","./Sum":"jeTUE","./Transpose":"3cgqd","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jeTUE:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sum",()=>d),s.export(r,"sumConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/zeros_impl"),i=e("./Cast"),u=e("./Identity"),p=e("./Reshape"),c=e("./Transpose");function d(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:d}=r,{axis:f,keepDims:m}=s;(0,o.assertNotComplex)(d,"sum");let h=(t="bool"===d.dtype?(0,i.cast)({inputs:{x:d},backend:n,attrs:{dtype:"int32"}}):(0,u.identity)({inputs:{x:d},backend:n})).shape.length,g=a.util.parseAxisParam(f,t.shape),x=a.backend_util.getAxesPermutation(g,h),v=g,y=t;null!=x&&(y=(0,c.transpose)({inputs:{x:t},backend:n,attrs:{perm:x}}),v=a.backend_util.getInnerMostAxes(v.length,h)),a.backend_util.assertAxesAreInnerMostDims("sum",v,y.shape.length);let[b,_]=a.backend_util.computeOutAndReduceShapes(y.shape,v),k=a.backend_util.upcastType(y.dtype,"int32"),j=(0,l.zeros)(n,b,k),I=a.util.sizeFromShape(_),w=n.data.get(j.dataId).values,T=n.data.get(y.dataId).values;for(let e=0;el),s.export(r,"eluGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r}=e,{dy:n,y:s}=t;(0,o.assertNotComplex)([n,s],"eluGrad");let l=new Float32Array(a.util.sizeFromShape(s.shape)),i=r.data.get(s.dataId).values,u=r.data.get(n.dataId).values;for(let e=0;e=0?l[e]=u[e]:l[e]=u[e]*(t+1)}return r.makeTensorInfo(s.shape,"float32",l)}let i={kernelName:a.EluGrad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gqzzC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"erf",()=>f),s.export(r,"erfConfig",()=>m);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_utils");let l=a.backend_util.ERF_P,i=a.backend_util.ERF_A1,u=a.backend_util.ERF_A2,p=a.backend_util.ERF_A3,c=a.backend_util.ERF_A4,d=a.backend_util.ERF_A5,f=(0,o.unaryKernelFunc)(a.Erf,e=>{let t=Math.sign(e),r=Math.abs(e),n=1/(1+l*r);return t*(1-((((d*n+c)*n+p)*n+u)*n+i)*n*Math.exp(-r*r))}),m={kernelName:a.Erf,backendName:"cpu",kernelFunc:f}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gtxdI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expandDims",()=>l),s.export(r,"expandDimsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Reshape");function l(e){let{inputs:t,backend:r,attrs:n}=e,{input:s}=t,{dim:l}=n,i=s.shape.length,u=s.shape.slice(),p=l;return l<0&&(a.util.assert(-(i+1)<=l,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),p=i+l+1),u.splice(p,0,1),(0,o.reshape)({inputs:{x:s},backend:r,attrs:{shape:u}})}let i={kernelName:a.ExpandDims,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Reshape":"gdyYW","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bwwwi:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fft",()=>i),s.export(r,"fftConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/fft_utils"),l=e("./Reshape");function i(e){let{inputs:t,backend:r}=e,{input:n}=t,s=a.util.sizeFromShape(n.shape),i=n.shape[n.shape.length-1],u=(0,l.reshape)({inputs:{x:n},backend:r,attrs:{shape:[s/i,i]}}),p=(0,o.fftBatch)(u,!1,r),c=(0,l.reshape)({inputs:{x:p},backend:r,attrs:{shape:n.shape}});return r.disposeIntermediateTensorInfo(u),r.disposeIntermediateTensorInfo(p),c}let u={kernelName:a.FFT,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../utils/fft_utils":"hsGl3","./Reshape":"gdyYW","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hsGl3:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fftBatch",()=>g),s.export(r,"fftImpl",()=>x);var a=e("@tensorflow/tfjs-core"),o=e("../kernels/Add"),l=e("../kernels/Complex"),i=e("../kernels/Concat"),u=e("../kernels/Identity"),p=e("../kernels/Imag"),c=e("../kernels/Multiply"),d=e("../kernels/Real"),f=e("../kernels/RealDiv"),m=e("../kernels/Slice"),h=e("../kernels/Sub");function g(e,t,r){let n=e.shape,s=n[0],o=n[1],i=r.data.get(e.dataId),u=i.complexTensorInfos.real,p=i.complexTensorInfos.imag,c=[s,o],d=a.util.sizeFromShape(c),f=a.util.getTypedArrayFromDType("float32",d),h=a.util.getTypedArrayFromDType("float32",d);for(let e=0;ei),s.export(r,"div",()=>u),s.export(r,"realDivConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e/t),u=(0,l.binaryKernelFunc)(a.RealDiv,i),p={kernelName:a.RealDiv,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8G2vQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fill",()=>o),s.export(r,"fillConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){var t,r,n;let{backend:s,attrs:o}=e,{shape:l,value:i,dtype:u}=o,p=u||a.util.inferDtype(i),c=a.util.getArrayFromDType(p,a.util.sizeFromShape(l));return t=c,r=i,n=0,t.fill(r),s.makeTensorInfo(l,p,c)}let l={kernelName:a.Fill,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"49ycw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"flipLeftRightConfig",()=>o);var a=e("@tensorflow/tfjs-core");let o={kernelName:a.FlipLeftRight,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{image:n}=e,s=a.util.getTypedArrayFromDType(n.dtype,a.util.sizeFromShape(n.shape)),[o,l,i,u]=n.shape,p=r.data.get(n.dataId).values;for(let e=0;e=0&&op),s.export(r,"fusedConv2DConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../utils/fused_utils"),l=e("./Add"),i=e("./Conv2D"),u=e("./Reshape");function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:a,bias:p,preluActivationWeights:c}=t,{strides:d,pad:f,dataFormat:m,dilations:h,dimRoundingMode:g,activation:x,leakyreluAlpha:v}=n,y=(0,i.conv2D)({inputs:{x:s,filter:a},backend:r,attrs:{strides:d,pad:f,dataFormat:m,dilations:h,dimRoundingMode:g}});if(p){let e=y;if("NCHW"===m&&1===p.shape.length&&1!==p.shape[0]){let e=(0,u.reshape)({inputs:{x:p},backend:r,attrs:{shape:[p.shape[0],1,1]}});y=(0,l.add)({inputs:{a:y,b:e},backend:r}),r.disposeIntermediateTensorInfo(e)}else y=(0,l.add)({inputs:{a:y,b:p},backend:r});r.disposeIntermediateTensorInfo(e)}if(x){let e=y;if("NCHW"===m&&"prelu"===x&&1===c.shape.length&&1!==c.shape[0]){let e=(0,u.reshape)({inputs:{x:c},backend:r,attrs:{shape:[c.shape[0],1,1]}});y=(0,o.applyActivation)(r,y,x,e,v),r.disposeIntermediateTensorInfo(e)}else y=(0,o.applyActivation)(r,y,x,c,v);r.disposeIntermediateTensorInfo(e)}return y}let c={kernelName:a.FusedConv2D,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../utils/fused_utils":"3crDv","./Add":"1JfHj","./Conv2D":"hzyQd","./Reshape":"gdyYW","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1KNlo":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fusedDepthwiseConv2D",()=>u),s.export(r,"fusedDepthwiseConv2DConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/fused_utils"),l=e("./Add"),i=e("./DepthwiseConv2dNative");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:a,bias:u,preluActivationWeights:p}=t,{strides:c,pad:d,dataFormat:f,dilations:m,dimRoundingMode:h,activation:g,leakyreluAlpha:x}=n,v=(0,i.depthwiseConv2dNative)({inputs:{x:s,filter:a},backend:r,attrs:{strides:c,pad:d,dataFormat:f,dilations:m,dimRoundingMode:h}});if(u){let e=v;v=(0,l.add)({inputs:{a:v,b:u},backend:r}),r.disposeIntermediateTensorInfo(e)}if(g){let e=v;v=(0,o.applyActivation)(r,v,g,p,x),r.disposeIntermediateTensorInfo(e)}return v}let p={kernelName:a.FusedDepthwiseConv2D,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/fused_utils":"3crDv","./Add":"1JfHj","./DepthwiseConv2dNative":"hmHEE","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dOdTx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherNd",()=>l),s.export(r,"gatherNdConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./GatherNd_Impl");function l(e){let{inputs:t,backend:r}=e,{params:n,indices:s}=t,l=a.util.sizeFromShape(n.shape),i=s.shape,u=i[i.length-1],[p,c,d,f]=a.backend_util.prepareAndValidate(n,s);if(0===c)return r.makeTensorInfo(p,n.dtype,[]);let m=r.data.get(s.dataId).values,h=r.bufferSync(n),g=(0,o.gatherNdImpl)(m,h,n.dtype,c,u,d,f,n.shape,l);return r.makeTensorInfo(p,n.dtype,g.values)}let i={kernelName:a.GatherNd,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./GatherNd_Impl":"1Ft9I","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dSKbR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherV2",()=>u),s.export(r,"gatherV2Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./GatherV2_impl"),i=e("./Reshape");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,indices:u}=t,{axis:p,batchDims:c}=n;(0,o.assertNotComplex)([s,u],"gatherV2");let d=a.util.parseAxisParam(p,s.shape)[0],f=r.data.get(u.dataId).values,m=s.shape[d];for(let e=0;e=0,()=>`GatherV2: the index value ${t} is not in [0, ${m-1}]`)}let h=c;null==c&&(h=0);let g=a.util.sizeFromShape(u.shape),x=a.backend_util.segment_util.collectGatherOpShapeInfo(s,u,d,h),v=(0,i.reshape)({inputs:{x:s},backend:r,attrs:{shape:[x.batchSize,x.outerSize,x.dimSize,x.sliceSize]}}),y=(0,i.reshape)({inputs:{x:u},backend:r,attrs:{shape:[x.batchSize,g/x.batchSize]}}),b=[x.batchSize,x.outerSize,g/x.batchSize,x.sliceSize],_=r.bufferSync(y),k=r.bufferSync(v),j=(0,l.gatherV2Impl)(k,_,b);return r.disposeIntermediateTensorInfo(v),r.disposeIntermediateTensorInfo(y),r.makeTensorInfo(x.outputShape,j.dtype,j.values)}let p={kernelName:a.GatherV2,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./GatherV2_impl":"7ukZH","./Reshape":"gdyYW","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ceizA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ifft",()=>i),s.export(r,"ifftConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/fft_utils"),l=e("./Reshape");function i(e){let{inputs:t,backend:r}=e,{input:n}=t,s=a.util.sizeFromShape(n.shape),i=n.shape[n.shape.length-1],u=(0,l.reshape)({inputs:{x:n},backend:r,attrs:{shape:[s/i,i]}}),p=(0,o.fftBatch)(u,!0,r),c=(0,l.reshape)({inputs:{x:p},backend:r,attrs:{shape:n.shape}});return r.disposeIntermediateTensorInfo(u),r.disposeIntermediateTensorInfo(p),c}let u={kernelName:a.IFFT,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../utils/fft_utils":"hsGl3","./Reshape":"gdyYW","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],a08wP:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isFinite",()=>o),s.export(r,"isFiniteConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.IsFinite,e=>+!!Number.isFinite(e),"bool"),l={kernelName:a.IsFinite,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"94AkQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isInf",()=>o),s.export(r,"isInfConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.IsInf,e=>+(Math.abs(e)===1/0),"bool"),l={kernelName:a.IsInf,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dpzCA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isNaN",()=>o),s.export(r,"isNaNConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.IsNan,e=>+!!Number.isNaN(e),"bool"),l={kernelName:a.IsNan,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4VJty":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"linSpace",()=>l),s.export(r,"linSpaceConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./LinSpace_impl");function l(e){let{backend:t,attrs:r}=e,{start:n,stop:s,num:a}=r,l=(0,o.linSpaceImpl)(n,s,a);return t.makeTensorInfo([l.length],"float32",l)}let i={kernelName:a.LinSpace,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./LinSpace_impl":"ctjgv","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],a7xiG:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"log1p",()=>o),s.export(r,"log1pConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Log1p,e=>Math.log1p(e)),l={kernelName:a.Log1p,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1NhiJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalAndImpl",()=>i),s.export(r,"logicalAnd",()=>u),s.export(r,"logicalAndConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e&&t),u=(0,l.binaryKernelFunc)(a.LogicalAnd,i,null,"bool"),p={kernelName:a.LogicalAnd,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],NHJ8x:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalNot",()=>o),s.export(r,"logicalNotConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.LogicalNot,e=>+!e,"bool"),l={kernelName:a.LogicalNot,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eTk4U:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalOrImpl",()=>i),s.export(r,"logicalOr",()=>u),s.export(r,"logicalOrConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e||t),u=(0,l.binaryKernelFunc)(a.LogicalOr,i,null,"bool"),p={kernelName:a.LogicalOr,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5HgVT":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lRN",()=>l),s.export(r,"LRNConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{depthRadius:l,bias:i,alpha:u,beta:p}=n;(0,o.assertNotComplex)(s,"LRN");let c=s.shape[3],d=c-1,f=r.data.get(s.dataId).values,m=a.util.sizeFromShape(s.shape),h=new Float32Array(m);for(let e=0;el),s.export(r,"LRNGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,y:l,dy:i}=t,{depthRadius:u,bias:p,alpha:c,beta:d}=n;(0,o.assertNotComplex)(i,"LRNGrad");let f=a.util.sizeFromShape(i.shape),m=i.shape[3],h=r.data.get(i.dataId).values,g=r.data.get(s.dataId).values,x=r.data.get(l.dataId).values,v=new Float32Array(f);for(let e=0;eu),s.export(r,"maxConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Max_impl"),i=e("./Transpose_impl");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{reductionIndices:u,keepDims:p}=n,c=s.shape,d=c.length,f=a.util.parseAxisParam(u,c),m=f,h=a.backend_util.getAxesPermutation(m,d),g=r.data.get(s.dataId).values;if(null!=h){let e=Array(d);for(let t=0;tu),s.export(r,"maxPoolConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils"),i=e("./Identity");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u}=r;(0,o.assertNotComplex)(u,"maxPool");let{filterSize:p,strides:c,pad:d,dimRoundingMode:f}=s;a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(c,1),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${c} and dilations '1'`);let m=a.backend_util.computePool2DInfo(u.shape,p,c,1,d,f);if(1===m.filterWidth&&1===m.filterHeight&&a.util.arraysEqual(m.inShape,m.outShape))t=(0,i.identity)({inputs:{x:u},backend:n});else{let e=n.data.get(u.dataId).values,r=a.util.computeStrides(u.shape),s=(0,l.pool)(e,u.shape,u.dtype,r,m,"max");t=n.makeTensorInfo(m.outShape,u.dtype,s.values)}return t}let p={kernelName:a.MaxPool,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","../utils/pool_utils":"5iT7r","./Identity":"bdLxl","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fLuEK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool3D",()=>i),s.export(r,"maxPool3DConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{filterSize:i,strides:u,pad:p,dimRoundingMode:c,dataFormat:d}=n;(0,o.assertNotComplex)(s,"maxPool3d");let f=a.backend_util.computePool3DInfo(s.shape,i,u,1,p,c,d),m=r.data.get(s.dataId).values,h=(0,l.pool3d)(m,s.shape,s.dtype,a.util.computeStrides(s.shape),f,"max");return r.makeTensorInfo(h.shape,"float32",h.values)}let u={kernelName:a.MaxPool3D,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","../utils/pool_utils":"5iT7r","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"78uii":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool3DGrad",()=>i),s.export(r,"maxPool3DGradConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils");function i(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:i}=t,{filterSize:u,strides:p,pad:c,dimRoundingMode:d}=n;(0,o.assertNotComplex)([s,i],"maxPool3DGrad");let f=a.backend_util.computePool3DInfo(i.shape,u,p,1,c,d),m=r.bufferSync(i),h=(0,l.maxPool3dPositions)(m,f),g=f.strideDepth,x=f.strideHeight,v=f.strideWidth,y=f.dilationDepth,b=f.dilationHeight,_=f.dilationWidth,k=f.effectiveFilterDepth,j=f.effectiveFilterHeight,I=f.effectiveFilterWidth,w=k-1-f.padInfo.front,T=I-1-f.padInfo.left,N=j-1-f.padInfo.top,S=(0,a.buffer)(i.shape,"float32"),C=r.bufferSync(s);for(let e=0;e=f.outDepth)&&Math.floor(n)===n)for(let s=0;s=f.outHeight)&&Math.floor(a)===a)for(let o=0;o=f.outWidth||Math.floor(u)!==u)continue;let p=+(k*j*I-1-h.get(e,n,a,u,t)===r*j*I+s*I+o);0!==p&&(i+=C.get(e,n,a,u,t)*p)}}}S.set(i,e,r,n,s,t)}return r.makeTensorInfo(S.shape,S.dtype,S.values)}let u={kernelName:a.MaxPool3DGrad,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","../utils/pool_utils":"5iT7r","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],b5hfv:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolGrad",()=>i),s.export(r,"maxPoolGradConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils");function i(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:i,output:u}=t;(0,o.assertNotComplex)([i,u],"maxPoolGrad");let{filterSize:p,strides:c,pad:d,dimRoundingMode:f}=n,m=a.backend_util.computePool2DInfo(i.shape,p,c,1,d,f),h=r.data.get(i.dataId).values,g=(0,a.buffer)(m.outShape,i.dtype,(0,l.maxPoolPositions)(h,i.shape,i.dtype,m).values),x=m.strideHeight,v=m.strideWidth,y=m.dilationHeight,b=m.dilationWidth,_=m.effectiveFilterHeight,k=m.effectiveFilterWidth,j=k-1-m.padInfo.left,I=_-1-m.padInfo.top,w=(0,a.buffer)(i.shape,"float32"),T=r.data.get(s.dataId).values,N=(0,a.buffer)(s.shape,"float32",T);for(let e=0;e=m.outHeight)&&Math.floor(n)===n)for(let s=0;s=m.outWidth||Math.floor(l)!==l)continue;let i=+(_*k-1-g.get(e,n,l,t)===r*k+s);0!==i&&(o+=N.get(e,n,l,t)*i)}}w.set(o,e,r,n,t)}return r.makeTensorInfo(w.shape,w.dtype,w.values)}let u={kernelName:a.MaxPoolGrad,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","../utils/pool_utils":"5iT7r","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8bYQt":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolWithArgmaxConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./MaxPoolWithArgmax_impl");let i={kernelName:a.MaxPoolWithArgmax,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{x:n}=e,{filterSize:s,strides:i,pad:u,includeBatchInIndex:p}=t;(0,o.assertNotComplex)(n,"MaxPoolWithArgmax");let c=r.data.get(n.dataId).values,d=a.backend_util.computePool2DInfo(n.shape,s,i,[1,1],u),[f,m]=(0,l.maxPoolWithArgmaxImpl)(c,n.shape,n.dtype,p,d),h=r.write(f,d.outShape,n.dtype),g=r.write(m,d.outShape,n.dtype);return[{dataId:h,shape:d.outShape,dtype:n.dtype},{dataId:g,shape:d.outShape,dtype:"int32"}]}}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./MaxPoolWithArgmax_impl":"5g32u","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5g32u":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolWithArgmaxImpl",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("../utils/pool_utils");function l(e,t,r,n,s){let l=a.util.computeStrides(t),i=(0,o.pool)(e,t,r,l,s,"max"),u=(0,o.maxPoolPositions)(e,t,r,s,!0,n);return[i.values,u.values]}},{"@tensorflow/tfjs-core":"biUij","../utils/pool_utils":"5iT7r","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"53jlm":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mean",()=>u),s.export(r,"meanConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("./Cast"),l=e("./RealDiv"),i=e("./Sum");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:u,keepDims:p}=n,c=a.util.parseAxisParam(u,s.shape),d=a.backend_util.computeOutAndReduceShapes(s.shape,c)[1],f=a.util.sizeFromShape(d),m=[],h=r.makeTensorInfo([],"float32",new Float32Array([f]));m.push(h);let g=(0,o.cast)({inputs:{x:s},backend:r,attrs:{dtype:"float32"}});m.push(g);let x=(0,l.div)({inputs:{a:g,b:h},backend:r});m.push(x);let v=(0,i.sum)({inputs:{x:x},backend:r,attrs:{axis:u,keepDims:p}});return m.forEach(e=>r.disposeIntermediateTensorInfo(e)),v}let p={kernelName:a.Mean,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","./Cast":"cMwEt","./RealDiv":"ZONlP","./Sum":"jeTUE","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],aBv4l:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"min",()=>u),s.export(r,"minConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape"),i=e("./Transpose");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:u,keepDims:p}=n;(0,o.assertNotComplex)(s,"min");let c=a.util.parseAxisParam(u,s.shape),d=c,f=a.backend_util.getAxesPermutation(d,s.shape.length),m=s;null!=f&&(m=(0,i.transpose)({inputs:{x:s},backend:r,attrs:{perm:f}}),d=a.backend_util.getInnerMostAxes(d.length,s.shape.length)),a.backend_util.assertAxesAreInnerMostDims("min",d,m.shape.length);let[h,g]=a.backend_util.computeOutAndReduceShapes(m.shape,d),x=a.util.sizeFromShape(g),v=a.util.makeZerosTypedArray(a.util.sizeFromShape(h),m.dtype),y=r.data.get(m.dataId).values;for(let e=0;el),s.export(r,"mirrorPadConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{paddings:l,mode:i}=n;(0,o.assertNotComplex)(s,"mirrorPad");let u=l.map((e,t)=>e[0]+s.shape[t]+e[1]),p=l.map(e=>e[0]),c=l.map((e,t)=>e[0]+s.shape[t]),d=+("reflect"!==i),f=r.data.get(s.dataId).values,m=s.shape.length,h=a.util.computeStrides(s.shape),g=a.util.sizeFromShape(u),x=u.length,v=a.util.computeStrides(u),y=a.util.getTypedArrayFromDType(s.dtype,g);for(let e=0;e=c[e]&&(t[e]=(c[e]-1)*2-t[e]+d);t=t.map((e,t)=>e-p[t]);let r=a.util.locToIndex(t,m,h);y[e]=f[r]}return{dataId:r.write(y,u,s.dtype),shape:u,dtype:s.dtype}}let i={kernelName:a.MirrorPad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1szcc":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"modImpl",()=>i),s.export(r,"mod",()=>u),s.export(r,"modConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>{let r=e%t;return e<0&&t<0||e>=0&&t>=0?r:(r+t)%t}),u=(0,l.binaryKernelFunc)(a.Mod,i),p={kernelName:a.Mod,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bYw6t:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"multinomial",()=>u),s.export(r,"multinomialConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("seedrandom"),l=e("../cpu_util"),i=e("./Softmax");function u(e){let{inputs:t,backend:r,attrs:n}=e,{logits:s}=t,{numSamples:u,seed:p,normalized:c}=n;(0,l.assertNotComplex)(s,"multinomial");let d=c?s:(0,i.softmax)({inputs:{logits:s},backend:r,attrs:{dim:-1}}),f=d.shape[0],m=d.shape[1],h=r.data.get(d.dataId).values,g=[f,u],x=a.util.makeZerosTypedArray(a.util.sizeFromShape(g),"int32");for(let e=0;ed),s.export(r,"softmaxConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("./Exp"),l=e("./Max"),i=e("./RealDiv"),u=e("./Reshape"),p=e("./Sub"),c=e("./Sum");function d(e){let{inputs:t,backend:r,attrs:n}=e,{logits:s}=t,{dim:d}=n,f=s.shape.length,m=d;if(-1===m&&(m=f-1),m!==f-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${f} and dim was ${m}`);let h=a.util.parseAxisParam([m],s.shape),g=(0,l.max)({inputs:{x:s},backend:r,attrs:{reductionIndices:h,keepDims:!1}}),x=a.backend_util.expandShapeToKeepDim(g.shape,h),v=(0,u.reshape)({inputs:{x:g},backend:r,attrs:{shape:x}}),y=(0,p.sub)({inputs:{a:s,b:v},backend:r}),b=(0,o.exp)({inputs:{x:y},backend:r}),_=(0,c.sum)({inputs:{x:b},backend:r,attrs:{axis:h,keepDims:!1}}),k=(0,u.reshape)({inputs:{x:_},backend:r,attrs:{shape:x}}),j=(0,i.div)({inputs:{a:b,b:k},backend:r});return r.disposeIntermediateTensorInfo(g),r.disposeIntermediateTensorInfo(v),r.disposeIntermediateTensorInfo(y),r.disposeIntermediateTensorInfo(b),r.disposeIntermediateTensorInfo(_),r.disposeIntermediateTensorInfo(k),j}let f={kernelName:a.Softmax,backendName:"cpu",kernelFunc:d}},{"@tensorflow/tfjs-core":"biUij","./Exp":"d2WVN","./Max":"2jSAF","./RealDiv":"ZONlP","./Reshape":"gdyYW","./Sub":"5EzoO","./Sum":"jeTUE","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hn7XJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV3",()=>i),s.export(r,"nonMaxSuppressionV3Config",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");let l=a.kernel_impls.nonMaxSuppressionV3Impl;function i(e){let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:a}=t,{maxOutputSize:i,iouThreshold:u,scoreThreshold:p}=n;(0,o.assertNotComplex)(s,"NonMaxSuppression");let{selectedIndices:c}=l(r.data.get(s.dataId).values,r.data.get(a.dataId).values,i,u,p);return r.makeTensorInfo([c.length],"int32",new Int32Array(c))}let u={kernelName:a.NonMaxSuppressionV3,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fJHJc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV4",()=>i),s.export(r,"nonMaxSuppressionV4Config",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");let l=a.kernel_impls.nonMaxSuppressionV4Impl;function i(e){let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:a}=t,{maxOutputSize:i,iouThreshold:u,scoreThreshold:p,padToMaxOutputSize:c}=n;(0,o.assertNotComplex)(s,"NonMaxSuppressionPadded");let{selectedIndices:d,validOutputs:f}=l(r.data.get(s.dataId).values,r.data.get(a.dataId).values,i,u,p,c);return[r.makeTensorInfo([d.length],"int32",new Int32Array(d)),r.makeTensorInfo([],"int32",new Int32Array([f]))]}let u={kernelName:a.NonMaxSuppressionV4,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"9OSbH":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV5",()=>i),s.export(r,"nonMaxSuppressionV5Config",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");let l=a.kernel_impls.nonMaxSuppressionV5Impl;function i(e){let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:a}=t,{maxOutputSize:i,iouThreshold:u,scoreThreshold:p,softNmsSigma:c}=n;(0,o.assertNotComplex)(s,"NonMaxSuppressionWithScore");let d=r.data.get(s.dataId).values,{selectedIndices:f,selectedScores:m}=l(d,r.data.get(a.dataId).values,i,u,p,c);return[r.makeTensorInfo([f.length],"int32",new Int32Array(f)),r.makeTensorInfo([m.length],"float32",new Float32Array(m))]}let u={kernelName:a.NonMaxSuppressionV5,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iaBfp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"oneHot",()=>l),s.export(r,"oneHotConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{indices:s}=t,{dtype:l,depth:i,onValue:u,offValue:p}=n;(0,o.assertNotComplex)(s,"oneHot");let c=a.util.sizeFromShape(s.shape),d=new Float32Array(c*i);d.fill(p);let f=r.data.get(s.dataId).values;for(let e=0;e=0&&f[e]c),s.export(r,"onesLikeConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("./Complex"),l=e("./Fill"),i=e("./Imag"),u=e("./Real"),p=e("./ZerosLike");function c(e){let{inputs:t,backend:r}=e,{x:n}=t;if("string"===n.dtype)throw Error("onesLike is not supported for string tensors");if("complex64"!==n.dtype)return(0,l.fill)({backend:r,attrs:{shape:n.shape,value:1,dtype:n.dtype}});{let e=(0,u.real)({inputs:{input:n},backend:r}),t=c({inputs:{x:e},backend:r}),s=(0,i.imag)({inputs:{input:n},backend:r}),a=(0,p.zerosLike)({inputs:{x:s},backend:r}),l=(0,o.complex)({inputs:{real:t,imag:a},backend:r});return r.disposeIntermediateTensorInfo(e),r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(a),l}}let d={kernelName:a.OnesLike,backendName:"cpu",kernelFunc:c}},{"@tensorflow/tfjs-core":"biUij","./Complex":"iqjKD","./Fill":"8G2vQ","./Imag":"e6EoH","./Real":"bLoe4","./ZerosLike":"ioFSD","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],ioFSD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"zerosLike",()=>p),s.export(r,"zerosLikeConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./Complex"),l=e("./Fill"),i=e("./Imag"),u=e("./Real");function p(e){let{inputs:t,backend:r}=e,{x:n}=t;if("string"===n.dtype)throw Error("zerosLike is not supported for string tensors");if("complex64"!==n.dtype)return(0,l.fill)({backend:r,attrs:{shape:n.shape,value:0,dtype:n.dtype}});{let e=(0,u.real)({inputs:{input:n},backend:r}),t=p({inputs:{x:e},backend:r}),s=(0,i.imag)({inputs:{input:n},backend:r}),a=p({inputs:{x:s},backend:r}),l=(0,o.complex)({inputs:{real:t,imag:a},backend:r});return r.disposeIntermediateTensorInfo(e),r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(a),l}}let c={kernelName:a.ZerosLike,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","./Complex":"iqjKD","./Fill":"8G2vQ","./Imag":"e6EoH","./Real":"bLoe4","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],au22V:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pack",()=>i),s.export(r,"packConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./Concat"),l=e("./ExpandDims");function i(e){let{inputs:t,backend:r,attrs:n}=e,{axis:s}=n;if(1===t.length)return(0,l.expandDims)({inputs:{input:t[0]},backend:r,attrs:{dim:s}});let i=t[0].shape,u=t[0].dtype;t.forEach(e=>{a.util.assertShapesMatch(i,e.shape,"All tensors passed to stack must have matching shapes"),a.util.assert(u===e.dtype,()=>"All tensors passed to stack must have matching dtypes")});let p=[],c=t.map(e=>{let t=(0,l.expandDims)({inputs:{input:e},backend:r,attrs:{dim:s}});return p.push(t),t}),d=(0,o.concat)({inputs:c,backend:r,attrs:{axis:s}});return p.forEach(e=>r.disposeIntermediateTensorInfo(e)),d}let u={kernelName:a.Pack,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","./Concat":"hyLXC","./ExpandDims":"gtxdI","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],eqxgc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"padV2",()=>l),s.export(r,"padV2Config",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{paddings:l,constantValue:i}=n;(0,o.assertNotComplex)(s,"pad");let u=l.map((e,t)=>e[0]+s.shape[t]+e[1]),p=l.map(e=>e[0]),c=r.data.get(s.dataId).values,d=a.util.sizeFromShape(s.shape),f=s.shape.length,m=a.util.computeStrides(s.shape),h=a.util.sizeFromShape(u),g=u.length,x=a.util.computeStrides(u),v=a.util.getTypedArrayFromDType(s.dtype,h);0!==i&&v.fill(i);for(let e=0;ee+p[t]);v[a.util.locToIndex(t,g,x)]=c[e]}return{dataId:r.write(v,u,s.dtype),shape:u,dtype:s.dtype}}let i={kernelName:a.PadV2,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gJsYY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"powImpl",()=>i),s.export(r,"pow",()=>u),s.export(r,"powConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>Math.pow(e,t)),u=(0,l.binaryKernelFunc)(a.Pow,i),p={kernelName:a.Pow,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/binary_impl":"1mxo2","../utils/binary_utils":"jPAKn","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5kWLJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedGather",()=>l),s.export(r,"raggedGatherConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./RaggedGather_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{paramsNestedSplits:s,paramsDenseValues:a,indices:l}=t,{outputRaggedRank:i}=n,u=s.map(e=>r.data.get(e.dataId).values),p=s.map(e=>e.shape),c=r.data.get(a.dataId).values,d=r.data.get(l.dataId).values,[f,m,h]=(0,o.raggedGatherImpl)(u,p,c,a.shape,a.dtype,d,l.shape,i),g=f.map(e=>r.makeTensorInfo([e.length],"int32",e)),x=r.makeTensorInfo(h,a.dtype,m);return g.concat([x])}let i={kernelName:a.RaggedGather,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./RaggedGather_impl":"kXBNx","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],bkwKj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedRange",()=>l),s.export(r,"raggedRangeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./RaggedRange_impl");function l(e){let{inputs:t,backend:r}=e,{starts:n,limits:s,deltas:a}=t,l=r.data.get(n.dataId).values,i=r.data.get(s.dataId).values,u=r.data.get(a.dataId).values,[p,c]=(0,o.raggedRangeImpl)(l,n.shape,n.dtype,i,s.shape,u,a.shape);return[r.makeTensorInfo([p.length],"int32",p),r.makeTensorInfo([c.length],n.dtype,c)]}let i={kernelName:a.RaggedRange,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./RaggedRange_impl":"56JXs","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hkBd0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedTensorToTensor",()=>l),s.export(r,"raggedTensorToTensorConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./RaggedTensorToTensor_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{shape:s,values:a,defaultValue:l,rowPartitionTensors:i}=t,{rowPartitionTypes:u}=n,p=r.data.get(s.dataId).values,c=r.data.get(a.dataId).values,d=r.data.get(l.dataId).values,f=i.map(e=>r.data.get(e.dataId).values),m=i.map(e=>e.shape),[h,g]=(0,o.raggedTensorToTensorImpl)(p,s.shape,c,a.shape,a.dtype,d,l.shape,f,m,u);return r.makeTensorInfo(h,a.dtype,g)}let i={kernelName:a.RaggedTensorToTensor,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./RaggedTensorToTensor_impl":"bqJDy","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dIyXK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"range",()=>l),s.export(r,"rangeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Range_impl");function l(e){let{backend:t,attrs:r}=e,{start:n,stop:s,dtype:a,step:l}=r,i=(0,o.rangeImpl)(n,s,l,a);return t.makeTensorInfo([i.length],a,i)}let i={kernelName:a.Range,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Range_impl":"egj95","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],d8MTu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reciprocal",()=>o),s.export(r,"reciprocalConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Reciprocal,e=>1/e),l={kernelName:a.Reciprocal,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2yL6g":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeBilinear",()=>l),s.export(r,"resizeBilinearConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s}=t,{alignCorners:l,halfPixelCenters:i,size:u}=n;(0,o.assertNotComplex)(s,"resizeBilinear");let p=a.util.computeStrides(s.shape),[c,d]=u,[f,m,h,g]=s.shape,x=r.data.get(s.dataId).values,v=new Float32Array(a.util.sizeFromShape([f,c,d,g])),y=[l&&c>1?m-1:m,l&&d>1?h-1:h],b=[l&&c>1?c-1:c,l&&d>1?d-1:d],_=0,k=y[0]/b[0],j=y[1]/b[1];for(let e=0;el),s.export(r,"resizeBilinearGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s,dy:l}=t,{alignCorners:i}=n;(0,o.assertNotComplex)([l,s],"resizeBilinearGrad");let u=a.util.computeStrides(s.shape),[p,c,d,f]=s.shape,[,m,h]=l.shape,g=new Float32Array(p*c*d*f),x=[i&&m>1?c-1:c,i&&h>1?d-1:d],v=[i&&m>1?m-1:m,i&&h>1?h-1:h],y=x[0]/v[0],b=x[1]/v[1],_=r.data.get(l.dataId).values,k=0;for(let e=0;el),s.export(r,"resizeNearestNeighborConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s}=t,{alignCorners:l,halfPixelCenters:i,size:u}=n;(0,o.assertNotComplex)(s,"resizeNearestNeighbor");let p=a.util.computeStrides(s.shape),[c,d]=u,[f,m,h,g]=s.shape,x=r.data.get(s.dataId).values,v=new Float32Array(f*c*d*g),y=[l&&c>1?m-1:m,l&&d>1?h-1:h],b=[l&&c>1?c-1:c,l&&d>1?d-1:d],_=y[0]/b[0],k=y[1]/b[1],j=0;for(let e=0;el),s.export(r,"resizeNearestNeighborGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s,dy:l}=t,{alignCorners:i}=n;(0,o.assertNotComplex)([l,s],"resizeNearestNeighborGrad");let u=a.util.computeStrides(s.shape),p=a.util.computeStrides(l.shape),[c,d,f,m]=s.shape,[,h,g]=l.shape,x=new Float32Array(c*d*f*m),v=r.data.get(l.dataId).values,y=[i&&h>1?d-1:d,i&&g>1?f-1:f],b=[i&&h>1?h-1:h,i&&g>1?g-1:g],_=y[0]/b[0],k=y[1]/b[1],j=1/_,I=1/k,w=2*Math.ceil(j)+2,T=2*Math.ceil(I)+2;for(let e=0;e=h)continue;let c=t+u*p[1],m=u*_;if(e===Math.min(d-1,i?Math.round(m):Math.floor(m)))for(let e=0;e=g)continue;let n=c+t*p[2],a=t*k;s===Math.min(f-1,i?Math.round(a):Math.floor(a))&&(l+=v[n+r])}}x[a+r]=l}}}}return r.makeTensorInfo(s.shape,s.dtype,x)}let i={kernelName:a.ResizeNearestNeighborGrad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3pDzx":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse",()=>i),s.export(r,"reverseConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Identity");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{dims:i}=n;(0,o.assertNotComplex)(s,"reverse");let u=s.shape.length,p=a.util.parseAxisParam(i,s.shape);if(0===u)return(0,l.identity)({inputs:{x:s},backend:r});let c=new(0,a.TensorBuffer)(s.shape,s.dtype),d=r.bufferSync(s);for(let e=0;er[e]=s.shape[e]-1-r[e]),c.set(d.get(...r),...t)}return r.makeTensorInfo(c.shape,c.dtype,c.values)}let u={kernelName:a.Reverse,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./Identity":"bdLxl","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iMYaS:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rotateWithOffsetConfig",()=>o);var a=e("@tensorflow/tfjs-core");let o={kernelName:a.RotateWithOffset,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{image:n}=e,{radians:s,fillValue:o,center:l}=t,i=a.util.getTypedArrayFromDType(n.dtype,a.util.sizeFromShape(n.shape)),[u,p,c,d]=n.shape,[f,m]=a.backend_util.getImageCenter(l,p,c),h=Math.sin(s),g=Math.cos(s),x=r.data.get(n.dataId).values;for(let e=0;e=0&&b=0&&_o),s.export(r,"roundConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Round,e=>{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2==0?t:t+1}),l={kernelName:a.Round,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"3ihOs":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"scatterNd",()=>l),s.export(r,"scatterNdConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Scatter_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{indices:s,updates:l}=t,{shape:i}=n,{sliceRank:u,numUpdates:p,sliceSize:c,strides:d,outputSize:f}=a.backend_util.calculateShapes(l,s,i),m=r.bufferSync(s),h=r.bufferSync(l),g=(0,o.scatterImpl)(m,h,i,f,c,p,u,d,0,!0);return r.makeTensorInfo(i,g.dtype,g.values)}let i={kernelName:a.ScatterNd,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Scatter_impl":"kduZ3","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5lVnK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"searchSorted",()=>l),s.export(r,"searchSortedConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./SearchSorted_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{sortedSequence:s,values:a}=t,{side:l}=n,i=r.data.get(s.dataId).values,u=r.data.get(a.dataId).values,p=(0,o.searchSortedImpl)(i,u,s.shape[0],s.shape[1],a.shape[1],l);return r.makeTensorInfo(a.shape,"int32",p)}let i={kernelName:a.SearchSorted,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./SearchSorted_impl":"981FY","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"981FY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"searchSortedImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o){let l=a.util.getArrayFromDType("int32",r*s);for(let a=0;al),s.export(r,"selectConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r}=e,{condition:n,t:s,e:l}=t;(0,o.assertNotComplex)([n,s,l],"select");let i=n.shape.length,u=r.data.get(n.dataId).values,p=r.data.get(s.dataId).values,c=r.data.get(l.dataId).values,d=(0,a.upcastType)(s.dtype,l.dtype),f=a.util.makeZerosTypedArray(a.util.sizeFromShape(s.shape),d),m=0,h=0===i||i>1||1===s.shape.length?1:a.util.sizeFromShape(s.shape.slice(1));for(let e=0;eu),s.export(r,"seluConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_utils");let l=a.backend_util.SELU_SCALEALPHA,i=a.backend_util.SELU_SCALE,u=(0,o.unaryKernelFunc)(a.Selu,e=>e>=0?i*e:l*(Math.exp(e)-1)),p={kernelName:a.Selu,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jWrc0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sign",()=>o),s.export(r,"signConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Sign,e=>e<0?-1:+(e>0)),l={kernelName:a.Sign,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],g3CCU:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sin",()=>o),s.export(r,"sinConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Sin,e=>Math.sin(e)),l={kernelName:a.Sin,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"8kEME":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sinh",()=>o),s.export(r,"sinhConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Sinh,e=>Math.sinh(e)),l={kernelName:a.Sinh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6OJKi":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softplus",()=>i),s.export(r,"softplusConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_utils");let l=Math.log(11920928955078125e-23)+2,i=(0,o.unaryKernelFunc)(a.Softplus,e=>{let t,r=Math.exp(e);return e-l?e:Math.log(1+r)}),u={kernelName:a.Softplus,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],knIdy:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"spaceToBatchND",()=>p),s.export(r,"spaceToBatchNDConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./PadV2"),i=e("./Reshape"),u=e("./Transpose");function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockShape:p,paddings:c}=n;(0,o.assertNotComplex)([s],"spaceToBatchND");let d=a.util.sizeFromShape(p),f=[[0,0]];f.push(...c);for(let e=1+p.length;el),s.export(r,"sparseFillEmptyRowsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./SparseFillEmptyRows_impl");function l(e){let{inputs:t,backend:r}=e,{indices:n,values:s,denseShape:a,defaultValue:l}=t;if(1!==a.shape.length)throw Error(`Dense shape must be a vector, saw: + ${a.shape}`);if(2!==n.shape.length)throw Error(`Indices must be a matrix, saw: + ${n.shape}`);if(1!==s.shape.length)throw Error(`Values must be a vector, saw: + ${s.shape}`);if(0!==l.shape.length)throw Error(`Default value must be a scalar, saw: + ${l.shape}`);let i=r.data.get(n.dataId).values,u=r.data.get(s.dataId).values,p=r.data.get(a.dataId).values,c=r.data.get(l.dataId).values[0],[d,f,m,h,g]=(0,o.sparseFillEmptyRowsImpl)(i,n.shape,n.dtype,u,s.dtype,p,c);return[r.makeTensorInfo(f,n.dtype,d),r.makeTensorInfo([f[0]],s.dtype,m),r.makeTensorInfo([h.length],"bool",new Uint8Array(h.map(e=>Number(e)))),r.makeTensorInfo([g.length],n.dtype,new Int32Array(g))]}let i={kernelName:a.SparseFillEmptyRows,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./SparseFillEmptyRows_impl":"c6AeG","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fvimw:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseReshape",()=>l),s.export(r,"sparseReshapeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./SparseReshape_impl");function l(e){let{inputs:t,backend:r}=e,{inputIndices:n,inputShape:s,newShape:a}=t;if(2!==n.shape.length)throw Error(`Input indices should be a matrix but received shape + ${n.shape}`);if(1!==s.shape.length)throw Error(`Input shape should be a vector but received shape + ${s.shape}`);if(1!==a.shape.length)throw Error(`Target shape should be a vector but received shape ${a.shape}`);let l=Array.from(r.data.get(s.dataId).values),i=r.data.get(n.dataId).values,u=Array.from(r.data.get(a.dataId).values),[p,c,d]=(0,o.sparseReshapeImpl)(i,n.shape,n.dtype,l,u);return[r.makeTensorInfo(c,n.dtype,p),r.makeTensorInfo([d.length],a.dtype,new Int32Array(d))]}let i={kernelName:a.SparseReshape,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./SparseReshape_impl":"5soT4","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jt8fg:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentMean",()=>l),s.export(r,"sparseSegmentMeanConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./SparseSegmentReduction_impl");function l(e){let{inputs:t,backend:r}=e,{data:n,indices:s,segmentIds:a}=t;if(n.shape.length<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.shape.length)throw Error(`Indices should be a vector but received shape + ${s.shape}`);if(1!==a.shape.length)throw Error(`Segment ids should be a vector but received shape + ${a.shape}`);if(s.shape[0]!==a.shape[0])throw Error("segmentIds and indices should have same size.");let l=r.data.get(n.dataId).values,i=r.data.get(s.dataId).values,u=r.data.get(a.dataId).values,[p,c]=(0,o.sparseSegmentReductionImpl)(l,n.shape,n.dtype,i,u,!0);return r.makeTensorInfo(c,n.dtype,p)}let i={kernelName:a.SparseSegmentMean,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./SparseSegmentReduction_impl":"73Ezr","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"4W4rq":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentSum",()=>l),s.export(r,"sparseSegmentSumConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./SparseSegmentReduction_impl");function l(e){let{inputs:t,backend:r}=e,{data:n,indices:s,segmentIds:a}=t;if(n.shape.length<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.shape.length)throw Error(`Indices should be a vector but received shape + ${s.shape}`);if(1!==a.shape.length)throw Error(`Segment ids should be a vector but received shape + ${a.shape}`);if(s.shape[0]!==a.shape[0])throw Error("segmentIds and indices should have same size.");let l=r.data.get(n.dataId).values,i=r.data.get(s.dataId).values,u=r.data.get(a.dataId).values,[p,c]=(0,o.sparseSegmentReductionImpl)(l,n.shape,n.dtype,i,u);return r.makeTensorInfo(c,n.dtype,p)}let i={kernelName:a.SparseSegmentSum,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./SparseSegmentReduction_impl":"73Ezr","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],gNkA2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseToDense",()=>l),s.export(r,"sparseToDenseConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Scatter_impl");function l(e){let t,{inputs:r,backend:n,attrs:s}=e,{sparseIndices:l,sparseValues:i,defaultValue:u}=r,{outputShape:p}=s,{sliceRank:c,numUpdates:d,sliceSize:f,strides:m,outputSize:h}=a.backend_util.calculateShapes(i,l,p),g=n.bufferSync(l);switch(i.dtype){case"bool":{let e=n.bufferSync(i),r=!!n.data.get(u.dataId).values[0];t=(0,o.scatterImpl)(g,e,p,h,f,d,c,m,r,!1);break}case"float32":{let e=n.bufferSync(i),r=n.data.get(u.dataId).values[0];t=(0,o.scatterImpl)(g,e,p,h,f,d,c,m,r,!1);break}case"int32":{let e=n.bufferSync(i),r=n.data.get(u.dataId).values[0];t=(0,o.scatterImpl)(g,e,p,h,f,d,c,m,r,!1);break}case"string":{let e=n.bufferSync(i),r=a.util.decodeString(n.data.get(u.dataId).values[0]);t=(0,o.scatterImpl)(g,e,p,h,f,d,c,m,r,!1);break}default:throw Error(`Unsupported type ${i.dtype}`)}return n.makeTensorInfo(p,t.dtype,t.values)}let i={kernelName:a.SparseToDense,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Scatter_impl":"kduZ3","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],hlKME:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"splitV",()=>l),s.export(r,"splitVConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Slice");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{numOrSizeSplits:l,axis:i}=n,u=a.util.parseAxisParam(i,s.shape)[0],p=a.backend_util.prepareSplitSize(s,l,u),c=Array(s.shape.length).fill(0),d=s.shape.slice();return p.map(e=>{let t=[...d];t[u]=e;let n=(0,o.slice)({inputs:{x:s},backend:r,attrs:{begin:c,size:t}});return c[u]+=e,n})}let i={kernelName:a.SplitV,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Slice":"dHddY","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],csjoO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"squareConfig",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");let l={kernelName:a.Square,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:r}=e;(0,o.assertNotComplex)(r,"square");let n=t.data.get(r.dataId).values,s=new Float32Array(n.length);for(let e=0;eo),s.export(r,"stepConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Step,(e,t)=>isNaN(e)?NaN:e>0?1:t.alpha),l={kernelName:a.Step,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"2rqzs":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stridedSlice",()=>p),s.export(r,"stridedSliceConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape"),i=e("./Slice"),u=e("./StridedSlice_impl");function p(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:p}=r,{begin:c,end:d,strides:f,beginMask:m,endMask:h,ellipsisMask:g,newAxisMask:x,shrinkAxisMask:v}=s;(0,o.assertNotComplex)(p,"stridedSlice");let{finalShapeSparse:y,finalShape:b,isIdentity:_,sliceDim0:k,isSimpleSlice:j,begin:I,end:w,strides:T}=a.slice_util.sliceInfo(p.shape,c,d,f,m,h,g,x,v);if(_)t=(0,l.reshape)({inputs:{x:p},backend:n,attrs:{shape:b}});else if(k||j){a.util.assert(p.shape.length>=1,()=>`Input must have rank at least 1, got: ${p.shape.length}`);let e=a.slice_util.computeOutShape(I,w,T),r=(0,i.slice)({inputs:{x:p},backend:n,attrs:{begin:I,size:e}});t=(0,l.reshape)({inputs:{x:r},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(r)}else{let e=n.bufferSync(p),r=(0,u.stridedSliceImpl)(y,e,T,I);t=n.makeTensorInfo(b,r.dtype,r.values)}return t}let c={kernelName:a.StridedSlice,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./Reshape":"gdyYW","./Slice":"dHddY","./StridedSlice_impl":"3XL7y","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"30Jsy":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringNGrams",()=>l),s.export(r,"stringNGramsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./StringNGrams_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{separator:s,nGramWidths:a,leftPad:l,rightPad:i,padWidth:u,preserveShortSequences:p}=n,{data:c,dataSplits:d}=t,f=r.data.get(c.dataId).values,m=r.data.get(d.dataId).values,[h,g]=(0,o.stringNGramsImpl)(f,m,s,a,l,i,u,p);return[r.makeTensorInfo([h.length],"string",h),r.makeTensorInfo(d.shape,"int32",g)]}let i={kernelName:a.StringNGrams,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./StringNGrams_impl":"acuWz","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"1Ko5Y":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringSplit",()=>l),s.export(r,"stringSplitConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./StringSplit_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{skipEmpty:s}=n,{input:a,delimiter:l}=t;if("string"!==a.dtype)throw Error("Input must be of datatype string");if(1!==a.shape.length)throw Error(`Input must be a vector, got shape: ${a.shape}`);if(0!==l.shape.length)throw Error(`Delimiter must be a scalar, got shape: ${l.shape}`);let i=r.data.get(a.dataId).values,u=r.data.get(l.dataId).values[0],[p,c,d]=(0,o.stringSplitImpl)(i,u,s),f=c.length;return[r.makeTensorInfo([f,2],"int32",p),r.makeTensorInfo([f],"string",c),r.makeTensorInfo([2],"int32",new Int32Array(d))]}let i={kernelName:a.StringSplit,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./StringSplit_impl":"hVXkV","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],iHsXF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringToHashBucketFast",()=>l),s.export(r,"stringToHashBucketFastConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./StringToHashBucketFast_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{numBuckets:s}=n,{input:a}=t;if("string"!==a.dtype)throw Error("Input must be of datatype string");if(s<=0)throw Error("Number of buckets must be at least 1");let l=r.data.get(a.dataId).values,i=(0,o.stringToHashBucketFastImpl)(l,s);return r.makeTensorInfo(a.shape,"int32",i)}let i={kernelName:a.StringToHashBucketFast,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./StringToHashBucketFast_impl":"6n7GK","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6VGWn":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tan",()=>o),s.export(r,"tanConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Tan,e=>Math.tan(e)),l={kernelName:a.Tan,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],kUHbY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tanh",()=>o),s.export(r,"tanhConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Tanh,e=>Math.tanh(e)),l={kernelName:a.Tanh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"biUij","../utils/unary_utils":"5lx9s","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],h8wzB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensorScatterUpdate",()=>l),s.export(r,"tensorScatterUpdateConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Scatter_impl");function l(e){let{inputs:t,backend:r}=e,{tensor:n,indices:s,updates:l}=t,{sliceRank:i,numUpdates:u,sliceSize:p,strides:c,outputSize:d}=a.backend_util.calculateShapes(l,s,n.shape),f=r.bufferSync(s),m=r.bufferSync(l),h=r.bufferSync(n),g=(0,o.scatterImpl)(f,m,n.shape,d,p,u,i,c,h,!1);return r.makeTensorInfo(n.shape,g.dtype,g.values)}let i={kernelName:a.TensorScatterUpdate,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"biUij","./Scatter_impl":"kduZ3","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5w8Av":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tile",()=>i),s.export(r,"tileConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Tile_impl");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{reps:a}=n;(0,o.assertNotComplex)(s,"tile");let i=(0,l.tileImpl)(r.bufferSync(s),a);return r.makeTensorInfo(i.shape,i.dtype,i.values)}let u={kernelName:a.Tile,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./Tile_impl":"1lWzm","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],fceZ4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"topK",()=>i),s.export(r,"topKConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./TopK_impl");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{k:a,sorted:i}=n;(0,o.assertNotComplex)(s,"topk");let u=r.data.get(s.dataId).values,[p,c]=(0,l.topKImpl)(u,s.shape,s.dtype,a,i);return[r.makeTensorInfo(p.shape,p.dtype,p.values),r.makeTensorInfo(c.shape,c.dtype,c.values)]}let u={kernelName:a.TopK,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./TopK_impl":"kIJEs","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],VkSQG:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transform",()=>o),s.export(r,"transformConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,attrs:r,backend:n}=e,{image:s,transforms:o}=t,{interpolation:l,fillMode:p,fillValue:c,outputShape:d}=r,[f,m,h,g]=s.shape,[x,v]=null!=d?d:[m,h],y=[f,x,v,g],b=a.util.computeStrides(s.shape),_=b[0],k=b[1],j=b[2],I=a.util.computeStrides(y),w=I[0],T=I[1],N=I[2],S=a.util.getTypedArrayFromDType(s.dtype,a.util.sizeFromShape(y));S.fill(c);let C=n.data.get(s.dataId).values,E=n.data.get(o.dataId).values;for(let e=0;ep-1)if(p<=1)c=0;else{let e=2*p;(c-=e*Math.trunc(c/e))>=p&&(c=e-c-1)}return a.util.clamp(0,c,p-1);case"wrap":let d;return n=e,s=t,(d=n)<0?s<=1?d=0:d+=s*(Math.trunc(-d/(s-1))+1):d>s-1&&(s<=1?d=0:d-=s*Math.trunc(d/(s-1))),a.util.clamp(0,d,s-1);case"nearest":return o=e,l=t,a.util.clamp(0,o,l-1);default:return i=0,e}}function u(e,t,r,n,s,a,o,l,i,u,p){return 0<=l&&li),s.export(r,"uniqueConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Unique_impl");function i(e){let{inputs:t,attrs:r,backend:n}=e,{axis:s}=r,{x:a}=t;(0,o.assertNotComplex)(a,"unique");let i=n.data.get(a.dataId).values,{outputValues:u,outputShape:p,indices:c}=(0,l.uniqueImpl)(i,s,a.shape,a.dtype);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([c.length],"int32",c)]}let u={kernelName:a.Unique,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./Unique_impl":"8WaZh","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],a4FH4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unpack",()=>i),s.export(r,"unpackConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./Reshape"),l=e("./Slice");function i(e){let{inputs:t,backend:r,attrs:n}=e,{value:s}=t,{axis:a}=n;a<0&&(a+=s.shape.length);let i=s.shape.length,u=s.shape[a],p=Array(i-1),c=0;for(let e=0;ef),s.export(r,"unsortedSegmentSumConfig",()=>m);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Cast"),i=e("./Equal"),u=e("./ExpandDims"),p=e("./Multiply"),c=e("./Pack"),d=e("./Sum");function f(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,segmentIds:f}=t,{numSegments:m}=n;(0,o.assertNotComplex)(s,"unsortedSegmentSum");let h=s.shape.length,g=f.shape.length,x=[],v=[],y=h-g,b=f;for(let e=0;er.disposeIntermediateTensorInfo(e)),_}let m={kernelName:a.UnsortedSegmentSum,backendName:"cpu",kernelFunc:f}},{"@tensorflow/tfjs-core":"biUij","../cpu_util":"aSshR","./Cast":"cMwEt","./Equal":"hGYXP","./ExpandDims":"gtxdI","./Multiply":"dvGJ0","./Pack":"au22V","./Sum":"jeTUE","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lcmzA:[function(e,t,r,n){var s,a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"SupportedModels",()=>eR),a.export(r,"blurBodyPart",()=>eZ),a.export(r,"bodyPixMaskValueToRainbowColor",()=>b),a.export(r,"createSegmenter",()=>eD),a.export(r,"drawBokehEffect",()=>eJ),a.export(r,"drawMask",()=>eX),a.export(r,"drawPixelatedMask",()=>eY),a.export(r,"toBinaryMask",()=>eH),a.export(r,"toColoredMask",()=>eK);var o=e("@tensorflow/tfjs-core"),l=e("@tensorflow/tfjs-converter"),i=e("@mediapipe/selfie_segmentation"),u=function(e,t){return(u=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function p(e,t){function r(){this.constructor=e}u(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var c=function(){return(c=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0&&s[s.length-1])&&(6===i[0]||2===i[0])){o=0;continue}if(3===i[0]&&(!s||i[1]>s[0]&&i[1]=256)throw Error("Mask value must be in range [0, 255] but got "+e);if(!Number.isInteger(e))throw Error("Mask value must be an integer but got "+e)}var y=[[110,64,170],[143,61,178],[178,60,178],[210,62,167],[238,67,149],[255,78,125],[255,94,99],[255,115,75],[255,140,56],[239,167,47],[217,194,49],[194,219,64],[175,240,91],[135,245,87],[96,247,96],[64,243,115],[40,234,141],[28,219,169],[26,199,194],[33,176,213],[47,150,224],[65,125,224],[84,101,214],[99,81,195]];function b(e){if(v(e),er&&(s+=1,n+=Math.pow(e[a].x-t.keypoints[a].position.x,2)+Math.pow(e[a].y-t.keypoints[a].position.y,2));return 0===s?n=1/0:n/=s,n}(g,r[k]);j<_&&(b=k,_=j)}return b}function R(e,t){var r=e[0];return[Math.round((e[1]-1)/t+1),Math.round((r-1)/t+1)]}function P(e,t,r,n,s,a,l,i,u,p,c){for(var d=l[0],f=l[1],m=e.shape,h=m[0],g=m[1],x=t.shape.slice(0,2),v=x[0],y=x[1],b=(0,o.reshape)(t,[v,y,2,T]),_=new Float32Array(c*T*3).fill(0),k=0;k "+p+") {\n numKpt = numKpt + 1;\n curDistSum = curDistSum + dist(x, y, poseX, poseY);\n }\n }\n if (numKpt > 0 && curDistSum / float(numKpt) < minDist) {\n minDist = curDistSum / float(numKpt);\n iMin = i;\n }\n }\n return iMin;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int nearestPose = findNearestPose(coords[0], coords[1]);\n setOutput(float(nearestPose));\n }\n "};return(0,o.backend)().compileAndRun($,[e,b,R])}function D(){return"webgl"===(0,o.getBackend)()}function $(e){return Math.floor(e/2)}[["leftHip","leftShoulder"],["leftElbow","leftShoulder"],["leftElbow","leftWrist"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["rightHip","rightShoulder"],["rightElbow","rightShoulder"],["rightElbow","rightWrist"],["rightHip","rightKnee"],["rightKnee","rightAnkle"],["leftShoulder","rightShoulder"],["leftHip","rightHip"]].map(function(e){var t=e[0],r=e[1];return[N[t],N[r]]});var O=function(){function e(e,t){this.priorityQueue=Array(e),this.numberOfElements=-1,this.getElementValue=t}return e.prototype.enqueue=function(e){this.priorityQueue[++this.numberOfElements]=e,this.swim(this.numberOfElements)},e.prototype.dequeue=function(){var e=this.priorityQueue[0];return this.exchange(0,this.numberOfElements--),this.sink(0),this.priorityQueue[this.numberOfElements+1]=null,e},e.prototype.empty=function(){return -1===this.numberOfElements},e.prototype.size=function(){return this.numberOfElements+1},e.prototype.all=function(){return this.priorityQueue.slice(0,this.numberOfElements+1)},e.prototype.max=function(){return this.priorityQueue[0]},e.prototype.swim=function(e){for(;e>0&&this.less($(e),e);)this.exchange(e,$(e)),e=$(e)},e.prototype.sink=function(e){for(;2*e<=this.numberOfElements;){var t=2*e;if(ta?a:s),x:(o=Math.round(e.x/t),l=n-1,o<0?0:o>l?l:o)}}function V(e,t,r,n,s,a,o,l){void 0===l&&(l=2);for(var i,u,p=n.shape,c=p[0],d=p[1],f=(i=L(t.position,a,c,d),u=o.shape[2]/2,{y:o.get(i.y,i.x,e),x:o.get(i.y,i.x,u+e)}),m=F(t.position,f),h=0;ht){u=!1;break}if(!u)break}return u}(p,c,i,u,1,r)&&l.enqueue({score:c,part:{heatmapY:i,heatmapX:u,id:p}})}return l}(o,0,e),p=l*l;i.length=0;--d){var f=W[d],m=B[d];i[f]&&!i[m]&&(i[m]=V(d,i[f],m,t,r,n,a))}for(d=0;d=.1,function(){return"inputResolution must be a string or number between 0.1 and 2, but was "+e}),e}(e);return[Y(n*a,t),Y(s*a,t)]}function et(e,t,r,n,s){var a=t[0],l=t[1],i=r[0],u=r[1],p=n[0],c=p[0],d=p[1],f=n[1],m=f[0],h=f[1];return void 0===s&&(s=!1),(0,o.tidy)(function(){var t,r,n,p,f,g,x,v,y,b,_,k=o.image.resizeBilinear(e,[i,u],!0);return s&&(k=(0,o.sigmoid)(k)),t=k,r=[a,l],n=[[c,d],[m,h]],p=r[0],f=r[1],x=(g=n[0])[0],v=g[1],b=(y=n[1])[0],_=y[1],(0,o.tidy)(function(){var e=(0,o.expandDims)(t);return(0,o.squeeze)(o.image.cropAndResize(e,[[x/(p+x+v-1),b/(f+b+_-1),(x+p-1)/(p+x+v-1),(b+f-1)/(f+b+_-1)]],[0],[p,f]),[0])})})}function er(e,t){var r=t[0],n=t[1],s=X(e),a=s[0],l=s[1],i=n/r,u=0,p=0,c=0,d=0;return l/a1)throw Error("segmentationThreshold "+t+". Should be in range [0.0, 1.0]");if(r<=0)throw Error("Invalid maxDetections "+r+". Should be > 0");if(n<0||n>1)throw Error("Invalid scoreThreshold "+n+". Should be in range [0.0, 1.0]");if(s<=0)throw Error("Invalid nmsRadius "+s+".")}function ef(e){var t=e.segmentationThreshold,r=e.maxDetections,n=e.scoreThreshold,s=e.nmsRadius,a=e.minKeypointScore,o=e.refineSteps;if(t<0||t>1)throw Error("segmentationThreshold "+t+". Should be in range [0.0, 1.0]");if(r<=0)throw Error("Invalid maxDetections "+r+". Should be > 0");if(n<0||n>1)throw Error("Invalid scoreThreshold "+n+". Should be in range [0.0, 1.0]");if(s<=0)throw Error("Invalid nmsRadius "+s+".");if(a<0||a>1)throw Error("Invalid minKeypointScore "+a+".Should be in range [0.0, 1.0]");if(o<=0||o>20)throw Error("Invalid refineSteps "+o+".Should be in range [1, 20]")}var em=function(){function e(e){this.baseModel=e}return e.prototype.predictForPersonSegmentation=function(e){var t=this.baseModel.predict(e);return{segmentLogits:t.segmentation,heatmapScores:t.heatmapScores,offsets:t.offsets,displacementFwd:t.displacementFwd,displacementBwd:t.displacementBwd}},e.prototype.predictForPersonSegmentationAndPart=function(e){var t=this.baseModel.predict(e);return{segmentLogits:t.segmentation,partHeatmapLogits:t.partHeatmaps,heatmapScores:t.heatmapScores,offsets:t.offsets,displacementFwd:t.displacementFwd,displacementBwd:t.displacementBwd}},e.prototype.predictForMultiPersonInstanceSegmentationAndPart=function(e){var t=this.baseModel.predict(e);return{segmentLogits:t.segmentation,longOffsets:t.longOffsets,heatmapScores:t.heatmapScores,offsets:t.offsets,displacementFwd:t.displacementFwd,displacementBwd:t.displacementBwd,partHeatmaps:t.partHeatmaps}},e.prototype.segmentPersonActivation=function(e,t,r){var n=this;void 0===r&&(r=.5);var s=X(e),a=s[0],l=s[1],i=ee(t,this.baseModel.outputStride,[a,l]),u=er(e,i),p=u.resized,c=u.padding,d=(0,o.tidy)(function(){var e=n.predictForPersonSegmentation(p),t=e.segmentLogits,s=e.heatmapScores,i=e.offsets,u=e.displacementFwd,d=e.displacementBwd,f=p.shape,m=et(t,[a,l],[f[0],f[1]],[[c.top,c.bottom],[c.left,c.right]],!0);return{segmentation:k((0,o.squeeze)(m),r),heatmapScores:s,offsets:i,displacementFwd:u,displacementBwd:d}}),f=d.segmentation,m=d.heatmapScores,h=d.offsets,g=d.displacementFwd,x=d.displacementBwd;return p.dispose(),{segmentation:f,heatmapScores:m,offsets:h,displacementFwd:g,displacementBwd:x,padding:c,internalResolutionHeightAndWidth:i}},e.prototype.segmentPerson=function(e,t){return void 0===t&&(t=ep),d(this,void 0,void 0,function(){var r,n,s,a,o,l,i,u,p,d,m,h,g,x,v,y;return f(this,function(f){switch(f.label){case 0:return ed(t=c(c({},ep),t)),n=(r=this.segmentPersonActivation(e,t.internalResolution,t.segmentationThreshold)).segmentation,s=r.heatmapScores,a=r.offsets,o=r.displacementFwd,l=r.displacementBwd,i=r.padding,u=r.internalResolutionHeightAndWidth,d=(p=n.shape)[0],m=p[1],[4,n.data()];case 1:return h=f.sent(),n.dispose(),[4,en([s,a,o,l])];case 2:return x=(g=f.sent())[0],v=g[1],y=es(y=G(x,v,g[2],g[3],this.baseModel.outputStride,t.maxDetections,t.scoreThreshold,t.nmsRadius),[d,m],u,i,!1),s.dispose(),a.dispose(),o.dispose(),l.dispose(),[2,{height:d,width:m,data:h,allPoses:y}]}})})},e.prototype.segmentMultiPerson=function(e,t){return void 0===t&&(t=ec),d(this,void 0,void 0,function(){var r,n,s,a,l,i,u,p,m,h,g,x,v,y,b,_,j,I,w,T=this;return f(this,function(N){switch(N.label){case 0:return ef(t=c(c({},ec),t)),n=(r=X(e))[0],s=r[1],i=(l=er(e,a=ee(t.internalResolution,this.baseModel.outputStride,[n,s]))).resized,u=l.padding,m=(p=(0,o.tidy)(function(){var e=T.predictForMultiPersonInstanceSegmentationAndPart(i),r=e.segmentLogits,l=e.longOffsets,p=e.heatmapScores,c=e.offsets,d=e.displacementFwd,f=e.displacementBwd,m=et(r,[n,s],a,[[u.top,u.bottom],[u.left,u.right]],!0);return{segmentation:k((0,o.squeeze)(m),t.segmentationThreshold),longOffsets:l,heatmapScoresRaw:p,offsetsRaw:c,displacementFwdRaw:d,displacementBwdRaw:f}})).segmentation,h=p.longOffsets,g=p.heatmapScoresRaw,x=p.offsetsRaw,v=p.displacementFwdRaw,y=p.displacementBwdRaw,[4,en([g,x,v,y])];case 1:return _=(b=N.sent())[0],j=b[1],I=es(I=G(_,j,b[2],b[3],this.baseModel.outputStride,t.maxDetections,t.scoreThreshold,t.nmsRadius),[n,s],a,u,!1),[4,function(e,t,r,n,s,a,l,i,u,p,c,m){var h=l[0],g=l[1];return void 0===u&&(u=.2),void 0===p&&(p=8),void 0===c&&(c=.3),void 0===m&&(m=10),d(this,void 0,void 0,function(){var l,d,x,v,y;return f(this,function(f){switch(f.label){case 0:return l=r.filter(function(e){return e.score>=u}),D()?[4,Promise.all((x=(0,o.tidy)(function(){var r=P(e,t,l,n,s,a,[h,g],i,p,c,m),u=(0,o.engine)().makeTensorFromDataId(r.dataId,r.shape,r.dtype);return l.map(function(e,t){return(0,o.tidy)(function(){return(0,o.cast)((0,o.equal)(u,(0,o.scalar)(t)),"int32")})})})).map(function(e){return e.data()}))]:[3,2];case 1:return d=f.sent(),x.forEach(function(e){return e.dispose()}),[3,5];case 2:return[4,e.data()];case 3:return v=f.sent(),[4,t.data()];case 4:y=f.sent(),d=function(e,t,r,n,s,a,o,l,i,u){var p=o[0],c=o[1];void 0===u&&(u=5);for(var d=r.map(function(e){return new Uint8Array(n*s).fill(0)}),f=l.top,m=l.left,h=S([n,s],[p,c],l),g=h[0],x=h[1],v=R([p,c],a)[0],y=0;y=0&&(d[k][_]=1)}}return d}(v,y,l,n,s,a,[h,g],i,p),f.label=5;case 5:return[2,d.map(function(e,t){return{data:e,pose:l[t],width:s,height:n}})]}})})}(m,h,I,n,s,this.baseModel.outputStride,a,u,t.scoreThreshold,t.refineSteps,t.minKeypointScore,t.maxDetections)];case 2:return w=N.sent(),i.dispose(),m.dispose(),h.dispose(),g.dispose(),x.dispose(),v.dispose(),y.dispose(),[2,w]}})})},e.prototype.segmentPersonPartsActivation=function(e,t,r){var n=this;void 0===r&&(r=.5);var s=X(e),a=s[0],l=s[1],i=ee(t,this.baseModel.outputStride,[a,l]),u=er(e,i),p=u.resized,c=u.padding,d=(0,o.tidy)(function(){var e,t,s,i,u,d=n.predictForPersonSegmentationAndPart(p),f=d.segmentLogits,m=d.partHeatmapLogits,h=d.heatmapScores,g=d.offsets,x=d.displacementFwd,v=d.displacementBwd,y=p.shape,b=y[0],j=y[1],I=et(f,[a,l],[b,j],[[c.top,c.bottom],[c.left,c.right]],!0),w=et(m,[a,l],[b,j],[[c.top,c.bottom],[c.left,c.right]],!0);return{partSegmentation:(e=k((0,o.squeeze)(I),r),s=(t=w.shape)[0],i=t[1],u=t[2],(0,o.tidy)(function(){var t=_(w),r=(0,o.expandDims)((0,o.range)(0,u,1,"int32"),1),n=(0,o.cast)((0,o.matMul)(t,r),"int32"),a=(0,o.reshape)(n,[s,i]),l=(0,o.add)(a,(0,o.scalar)(1,"int32"));return(0,o.sub)((0,o.mul)(l,e),(0,o.scalar)(1,"int32"))})),heatmapScores:h,offsets:g,displacementFwd:x,displacementBwd:v}}),f=d.partSegmentation,m=d.heatmapScores,h=d.offsets,g=d.displacementFwd,x=d.displacementBwd;return p.dispose(),{partSegmentation:f,heatmapScores:m,offsets:h,displacementFwd:g,displacementBwd:x,padding:c,internalResolutionHeightAndWidth:i}},e.prototype.segmentPersonParts=function(e,t){return void 0===t&&(t=ep),d(this,void 0,void 0,function(){var r,n,s,a,o,l,i,u,p,d,m,h,g,x,v,y;return f(this,function(f){switch(f.label){case 0:return ed(t=c(c({},ep),t)),n=(r=this.segmentPersonPartsActivation(e,t.internalResolution,t.segmentationThreshold)).partSegmentation,s=r.heatmapScores,a=r.offsets,o=r.displacementFwd,l=r.displacementBwd,i=r.padding,u=r.internalResolutionHeightAndWidth,d=(p=n.shape)[0],m=p[1],[4,n.data()];case 1:return h=f.sent(),n.dispose(),[4,en([s,a,o,l])];case 2:return x=(g=f.sent())[0],v=g[1],y=es(y=G(x,v,g[2],g[3],this.baseModel.outputStride,t.maxDetections,t.scoreThreshold,t.nmsRadius),[d,m],u,i,!1),s.dispose(),a.dispose(),o.dispose(),l.dispose(),[2,{height:d,width:m,data:h,allPoses:y}]}})})},e.prototype.segmentMultiPersonParts=function(e,t){return void 0===t&&(t=ec),d(this,void 0,void 0,function(){var r,n,s,a,l,i,u,p,m,h,g,x,v,y,b,j,I,w,T,N,C=this;return f(this,function(E){switch(E.label){case 0:return ef(t=c(c({},ec),t)),n=(r=X(e))[0],s=r[1],i=(l=er(e,a=ee(t.internalResolution,this.baseModel.outputStride,[n,s]))).resized,u=l.padding,m=(p=(0,o.tidy)(function(){var e,r,l,p,c=C.predictForMultiPersonInstanceSegmentationAndPart(i),d=c.segmentLogits,f=c.longOffsets,m=c.heatmapScores,h=c.offsets,g=c.displacementFwd,x=c.displacementBwd,v=c.partHeatmaps,y=et(d,[n,s],a,[[u.top,u.bottom],[u.left,u.right]],!0),b=et(v,[n,s],a,[[u.top,u.bottom],[u.left,u.right]],!0);return{segmentation:k((0,o.squeeze)(y),t.segmentationThreshold),longOffsets:f,heatmapScoresRaw:m,offsetsRaw:h,displacementFwdRaw:g,displacementBwdRaw:x,partSegmentation:(r=(e=b.shape)[0],l=e[1],p=e[2],(0,o.tidy)(function(){var e=_(b),t=(0,o.expandDims)((0,o.range)(0,p,1,"int32"),1),n=(0,o.cast)((0,o.matMul)(e,t),"int32");return(0,o.reshape)(n,[r,l])}))}})).segmentation,h=p.longOffsets,g=p.heatmapScoresRaw,x=p.offsetsRaw,v=p.displacementFwdRaw,y=p.displacementBwdRaw,b=p.partSegmentation,[4,en([g,x,v,y])];case 1:return I=(j=E.sent())[0],w=j[1],T=es(T=G(I,w,j[2],j[3],this.baseModel.outputStride,t.maxDetections,t.scoreThreshold,t.nmsRadius),[n,s],a,u,!1),[4,function(e,t,r,n,s,a,l,i,u,p,c,m,h){var g=i[0],x=i[1];return void 0===p&&(p=.2),void 0===c&&(c=8),void 0===m&&(m=.3),void 0===h&&(h=10),d(this,void 0,void 0,function(){var i,d,v,y,b,_;return f(this,function(f){switch(f.label){case 0:return i=n.filter(function(e){return e.score>=p}),D()?[4,Promise.all((v=(0,o.tidy)(function(){var n=P(e,t,i,s,a,l,[g,x],u,c,m,h),p=(0,o.engine)().makeTensorFromDataId(n.dataId,n.shape,n.dtype);return i.map(function(e,t){return(0,o.tidy)(function(){return(0,o.sub)((0,o.mul)((0,o.cast)((0,o.equal)(p,(0,o.scalar)(t)),"int32"),(0,o.add)(r,1)),1)})})})).map(function(e){return e.data()}))]:[3,2];case 1:return d=f.sent(),v.forEach(function(e){return e.dispose()}),[3,6];case 2:return[4,e.data()];case 3:return y=f.sent(),[4,t.data()];case 4:return b=f.sent(),[4,r.data()];case 5:_=f.sent(),d=function(e,t,r,n,s,a,o,l,i,u,p){var c=l[0],d=l[1];void 0===p&&(p=5);for(var f=n.map(function(e){return new Int32Array(s*a).fill(-1)}),m=i.top,h=i.left,g=S([s,a],[c,d],i),x=g[0],v=g[1],y=R([c,d],o)[0],b=0;b=0&&(f[j][k]=r[k])}}return f}(y,b,_,i,s,a,l,[g,x],u,c),f.label=6;case 6:return[2,d.map(function(e,t){return{pose:i[t],data:e,height:s,width:a}})]}})})}(m,h,b,T,n,s,this.baseModel.outputStride,a,u,t.scoreThreshold,t.refineSteps,t.minKeypointScore,t.maxDetections)];case 2:return N=E.sent(),i.dispose(),m.dispose(),h.dispose(),g.dispose(),x.dispose(),v.dispose(),y.dispose(),b.dispose(),[2,N]}})})},e.prototype.dispose=function(){this.baseModel.dispose()},e}(),eh=["left_face","right_face","left_upper_arm_front","left_upper_arm_back","right_upper_arm_front","right_upper_arm_back","left_lower_arm_front","left_lower_arm_back","right_lower_arm_front","right_lower_arm_back","left_hand","right_hand","torso_front","torso_back","left_upper_leg_front","left_upper_leg_back","right_upper_leg_front","right_upper_leg_back","left_lower_leg_front","left_lower_leg_back","right_lower_leg_front","right_lower_leg_back","left_feet","right_feet"],eg=function(){function e(e){this.mask=e}return e.prototype.toCanvasImageSource=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,h(this.mask)]})})},e.prototype.toImageData=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,this.mask]})})},e.prototype.toTensor=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,x(this.mask)]})})},e.prototype.getUnderlyingType=function(){return"imagedata"},e}();function ex(e){if(v(e),255!==e)throw Error("Foreground id must be 255 but got "+e);return"person"}function ev(e){if(v(e),e>=eh.length)throw Error("Invalid body part value "+e);return eh[e]}var ey=function(){function e(e){this.bodyPixModel=e}return e.prototype.segmentPeople=function(e,t){return d(this,void 0,void 0,function(){var r,n,s,a;return f(this,function(o){switch(o.label){case 0:return e instanceof ImageBitmap&&((r=document.createElement("canvas")).getContext("2d").drawImage(e,0,0),e=r),t.segmentBodyParts?t.multiSegmentation?[4,this.bodyPixModel.segmentMultiPersonParts(e,t)]:[3,2]:[3,5];case 1:return s=o.sent(),[3,4];case 2:return[4,this.bodyPixModel.segmentPersonParts(e,t)];case 3:s=[o.sent()],o.label=4;case 4:return n=s.map(function(e){var t=e.data,r=e.width,n=e.height,s=new Uint8ClampedArray(r*n*4).fill(0);return t.forEach(function(e,t){-1===e?(s[4*t]=eh.length,s[4*t+3]=0):(s[4*t]=e,s[4*t+3]=255)}),{maskValueToLabel:ev,mask:new eg(new ImageData(s,r,n))}}),[3,10];case 5:return t.multiSegmentation?[4,this.bodyPixModel.segmentMultiPerson(e,t)]:[3,7];case 6:return a=o.sent(),[3,9];case 7:return[4,this.bodyPixModel.segmentPerson(e,t)];case 8:a=[o.sent()],o.label=9;case 9:n=a.map(function(e){var t=e.data,r=e.width,n=e.height,s=new Uint8ClampedArray(r*n*4).fill(0);return t.forEach(function(e,t){0===e?(s[4*t]=0,s[4*t+3]=0):(s[4*t]=255,s[4*t+3]=255)}),{maskValueToLabel:ex,mask:new eg(new ImageData(s,r,n))}}),o.label=10;case 10:return[2,n]}})})},e.prototype.dispose=function(){this.bodyPixModel.dispose()},e.prototype.reset=function(){},e}(),eb={runtime:"mediapipe",modelType:"general"},e_=function(){function e(e){this.mask=e}return e.prototype.toCanvasImageSource=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,this.mask]})})},e.prototype.toImageData=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,g(this.mask)]})})},e.prototype.toTensor=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,x(this.mask)]})})},e.prototype.getUnderlyingType=function(){return"canvasimagesource"},e}();function ek(e){return v(e),"person"}var ej=function(){function e(e){var t,r,n=this;this.selfieMode=!1,t=+(this.selfieSegmentationSolution=new(0,i.SelfieSegmentation)({locateFile:null!=(r=e.locateFile)?r:function(t,r){return e.solutionPath?e.solutionPath.replace(/\/+$/,"")+"/"+t:r+"/"+t}}),"landscape"===e.modelType),this.selfieSegmentationSolution.setOptions({modelSelection:t,selfieMode:this.selfieMode}),this.selfieSegmentationSolution.onResults(function(e){n.segmentation=[{maskValueToLabel:ek,mask:new e_(e.segmentationMask)}]})}return e.prototype.segmentPeople=function(e,t){return d(this,void 0,void 0,function(){var r,n;return f(this,function(s){switch(s.label){case 0:return t&&t.flipHorizontal&&t.flipHorizontal!==this.selfieMode&&(this.selfieMode=t.flipHorizontal,this.selfieSegmentationSolution.setOptions({selfieMode:this.selfieMode})),e instanceof o.Tensor?(n=ImageData.bind,[4,o.browser.toPixels(e)]):[3,2];case 1:return r=new(n.apply(ImageData,[void 0,s.sent(),e.shape[1],e.shape[0]])),[3,3];case 2:r=e,s.label=3;case 3:return e=r,[4,this.selfieSegmentationSolution.send({image:e})];case 4:return s.sent(),[2,this.segmentation]}})})},e.prototype.dispose=function(){this.selfieSegmentationSolution.close()},e.prototype.reset=function(){this.selfieSegmentationSolution.reset(),this.segmentation=null,this.selfieMode=!1},e.prototype.initialize=function(){return this.selfieSegmentationSolution.initialize()},e}();function eI(e){return e instanceof o.Tensor?{height:e.shape[0],width:e.shape[1]}:{height:e.height,width:e.width}}function ew(e,t){o.util.assert(0!==e.width,function(){return t+" width cannot be 0."}),o.util.assert(0!==e.height,function(){return t+" height cannot be 0."})}var eT={runtime:"tfjs",modelType:"general",modelUrl:"https://tfhub.dev/mediapipe/tfjs-model/selfie_segmentation/general/1"},eN={flipHorizontal:!1},eS={outputTensorSize:{width:256,height:256},keepAspectRatio:!1,borderMode:"zero",outputTensorFloatRange:[0,1]},eC={outputTensorSize:{width:256,height:144},keepAspectRatio:!1,borderMode:"zero",outputTensorFloatRange:[0,1]},eE={activation:"none"},eF=function(){function e(e){this.mask=e}return e.prototype.toCanvasImageSource=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,h(this.mask)]})})},e.prototype.toImageData=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,g(this.mask)]})})},e.prototype.toTensor=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,this.mask]})})},e.prototype.getUnderlyingType=function(){return"tensor"},e}();function eA(e){return v(e),"person"}var eR,eP=function(){function e(e,t){this.modelType=e,this.model=t}return e.prototype.segmentPeople=function(e,t){return d(this,void 0,void 0,function(){var r=this;return f(this,function(n){return t=function(e){if(null==e)return c({},eN);var t=c({},e);return null==t.flipHorizontal&&(t.flipHorizontal=eN.flipHorizontal),t}(t),null==e?(this.reset(),[2,[]]):[2,[{maskValueToLabel:eA,mask:new eF((0,o.tidy)(function(){var t,n,s,a,l,i,u,p,c,d,f,m,h,g,x,v,y,b,_,k,j,I,w=(x=(t="general"===r.modelType?eS:eC).outputTensorSize,v=t.keepAspectRatio,y=t.borderMode,b=t.outputTensorFloatRange,j=function(e,t,r){if(void 0===r&&(r=!1),!r)return{top:0,left:0,right:0,bottom:0};var n=t.height,s=t.width;ew(t,"targetSize"),ew(e,"roi");var a,o,l=n/s,i=e.height/e.width,u=0,p=0;return l>i?(a=e.width,o=e.width*l,p=(1-i/l)/2):(a=e.height/l,o=e.height,u=(1-l/i)/2),e.width=a,e.height=o,{top:p,left:u,right:u,bottom:p}}((n=_=eI(e),k={xCenter:.5*n.width,yCenter:.5*n.height,width:n.width,height:n.height,rotation:0}),x,v),s=_.width,a=_.height,l=k.width,i=k.height,u=1,p=Math.cos(k.rotation),c=Math.sin(k.rotation),d=k.xCenter,f=k.yCenter,m=1/s,h=1/a,(g=Array(16))[0]=l*p*u*m,g[1]=-i*c*m,g[2]=0,g[3]=(-.5*l*p*u+.5*i*c+d)*m,g[4]=l*c*u*h,g[5]=i*p*h,g[6]=0,g[7]=(-.5*i*p-.5*l*c*u+f)*h,g[8]=0,g[9]=0,g[10]=l*m,g[11]=0,g[12]=0,g[13]=0,g[14]=0,g[15]=1,I=function(e){if(16!==e.length)throw Error("Array length must be 16 but got "+e.length);return[[e[0],e[1],e[2],e[3]],[e[4],e[5],e[6],e[7]],[e[8],e[9],e[10],e[11]],[e[12],e[13],e[14],e[15]]]}(g),{imageTensor:(0,o.tidy)(function(){var t,r=e instanceof o.Tensor?e:o.browser.fromPixels(e),n=(0,o.tensor2d)((ew(x,"inputResolution"),[1/x.width*I[0][0]*_.width,1/x.height*I[0][1]*_.width,I[0][3]*_.width,1/x.width*I[1][0]*_.height,1/x.height*I[1][1]*_.height,I[1][3]*_.height,0,0]),[1,8]),s=o.image.transform((0,o.expandDims)((0,o.cast)(r,"float32")),n,"bilinear","zero"===y?"constant":"nearest",0,[x.height,x.width]);return null!=b?(t=function(e,t,r,n){!1;var s=(n-r)/255;return{scale:s,offset:r-e*s}}(0,0,b[0],b[1]),(0,o.tidy)(function(){return(0,o.add)((0,o.mul)(s,t.scale),t.offset)})):s}),padding:j,transformationMatrix:I}).imageTensor,T=(0,o.slice)(r.model.predict(w),[0,0,0,1],-1),N=eI(e),S=(0,o.tidy)(function(){var e=(0,o.squeeze)(T,[0]),t=e.shape[2];if(1===t){var r=e;switch(eE.activation){case"none":break;case"sigmoid":r=(0,o.sigmoid)(r);break;case"softmax":throw Error("Softmax activation requires two channels.");default:throw Error("Activation not supported ("+eE.activation+")")}var n=N?o.image.resizeBilinear(r,[N.height,N.width]):r;return(0,o.squeeze)(n,[2])}throw Error("Unsupported number of tensor channels "+t)}),C=(0,o.expandDims)(S,2),E=(0,o.pad)(C,[[0,0],[0,0],[0,1]]);return(0,o.mirrorPad)(E,[[0,0],[0,0],[0,2]],"symmetric")}))}]]})})},e.prototype.dispose=function(){this.model.dispose()},e.prototype.reset=function(){},e}();function eD(e,t){return d(this,void 0,void 0,function(){var r,n;return f(this,function(s){switch(e){case eR.MediaPipeSelfieSegmentation:if(r=void 0,null!=(n=t)){if("tfjs"===n.runtime)return[2,function(e){return d(this,void 0,void 0,function(){var t,r,n;return f(this,function(s){switch(s.label){case 0:return r="string"==typeof(t=function(e){if(null==e)return c({},eT);var t=c({},e);if(t.runtime="tfjs",null==t.modelType&&(t.modelType=eT.modelType),"general"!==t.modelType&&"landscape"!==t.modelType)throw Error("Model type must be one of general or landscape, but got "+t.modelType);return null==t.modelUrl&&("general"===t.modelType?t.modelUrl="https://tfhub.dev/mediapipe/tfjs-model/selfie_segmentation/general/1":t.modelUrl="https://tfhub.dev/mediapipe/tfjs-model/selfie_segmentation/landscape/1"),t}(e)).modelUrl&&t.modelUrl.indexOf("https://tfhub.dev")>-1,[4,(0,l.loadGraphModel)(t.modelUrl,{fromTFHub:r})];case 1:return n=s.sent(),[2,new eP(t.modelType,n)]}})})}(n)];if("mediapipe"===n.runtime)return[2,function(e){return d(this,void 0,void 0,function(){var t;return f(this,function(r){switch(r.label){case 0:return[4,(t=new ej(function(e){if(null==e)return c({},eb);var t=c({},e);return t.runtime="mediapipe",null==t.modelType&&(t.modelType=eb.modelType),t}(e))).initialize()];case 1:return r.sent(),[2,t]}})})}(n)];r=n.runtime}throw Error("Expect modelConfig.runtime to be either 'tfjs' or 'mediapipe', but got "+r);case eR.BodyPix:return[2,function(e){return d(this,void 0,void 0,function(){return f(this,function(t){return[2,(function(e){return void 0===e&&(e=ea),d(this,void 0,void 0,function(){return f(this,function(t){return"ResNet50"===(e=function(e){if(null==(e=e||ea).architecture&&(e.architecture="MobileNetV1"),0>eo.indexOf(e.architecture))throw Error("Invalid architecture "+e.architecture+". Should be one of "+eo);if(null==e.outputStride&&(e.outputStride=16),0>el[e.architecture].indexOf(e.outputStride))throw Error("Invalid outputStride "+e.outputStride+". Should be one of "+el[e.architecture]+" for architecture "+e.architecture+".");if(null==e.multiplier&&(e.multiplier=1),0>ei[e.architecture].indexOf(e.multiplier))throw Error("Invalid multiplier "+e.multiplier+". Should be one of "+ei[e.architecture]+" for architecture "+e.architecture+".");if(null==e.quantBytes&&(e.quantBytes=4),0>eu.indexOf(e.quantBytes))throw Error("Invalid quantBytes "+e.quantBytes+". Should be one of "+eu+" for architecture "+e.architecture+".");return e}(e)).architecture?[2,function(e){return d(this,void 0,void 0,function(){var t,r,n;return f(this,function(s){switch(s.label){case 0:var a;if(t=e.outputStride,r=e.quantBytes,null==o)throw Error("Cannot find TensorFlow.js. If you are using a + + + +
+ + + + \ No newline at end of file