52
-
52b198915e03b588aa2389ef63e7b0153f1e30c0e400c9ee124b0f0476aa3f8f
Replying to -

#llama #inference in browser #wasm

added input prompt

data:text/html;base64,PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8dGl0bGU+UnVuIExsYW1hIDIgbW9kZWxzIGluIHRoZSBicm93c2VyIHdpdGggV2ViQXNzZW1ibHk8L3RpdGxlPgo8L2hlYWQ+Cjxib2R5PgogIDxmb3JtIGlkPSJmb3JtIiBhY3Rpb249IiMiPgogICAgPGxhYmVsPnByb21wdDwvbGFiZWw+CiAgICA8aW5wdXQgaWQ9InByb21wdCIgdHlwZT0idGV4dCIvPgogICAgPGJ1dHRvbiBjbGFzcz0iYnV0dG9uIiBpZD0idG9nZ2xlLWluZmVyZW5jZSI+UnVuIGluZmVyZW5jZTwvYnV0dG9uPgogIDwvZm9ybT4KICA8cCBpZD0ib3V0cHV0Ij48L3A+CiAgPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgogIGNvbnN0IHdvcmtlcl9zdHIgPSBgCiAgaW1wb3J0IHsgV0FTSSwgV0FTSUNvbnRleHQgfSBmcm9tICJodHRwczovL2Nkbi5za3lwYWNrLmRldi9AcnVubm8vd2FzaSI7CiAgCiAgc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICBjb25zb2xlLmxvZygicHJvbXB0IiwgZXZlbnQuZGF0YS5wcm9tcHQpCgogICAgUHJvbWlzZS5hbGwoCiAgICAgIFsKICAgICAgICBmZXRjaCgiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9rYXJwYXRoeS90aW55bGxhbWFzL3Jlc29sdmUvbWFpbi9zdG9yaWVzMjYwSy9zdG9yaWVzMjYwSy5iaW4/ZG93bmxvYWQ9dHJ1ZSIpLnRoZW4ocmVzID0+IHJlcy5hcnJheUJ1ZmZlcigpKSwKICAgICAgICBmZXRjaCgiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9rYXJwYXRoeS90aW55bGxhbWFzL3Jlc29sdmUvbWFpbi9zdG9yaWVzMjYwSy90b2s1MTIuYmluIikudGhlbihyZXMgPT4gcmVzLmFycmF5QnVmZmVyKCkpCiAgICAgIF0sCiAgICApLnRoZW4oYXN5bmMgZGF0YSA9PiB7CiAgICAgIGxldCBtb2RlbCA9IGRhdGFbMF07CiAgICAgIGxldCB0b2tlbml6ZXIgPSBkYXRhWzFdOwoKICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBXQVNJQ29udGV4dCh7CiAgICAgICAgYXJnczogWyIiLCAibW9kZWwuYmluIiwgIi10IiwgIjAuOSIsICItaSIsIGV2ZW50LmRhdGEucHJvbXB0XSwKICAgICAgICBzdGRvdXQ6IChkYXRhKSA9PiBzZWxmLnBvc3RNZXNzYWdlKHsgZGF0YSB9KSwKICAgICAgICBzdGRlcnI6IChlcnIpID0+IGNvbnNvbGUuZXJyb3IoInN0ZGVyciIsIGVyciksCiAgICAgICAgZnM6IHsKICAgICAgICAgICIvbW9kZWwuYmluIjogewogICAgICAgICAgICBwYXRoOiAiL21vZGVsLmJpbiIsCiAgICAgICAgICAgIHRpbWVzdGFtcHM6IHsKICAgICAgICAgICAgICBhY2Nlc3M6IG5ldyBEYXRlKCksCiAgICAgICAgICAgICAgY2hhbmdlOiBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIG1vZGlmaWNhdGlvbjogbmV3IERhdGUoKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbW9kZTogImJpbmFyeSIsCiAgICAgICAgICAgIGNvbnRlbnQ6IG5ldyBVaW50OEFycmF5KG1vZGVsKSwKICAgICAgICAgIH0sCiAgICAgICAgICAiL3Rva2VuaXplci5iaW4iOiB7CiAgICAgICAgICAgIHBhdGg6ICIvdG9rZW5pemVyLmJpbiIsCiAgICAgICAgICAgIHRpbWVzdGFtcHM6IHsKICAgICAgICAgICAgICBhY2Nlc3M6IG5ldyBEYXRlKCksCiAgICAgICAgICAgICAgY2hhbmdlOiBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIG1vZGlmaWNhdGlvbjogbmV3IERhdGUoKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbW9kZTogImJpbmFyeSIsCiAgICAgICAgICAgIGNvbnRlbnQ6IG5ldyBVaW50OEFycmF5KHRva2VuaXplciksCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0pOwoKICAgICAgV0FTSS5zdGFydChmZXRjaCgiaHR0cHM6Ly9pbmZlcmVuY2Uud2FzbWxhYnMuZGV2L2xsYW1hMi1jLndhc20iKSwgY29udGV4dCk7CiAgICB9KTsKCiAgfSwgZmFsc2UpOwogIGAKICAKICBjb25zdCB3b3JrZXJfYmxvYiA9IG5ldyBCbG9iKFt3b3JrZXJfc3RyXSk7CiAgY29uc3Qgd29ya2VyX2Jsb2JfdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTCh3b3JrZXJfYmxvYik7CiAgCiAgbGV0IHdvcmtlcjsKICBsZXQgcnVubmluZyA9IGZhbHNlOwogIGxldCBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9nZ2xlLWluZmVyZW5jZSIpOwogIGxldCBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvcm0iKTsKICBsZXQgc3RvcFRpbWVvdXQgPSBudWxsOwoKICBmb3JtLmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsIChlKSA9PiB7CiAgICBlLnByZXZlbnREZWZhdWx0KCkKICAgIGNvbnN0IHByb21wdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcm9tcHQiKS52YWx1ZQogICAgY29uc3Qgb3V0cHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpOwoKICAgIGlmICghcnVubmluZykgewogICAgICBvdXRwdXQudGV4dENvbnRlbnQgPSAiIjsKCiAgICAgIHdvcmtlciA9IG5ldyBXb3JrZXIod29ya2VyX2Jsb2JfdXJsLCB7IHR5cGU6ICJtb2R1bGUiIH0pOwogICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoewogICAgICAgIHByb21wdDogcHJvbXB0CiAgICAgIH0pOwogICAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIGlmIChzdG9wVGltZW91dCAhPSBudWxsKSB7CiAgICAgICAgICBjbGVhclRpbWVvdXQoc3RvcFRpbWVvdXQpOwogICAgICAgIH0KCiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBldmVudC5kYXRhOwogICAgICAgIG91dHB1dC50ZXh0Q29udGVudCA9IGAke291dHB1dC50ZXh0Q29udGVudH0ke2RhdGF9YDsKCiAgICAgICAgc3RvcFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgIHJ1bm5pbmcgPSBmYWxzZTsKICAgICAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9ICJSdW4gaW5mZXJlbmNlIjsKICAgICAgICB9LCA1MDApOwogICAgICB9KTsKCiAgICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGZ1bmN0aW9uIChlcnJvcikgewogICAgICAgIGNvbnNvbGUubG9nKCJFUlJPUjogIiwgZXJyb3IpOwogICAgICB9KTsKCiAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9ICJTdG9wIGluZmVyZW5jZSI7CiAgICAgIHJ1bm5pbmcgPSB0cnVlOwogICAgfSBlbHNlIHsKICAgICAgaWYgKHdvcmtlciAhPSBudWxsKSB7CiAgICAgICAgd29ya2VyLnRlcm1pbmF0ZSgpOwogICAgICAgIHdvcmtlciA9IG51bGw7CiAgICAgIH0KCiAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9ICJSdW4gaW5mZXJlbmNlIjsKICAgICAgcnVubmluZyA9IGZhbHNlOwogICAgfQogIH0pOwogIDwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K

It was filthy and shiny and trees.

Replying to -

#llama #inference in browser #wasm

added input prompt

data:text/html;base64,PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8dGl0bGU+UnVuIExsYW1hIDIgbW9kZWxzIGluIHRoZSBicm93c2VyIHdpdGggV2ViQXNzZW1ibHk8L3RpdGxlPgo8L2hlYWQ+Cjxib2R5PgogIDxmb3JtIGlkPSJmb3JtIiBhY3Rpb249IiMiPgogICAgPGxhYmVsPnByb21wdDwvbGFiZWw+CiAgICA8aW5wdXQgaWQ9InByb21wdCIgdHlwZT0idGV4dCIvPgogICAgPGJ1dHRvbiBjbGFzcz0iYnV0dG9uIiBpZD0idG9nZ2xlLWluZmVyZW5jZSI+UnVuIGluZmVyZW5jZTwvYnV0dG9uPgogIDwvZm9ybT4KICA8cCBpZD0ib3V0cHV0Ij48L3A+CiAgPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgogIGNvbnN0IHdvcmtlcl9zdHIgPSBgCiAgaW1wb3J0IHsgV0FTSSwgV0FTSUNvbnRleHQgfSBmcm9tICJodHRwczovL2Nkbi5za3lwYWNrLmRldi9AcnVubm8vd2FzaSI7CiAgCiAgc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICBjb25zb2xlLmxvZygicHJvbXB0IiwgZXZlbnQuZGF0YS5wcm9tcHQpCgogICAgUHJvbWlzZS5hbGwoCiAgICAgIFsKICAgICAgICBmZXRjaCgiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9rYXJwYXRoeS90aW55bGxhbWFzL3Jlc29sdmUvbWFpbi9zdG9yaWVzMjYwSy9zdG9yaWVzMjYwSy5iaW4/ZG93bmxvYWQ9dHJ1ZSIpLnRoZW4ocmVzID0+IHJlcy5hcnJheUJ1ZmZlcigpKSwKICAgICAgICBmZXRjaCgiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9rYXJwYXRoeS90aW55bGxhbWFzL3Jlc29sdmUvbWFpbi9zdG9yaWVzMjYwSy90b2s1MTIuYmluIikudGhlbihyZXMgPT4gcmVzLmFycmF5QnVmZmVyKCkpCiAgICAgIF0sCiAgICApLnRoZW4oYXN5bmMgZGF0YSA9PiB7CiAgICAgIGxldCBtb2RlbCA9IGRhdGFbMF07CiAgICAgIGxldCB0b2tlbml6ZXIgPSBkYXRhWzFdOwoKICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBXQVNJQ29udGV4dCh7CiAgICAgICAgYXJnczogWyIiLCAibW9kZWwuYmluIiwgIi10IiwgIjAuOSIsICItaSIsIGV2ZW50LmRhdGEucHJvbXB0XSwKICAgICAgICBzdGRvdXQ6IChkYXRhKSA9PiBzZWxmLnBvc3RNZXNzYWdlKHsgZGF0YSB9KSwKICAgICAgICBzdGRlcnI6IChlcnIpID0+IGNvbnNvbGUuZXJyb3IoInN0ZGVyciIsIGVyciksCiAgICAgICAgZnM6IHsKICAgICAgICAgICIvbW9kZWwuYmluIjogewogICAgICAgICAgICBwYXRoOiAiL21vZGVsLmJpbiIsCiAgICAgICAgICAgIHRpbWVzdGFtcHM6IHsKICAgICAgICAgICAgICBhY2Nlc3M6IG5ldyBEYXRlKCksCiAgICAgICAgICAgICAgY2hhbmdlOiBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIG1vZGlmaWNhdGlvbjogbmV3IERhdGUoKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbW9kZTogImJpbmFyeSIsCiAgICAgICAgICAgIGNvbnRlbnQ6IG5ldyBVaW50OEFycmF5KG1vZGVsKSwKICAgICAgICAgIH0sCiAgICAgICAgICAiL3Rva2VuaXplci5iaW4iOiB7CiAgICAgICAgICAgIHBhdGg6ICIvdG9rZW5pemVyLmJpbiIsCiAgICAgICAgICAgIHRpbWVzdGFtcHM6IHsKICAgICAgICAgICAgICBhY2Nlc3M6IG5ldyBEYXRlKCksCiAgICAgICAgICAgICAgY2hhbmdlOiBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIG1vZGlmaWNhdGlvbjogbmV3IERhdGUoKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbW9kZTogImJpbmFyeSIsCiAgICAgICAgICAgIGNvbnRlbnQ6IG5ldyBVaW50OEFycmF5KHRva2VuaXplciksCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0pOwoKICAgICAgV0FTSS5zdGFydChmZXRjaCgiaHR0cHM6Ly9pbmZlcmVuY2Uud2FzbWxhYnMuZGV2L2xsYW1hMi1jLndhc20iKSwgY29udGV4dCk7CiAgICB9KTsKCiAgfSwgZmFsc2UpOwogIGAKICAKICBjb25zdCB3b3JrZXJfYmxvYiA9IG5ldyBCbG9iKFt3b3JrZXJfc3RyXSk7CiAgY29uc3Qgd29ya2VyX2Jsb2JfdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTCh3b3JrZXJfYmxvYik7CiAgCiAgbGV0IHdvcmtlcjsKICBsZXQgcnVubmluZyA9IGZhbHNlOwogIGxldCBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9nZ2xlLWluZmVyZW5jZSIpOwogIGxldCBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvcm0iKTsKICBsZXQgc3RvcFRpbWVvdXQgPSBudWxsOwoKICBmb3JtLmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsIChlKSA9PiB7CiAgICBlLnByZXZlbnREZWZhdWx0KCkKICAgIGNvbnN0IHByb21wdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcm9tcHQiKS52YWx1ZQogICAgY29uc3Qgb3V0cHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpOwoKICAgIGlmICghcnVubmluZykgewogICAgICBvdXRwdXQudGV4dENvbnRlbnQgPSAiIjsKCiAgICAgIHdvcmtlciA9IG5ldyBXb3JrZXIod29ya2VyX2Jsb2JfdXJsLCB7IHR5cGU6ICJtb2R1bGUiIH0pOwogICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoewogICAgICAgIHByb21wdDogcHJvbXB0CiAgICAgIH0pOwogICAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIGlmIChzdG9wVGltZW91dCAhPSBudWxsKSB7CiAgICAgICAgICBjbGVhclRpbWVvdXQoc3RvcFRpbWVvdXQpOwogICAgICAgIH0KCiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBldmVudC5kYXRhOwogICAgICAgIG91dHB1dC50ZXh0Q29udGVudCA9IGAke291dHB1dC50ZXh0Q29udGVudH0ke2RhdGF9YDsKCiAgICAgICAgc3RvcFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgIHJ1bm5pbmcgPSBmYWxzZTsKICAgICAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9ICJSdW4gaW5mZXJlbmNlIjsKICAgICAgICB9LCA1MDApOwogICAgICB9KTsKCiAgICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGZ1bmN0aW9uIChlcnJvcikgewogICAgICAgIGNvbnNvbGUubG9nKCJFUlJPUjogIiwgZXJyb3IpOwogICAgICB9KTsKCiAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9ICJTdG9wIGluZmVyZW5jZSI7CiAgICAgIHJ1bm5pbmcgPSB0cnVlOwogICAgfSBlbHNlIHsKICAgICAgaWYgKHdvcmtlciAhPSBudWxsKSB7CiAgICAgICAgd29ya2VyLnRlcm1pbmF0ZSgpOwogICAgICAgIHdvcmtlciA9IG51bGw7CiAgICAgIH0KCiAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9ICJSdW4gaW5mZXJlbmNlIjsKICAgICAgcnVubmluZyA9IGZhbHNlOwogICAgfQogIH0pOwogIDwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K

She thought it was very hard and wanted to play with it.

Replying to -

#llama #inference in browser #wasm

added input prompt

data:text/html;base64,PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8dGl0bGU+UnVuIExsYW1hIDIgbW9kZWxzIGluIHRoZSBicm93c2VyIHdpdGggV2ViQXNzZW1ibHk8L3RpdGxlPgo8L2hlYWQ+Cjxib2R5PgogIDxmb3JtIGlkPSJmb3JtIiBhY3Rpb249IiMiPgogICAgPGxhYmVsPnByb21wdDwvbGFiZWw+CiAgICA8aW5wdXQgaWQ9InByb21wdCIgdHlwZT0idGV4dCIvPgogICAgPGJ1dHRvbiBjbGFzcz0iYnV0dG9uIiBpZD0idG9nZ2xlLWluZmVyZW5jZSI+UnVuIGluZmVyZW5jZTwvYnV0dG9uPgogIDwvZm9ybT4KICA8cCBpZD0ib3V0cHV0Ij48L3A+CiAgPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgogIGNvbnN0IHdvcmtlcl9zdHIgPSBgCiAgaW1wb3J0IHsgV0FTSSwgV0FTSUNvbnRleHQgfSBmcm9tICJodHRwczovL2Nkbi5za3lwYWNrLmRldi9AcnVubm8vd2FzaSI7CiAgCiAgc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICBjb25zb2xlLmxvZygicHJvbXB0IiwgZXZlbnQuZGF0YS5wcm9tcHQpCgogICAgUHJvbWlzZS5hbGwoCiAgICAgIFsKICAgICAgICBmZXRjaCgiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9rYXJwYXRoeS90aW55bGxhbWFzL3Jlc29sdmUvbWFpbi9zdG9yaWVzMjYwSy9zdG9yaWVzMjYwSy5iaW4/ZG93bmxvYWQ9dHJ1ZSIpLnRoZW4ocmVzID0+IHJlcy5hcnJheUJ1ZmZlcigpKSwKICAgICAgICBmZXRjaCgiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9rYXJwYXRoeS90aW55bGxhbWFzL3Jlc29sdmUvbWFpbi9zdG9yaWVzMjYwSy90b2s1MTIuYmluIikudGhlbihyZXMgPT4gcmVzLmFycmF5QnVmZmVyKCkpCiAgICAgIF0sCiAgICApLnRoZW4oYXN5bmMgZGF0YSA9PiB7CiAgICAgIGxldCBtb2RlbCA9IGRhdGFbMF07CiAgICAgIGxldCB0b2tlbml6ZXIgPSBkYXRhWzFdOwoKICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBXQVNJQ29udGV4dCh7CiAgICAgICAgYXJnczogWyIiLCAibW9kZWwuYmluIiwgIi10IiwgIjAuOSIsICItaSIsIGV2ZW50LmRhdGEucHJvbXB0XSwKICAgICAgICBzdGRvdXQ6IChkYXRhKSA9PiBzZWxmLnBvc3RNZXNzYWdlKHsgZGF0YSB9KSwKICAgICAgICBzdGRlcnI6IChlcnIpID0+IGNvbnNvbGUuZXJyb3IoInN0ZGVyciIsIGVyciksCiAgICAgICAgZnM6IHsKICAgICAgICAgICIvbW9kZWwuYmluIjogewogICAgICAgICAgICBwYXRoOiAiL21vZGVsLmJpbiIsCiAgICAgICAgICAgIHRpbWVzdGFtcHM6IHsKICAgICAgICAgICAgICBhY2Nlc3M6IG5ldyBEYXRlKCksCiAgICAgICAgICAgICAgY2hhbmdlOiBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIG1vZGlmaWNhdGlvbjogbmV3IERhdGUoKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbW9kZTogImJpbmFyeSIsCiAgICAgICAgICAgIGNvbnRlbnQ6IG5ldyBVaW50OEFycmF5KG1vZGVsKSwKICAgICAgICAgIH0sCiAgICAgICAgICAiL3Rva2VuaXplci5iaW4iOiB7CiAgICAgICAgICAgIHBhdGg6ICIvdG9rZW5pemVyLmJpbiIsCiAgICAgICAgICAgIHRpbWVzdGFtcHM6IHsKICAgICAgICAgICAgICBhY2Nlc3M6IG5ldyBEYXRlKCksCiAgICAgICAgICAgICAgY2hhbmdlOiBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIG1vZGlmaWNhdGlvbjogbmV3IERhdGUoKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbW9kZTogImJpbmFyeSIsCiAgICAgICAgICAgIGNvbnRlbnQ6IG5ldyBVaW50OEFycmF5KHRva2VuaXplciksCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0pOwoKICAgICAgV0FTSS5zdGFydChmZXRjaCgiaHR0cHM6Ly9pbmZlcmVuY2Uud2FzbWxhYnMuZGV2L2xsYW1hMi1jLndhc20iKSwgY29udGV4dCk7CiAgICB9KTsKCiAgfSwgZmFsc2UpOwogIGAKICAKICBjb25zdCB3b3JrZXJfYmxvYiA9IG5ldyBCbG9iKFt3b3JrZXJfc3RyXSk7CiAgY29uc3Qgd29ya2VyX2Jsb2JfdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTCh3b3JrZXJfYmxvYik7CiAgCiAgbGV0IHdvcmtlcjsKICBsZXQgcnVubmluZyA9IGZhbHNlOwogIGxldCBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9nZ2xlLWluZmVyZW5jZSIpOwogIGxldCBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvcm0iKTsKICBsZXQgc3RvcFRpbWVvdXQgPSBudWxsOwoKICBmb3JtLmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsIChlKSA9PiB7CiAgICBlLnByZXZlbnREZWZhdWx0KCkKICAgIGNvbnN0IHByb21wdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcm9tcHQiKS52YWx1ZQogICAgY29uc3Qgb3V0cHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpOwoKICAgIGlmICghcnVubmluZykgewogICAgICBvdXRwdXQudGV4dENvbnRlbnQgPSAiIjsKCiAgICAgIHdvcmtlciA9IG5ldyBXb3JrZXIod29ya2VyX2Jsb2JfdXJsLCB7IHR5cGU6ICJtb2R1bGUiIH0pOwogICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoewogICAgICAgIHByb21wdDogcHJvbXB0CiAgICAgIH0pOwogICAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIGlmIChzdG9wVGltZW91dCAhPSBudWxsKSB7CiAgICAgICAgICBjbGVhclRpbWVvdXQoc3RvcFRpbWVvdXQpOwogICAgICAgIH0KCiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBldmVudC5kYXRhOwogICAgICAgIG91dHB1dC50ZXh0Q29udGVudCA9IGAke291dHB1dC50ZXh0Q29udGVudH0ke2RhdGF9YDsKCiAgICAgICAgc3RvcFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgIHJ1bm5pbmcgPSBmYWxzZTsKICAgICAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9ICJSdW4gaW5mZXJlbmNlIjsKICAgICAgICB9LCA1MDApOwogICAgICB9KTsKCiAgICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGZ1bmN0aW9uIChlcnJvcikgewogICAgICAgIGNvbnNvbGUubG9nKCJFUlJPUjogIiwgZXJyb3IpOwogICAgICB9KTsKCiAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9ICJTdG9wIGluZmVyZW5jZSI7CiAgICAgIHJ1bm5pbmcgPSB0cnVlOwogICAgfSBlbHNlIHsKICAgICAgaWYgKHdvcmtlciAhPSBudWxsKSB7CiAgICAgICAgd29ya2VyLnRlcm1pbmF0ZSgpOwogICAgICAgIHdvcmtlciA9IG51bGw7CiAgICAgIH0KCiAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9ICJSdW4gaW5mZXJlbmNlIjsKICAgICAgcnVubmluZyA9IGZhbHNlOwogICAgfQogIH0pOwogIDwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K

girl named Lily liked to play with her toys.

Replying to -

#llama #inference in browser #wasm

added input prompt

data:text/html;base64,PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8dGl0bGU+UnVuIExsYW1hIDIgbW9kZWxzIGluIHRoZSBicm93c2VyIHdpdGggV2ViQXNzZW1ibHk8L3RpdGxlPgo8L2hlYWQ+Cjxib2R5PgogIDxmb3JtIGlkPSJmb3JtIiBhY3Rpb249IiMiPgogICAgPGxhYmVsPnByb21wdDwvbGFiZWw+CiAgICA8aW5wdXQgaWQ9InByb21wdCIgdHlwZT0idGV4dCIvPgogICAgPGJ1dHRvbiBjbGFzcz0iYnV0dG9uIiBpZD0idG9nZ2xlLWluZmVyZW5jZSI+UnVuIGluZmVyZW5jZTwvYnV0dG9uPgogIDwvZm9ybT4KICA8cCBpZD0ib3V0cHV0Ij48L3A+CiAgPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgogIGNvbnN0IHdvcmtlcl9zdHIgPSBgCiAgaW1wb3J0IHsgV0FTSSwgV0FTSUNvbnRleHQgfSBmcm9tICJodHRwczovL2Nkbi5za3lwYWNrLmRldi9AcnVubm8vd2FzaSI7CiAgCiAgc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICBjb25zb2xlLmxvZygicHJvbXB0IiwgZXZlbnQuZGF0YS5wcm9tcHQpCgogICAgUHJvbWlzZS5hbGwoCiAgICAgIFsKICAgICAgICBmZXRjaCgiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9rYXJwYXRoeS90aW55bGxhbWFzL3Jlc29sdmUvbWFpbi9zdG9yaWVzMjYwSy9zdG9yaWVzMjYwSy5iaW4/ZG93bmxvYWQ9dHJ1ZSIpLnRoZW4ocmVzID0+IHJlcy5hcnJheUJ1ZmZlcigpKSwKICAgICAgICBmZXRjaCgiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9rYXJwYXRoeS90aW55bGxhbWFzL3Jlc29sdmUvbWFpbi9zdG9yaWVzMjYwSy90b2s1MTIuYmluIikudGhlbihyZXMgPT4gcmVzLmFycmF5QnVmZmVyKCkpCiAgICAgIF0sCiAgICApLnRoZW4oYXN5bmMgZGF0YSA9PiB7CiAgICAgIGxldCBtb2RlbCA9IGRhdGFbMF07CiAgICAgIGxldCB0b2tlbml6ZXIgPSBkYXRhWzFdOwoKICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBXQVNJQ29udGV4dCh7CiAgICAgICAgYXJnczogWyIiLCAibW9kZWwuYmluIiwgIi10IiwgIjAuOSIsICItaSIsIGV2ZW50LmRhdGEucHJvbXB0XSwKICAgICAgICBzdGRvdXQ6IChkYXRhKSA9PiBzZWxmLnBvc3RNZXNzYWdlKHsgZGF0YSB9KSwKICAgICAgICBzdGRlcnI6IChlcnIpID0+IGNvbnNvbGUuZXJyb3IoInN0ZGVyciIsIGVyciksCiAgICAgICAgZnM6IHsKICAgICAgICAgICIvbW9kZWwuYmluIjogewogICAgICAgICAgICBwYXRoOiAiL21vZGVsLmJpbiIsCiAgICAgICAgICAgIHRpbWVzdGFtcHM6IHsKICAgICAgICAgICAgICBhY2Nlc3M6IG5ldyBEYXRlKCksCiAgICAgICAgICAgICAgY2hhbmdlOiBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIG1vZGlmaWNhdGlvbjogbmV3IERhdGUoKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbW9kZTogImJpbmFyeSIsCiAgICAgICAgICAgIGNvbnRlbnQ6IG5ldyBVaW50OEFycmF5KG1vZGVsKSwKICAgICAgICAgIH0sCiAgICAgICAgICAiL3Rva2VuaXplci5iaW4iOiB7CiAgICAgICAgICAgIHBhdGg6ICIvdG9rZW5pemVyLmJpbiIsCiAgICAgICAgICAgIHRpbWVzdGFtcHM6IHsKICAgICAgICAgICAgICBhY2Nlc3M6IG5ldyBEYXRlKCksCiAgICAgICAgICAgICAgY2hhbmdlOiBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIG1vZGlmaWNhdGlvbjogbmV3IERhdGUoKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbW9kZTogImJpbmFyeSIsCiAgICAgICAgICAgIGNvbnRlbnQ6IG5ldyBVaW50OEFycmF5KHRva2VuaXplciksCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0pOwoKICAgICAgV0FTSS5zdGFydChmZXRjaCgiaHR0cHM6Ly9pbmZlcmVuY2Uud2FzbWxhYnMuZGV2L2xsYW1hMi1jLndhc20iKSwgY29udGV4dCk7CiAgICB9KTsKCiAgfSwgZmFsc2UpOwogIGAKICAKICBjb25zdCB3b3JrZXJfYmxvYiA9IG5ldyBCbG9iKFt3b3JrZXJfc3RyXSk7CiAgY29uc3Qgd29ya2VyX2Jsb2JfdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTCh3b3JrZXJfYmxvYik7CiAgCiAgbGV0IHdvcmtlcjsKICBsZXQgcnVubmluZyA9IGZhbHNlOwogIGxldCBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9nZ2xlLWluZmVyZW5jZSIpOwogIGxldCBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvcm0iKTsKICBsZXQgc3RvcFRpbWVvdXQgPSBudWxsOwoKICBmb3JtLmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsIChlKSA9PiB7CiAgICBlLnByZXZlbnREZWZhdWx0KCkKICAgIGNvbnN0IHByb21wdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcm9tcHQiKS52YWx1ZQogICAgY29uc3Qgb3V0cHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpOwoKICAgIGlmICghcnVubmluZykgewogICAgICBvdXRwdXQudGV4dENvbnRlbnQgPSAiIjsKCiAgICAgIHdvcmtlciA9IG5ldyBXb3JrZXIod29ya2VyX2Jsb2JfdXJsLCB7IHR5cGU6ICJtb2R1bGUiIH0pOwogICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoewogICAgICAgIHByb21wdDogcHJvbXB0CiAgICAgIH0pOwogICAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIGlmIChzdG9wVGltZW91dCAhPSBudWxsKSB7CiAgICAgICAgICBjbGVhclRpbWVvdXQoc3RvcFRpbWVvdXQpOwogICAgICAgIH0KCiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBldmVudC5kYXRhOwogICAgICAgIG91dHB1dC50ZXh0Q29udGVudCA9IGAke291dHB1dC50ZXh0Q29udGVudH0ke2RhdGF9YDsKCiAgICAgICAgc3RvcFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgIHJ1bm5pbmcgPSBmYWxzZTsKICAgICAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9ICJSdW4gaW5mZXJlbmNlIjsKICAgICAgICB9LCA1MDApOwogICAgICB9KTsKCiAgICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGZ1bmN0aW9uIChlcnJvcikgewogICAgICAgIGNvbnNvbGUubG9nKCJFUlJPUjogIiwgZXJyb3IpOwogICAgICB9KTsKCiAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9ICJTdG9wIGluZmVyZW5jZSI7CiAgICAgIHJ1bm5pbmcgPSB0cnVlOwogICAgfSBlbHNlIHsKICAgICAgaWYgKHdvcmtlciAhPSBudWxsKSB7CiAgICAgICAgd29ya2VyLnRlcm1pbmF0ZSgpOwogICAgICAgIHdvcmtlciA9IG51bGw7CiAgICAgIH0KCiAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9ICJSdW4gaW5mZXJlbmNlIjsKICAgICAgcnVubmluZyA9IGZhbHNlOwogICAgfQogIH0pOwogIDwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K

girl named Lily was a little boy named Tim.

#llama #inference in browser #wasm

added input prompt

data:text/html;base64,PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8dGl0bGU+UnVuIExsYW1hIDIgbW9kZWxzIGluIHRoZSBicm93c2VyIHdpdGggV2ViQXNzZW1ibHk8L3RpdGxlPgo8L2hlYWQ+Cjxib2R5PgogIDxmb3JtIGlkPSJmb3JtIiBhY3Rpb249IiMiPgogICAgPGxhYmVsPnByb21wdDwvbGFiZWw+CiAgICA8aW5wdXQgaWQ9InByb21wdCIgdHlwZT0idGV4dCIvPgogICAgPGJ1dHRvbiBjbGFzcz0iYnV0dG9uIiBpZD0idG9nZ2xlLWluZmVyZW5jZSI+UnVuIGluZmVyZW5jZTwvYnV0dG9uPgogIDwvZm9ybT4KICA8cCBpZD0ib3V0cHV0Ij48L3A+CiAgPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgogIGNvbnN0IHdvcmtlcl9zdHIgPSBgCiAgaW1wb3J0IHsgV0FTSSwgV0FTSUNvbnRleHQgfSBmcm9tICJodHRwczovL2Nkbi5za3lwYWNrLmRldi9AcnVubm8vd2FzaSI7CiAgCiAgc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICBjb25zb2xlLmxvZygicHJvbXB0IiwgZXZlbnQuZGF0YS5wcm9tcHQpCgogICAgUHJvbWlzZS5hbGwoCiAgICAgIFsKICAgICAgICBmZXRjaCgiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9rYXJwYXRoeS90aW55bGxhbWFzL3Jlc29sdmUvbWFpbi9zdG9yaWVzMjYwSy9zdG9yaWVzMjYwSy5iaW4/ZG93bmxvYWQ9dHJ1ZSIpLnRoZW4ocmVzID0+IHJlcy5hcnJheUJ1ZmZlcigpKSwKICAgICAgICBmZXRjaCgiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9rYXJwYXRoeS90aW55bGxhbWFzL3Jlc29sdmUvbWFpbi9zdG9yaWVzMjYwSy90b2s1MTIuYmluIikudGhlbihyZXMgPT4gcmVzLmFycmF5QnVmZmVyKCkpCiAgICAgIF0sCiAgICApLnRoZW4oYXN5bmMgZGF0YSA9PiB7CiAgICAgIGxldCBtb2RlbCA9IGRhdGFbMF07CiAgICAgIGxldCB0b2tlbml6ZXIgPSBkYXRhWzFdOwoKICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBXQVNJQ29udGV4dCh7CiAgICAgICAgYXJnczogWyIiLCAibW9kZWwuYmluIiwgIi10IiwgIjAuOSIsICItaSIsIGV2ZW50LmRhdGEucHJvbXB0XSwKICAgICAgICBzdGRvdXQ6IChkYXRhKSA9PiBzZWxmLnBvc3RNZXNzYWdlKHsgZGF0YSB9KSwKICAgICAgICBzdGRlcnI6IChlcnIpID0+IGNvbnNvbGUuZXJyb3IoInN0ZGVyciIsIGVyciksCiAgICAgICAgZnM6IHsKICAgICAgICAgICIvbW9kZWwuYmluIjogewogICAgICAgICAgICBwYXRoOiAiL21vZGVsLmJpbiIsCiAgICAgICAgICAgIHRpbWVzdGFtcHM6IHsKICAgICAgICAgICAgICBhY2Nlc3M6IG5ldyBEYXRlKCksCiAgICAgICAgICAgICAgY2hhbmdlOiBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIG1vZGlmaWNhdGlvbjogbmV3IERhdGUoKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbW9kZTogImJpbmFyeSIsCiAgICAgICAgICAgIGNvbnRlbnQ6IG5ldyBVaW50OEFycmF5KG1vZGVsKSwKICAgICAgICAgIH0sCiAgICAgICAgICAiL3Rva2VuaXplci5iaW4iOiB7CiAgICAgICAgICAgIHBhdGg6ICIvdG9rZW5pemVyLmJpbiIsCiAgICAgICAgICAgIHRpbWVzdGFtcHM6IHsKICAgICAgICAgICAgICBhY2Nlc3M6IG5ldyBEYXRlKCksCiAgICAgICAgICAgICAgY2hhbmdlOiBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIG1vZGlmaWNhdGlvbjogbmV3IERhdGUoKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbW9kZTogImJpbmFyeSIsCiAgICAgICAgICAgIGNvbnRlbnQ6IG5ldyBVaW50OEFycmF5KHRva2VuaXplciksCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0pOwoKICAgICAgV0FTSS5zdGFydChmZXRjaCgiaHR0cHM6Ly9pbmZlcmVuY2Uud2FzbWxhYnMuZGV2L2xsYW1hMi1jLndhc20iKSwgY29udGV4dCk7CiAgICB9KTsKCiAgfSwgZmFsc2UpOwogIGAKICAKICBjb25zdCB3b3JrZXJfYmxvYiA9IG5ldyBCbG9iKFt3b3JrZXJfc3RyXSk7CiAgY29uc3Qgd29ya2VyX2Jsb2JfdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTCh3b3JrZXJfYmxvYik7CiAgCiAgbGV0IHdvcmtlcjsKICBsZXQgcnVubmluZyA9IGZhbHNlOwogIGxldCBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9nZ2xlLWluZmVyZW5jZSIpOwogIGxldCBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvcm0iKTsKICBsZXQgc3RvcFRpbWVvdXQgPSBudWxsOwoKICBmb3JtLmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsIChlKSA9PiB7CiAgICBlLnByZXZlbnREZWZhdWx0KCkKICAgIGNvbnN0IHByb21wdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcm9tcHQiKS52YWx1ZQogICAgY29uc3Qgb3V0cHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpOwoKICAgIGlmICghcnVubmluZykgewogICAgICBvdXRwdXQudGV4dENvbnRlbnQgPSAiIjsKCiAgICAgIHdvcmtlciA9IG5ldyBXb3JrZXIod29ya2VyX2Jsb2JfdXJsLCB7IHR5cGU6ICJtb2R1bGUiIH0pOwogICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoewogICAgICAgIHByb21wdDogcHJvbXB0CiAgICAgIH0pOwogICAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIGlmIChzdG9wVGltZW91dCAhPSBudWxsKSB7CiAgICAgICAgICBjbGVhclRpbWVvdXQoc3RvcFRpbWVvdXQpOwogICAgICAgIH0KCiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBldmVudC5kYXRhOwogICAgICAgIG91dHB1dC50ZXh0Q29udGVudCA9IGAke291dHB1dC50ZXh0Q29udGVudH0ke2RhdGF9YDsKCiAgICAgICAgc3RvcFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgIHJ1bm5pbmcgPSBmYWxzZTsKICAgICAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9ICJSdW4gaW5mZXJlbmNlIjsKICAgICAgICB9LCA1MDApOwogICAgICB9KTsKCiAgICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGZ1bmN0aW9uIChlcnJvcikgewogICAgICAgIGNvbnNvbGUubG9nKCJFUlJPUjogIiwgZXJyb3IpOwogICAgICB9KTsKCiAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9ICJTdG9wIGluZmVyZW5jZSI7CiAgICAgIHJ1bm5pbmcgPSB0cnVlOwogICAgfSBlbHNlIHsKICAgICAgaWYgKHdvcmtlciAhPSBudWxsKSB7CiAgICAgICAgd29ya2VyLnRlcm1pbmF0ZSgpOwogICAgICAgIHdvcmtlciA9IG51bGw7CiAgICAgIH0KCiAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9ICJSdW4gaW5mZXJlbmNlIjsKICAgICAgcnVubmluZyA9IGZhbHNlOwogICAgfQogIH0pOwogIDwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K

#llama running locally in browser #wasm

data:text/html;base64,PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8dGl0bGU+UnVuIExsYW1hIDIgbW9kZWxzIGluIHRoZSBicm93c2VyIHdpdGggV2ViQXNzZW1ibHk8L3RpdGxlPgo8L2hlYWQ+Cjxib2R5PgogIDxidXR0b24gY2xhc3M9ImJ1dHRvbiIgaWQ9InRvZ2dsZS1pbmZlcmVuY2UiPlJ1biBpbmZlcmVuY2U8L2J1dHRvbj4KICA8cCBpZD0ib3V0cHV0Ij48L3A+CiAgPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgogIGNvbnN0IHdvcmtlcl9zdHIgPSBgCiAgaW1wb3J0IHsgV0FTSSwgV0FTSUNvbnRleHQgfSBmcm9tICJodHRwczovL2Nkbi5za3lwYWNrLmRldi9AcnVubm8vd2FzaSI7CiAgCiAgLy8gSGFuZGxlIGluY29taW5nIG1lc3NhZ2VzCiAgc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICBjb25zdCB7IGV2ZW50VHlwZSwgZXZlbnREYXRhLCBldmVudElkIH0gPSBldmVudC5kYXRhOwoKICAgIC8vIFB1bGxpbmcgdGhlIG1vZGVsCiAgICBQcm9taXNlLmFsbCgKICAgICAgWwogICAgICAgIGZldGNoKCJodHRwczovL2h1Z2dpbmdmYWNlLmNvL2thcnBhdGh5L3RpbnlsbGFtYXMvcmVzb2x2ZS9tYWluL3N0b3JpZXMyNjBLL3N0b3JpZXMyNjBLLmJpbj9kb3dubG9hZD10cnVlIikudGhlbihyZXMgPT4gcmVzLmFycmF5QnVmZmVyKCkpLAogICAgICAgIGZldGNoKCJodHRwczovL2h1Z2dpbmdmYWNlLmNvL2thcnBhdGh5L3RpbnlsbGFtYXMvcmVzb2x2ZS9tYWluL3N0b3JpZXMyNjBLL3RvazUxMi5iaW4iKS50aGVuKHJlcyA9PiByZXMuYXJyYXlCdWZmZXIoKSkKICAgICAgXSwKICAgICkudGhlbihhc3luYyBkYXRhID0+IHsKICAgICAgbGV0IG1vZGVsID0gZGF0YVswXTsKICAgICAgbGV0IHRva2VuaXplciA9IGRhdGFbMV07CgogICAgICBjb25zdCBjb250ZXh0ID0gbmV3IFdBU0lDb250ZXh0KHsKICAgICAgICBhcmdzOiBbIiIsICJtb2RlbC5iaW4iLCAiLXQiLCAiMC45Il0sCiAgICAgICAgc3Rkb3V0OiAoZGF0YSkgPT4gc2VsZi5wb3N0TWVzc2FnZSh7IGRhdGEgfSksCiAgICAgICAgc3RkZXJyOiAoZXJyKSA9PiBjb25zb2xlLmVycm9yKCJzdGRlcnIiLCBlcnIpLAogICAgICAgIGZzOiB7CiAgICAgICAgICAiL21vZGVsLmJpbiI6IHsKICAgICAgICAgICAgcGF0aDogIi9tb2RlbC5iaW4iLAogICAgICAgICAgICB0aW1lc3RhbXBzOiB7CiAgICAgICAgICAgICAgYWNjZXNzOiBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIGNoYW5nZTogbmV3IERhdGUoKSwKICAgICAgICAgICAgICBtb2RpZmljYXRpb246IG5ldyBEYXRlKCksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG1vZGU6ICJiaW5hcnkiLAogICAgICAgICAgICBjb250ZW50OiBuZXcgVWludDhBcnJheShtb2RlbCksCiAgICAgICAgICB9LAogICAgICAgICAgIi90b2tlbml6ZXIuYmluIjogewogICAgICAgICAgICBwYXRoOiAiL3Rva2VuaXplci5iaW4iLAogICAgICAgICAgICB0aW1lc3RhbXBzOiB7CiAgICAgICAgICAgICAgYWNjZXNzOiBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIGNoYW5nZTogbmV3IERhdGUoKSwKICAgICAgICAgICAgICBtb2RpZmljYXRpb246IG5ldyBEYXRlKCksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG1vZGU6ICJiaW5hcnkiLAogICAgICAgICAgICBjb250ZW50OiBuZXcgVWludDhBcnJheSh0b2tlbml6ZXIpLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICB9KTsKCiAgICAgIFdBU0kuc3RhcnQoZmV0Y2goImh0dHBzOi8vaW5mZXJlbmNlLndhc21sYWJzLmRldi9sbGFtYTItYy53YXNtIiksIGNvbnRleHQpOwogICAgfSk7CgogIH0sIGZhbHNlKTsKICBgCiAgY29uc3Qgd29ya2VyX2Jsb2IgPSBuZXcgQmxvYihbd29ya2VyX3N0cl0pOwogIGNvbnN0IHdvcmtlcl9ibG9iX3VybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwod29ya2VyX2Jsb2IpOwoKICBjb25zb2xlLmxvZygid29ya2VyX2Jsb2JfdXJsIiwgd29ya2VyX2Jsb2JfdXJsKQogIAogIGxldCB3b3JrZXI7CiAgbGV0IHJ1bm5pbmcgPSBmYWxzZTsKICBsZXQgYnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZ2dsZS1pbmZlcmVuY2UiKTsKICBsZXQgc3RvcFRpbWVvdXQgPSBudWxsOwoKICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiB7CiAgICBjb25zdCBvdXRwdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7CgogICAgaWYgKCFydW5uaW5nKSB7CiAgICAgIG91dHB1dC50ZXh0Q29udGVudCA9ICIiOwoKICAgICAgd29ya2VyID0gbmV3IFdvcmtlcih3b3JrZXJfYmxvYl91cmwsIHsgdHlwZTogIm1vZHVsZSIgfSk7CiAgICAgIC8vd29ya2VyID0gbmV3IFdvcmtlcigiL3dvcmtlci5qcyIsIHsgdHlwZTogIm1vZHVsZSIgfSk7CiAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7fSk7CiAgICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgaWYgKHN0b3BUaW1lb3V0ICE9IG51bGwpIHsKICAgICAgICAgIGNsZWFyVGltZW91dChzdG9wVGltZW91dCk7CiAgICAgICAgfQoKICAgICAgICBjb25zdCB7IGRhdGEgfSA9IGV2ZW50LmRhdGE7CiAgICAgICAgb3V0cHV0LnRleHRDb250ZW50ID0gYCR7b3V0cHV0LnRleHRDb250ZW50fSR7ZGF0YX1gOwoKICAgICAgICBzdG9wVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgcnVubmluZyA9IGZhbHNlOwogICAgICAgICAgYnV0dG9uLnRleHRDb250ZW50ID0gIlJ1biBpbmZlcmVuY2UiOwogICAgICAgIH0sIDUwMCk7CiAgICAgIH0pOwoKICAgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rpb24gKGVycm9yKSB7CiAgICAgICAgY29uc29sZS5sb2coIkVSUk9SOiAiLCBlcnJvcik7CiAgICAgIH0pOwoKICAgICAgYnV0dG9uLnRleHRDb250ZW50ID0gIlN0b3AgaW5mZXJlbmNlIjsKICAgICAgcnVubmluZyA9IHRydWU7CiAgICB9IGVsc2UgewogICAgICBpZiAod29ya2VyICE9IG51bGwpIHsKICAgICAgICB3b3JrZXIudGVybWluYXRlKCk7CiAgICAgICAgd29ya2VyID0gbnVsbDsKICAgICAgfQoKICAgICAgYnV0dG9uLnRleHRDb250ZW50ID0gIlJ1biBpbmZlcmVuY2UiOwogICAgICBydW5uaW5nID0gZmFsc2U7CiAgICB9CiAgfSk7CiAgPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=

unlike direct p2p connection, p2p built on tor hidden services do not reveal ips of peers

#nostr #client #apps could integrate #tor #filehosting servers

they could provide all files they have stored locally on device

tor does port forwarding automatically, any device can host tor hidden service

then we just need events to announce these hidden service addresses for #nip96 file servers hosted on smartphones

pow per byte #powperbyte is a solution to put #nostr #filehost #servers on 3smartphones

#decentralize file hosting

why pow per byte #powperbyte is exellent for small file host providers?

with pow per byte implementation, high speed service can be guaranteed for those who provide required pow.

without pow requirement small providers will not be able to provide service with reasonable speeds, when even few files becomes too popular

file servers can define their required pow per byte values for upload and retrieval in nip96.json

for attachments, each alturl tag could define required pow for retrieval

resource constrained clients could prefer low pow for retrieval file servers

also requesting lower quality version of media file would require lower pow per retrieval

however pow per retrieval and or upload could be relative to fileserver load. in this case, if its dynamic, maybe nip96.json is not best place to define it, nor event tags

pow per byte

this could be implemented on #nip96 fileservers

one direction or both: for file uploads and/or for file retrievals

why new #nip96 #fileserver implementation?

there were 2+1 existing implementations

nostrcheck-server - didnt install on android

nostr-build - didnt install on android

void-cat - this github page is somewhere in the void

this new implementatino is just ~100 lines of javascript, has just few dependencies and install in few minutes on low end phone hw

nostr:nevent1qqsg0n8838l0ujw5tatug783wzy5ayfy68z9envewpwh60tgxk4vkngppemhxue69uhkummn9ekx7mp0qgs99vvcj90q8dvg4g3cnmmru7cp20c7xrqwgqxfacfykrcyw64rlrcrqsqqqqqpag7r40

#andoid #upload #files #nostr #dev

updated nip-96 fileserver, running on android + tor

https://rentry.org/torfiles2

minimal nip-96 file server behind tor

you can install this easily on android phone using termux

this example server is running on android phone

http://s6mn26rvxxoiezkh43e42on4nsnj2etpkvy7pjkj4rgpv7n5n4gjgqyd.onion/uploads/d1b81a303d340fb689c6b6f4f474d9e04f314ed9ad8925686e4106452b53181b

upload with curl

curl --socks5-hostname 127.0.0.1:9050 -X POST -H "Content-Type: multipart/form-data" -F "file=@test.txt" http://s6mn26rvxxoiezkh43e42on4nsnj2etpkvy7pjkj4rgpv7n5n4gjgqyd.onion/upload

https://rentry.org/torfiles

there could be lightweight onion routing server for nip-96 files

this lightweight server would not host files, but instead store them in database like

file_hash;download_url;decryption_key

server could host files to any clearweb host, encrypted

when requested by hash it would proxy file download and decrypt content on the fly. although decryption can also happen at client end

this routing server could be hosted on android phone with not much disk space available

so nip-96 is files mapped to hashes

just like ipfs, with different tradeoffs

but

its still not law enforcement bruteforce attack resistant

why not put some nodes behind tor?

if we get like 3+ nodes behind tor that mirror content, its pretty much unstoppable file hosting. when referring to files with hashes instead of single server, its way more 404 resistant than any single onion service

93 Gb/s

HORNET: High-speed Onion Routing at the Network Layer

We present HORNET, a system that enables high-speed end-to-end

anonymous channels by leveraging next generation network archi-

tectures. HORNET is designed as a low-latency onion routing sys-

tem that operates at the network layer thus enabling a wide range

of applications. Our system uses only symmetric cryptography

for data forwarding yet requires no per-flow state on intermediate

nodes. This design enables HORNET nodes to process anonymous

traffic at over 93 Gb/s. HORNET can also scale as required, adding

minimal processing overhead per additional anonymous channel.

We discuss design and implementation details, as well as a perfor-

mance and security evaluation.

i still dont know how primal works

my best guess is that global/popular is generated manually by primal admin once per day