Skip to content

Instantly share code, notes, and snippets.

@habemus-papadum
Created November 18, 2024 20:52
Show Gist options
  • Save habemus-papadum/03c6d82eceef7439e53c11c68468f683 to your computer and use it in GitHub Desktop.
Save habemus-papadum/03c6d82eceef7439e53c11c68468f683 to your computer and use it in GitHub Desktop.
Julia GPU
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "0d48b1c0-3cd3-472b-9084-d6974bbd9d6c",
"metadata": {
"tags": []
},
"source": [
"Generative GPU Images with Julia\n",
"==================================\n",
"\n",
"## Enabling features of `GPUCompiler` / `CUDA.jl`:\n",
"- Seamless `isbits` `struct` support\n",
" - e.g. `ColorTypes` & `GeometryBasics`\n",
"- Higher Order GPU kernels \n",
"- Parameterized singleton types per closure (parameterized by the types of the closed-over values )\n",
" - e.g. `typeof(a_closure) = var\"#3#4\"{Int64, Int64, RGB{FixedPointNumbers.N0f8}}`\n",
" \n",
"## Thesis \n",
"- Leads to highly expressive definitions\n",
" - e.g functional style: <p/> \n",
" `twill |> 🌺(widen)(4) |> 🌺(weave)(simpleColors) |> 🌺(zoom)(center=Point(0.75n, .4n))`\n",
" - as compared to e.g. [Shader Toy](https://www.shadertoy.com/)\n",
"- interactive environment for creating `procedural sketches`\n",
" - \"parameters\" are low-ceremony\n",
" - in comparison to e.g. `uniforms` from `GL`\n",
" - highly responsive \n",
" - tweaking parameters does not force recompilation\n",
" - melds well w/ e.g `Pluto`\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "0c94046c-ae72-493d-9341-e4edae319a80",
"metadata": {},
"outputs": [],
"source": [
"using Images, CUDA, Colors, GeometryBasics"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "c27d9503-2ba7-4601-bcfd-a976a5bc9197",
"metadata": {},
"outputs": [],
"source": [
"function Base.show(io::IO, mime::MIME\"image/png\", img::CuArray{C}) where C<:Colorant \n",
" Base.show(io, mime, Array(img))\n",
"end\n",
"\n",
"function Base.showable(mime::MIME\"image/png\", img::CuArray{C}) where C<:Colorant \n",
" true\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 89,
"id": "e35503a7-33b9-4684-86e9-706182cca951",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"generate (generic function with 1 method)"
]
},
"execution_count": 89,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function generate(f, img)\n",
" r, c = Int32.(size(img))\n",
" i = threadIdx().x + (blockIdx().x - 1) * blockDim().x\n",
" j = threadIdx().y + (blockIdx().y - 1) * blockDim().y\n",
" @inbounds if i <= r && j <= c\n",
" @inline img[i,j] = eltype(img)(f(i,j,r,c))\n",
" end\n",
" return\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "5f6b5366-ffcf-4e26-b5e1-a148bb524bd4",
"metadata": {},
"outputs": [],
"source": [
"threads = 16,16\n",
"blocks(img) = cld.(size(img), threads)\n",
"nothing"
]
},
{
"cell_type": "code",
"execution_count": 90,
"id": "78de63c5-0cf2-437e-b259-d8f39c2c8390",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAMtJREFUeAHtwUEBADAMhDAe59/SbFTOLCCAZPeOOCPaiDaijWgj2og2oo1oI9qINqKNaCPaiDaijWgj2og2oo1oI9qINqKNaCPaiDaijWgj2og2oo1oI9qINqKNaCPaiDaijWgj2og2oo1oI9qINqKNaCPaiDaijWgj2og2oo1oI9qINqKNaCPaiDaijWgj2og2oo1oI9qINqKNaCPaiDaijWgj2og2oo1oI9qINqKNaCPaiDaijWgj2og2oo1oI9qINqKNaCPaiDaifXDfBADLRjKzAAAAAElFTkSuQmCC",
"text/html": [
"<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAMtJREFUeAHtwUEBADAMhDAe59/SbFTOLCCAZPeOOCPaiDaijWgj2og2oo1oI9qINqKNaCPaiDaijWgj2og2oo1oI9qINqKNaCPaiDaijWgj2og2oo1oI9qINqKNaCPaiDaijWgj2og2oo1oI9qINqKNaCPaiDaijWgj2og2oo1oI9qINqKNaCPaiDaijWgj2og2oo1oI9qINqKNaCPaiDaijWgj2og2oo1oI9qINqKNaCPaiDaijWgj2og2oo1oI9qINqKNaCPaiDaifXDfBADLRjKzAAAAAElFTkSuQmCC\">"
],
"text/plain": [
"50×50 CuArray{RGB{Float32}, 2, CUDA.Mem.DeviceBuffer}:\n",
" RGB{Float32}(0.847059,0.74902,0.847059) … RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) … RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) … RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) RGB{Float32}(0.847059,0.74902,0.847059)\n",
" ⋮ ⋱ \n",
" RGB{Float32}(0.847059,0.74902,0.847059) RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) … RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) … RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) RGB{Float32}(0.847059,0.74902,0.847059)\n",
" RGB{Float32}(0.847059,0.74902,0.847059) RGB{Float32}(0.847059,0.74902,0.847059)"
]
},
"execution_count": 90,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"let \n",
" simple(i,j,r,c) = colorant\"thistle\"\n",
" n = 50\n",
" b = CuArray{RGB{Float32}}(undef, n,n)\n",
" @sync @cuda threads=threads blocks=blocks(b) generate(simple, b)\n",
" b\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 91,
"id": "47ad7930-4a18-41df-bb11-d26569a49b46",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"pink_plaid (generic function with 1 method)"
]
},
"execution_count": 91,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function pink_plaid(i,j,r,c)\n",
" threadCount= r ÷ 2\n",
" \n",
" thread = mod(i-j,4) < 2 ? i % threadCount : j % threadCount ## 2/2 twill\n",
" thread = thread > threadCount ÷ 2 ? threadCount - thread : thread ## symmetrize\n",
" color = thread < 0.2*threadCount ? colorant\"pink\" : \n",
" thread < 0.3*threadCount ? colorant\"yellow\" : \n",
" colorant\"gray\" \n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 92,
"id": "d58edc6f-0fd2-41f4-b755-623be1bd0703",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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duxAIHbsQCB27EAgduzUf3W+uq/uq/PV+eq+uq/OV+er++q+Ol+dr+6r++p8db66r+77qfvqfHW+uq/uq/PV+eq+uq/OV+er++q+Ol+dr+6r++p8db76b+xAIHbsQCB27EAgduxAIHbsQCB27EAgduxAIHbsQCB27EAgduxAIHbq7+6r89X56r66r85X56v76r46X52v7qv76nx1vrqv7qvz1fnqvrqvzlfnq/vqvjpfna/uq/vqfHW+uq/uq/PV+eq+uq/OV+er/8YOBGLHDgRixw4EYscOBGLHDgRixw4EYscOBGLHDgRixw4EYscOBGKn/u6+Ol+dr+6r++p8db66r+6r89X56r66r85X56v76r46X52v7vupP+6r89X56r66r85X56v76r46X52v7qv76nx1vrqv7qvz1V9B7NiBQOzYgUDs2IFA7NiBQOzYgUDs2IFA7NiBQOzYgUDs2IFA7NiBQOzU391X56vz1X11X52vzlf31X11vjpf3Vf31fnqfHVf3Vfnq/PVfXVfna/OV/fVfXW+Ol/dV/fV+ep8dV/dV+er89V9dV+dr/4KYscOBGLHDgRixw4EYscOBGLHDgRixw4EYscOBGLHDgRixw4EYscOBGKn/u6+Ol+dr+6r++p8db66r+6r89X56r66r85X56v76r46X53vp85X99V9db46X91X99X56nx1X91X56vz1X11X52vzlf31X11vvoriB07EIgdOxCIHTsQiB07EIgdOxCIHTsQiB07EIgdOxCIHTsQiB07kPq789V9dV+dr85X99V9db46X91X99X56nx1X91X56vz1X11X52vzlf31X11vjpf3Vf31fnqfHVf3Vfnq/PVfXVfna/OV/fVfXW++iuIHTsQiB07EIgdOxCIHTsQiB07EIgdOxCIHTsQiB07EIgdOxCIHTuQ+rvz1X11X52vzlf31X11vjpf3Vf31fnqfHVf3Vfnq/PVfXVfne+n/jhf3Vf31fnqfHVf3Vfnq/PVfXVfna/OV/fVfXW+Ol/dV39lBwKxYwcCsWMHArFjBwKxYwcCsWMHArFjBwKxYwcCsWMHArFjBwKxY6f+q/PVfXVfna/OV/fVfXW+Ol/dV/fV+ep8dV/dV+er89V9dV+dr85X99V9db46X91X99X56nx1X91X56vz1X11X52vzlf31V/ZgUDs2IFA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emWWWa9emWXWqwYC0WggEI3m/R2IRgOBaDQQiMYrs8x69coss169MsusV6/MMuvVK7PMev333vPKLLNevTLLrFevzDLr1SuzzHr1yixEo4FANBoIRPP+FESjgUA0GghE45VZZr16ZZZZr16ZZdarV2aZ9eqVWWa9emWWWa9emWXWq1dmmfXqlVlmvXplFqLRQCAaDQSieX8KotFAIBoNBKLxyiyzXr0yy6xXr8wy69Urs8x69coss/+Y9eqVWWa9emWWWa9emWXWq1dmmfXqlc+DaDQQiEYDgWjeH9FAIBoNBKLRQJj16pVZZr16ZZZZr16ZZdarV2aZ9eqVWWa9emWWWa9emWXWq1dmmfXqlVlmvXrl8yAaDQSi0UAgmvdHNBCIRgOBaDQQZr16ZZZZr16ZZdarV2aZ9eqVWWa9emX233uPWa9emWXWq1dmmfXqlVlmvXplllmvGghEo4FANBrI+1MaCESjgUA0GuYx69Urs8x69coss169MsusV6/MMuvVK7PMevXKLLNevTLLrFevzDLr1SuzzHrVQCAaUQNX6wAAIABJREFUDQSi0UDen9JAIBoNBKLRMI9Zr16ZZdarV2aZ9eqVWWa9emWWWa9e/3llllmvXpll1qtXZpn16pVZZr16ZZZZrxoIRKOBQDSa93cgGg0EotFAIBqvzDLr1SuzzHr1yiyzXr0yy6xXr8wy69Urs8x69coss169MsusV6/MMuvVK7PMetVAIBoNBKLRvL8D0WggEI0GAtF4ZZZZr16ZZdarV2aZ9eqVWWa9emWWWa//3ntemWXWq1dmmfXqlVlmvXplllmvXpmFaDQQiEYDgWjen4JoNBCIRgOBaLwyy6xXr8wy69Urs8x69coss169MsusV6/MMuvVK7PMevXKLLNevTLLrFevzEI0GghEo4FANO9PQTQaCESjgUA0Xpll1qtXZpn16pVZZr16ZZZZr16ZZfYfs169MsusV6/MMuvVK7PMevXKLLNevfJ5EI0GAtFoIBDN+yMaCESjgUA0GgizXr0yy6xXr8wy69Urs8x69coss169MsusV6/MMuvVK7PMevXKLLNevTLLrFevfB5Eo4FANBoIRPP+iAYC0WggEI0GwqxXr8wy69Urs8x69coss169MsusV6/M/nvvMevVK7PMevXKLLNevTLLrFevzDLrVQOBaDQQiEYD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69Urs8x69coss169MsusV6/MMuvVK7PMevXKLLNeNRCIRgOBaDSQ96c0EIhGA4FoNMxj1qtXZpn16pVZZr16ZZZZr16ZZdar139emWXWq1dmmfXqlVlmvXplllmvXpll1qsGAtFoIBCN5v0diEYDgWg0EIjGK7PMevXKLLNevTLLrFevzDLr1SuzzHr1yiyzXr0yy6xXr8wy69Urs8x69coss141EIhGA4FoNO/vQDQaCESjgUA0Xpll1qtXZpn16pVZZr16ZZZZr16ZZdbrv/eeV2aZ9eqVWWa9emWWWa9emWXWq1dmIRoNBKLRQCCa96cgGg0EotFAIBqvzDLr1SuzzHr1yiyzXr0yy6xXr8wy69Urs8x69coss169MsusV6/MMuvVK7MQjQYC0WggEM37UxCNBgLRaCAQjVdmmfXqlVlmvXplllmvXpll1qtXZpn9x6xXr8wy69Urs8x69coss169MsusV698HkSjgUA0GghE8/6IBgLRaCAQjQbCrFevzDLr1SuzzHr1yiyzXr0yy6xXr8wy69Urs8x69coss169MsusV6/MMuvVK58H0WggEI0GAtG8P6KBQDQaCESjgTDr1SuzzHr1yiyzXr0yy6xXr8wy69Urs//ee8x69coss169MsusV6/MMuvVK7PMetVAIBoNBKLRQN6f0kAgGg0EotEwj1mvXpll1qtXZpn16pVZZr16ZZZZr16ZZdarV2aZ9eqVWWa9emWWWa9emWXWqwYC0WggEI0G8v6UBgLRaCAQjYZ5zHr1yiyzXr0yy6xXr8wy69Urs8x69frPK7PMevXKLLNevTLLrFevzDLr1SuzzHrVQCAaDQSi0by/A9FoIBCNBgLReGWWWa9emWXWq1dmmfXqlVlmvXplllmvXpll1qtXZpn16pVZZr16ZZZZr16ZZdarBgLRaCAQjeb9HYhGA4FoNBCIxiuzzHr1yiyzXr0yy6xXr8wy69Urs8x6/ffe88oss169MsusV6/MMuvVK7PMevXKLESjgUA0GghE8/4URKOBQDQaCETjlVlmvXplllmvXpll1qtXZpn16pVZZr16ZZZZr16ZZdarV2aZ9eqVWWa9emUWotFAIBoNBKJ5fwqi0UAgGg0EovHKLLNevTLLrFevzDLr1SuzzHr1yiyz/5h9n5/38r6/zL7Pz3t5319m3+fnvbzvL7Pv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",
"text/html": [
"<img src=\"data:image/png;base64,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duxAIHbsQCB27EAgduzUf3W+uq/uq/PV+eq+uq/OV+er++q+Ol+dr+6r++p8db66r+77qfvqfHW+uq/uq/PV+eq+uq/OV+er++q+Ol+dr+6r++p8db76b+xAIHbsQCB27EAgduxAIHbsQCB27EAgduxAIHbsQCB27EAgduxAIHbq7+6r89X56r66r85X56v76r46X52v7qv76nx1vrqv7qvz1fnqvrqvzlfnq/vqvjpfna/uq/vqfHW+uq/uq/PV+eq+uq/OV+er/8YOBGLHDgRixw4EYscOBGLHDgRixw4EYscOBGLHDgRixw4EYscOBGKn/u6+Ol+dr+6r++p8db66r+6r89X56r66r85X56v76r46X52v7vupP+6r89X56r66r85X56v76r46X52v7qv76nx1vrqv7qvz1V9B7NiBQOzYgUDs2IFA7NiBQOzYgUDs2IFA7NiBQOzYgUDs2IFA7NiBQOzU391X56vz1X11X52vzlf31X11vjpf3Vf31fnqfHVf3Vfnq/PVfXVfna/OV/fVfXW+Ol/dV/fV+ep8dV/dV+er89V9dV+dr/4KYscOBGLHDgRixw4EYscOBGLHDgRixw4EYscOBGLHDgRixw4EYscOBGKn/u6+Ol+dr+6r++p8db66r+6r89X56r66r85X56v76r46X53vp85X99V9db46X91X99X56nx1X91X56vz1X11X52vzlf31X11vvoriB07EIgdOxCIHTsQiB07EIgdOxCIHTsQiB07EIgdOxCIHTsQiB07kPq789V9dV+dr85X99V9db46X91X99X56nx1X91X56vz1X11X52vzlf31X11vjpf3Vf31fnqfHVf3Vfnq/PVfXVfna/OV/fVfXW++iuIHTsQiB07EIgdOxCIHTsQiB07EIgdOxCIHTsQiB07EIgdOxCIHTuQ+rvz1X11X52vzlf31X11vjpf3Vf31fnqfHVf3Vfnq/PVfXVfne+n/jhf3Vf31fnqfHVf3Vfnq/PVfXVfna/OV/fVfXW+Ol/dV39lBwKxYwcCsWMHArFjBwKxYwcCsWMHArFjBwKxYwcCsWMHArFjBwKxY6f+q/PVfXVfna/OV/fVfXW+Ol/dV/fV+ep8dV/dV+er89V9dV+dr85X99V9db46X91X99X56nx1X91X56vz1X11X52vzlf31V/ZgUDs2IFA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emWWWa9emWXWqwYC0WggEI3m/R2IRgOBaDQQiMYrs8x69coss169MsusV6/MMuvVK7PMev333vPKLLNevTLLrFevzDLr1SuzzHr1yixEo4FANBoIRPP+FESjgUA0GghE45VZZr16ZZZZr16ZZdarV2aZ9eqVWWa9emWWWa9emWXWq1dmmfXqlVlmvXplFqLRQCAaDQSieX8KotFAIBoNBKLxyiyzXr0yy6xXr8wy69Urs8x69coss/+Y9eqVWWa9emWWWa9emWXWq1dmmfXqlc+DaDQQiEYDgWjeH9FAIBoNBKLRQJj16pVZZr16ZZZZr16ZZdarV2aZ9eqVWWa9emWWWa9emWXWq1dmmfXqlVlmvXrl8yAaDQSi0UAgmvdHNBCIRgOBaDQQZr16ZZZZr16ZZdarV2aZ9eqVWWa9emX233uPWa9emWXWq1dmmfXqlVlmvXplllmvGghEo4FANBrI+1MaCESjgUA0GuYx69Urs8x69coss169MsusV6/MMuvVK7PMevXKLLNevTLLrFevzDLr1SuzzHrVQCAaUQNX6wAAIABJREFUDQSi0UDen9JAIBoNBKLRMI9Zr16ZZdarV2aZ9eqVWWa9emWWWa9e/3llllmvXpll1qtXZpn16pVZZr16ZZZZrxoIRKOBQDSa93cgGg0EotFAIBqvzDLr1SuzzHr1yiyzXr0yy6xXr8wy69Urs8x69coss169MsusV6/MMuvVK7PMetVAIBoNBKLRvL8D0WggEI0GAtF4ZZZZr16ZZdarV2aZ9eqVWWa9emWWWa//3ntemWXWq1dmmfXqlVlmvXplllmvXpmFaDQQiEYDgWjen4JoNBCIRgOBaLwyy6xXr8wy69Urs8x69coss169MsusV6/MMuvVK7PMevXKLLNevTLLrFevzEI0GghEo4FANO9PQTQaCESjgUA0Xpll1qtXZpn16pVZZr16ZZZZr16ZZfYfs169MsusV6/MMuvVK7PMevXKLLNevfJ5EI0GAtFoIBDN+yMaCESjgUA0GgizXr0yy6xXr8wy69Urs8x69coss169MsusV6/MMuvVK7PMevXKLLNevTLLrFevfB5Eo4FANBoIRPP+iAYC0WggEI0GwqxXr8wy69Urs8x69coss169MsusV6/M/nvvMevVK7PMevXKLLNevTLLrFevzDLrVQOBaDQQiEYD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69Urs8x69coss169MsusV6/MMuvVK7PMevXKLLNeNRCIRgOBaDSQ96c0EIhGA4FoNMxj1qtXZpn16pVZZr16ZZZZr16ZZdar139emWXWq1dmmfXqlVlmvXplllmvXpll1qsGAtFoIBCN5v0diEYDgWg0EIjGK7PMevXKLLNevTLLrFevzDLr1SuzzHr1yiyzXr0yy6xXr8wy69Urs8x69coss141EIhGA4FoNO/vQDQaCESjgUA0Xpll1qtXZpn16pVZZr16ZZZZr16ZZdbrv/eeV2aZ9eqVWWa9emWWWa9emWXWq1dmIRoNBKLRQCCa96cgGg0EotFAIBqvzDLr1SuzzHr1yiyzXr0yy6xXr8wy69Urs8x69coss169MsusV6/MMuvVK7MQjQYC0WggEM37UxCNBgLRaCAQjVdmmfXqlVlmvXplllmvXpll1qtXZpn9x6xXr8wy69Urs8x69coss169MsusV698HkSjgUA0GghE8/6IBgLRaCAQjQbCrFevzDLr1SuzzHr1yiyzXr0yy6xXr8wy69Urs8x69coss169MsusV6/MMuvVK58H0WggEI0GAtG8P6KBQDQaCESjgTDr1SuzzHr1yiyzXr0yy6xXr8wy69Urs//ee8x69coss169MsusV6/MMuvVK7PMetVAIBoNBKLRQN6f0kAgGg0EotEwj1mvXpll1qtXZpn16pVZZr16ZZZZr16ZZdarV2aZ9eqVWWa9emWWWa9emWXWqwYC0WggEI0G8v6UBgLRaCAQjYZ5zHr1yiyzXr0yy6xXr8wy69Urs8x69frPK7PMevXKLLNevTLLrFevzDLr1SuzzHrVQCAaDQSi0by/A9FoIBCNBgLReGWWWa9emWXWq1dmmfXqlVlmvXplllmvXpll1qtXZpn16pVZZr16ZZZZr16ZZdarBgLRaCAQjeb9HYhGA4FoNBCIxiuzzHr1yiyzXr0yy6xXr8wy69Urs8x6/ffe88oss169MsusV6/MMuvVK7PMevXKLESjgUA0GghE8/4URKOBQDQaCETjlVlmvXplllmvXpll1qtXZpn16pVZZr16ZZZZr16ZZdarV2aZ9eqVWWa9emUWotFAIBoNBKJ5fwqi0UAgGg0EovHKLLNevTLLrFevzDLr1SuzzHr1yiyz/5h9n5/38r6/zL7Pz3t5319m3+fnvbzvL7Pv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\">"
],
"text/plain": [
"200×200 CuArray{RGB{Float32}, 2, CUDA.Mem.DeviceBuffer}:\n",
" RGB{Float32}(1.0,0.752941,0.796078) … RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) … RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) … RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" ⋮ ⋱ \n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) … RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) … RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)"
]
},
"execution_count": 92,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"let \n",
" n = 200\n",
" img = CuArray{RGB{Float32}}(undef, n,n)\n",
" @sync @cuda threads=threads blocks=blocks(img) generate(pink_plaid, img)\n",
" img\n",
"end\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 93,
"id": "65fc4f66-5b93-4070-bac3-26910c5bb024",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"BenchmarkTools.Trial: 10000 samples with 5 evaluations.\n",
" Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m 6.795 μs\u001b[22m\u001b[39m … \u001b[35m537.096 μs\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m0.00% … 0.00%\n",
" Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m10.238 μs \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m0.00%\n",
" Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m 9.951 μs\u001b[22m\u001b[39m ± \u001b[32m 5.357 μs\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m0.00% ± 0.00%\n",
"\n",
" \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m \u001b[39m \u001b[39m▁\u001b[39m▂\u001b[39m▃\u001b[39m▃\u001b[39m▃\u001b[39m▃\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m▂\u001b[39m▃\u001b[39m▃\u001b[39m▃\u001b[32m▅\u001b[39m\u001b[39m▆\u001b[39m█\u001b[34m█\u001b[39m\u001b[39m█\u001b[39m▇\u001b[39m▅\u001b[39m▄\u001b[39m▄\u001b[39m▃\u001b[39m▂\u001b[39m▁\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m▂\n",
" \u001b[39m▄\u001b[39m▄\u001b[39m▅\u001b[39m▇\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m▇\u001b[39m█\u001b[39m█\u001b[39m▇\u001b[39m▇\u001b[39m▇\u001b[39m▇\u001b[39m▇\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[32m█\u001b[39m\u001b[39m█\u001b[39m█\u001b[34m█\u001b[39m\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m▆\u001b[39m▆\u001b[39m▆\u001b[39m█\u001b[39m▇\u001b[39m█\u001b[39m█\u001b[39m \u001b[39m█\n",
" 6.79 μs\u001b[90m \u001b[39m\u001b[90mHistogram: \u001b[39m\u001b[90m\u001b[1mlog(\u001b[22m\u001b[39m\u001b[90mfrequency\u001b[39m\u001b[90m\u001b[1m)\u001b[22m\u001b[39m\u001b[90m by time\u001b[39m 11.5 μs \u001b[0m\u001b[1m<\u001b[22m\n",
"\n",
" Memory estimate\u001b[90m: \u001b[39m\u001b[33m1.64 KiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m38\u001b[39m."
]
},
"execution_count": 93,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"using BenchmarkTools\n",
"let \n",
" n = 200\n",
" img = CuArray{RGB{Float32}}(undef, n,n)\n",
" @benchmark @sync @cuda threads=threads blocks=blocks($img) generate(pink_plaid, $img)\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 164,
"id": "7507b1df-6980-4ed0-a51d-9fdb83822b05",
"metadata": {},
"outputs": [],
"source": [
"## weave\n",
"function weave(isWeftOnTop::Function, color::Function; threadWidth=1.0,margin=0.10, marginColor=colorant\"ghostwhite\")\n",
" (i,j,r,c) -> begin\n",
" i = i+0.5; j = j+0.5; ## №, I am not ☆ about this ❆\n",
" (weftId, weftRem) = divrem(i,threadWidth)\n",
" (warpId, warpRem) = divrem(j,threadWidth) \n",
" weftOnTop = isWeftOnTop(weftId, warpId) \n",
" remainder = weftOnTop ? weftRem : warpRem\n",
" fraction = remainder/threadWidth\n",
" fraction = fraction >= 0.5 ? 1.0-fraction : fraction ## symmetrize\n",
" fraction >= margin ? color(weftOnTop,weftId,warpId) : marginColor \n",
" end\n",
"end\n",
"\n",
"## zoom\n",
"function zoom(shader::Function; center=Point(20.0,20.0), radius=60.0, scale=20.0, enabled=true)\n",
" (i,j,r,c) -> begin\n",
" p = Point(i,j)\n",
" s = (norm(p-center) < radius) & enabled ? scale : 1.0\n",
" p = center + (p-center)/s\n",
" shader(p[1], p[2], r, c)\n",
" end\n",
"end\n",
"\n",
"simpleColors(isWeftOnTop, i, j) = isWeftOnTop ? colorant\"orangered\" : colorant\"lightgrey\"\n",
"twill = (i,j) -> mod(i-j,4) < 2\n",
"\n",
"function tartan(sett, threadcount = 100) \n",
" (weftOnTop, i, j) -> begin\n",
" thread = weftOnTop ? i % threadcount : j % threadcount \n",
" thread = thread > threadcount ÷ 2 ? threadcount - thread : thread \n",
" return sett(2*thread/threadcount)\n",
" end\n",
"end\n",
"\n",
"function pink_yellow_grey_sett(;p=0.4, y=1.5p) \n",
" x -> begin\n",
" x < p ? colorant\"pink\" : \n",
" x < y ? colorant\"yellow\" : \n",
" colorant\"grey\"\n",
" end\n",
"end\n",
"\n",
"widen(f, n) = (i,j) -> f(floor(Int, i/n), floor(Int, j/n))\n",
"\n",
"function herring(n)\n",
" (i,j) -> begin\n",
"\t\t\tx = mod(i, n)\n",
"\t\t\t(x < n/2) ? mod(i-j,4) < 2 : mod(i+j,4) < 2 \n",
"\t\tend\n",
"end\n",
"\n",
"function escherDiamonds(size) \n",
"\t (i,j) -> begin\n",
"\t op = mod(div(i,size) + div(j,size),2) == 0 ? (+) : (-)\n",
"\t mod(op(i,j),4) < 2 \n",
"\t end\n",
"end\n",
"\n",
"nothing"
]
},
{
"cell_type": "code",
"execution_count": 165,
"id": "4b957345-4c16-48aa-a1a6-0fc3e5cdcfad",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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XO1qdthxtavZYcfVrmaHHVe7mh12XO1qdiB27EAgduxAIHb0S+xAIHbsQCB27EDYcbWr2WHH1a5mhx1Xu5oddlztanbYcbWr2WHH1a5mhx1Xu5oddlztanbYcbWr2WHH1a5mB2LHDgRixw4EYke/xA4EYscOBGLHDoQdV7uaHXZc7Wp22HG1q9lhx9WuZocdV7uanR9J7Lja1eyw42pXs8OOq13NDjuudjU77LjaDgRixw4EYscOBKLfALFjBwKxYwcCsWMHwo6rXc0OO652NTvsuNrV7LDjalezw46rXc0OO652NTvsuNrV7LDjalezw46rXc0OO662A4HYsQOB2LEDgeg3QOzYgUDs2IFA7NiBsONqV7PDjqtdzQ47rnY1O+y42tXssONqV/+4mh12XO1qdthxtavZYcfVrmaHHVe7mh12fGQHArFjBwKxYweiXwKxYwcCsWMHArHjanbYcbWr2WHH1a5mhx1Xu5oddlztanbYcbWr2WHH1a5mhx1Xu5oddlztanbYcbWr2WHHR3YgEDt2IBA7diD6JRA7diAQO3YgEDuuZocdV7uaHXZc7Wp22HG1q9lhx9WuZocdV/9IcjU77Lja1eyw42pXs8OOq13NDjuudjU7EDt2IBA7diAQO3Yg+tfZgUDs2IFA7NiBQFxyNTvsuNrV7LDjalezw46rXc0OO652NTvsuNrV7LDjalezw46rXc0OO652NTvsuNrV7EDs2IFA7NiBQOzYgehfZwcCsWMHArFjBwJxydXssONqV7PDjqtdzQ47rnY1O+y42tXssPPDjqtdzQ47rnY1O+y42tXssONqV7PDjqtdzQ7Ejh0IxI4dCMSOfokdCMSOHQjEjh0IO652NTvsuNrV7LDjalezw46rXc0OO652NTvsuNrV7LDjalezw46rXc0OO652NTvsuNrV7EDs2IFA7NiBQOzol9iBQOzYgUDs2IGw42pXs8OOq13NDjuudjU77Lja1eyw42pXs/MjiR1Xu5oddlztanbYcbWr2WHH1a5mhx1X24FA7NiBQOzYgUD0GyB27EAgduxAIHbsQNhxtavZYcfVrmaHHVe7mh12XO1qdthxtavZYcfVrmaHHVe7mh12XO1qdthxtavZYcfVdiAQO3YgEDt2IBD9BogdOxCIHTsQiB07EHZc7Wp22HG1q9lhx9WuZocdV7uaHXZc7eofV7PDjqtdzQ47rnY1O+y42tXssONqV7PDjo/sQCB27EAgduxA9EsgduxAIHbsQCB2XM0OO652NTvsuNrV7LDjalezw46rXc0OO652NTvsuNrV7LDjalezw46rXc0OO652NTvs+MgOBGLHDgRixw5EvwRixw4EYscOBGLH1eyw42pXs8OOq13NDjuudjU77Lja1eyw4+ofSa5mhx1Xu5oddlztanbYcbWr2WHH1a5mB2LHDgRixw4EYscORP86OxCIHTsQiB07EIhLrmaHHVe7mh12XO1qdthxtavZYcfVrmaHHVe7mh12XO1qdthxtavZYcfVrmaHHVe7mh2IHTsQiB07EIgdOxD96+xAIHbsQCB27EAgLrmaHXZc7Wp22HG1q9lhx9WuZocdV7uaHXZ+2HG1q9lhx9WuZocdV7uaHXZc7Wp22HG1q9mB2LEDgdixA4HY0S+xA4HYsQOB2LEDYcfVrmaHHVe7mh12XO1qdthxtavZYcfVrmaHHVe7mh12XO1qdthxtavZYcfVrmaHHVe7mh2IHTsQiB07EIgd/RI7EIgdOxCIHTsQdlztanbYcbWr2WHH1a5mhx1Xu5oddlztanZ+JLHjalezw46rXc0OO652NTvsuNrV7LDjajsQiB07EIgdOxCIfgPEjh0IxI4dCMSOHQg7rnY1O+y42tXssONqV7PDjqtdzQ47rnY1O+y42tXssONqV7PDjqtdzQ47rnY1O+y42g4EYscOBGLHDgSi3wCxYwcCsWMHArFjB8KOq13NDjuudjU77Lja1eyw42pXs8OOq13942p22HG1q9lhx9WuZocdV7uaHXZc7Wp22PGRHQjEjh0IxI4diH4JxI4dCMSOHQjEjqvZYcfVrmaHHVe7mh12XO1qdthxtavZYcfVrmaHHVe7mh12XO1qdthxtavZYcfVrmaHHR/ZgUDs2IFA7NiB6JdA7NiBQOzYgUDsuJoddlztanbYcbWr2WHH1a5mhx1Xu5oddlz9I8nV7LDjalezw46rXc0OO652NTvsuNrV7EDs2IFA7NiBQOzYgehfZwcCsWMHArFjBwJxydXssONqV7PDjqtdzQ47rnY1O+y42tXssONqV7PDjqtdzQ47rnY1O+y42tXssONqV7MDsWMHArFjBwKxYweif50dCMSOHQjEjh0IxCVXs8OOq13NDjuudjU77Lja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",
"text/html": [
"<img src=\"data:image/png;base64,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XO1qdthxtavZYcfVrmaHHVe7mh12XO1qdiB27EAgduxAIHb0S+xAIHbsQCB27EDYcbWr2WHH1a5mhx1Xu5oddlztanbYcbWr2WHH1a5mhx1Xu5oddlztanbYcbWr2WHH1a5mB2LHDgRixw4EYke/xA4EYscOBGLHDoQdV7uaHXZc7Wp22HG1q9lhx9WuZocdV7uanR9J7Lja1eyw42pXs8OOq13NDjuudjU77LjaDgRixw4EYscOBKLfALFjBwKxYwcCsWMHwo6rXc0OO652NTvsuNrV7LDjalezw46rXc0OO652NTvsuNrV7LDjalezw46rXc0OO662A4HYsQOB2LEDgeg3QOzYgUDs2IFA7NiBsONqV7PDjqtdzQ47rnY1O+y42tXssONqV/+4mh12XO1qdthxtavZYcfVrmaHHVe7mh12fGQHArFjBwKxYweiXwKxYwcCsWMHArHjanbYcbWr2WHH1a5mhx1Xu5oddlztanbYcbWr2WHH1a5mhx1Xu5oddlztanbYcbWr2WHHR3YgEDt2IBA7diD6JRA7diAQO3YgEDuuZocdV7uaHXZc7Wp22HG1q9lhx9WuZocdV/9IcjU77Lja1eyw42pXs8OOq13NDjuudjU7EDt2IBA7diAQO3Yg+tfZgUDs2IFA7NiBQFxyNTvsuNrV7LDjalezw46rXc0OO652NTvsuNrV7LDjalezw46rXc0OO652NTvsuNrV7EDs2IFA7NiBQOzYgehfZwcCsWMHArFjBwJxydXssONqV7PDjqtdzQ47rnY1O+y42tXssPPDjqtdzQ47rnY1O+y42tXssONqV7PDjqtdzQ7Ejh0IxI4dCMSOfokdCMSOHQjEjh0IO652NTvsuNrV7LDjalezw46rXc0OO652NTvsuNrV7LDjalezw46rXc0OO652NTvsuNrV7EDs2IFA7NiBQOzol9iBQOzYgUDs2IGw42pXs8OOq13NDjuudjU77Lja1eyw42pXs/MjiR1Xu5oddlztanbYcbWr2WHH1a5mhx1X24FA7NiBQOzYgUD0GyB27EAgduxAIHbsQNhxtavZYcfVrmaHHVe7mh12XO1qdthxtavZYcfVrmaHHVe7mh12XO1qdthxtavZYcfVdiAQO3YgEDt2IBD9BogdOxCIHTsQiB07EHZc7Wp22HG1q9lhx9WuZocdV7uaHXZc7eofV7PDjqtdzQ47rnY1O+y42tXssONqV7PDjo/sQCB27EAgduxA9EsgduxAIHbsQCB2XM0OO652NTvsuNrV7LDjalezw46rXc0OO652NTvsuNrV7LDjalezw46rXc0OO652NTvs+MgOBGLHDgRixw5EvwRixw4EYscOBGLH1eyw42pXs8OOq13NDjuudjU77Lja1eyw4+ofSa5mhx1Xu5oddlztanbYcbWr2WHH1a5mB2LHDgRixw4EYscORP86OxCIHTsQiB07EIhLrmaHHVe7mh12XO1qdthxtavZYcfVrmaHHVe7mh12XO1qdthxtavZYcfVrmaHHVe7mh2IHTsQiB07EIgdOxD96+xAIHbsQCB27EAgLrmaHXZc7Wp22HG1q9lhx9WuZocdV7uaHXZ+2HG1q9lhx9WuZocdV7uaHXZc7Wp22HG1q9mB2LEDgdixA4HY0S+xA4HYsQOB2LEDYcfVrmaHHVe7mh12XO1qdthxtavZYcfVrmaHHVe7mh12XO1qdthxtavZYcfVrmaHHVe7mh2IHTsQiB07EIgd/RI7EIgdOxCIHTsQdlztanbYcbWr2WHH1a5mhx1Xu5oddlztanZ+JLHjalezw46rXc0OO652NTvsuNrV7LDjajsQiB07EIgdOxCIfgPEjh0IxI4dCMSOHQg7rnY1O+y42tXssONqV7PDjqtdzQ47rnY1O+y42tXssONqV7PDjqtdzQ47rnY1O+y42g4EYscOBGLHDgSi3wCxYwcCsWMHArFjB8KOq13NDjuudjU77Lja1eyw42pXs8OOq13942p22HG1q9lhx9WuZocdV7uaHXZc7Wp22PGRHQjEjh0IxI4diH4JxI4dCMSOHQjEjqvZYcfVrmaHHVe7mh12XO1qdthxtavZYcfVrmaHHVe7mh12XO1qdthxtavZYcfVrmaHHR/ZgUDs2IFA7NiB6JdA7NiBQOzYgUDsuJoddlztanbYcbWr2WHH1a5mhx1Xu5oddlz9I8nV7LDjalezw46rXc0OO652NTvsuNrV7EDs2IFA7NiBQOzYgehfZwcCsWMHArFjBwJxydXssONqV7PDjqtdzQ47rnY1O+y42tXssONqV7PDjqtdzQ47rnY1O+y42tXssONqV7MDsWMHArFjBwKxYweif50dCMSOHQjEjh0IxCVXs8OOq13NDjuudjU77Lja1eyw42pXs8PODzuudjU77Lja1eyw42pXs8OOq13NDjuudjU7EDt2IBA7diAQO/oldiAQO3YgEDt2IOy42tXssONqV7PDjqtdzQ47rnY1O+y42tXssONqV7PDjqtdzQ47rnY1O+y42tXssONqV7MDsWMHArFjBwKxo19iBwKxYwcCsWMHwo6rXc0OO652NTvsuNrV7LDjalezw46rXc3Ojx0pus/VOp8U3edqnU+K7nO1zidF97la55Oi++zoP+zoP+zo/2JHEkSSHUkQSXYkQSTZkQSRZEcSRJIdSRBJdiRBJNmRBJFkRxJEkh39H3b0H3b0H3b0v0X3uVrnk6L7XK3zSdF9rtb5pOg+V+t8UnSfq3U+KbrP1TqfFN3nap1Piu5ztc4nRfe5WueTovvs6D/s6D/s6P9iRxJEkh1JEEl2JEEk2ZEEkWRHEkSSHUkQSXYkQSTZkQSRZEcSRJId/R929B929B929L9F97la55Oi+1yt80nRfa7W+aToPlfrfFJ0n6t/dJ/Op/PpPt2n8+l8uk/36Xw6n+7TfTqfzqf7dJ/Op/Ppv7EDgdixA4HYsQOB2LEDgdixA4HYsQOB2LEDgdixA4HYsQOB2LEDgdjR37tP59P5dJ/u0/l0Pt2n+3Q+nU/36T6dT+fTfbpP59P5dJ/u0/l0Pt2n+3Q+nU/36T6dT+fTfbpP59P5dJ/u0/l0Pv03diAQO3YgEDt2IBA7diAQO3YgEDt2IBA7diAQO3YgEDt2IBA7diAQO/p79+l8Op/u0306n86n+3Sfzqfz6T7dp/PpfLpP9+l8Op/u+9Ef9+l8Op/u0306n86n+3Sfzqfz6T7dp/PpfLpP9+l8+gfsQCB27EAgduxAIHbsQCB27EAgduxAIHbsQCB27EAgduxAIHbsQPRP3Kfz6Xy6T/fpfDqf7tN9Op/Op/t0n86n8+k+3afz6Xy6T/fpfDqf7tN9Op/Op/t0n86n8+k+3afz6Xy6T/fpfPoH7EAgduxAIHbsQCB27EAgduxAIHbsQCB27EAgduxAIHbsQCB27ED0T9yn8+l8uk/36Xw6n+7TfTqfzqf7dJ/Op/PpPt2n8+l8Pzqf7tN9Op/Op/t0n86n8+k+3afz6Xy6T/fpfDqf7tN9Op/+FsSOHQjEjh0IxI4dCMSOHQjEjh0IxI4dCMSOHQjEjh0IxI4dCMSOHf1X59N9uk/n0/l0n+7T+XQ+3af7dD6dT/fpPp1P59N9uk/n0/l0n+7T+XQ+3af7dD6dT/fpPp1P59N9uk/n0/l0n+7T+fS3IHbsQCB27EAgduxAIHbsQCB27EAgduxAIHbsQCB27EAgduxAIHbs6L86n+7TfTqfzqf7dJ/Op/PpPt2n8+l8uk/36Xw6n+7TfTrfj/44n+7TfTqfzqf7dJ/Op/PpPt2n8+l8uk/36Xw6n+7TPwCxYwcCsWMHArFjBwKxYwcCsWMHArFjBwKxYwcCsWMHArFjBwKxo3/ifLpP9+l8Op/u0306n86n+3Sfzqfz6T7dp/PpfLpP9+l8Op/u0306n86n+3Sfzqfz6T7dp/PpfLpP9+l8Op/u0z8AsWMHArFjBwKxYwcCsWMHArFjBwKxYwcCsWMHArFjBwKxYwcCsaN/4ny6T/fpfDqf7tN9Op/Op/t0n86n8+k+3afz6Xy6T/f96D6dT+fTfbpP59P5dJ/u0/l0Pt2n+3Q+nU/36T6dT+fTf2MHArFjBwKxYwcCsWMHArFjBwKxYwcCsWMHArFjBwKxYwcCsWMHArGjv3efzqfz6T7dp/PpfLpP9+l8Op/u0306n86n+3Sfzqfz6T7dp/PpfLpP9+l8Op/u0306n86n+3Sfzqfz6T7dp/PpfPpv7EAgduxAIHbsQCB27EAgduxAIHbsQCB27EAgduxAIHbsQCB27EAgdvT37tP5dD7dp/t0Pp1P9+k+nU/n0326T+fT+XSf7tP5dD7d96M/7tP5dD7dp/t0Pp1P9+k+nU/n0326T+fT+XSf7tP59A/YgUDs2IFA7NiBQOzYgUDs2IFA7NiBQOzYgUDs2IFA7NiBQOzYgeifuE/n0/l0n+7T+XQ+3af7dD6dT/fpPp1P59N9uk/n0/l0n+7T+XQ+3af7dD6dT/fpPp1P59N9uk/n0/l0n+7T+fQP2IFA7NiBQOzYgUDs2IFA7NiBQOzYgUDs2IFA7NiBQOzYgUDs2IHon7hP59P5dJ/u0/l0Pt2n+3Q+nU/36T6dT+fTfbpP59P5fnQ+3af7dD6dT/fpPp1P59N9uk/n0/l0n+7T+XQ+3af7dD79LYgdOxCIHTsQiB07EIgdOxCIHTsQiB07EIgdOxCIHTsQiB07EIgdO/qvzqf7dJ/Op/PpPt2n8+l8uk/36Xw6n+7TfTqfzqf7dJ/Op/PpPt2n8+l8uk/36Xw6n+7TfTqfzqf7dJ/Op/PpPt2n8+lvQezYgUDs2IFA7NiBQOzYgUDs2IFA7NiBQOzYgUDs2IFA7NiBQOzY0X91Pt2n+3Q+nU/36T6dT+fTfbpP59P5dJ/u0/l0Pt2n+3S+H/1xPt2n+3Q+nU/36T6dT+fTfbpP59P5dJ/u0/l0Pt2nfwBixw4EYscOBGLHDgRixw4EYscOBGLHDgRixw4EYscOBGLHDgRiR//E+XSf7tP5dD7dp/t0Pp1P9+k+nU/n0326T+fT+XSf7tP5dD7dp/t0Pp1P9+k+nU/n0326T+fT+XSf7tP5dD7dp38AYscOBGLHDgRixw4EYscOBGLHDgRixw4EYscOBGLHDgRixw4EYkf/xPl0n+7T+XQ+3af7dD6dT/fpPp1P59N9uk/n0/l0n+770X06n86n+3Sfzqfz6T7dp/PpfLpP9+l8Op/u0306n86n/8YOBGLHDgRixw4EYscOBGLHDgRixw4EYscOBGLHDgRixw4EYscOBGJHf+8+nU/n0326T+fT+XSf7tP5dD7dp/t0Pp1P9+k+nU/n0326T+fT+XSf7tP5dD7dp/t0Pp1P9+k+nU/n0326T+fT+fTf2IFA7NiBQOzYgUDs2IFA7NiBQOzYgUDs2IFA7NiBQOzYgUDs2IFA7Ojv3afz6Xy6T/fpfDqf7tN9Op/Op/t0n86n8+k+3afz6Xy670d/3Kfz6Xy6T/fpfDqf7tN9Op/Op/t0n86n8+k+3afz6R+wA4HYsQOB2LEDgdixA4HYsQOB2LEDgdixA4HYsQOB2LEDgdixA9E/cZ/Op/PpPt2n8+l8uk/36Xw6n+7TfTqfzqf7dJ/Op/PpPt2n8+l8uk/36Xw6n+7TfTqfzqf7dJ/Op/PpPt2n8+kfsAOB2LEDgdixA4HYsQOB2LEDgdixA4HYsQOB2LEDgdixA4HYsQPRP3Gfzqfz6T7dp/PpfLpP9+l8Op/u0306n86n+3Sfzqfz/eh/3Ke/3Ke/3Ke/3Ke/3Kf/cT79cZ/+OJ/+uE9/nA/iapfYgbjaJXYgrnaJHYirXWIH4mqX2IG42iV2IK52iR2Iq11iB+Jql9iBuNolKfrjPv1xPv1xn/44n/64T//jPv3lPv3lPv3lPv3lPv3lPv3lPv3lPv3lPv3lPv2P8+mP+/TH+fTHffrjfBBXu8QOxNUusQNxtUvsQFztEjsQV7vEDsTVLrEDcbVL7EBc7RI7EFe7xA7E1S5J0R/36Y/z6Y/79Mf59Md9+h/36S/36S/36S/36S/3SfrR/7Pz6T7dp/PpfLpP9+l8Op/u033SsONqV7PDjqtdzQ47rnY1O+y42tXssONqV7PDjqtdzQ47rnY1O+y42tXssONqV7PDjqt1n86n8+k+3afz6Xy6T/fpfDqf7tO/73y6T/fpfDqf7tN9Op/Op/t0nzTsuNrV7LDjalezw46rXc0OO652NTvsuNrV7LDjalezw46rXc0OO652NTvsuNrV7LDjat2n8+l8uk/36Xw6n+7TfTqfzqf79P/qR/8/zqf7dJ/Op/PpPt2n8+l8us/V7LDjalezw46rXc0OO652NTvsuNrV7LDjalezw46rXc0OO652NTvsuNrV7LDjalezw/9iD25yBTFvJNGGgQtoQyKgGTnnhnIWX8y0oZiTMwP0hnKkFqph472uH7vzWqVWOc8Zsxp7yEAG9rCHDGRgD3vIwO8lA3vYQwYysIc9ZCADe6zWWGNWs1pjjVnNao01ZjWrNdaY1azWWGNWs1pjjVnNao01ZjWrNdaY1azWWGNWs1pjjVmNPWQgA3vYQwYysIc9ZOATPvDN9pCBDOxhDxnIwB72kIEM7LFaY41ZzWqNNWY1qzXWmNWs1lhjVrNaY41ZzWqNNWY1qzXWmNWs1lhjVrNaY41ZzWqNkYE97CEDGdjDHjKQgT3s4XexhwxkYA97yEAG9rCHDGRgj9Uaa8xqVmusMatZrbHGrGa1xhqzmtUaa8xqVmusMatZrbHGrGa1xhqzmtUaa8xqVmuMDOxhDxnIwB72kIEM7GEPn/CBz9hDBjKwhz1kIAN72EOGxqxmtcYas5rVGmvMalZrrDGrWa2xxqxmtcYas5rVGmvMalZrrDGrWa2xxqxmtcYas5rVwEMG9rCHDGRgD3vIQAb28HvZQwYysIc9ZCADe9hDhsasZrXGGrOa1RprzGpWa6wxq1mtscasZrXGGrOa1RprzGpWa6wxq1mtscasZrXGGrOa1cBDBvawhwxkYA97yEAG9vAJH/hmGdjDHjKQgT3sIQMZ2MMeYI1ZzWqNNWY1qzXWmNWs1lhjVrNaY41ZzWqNNWY1qzXWmNWs1lhjVrNaY41ZzWqNNWY19pCBDOxhDxnIwB72kIEM7OG/Xwb2sIcMZGAPe8hABvawB1hjVrNaY41ZzWqNNWY1qzXWmNWs1lhjVrNaY41ZzWqNNWY1qzXWmNWs1lhjVrNaY41ZjT1kIAN72EMGMrCHPWQgA3v4Vh/4jAzsYQ8ZyMAe9pCBDOyxWmONWc1qjTVmNas11pjVrNZYY1azWmONWc1qjTVmNas11pjVrNZYY1azWmONWc1qjTVmNfaQgQzsYQ8ZyMAe9pCB30sG9rCHDGRgD3vIQAb2WK2xxqxmtcYas5rVGmvMalZrrDGrWa2xxqxmtcYas5rVGmvMalZrrDGrWa2xxqxmtcYasxp7yEAG9rCHDGRgD3vIwCd84JvtIQMZ2MMeMpCBPewhAxnYY7XGGrOa1RprzGpWa6wxq1mtscasZrXGGrOa1RprzGpWa6wxq1mtscasZrXGGrOa1RojA3vYQwYysIc9ZCADe9jD72IPGcjAHvaQgQzsYQ8ZyMAeqzXWmNWs1lhjVrNaY41ZzWqNNWY1qzXWmNWs1lhjVrNaY41ZzWqNNWY1qzXWmNWs1hgZ2MMeMpCBPewhAxnYwx4+4QOfsYcMZGAPe8hABvawhwyNWc1qjTVmNas11pjVrNZYY1azWmONWc1qjTVmNas11pjVrNZYY1azWmONWc1qjTVmNauBhwzsYQ8ZyMAe9pCBDOzh97KHDGRgD3vIQAb2sIcMjVnNao01ZjWrNdaY1azWWGNWs1pjjVnNao01ZjWrNdaY1azWWGNWs1pjjVnNao01ZjWrgYcM7GEPGcjAHvaQgQzs4RM+8M0ysIc9ZCADe9hDBjKwhz3AGrOa1RprzGpWa6wxq1mtscasZrXGGrOa1RprzGpWa6wxq1mtscasZrXGGrOa1RprzGrsIQMZ2MMeMpCBPewhAxnYw3+/DOxhDxnIwB72kIEM7GEPsMasZrXGGrOa1RprzGpWa6wxq1mtscasZrXGGrOa1RprzGpWa6wxq1mtscasZrXGGrMae8hABvawhwxkYA97yEAG9vCtPvAZGdjDHjKQgT3sIQMZ2GO1xhqzmtUaa8xqVmusMatZrbHGrGa1xhqzmtUaa8xqVmusMatZrbHGrGa1xhqzmtUaa/zlC/H1FwA/5J/wNxn4mwz8O1+//oJ/88Of/4LfSAb2sIcMZGAPe8hABvZYrbHGrGa1xhqzmtUaa8xqVmusMatZrbHGrGa1xhqzmtUaa8xqVmusMatZrbHGrGa1xhqzGnvIQAb2sIcMZGAPe8jAJ3zgm+0hAxnYwx4ykIE97CEDGdhjtcYas5rVGmvMalZrrDGrWa2xxqxmtcYas5rVGmvMalZrrDGrWa2xxqxmtcYa45/k608/Avjhz3/BP9ceMpCBPewhAxnYwx4ykIE9VmusMatZrbHGrGa1xhqzmtUaa8xqVmusMatZrbHGrGa1xhqzmtUaa8xqVmusMatZrTEysIc9ZCADe9hDBjKwhz18wgc+Yw8ZyMAe9pCBDOxhDxkas5rVGmvMalZrrDGrWa2xxqxmtcYas5rVGmvMalZrrDGrWa2xxqxmtcYa4w9kDxnIwB72kIEM7GEPGRqzmtUaa8xqVmusMatZrbHGrGa1xhqzmtUaa8xqVmusMeGzE58AACAASURBVKtZrbHGrGa1xhqzmtUaa8xqVgMPGdjDHjKQgT3sIQMZ2MMnfOCbZWAPe8hABvawhwxkYA97gDVmNas11pjVrNZYY1azWmONWc1qjTVmNas11pjVrNZYY1azWmON8YeTgT3sIQMZ2MMeMpCBPewB1pjVrNZYY1azWmONWc1qjTVmNas11pjVrNZYY1azWmONWc1qjTVmNas11pjVrNZYY1ZjDxnIwB72kIEM7GEPGcjAHr7VBz4jA3vYQwYysIc9ZCADe6zWWGNWs1pjjVnNao01ZjWrNdaY1azWWGNWs1pjjVnNao01xh9aBvawhwxkYA97yEAG9litscasZrXGGrOa1RprzGpWa6wxq1mtscasZrXGGrOa1RprzGpWa6wxq1mtscasZrXGGrMae8hABvawhwxkYA97yMAnfOCb7SEDGdjDHjKQgT3sIQMZ2GO1xhqzmtUaa8xqVmusMatZrbHGrGa1xhqzmtUaa4z/AfaQgQzsYQ8ZyMAe9pCBDOyxWmONWc1qjTVmNas11pjVrNZYY1azWmONWc1qjTVmNas11pjVrNZYY1azWmONWc1qjZGBPewhAxnYwx4ykIE97OETPvAZe8hABvawhwxkYA97yNCY1azWWGNWs1pjjVnNao01ZjWrNdaY1azWWGP8QXz96ccf/vwX/F17yEAG9rCHDGRgD3vI0JjVrNZYY1azWmONWc1qjTVmNas11pjVrNZYY1azWmONWc1qjTVmNas11pjVrNZYY1azGnjIwB72kIEM7GEPGcjAHj7hA98sA3vYQwYysIc9ZCADe9gDrDGrWa2xxqxmtcYas5rVGmvMalZrrDGrWf31px/xx/H1px9/+PNf8F/IwB72kIEM7GEPGcjAHvYAa8xqVmusMatZrbHGrGa1xhqzmtUaa8xqVmusMatZrbHGrGa1xhqzmtUaa8xqVmusMauxhwxkYA97yEAG9rCHDGRgD9/qA5+RgT3sIQMZ2MMeMpCBPVZrrDGrWa2xxqxmtcYas5rVGmvMalZr/PWnH/EH9PWnHwH88Oe/4D+TgT3sIQMZ2MMeMpCBPVZrrDGrWa2xxqxmtcYas5rVGmvMalZrrDGrWa2xxqxmtcYas5rVGmvMalZrrDGrWa2xxqzGHjKQgT3sIQMZ2MMeMvAJH/hme8hABvawhwxkYA97yEAG9litscasZrXGGrOa1RprzGpWa6wx+b789Av+Sb5+/QX/7b7+9OMPf/4L/r09ZCADe9hDBjKwhz1kIAN7rNZYY1azWmONWc1qjTVmNas11pjVrNZYY1azWmONWc1qjTVmNas11pjVrNZYY1azWmNkYA97yEAG9rCHDGRgD3v4hA98xh4ykIE97CEDGdjDHjI0ZjWrNdaY1azWWGNWs1pjjVnNamTgf7Y9ZCADe9hDBjKwhz1kaMxqVmusMatZrbHGrGa1xhqzmtUaa8xqVmusMatZrbHGrGa1xhqzmtUaa8xqVmusMatZDTxkYA97yEAG9rCHDGRgD5/wgW+WgT3sIQMZ2MMeMpCBPewB1pjVrNZYY1azWmONWc1qjTUmH/5ny8Ae9pCBDOxhDxnIwB72AGvMalZrrDGrWa2xxqxmtcYas5rVGmvMalZrrDGrWa2xxqxmtcYas5rVGmvMalZrrDGrsYcMZGAPe8hABvawhwxkYA/f6gOfkYE97CEDGdjDHjKQgT1Wa6wxq1mtscasZrXGGrOafPh3fv5Z+D18+UL8djKwhz1kIAN72EMGMrDHao01ZjWrNdaY1azWWGNWs1pjjVnNao01ZjWrNdaY1azWWGNWs1pjjVnNao01ZjWrNdaY1dhDBjKwhz1kIAN72EMGPuED32wPGcjAHvaQgQzsYQ8ZyMAeqzXWmNWs1lhjVrNaY2TgX8QeMpCBPewhAxnYwx4ykIE9VmusMatZrbHGrGa1xhqzmtUaa8xqVmusMatZrbHGrGa1xhqzmtUaa8xqVmusMatZrTEysIc9ZCADe9hDBjKwhz18wgc+Yw8ZyMAe9pCBDOxhDxkas5rVGmvMalZrrDGryYd/KXvIQAb2sIcMZGAPe8jQmNWs1lhjVrNaY41ZzWqNNWY1qzXWmNWs1lhjVrNaY41ZzWqNNWY1qzXWmNWs1lhjVrMaeMjAHvaQgQzsYQ8ZyMAePuED3ywDe9hDBjKwhz1kIAN72AOsMatZrbHGrGa1xsjAv6A9ZCADe9hDBjKwhz3AGrOa1RprzGpWa6wxq1mtscasZrXGGrOa1RprzGpWa6wxq1mtscasZrXGGrOa1RprzGrsIQMZ2MMeMpCBPewhAxnYw7f6wGdkYA97yEAG9rCHDGRgj9Uaa8xqVmusMavJh39Ze8hABvawhwxkYI/VGmvMalZrrDGrWa2xxqxmtcYas5rVGmvMalZrrDGrWa2xxqxmtcYas5rVGmvMalZrrDGrsYcMZGAPe8hABvawhwx8wge+2R4ykIE97CEDGdjDHjKQgT1Wa6wxq1mtMTLwL24PGcjAHvaQgQzssVpjjVnNao01ZjWrNdaY1azWWGNWs1pjjVnNao01ZjWrNdaY1azWWGNWs1pjjVnNao2RgT3sIQMZ2MMeMpCBPezhEz7wGXvIQAb2sIcMZGAPe8jQmNWs1lhjVpMP3/1qDxnIwB72kKExq1mtscasZrXGGrOa1RprzGpWa6wxq1mtscasZrXGGrOa1RprzGpWa6wxq1mtscasZjXwkIE97CEDGdjDHjKQgT18wge+WQb2sIcMZGAPe8hABvawB1hjVrNaY2Tgu7/ZQwYysIc9wBqzmtUaa8xqVmusMatZrbHGrGa1xhqzmtUaa8xqVmusMatZrbHGrGa1xhqzmtUaa8xq7CEDGdjDHjKQgT3sIQMZ2MO3+sBnZGAPe8hABvawhwxkYI/VGmvMavLhu//DHjKQgT1Wa6wxq1mtscasZrXGGrOa1RprzGpWa6wxq1mtscasZrXGGrOa1RprzGpWa6wxq1mtscasxh4ykIE97CEDGdjDHjLwCR/4ZnvIQAb2sIcMZGAPe8hABvZYrTEy8N1/aA8ZyMAeqzXWmNWs1lhjVrNaY41ZzWqNNWY1qzXWmNWs1lhjVrNaY41ZzWqNNWY1qzXWmNWs1hgZ2MMeMpCBPewhAxnYwx4+4QOfsYcMZGAPe8hABvawhwyNWU0+fPdf2EOGxqxmtcYas5rVGmvMalZrrDGrWa2xxqxmtcYas5rVGmvMalZrrDGrWa2xxqxmtcYas5rVwEMG9rCHDGRgD3vIQAb28Akf+GYZ2MMeMpCBPewhAxnYwx5gjZn47j+VgT3sAdaY1azWWGNWs1pjjVnNao01ZjWrNdaY1azWWGNWs1pjjVnNao01ZjWrNdaY1azWWGNWYw8ZyMAe9pCBDOxhDxnIwB6+1Qc+IwN72EMGMrCHPWQgA3us/vrTj8DDd/+Jr19/+SH/hD1Wa6wxq1mtscasZrXGGrOa1RprzGpWa6wxq1mtscasZrXGGrOa1RprzGpWa6wxq1mtscasxh4ykIE97CEDGdjDHjLwCR/4ZnvIQAb2sIcMZGAPe8hAxtevv+C7v+fr119+yD9hj9Uaa8xqVmusMatZrbHGrGa1xhqzmtUaa8xqVmusMatZrbHGrGa1xhqzmtUaa8xqVmuMDOxhDxnIwB72kIEM7GEPn/CBz9hDBjKwhz1kIAN72Pv604/47h8jPcCsZrXGGrOa1RprzGpWa6wxq1mtscasZrXGGrOa1RprzGpWa6wxq1mtscasZrXGGrOa1cBDBvawhwxkYA97yEAG9vAJH/hmGdjDHjKQgT3sIQMZ2MMnfPlC/Cv58oU//yyNWc1qjTVmNas11pjVrNZYY1azWmONWc1qjTVmNas11pjVrNZYY1azWmONWc1qjTVmNfaQgQzsYQ8ZyMAe9pCBDOzhW33gMzKwhz1kIAN72EPG159+xHf/N7584c8/S2NWs1pjjVnNao01ZjWrNdaY1azWWGNWs1pjjVnNao01ZjWrNdaY1azWWGNWs1pjjVmNPWQgA3vYQwYysIc9ZOATPvC/ZeBXe/hVBn61h19l4Fd7+FUGfrWHX2Xgf8vA32Tgn+qHH/6Ef9jXr7/gn+TrTz/ivx35pKcx+ZiQnsbkY0J6GpOPCelpTD4mpKcx+ZiQnsbkY0J6GpOPCelpTD4mpKcx+ZiQHjLwNxn4mwz8f2XgV3v4VQZ+tYdfZeBXe/hVBn61h19lAPhABvawhwxkYA97yEAG9rCHDGRgD3vIQAb2sIcM/Ee+fv0F3/3f+/r1F/JP0pMe+cgnPemRj3zSkx75yCc96ZGPfNKTHvnIJz3pkY980pMe+cgnPemRj3zSkx75yIe/KwN72EMGMrCHPWQgA3vYQwYysIc9ZCADe9hDxgd+lYE97CEDGdjDHjKQgT3sIQMZ2MMeMpCBPfxHvn79Bd99sz0ypCc98pFPetIjH/mkJz3ykU960iMf+aQnPfKRT3rSIx/5pCc98pFPetIjH/mkJz3y4R+RgT3sIQMZ2MMeMpCBPewhAxnYwx4ykIE97H1gDxnIwB72kIEM7GEPGcjAHvaQgQzsYQ8ZyMB/5OefhX/z5Qvxe/j5Z+H38OUL8U9CPulJj3zkk570yEc+6UmPfOSTnvTIRz7pSY985JOe9MhHPulJj3zkk570yEc+6UmPfPiv7SEDGdjDHjKQgT3sIQMZ2MMeMpCBPewhAxnY+8Cv9pCBDOxhDxnIwB72kIEM7GEPGcjAHvaQgX9Hevjuk/aQQT7pSY985JOe9MhHPulJj3zkk570yEc+6UmPfOSTnvTIRz7pSY985JOe9MhHPunhH7GHDGRgD3vIQAb2sIcMZGAPe8hABvawhwxkfCADe9hDBjKwhz1kIAN72EMGMrCHPWQgA3vYQwa++w1Ij3zkk570yEc+6UmPfOSTnvTIRz7pSY985JOe9MhHPulJj3zkk570yEc+6UmPfOTD35WBPewhAxnYwx4ykIE97CEDGdjDHjKQgT3sIeMDv8rAHvaQgQzsYQ8ZyMAe9pCBDOxhDxnIwB6++81Ij3zkk570yEc+6UmPfOSTnvTIRz7pSY985JOe9MhHPulJj3zkk570yEc+6UmPfPhHZGAPe8hABvawhwxkYA97yEAG9rCHDGRgD3sf2EMGMrCHPWQgA3vYQwYysIc9ZCADe9hDBjLw/yc9fPfPwGqNpUc+8klPeuQjn/SkRz7ySU965COf9KRHPvJJT3rkI5/0pEc+8klPeuQjn/SkRz781/aQgQzsYQ8ZyMAe9pCBDOxhDxnIwB72kIEM7H3gV3vIQAb2sIcMZGAPe8hABvawhwxkYA97yMB3vxnySU965COf9KRHPvJJT3rkI5/0pEc+8klPeuQjn/SkRz7ySU965COf9KRHPvJJD/+IPWQgA3vYQwYysIc9ZCADe9hDBjKwhz1kIOMDGdjDHjKQgT3sIQMZ2MMeMpCBPewhAxnYwx4y8FfSw3f/RHtkSE965COf9KRHPvJJT3rkI5/0pEc+8klPeuQjn/SkRz7ySU965COf9KRHPvLh78rAHvaQgQzsYQ8ZyMAe9pCBDOxhDxnIwB72kPGBX2VgD3vIQAb2sIcMZGAPe8hABvawhwxkYA/f/cbIJz3pkY980pMe+cgnPemRj3zSkx75yCc96ZGPfNKTHvnIJz3pkY980pMe+fCPyMAe9pCBDOxhDxnIwB72kIEM7GEPGcjAHvY+sKcxYFZjT2PArMaexoBZjT2NAbMaexoDZuJX0sN3vwHp4a+kh7+SHv5Kevgr6eGvpIe/kh7+Snr4K+nh35APgPQAkA+A9ACQD3saA2Y19jQGzGrsaQyY1djTGDCrsacxYFZ/AGC1xhqzmtUaa8xqVmusMatZrbHGrGa1xtIjH/mkh+/+2VitMX5L5JOe9MhHPulJj3zkk570WGC1xhqzmtUaa8xqVmusMatZrbHGrGa1xhp/aMxqVmusMatZrbHGrGa1xhqzmtUaa8xqVmssPfLhuz8s8klPeuQjn/SkRz7ySU9jVrNaY41ZzWqNNWY1qzXWmNWs1lhjVrNa4w8AGrOa1RprzGpWa6wxq1mtscasZrXGGrOafNKTHr77Y5Ie+cgnPemRj3zSkx75yCc9jVnNao01ZjWrNdaY1azWWGNWs1pjjVnN6g9Wa6wxq1mtscasZrXGGrOa1RprzGpWa6wxE+STHr77bbBaY/yWpEc+8klPeuQjn/SkRz5Wa6wxq1mtscasZrXGGrOa1RprzGpWa6wxqz8AsFpjjVnNao01ZjWrNdaY1azWWGNWs1pj6ZEP3/1hkU960iMf+aQnPfKRT3rSY4HVGmvMalZrrDGrWa2xxqxmtcYas5rVGmv8oTGrWa2xxqxmtcYas5rVGmvMalZrrDGrWa2x9PDdHxn5pCc98pFPetIjH/mkpzGrWa2xxqxmtcYas5rVGmvMalZrrDGrWa3xBwCNWc1qjTVmNas11pjVrNZYY1azWmONWU0+6X35Qvy/5MsX4rt/jPTIRz7pSY985JOe9MhHPulpzGpWa6wxq1mtscasZrXGGrOa1RprzGpWf7BaY41ZzWqNNWY1qzXWmNWs1lhjVrNaY42ZIN/Xr8R3f1jSIx/5pCc98pFPetIjH6s11pjVrNZYY1azWmONWc1qjTVmNas11pjVHwBYrbHGrGa1xhqzmtUaa8xqVmusMatZrbH0vnwh/p6vX3/B7+GHH/6Ef9jXr7/gn+TrTz/in4fVGuO3QT7pSY985JOe9MhHPulJjwVWa6wxq1mtscasZrXGGrOa1RprzGpWa6zxh8asZrXGGrOa1RprzGpWa6wxq1mtscasZrXG+O4PjnzSkx75yCc96ZGPfNLTmNWs1lhjVrNaY41ZzWqNNWY1qzXWmNWs1vgDgMasZrXGGrOa1RprzGpWa6wxq1mtscasJt/Xr8R3f1jSIx/5pCc98pFPetIjH/mkpzGrWa2xxqxmtcYas5rVGmvMalZrrDGrWf3Bao01ZjWrNdaY1azWWGNWs1pjjVnNao01ZuLnn4XfwJcvxO/h55+F38OXL8TvRHrkI5/0pEc+8klPeuRjtcYas5rVGmvMalZrrDGrWa2xxqxmtcYas/oDAKs11pjVrNZYY1azWmONWc1qjTVmNas1lh6++yMjn/SkRz7ySU965COf9KTHAqs11pjVrNZYY1azWmONWc1qjTVmNas11vhDY1azWmONWc1qjTVmNas11pjVrNZYY1azWmN89wdHPulJj3zkk570yEc+6WnMalZrrDGrWa2xxqxmtcYas5rVGmvMalZr/AFAY1azWmONWc1qjTVmNas11pjVrNZYY1aTT3r47g9LeuQjn/SkRz7ySU965COf9DRmNas11pjVrNZYY1azWmONWc1qjTVmNas/WK2xxqxmtcYas5rVGmvMalZrrDGrWa2xxkx890cnPfKRT3rSIx/5pCc98rFaY41ZzWqNNWY1qzXWmNWs1lhjVrNaY41Z/QGA1RprzGpWa6wxq1mtscasZrXGGrOa1RpLD9/9kZFPetIjH/mkJz3ykU960mOB1RprzGpWa6wxq1mtscasZrXGGrOa1Rpr/KExq1mtscasZrXGGrOa1RprzGpWa6wxq1mtMb77gyOf9KRHPvJJT3rkI5/0NGY1qzXWmNWs1lhjVrNaY41ZzWqNNWY1qzX+AKAxq1mtscasZrXGGrOa1RprzGpWa6wxq8knPXz3hyU98pFPetIjH/mkJz3ykU96GrOa1RprzGpWa6wxq1mtscasZrXGGrOa1R+s1lhjVrNaY41ZzWqNNWY1qzXWmNWs1lhjJr77o5Me+cgnPemRj3zSkx75WK2xxqxmtcYas5rVGmvMalZrrDGrWa2xxqz+AMBqjTVmNas11pjVrNZYY1azWmONWc1qjaWH7/7IyCc96ZGPfNKTHvnIJz3pscBqjTVmNas11pjVrNZYY1azWmONWc1qjTX+0JjVrNZYY1azWmONWc1qjTVmNas11pjVrNYY3/3BkU960iMf+aQnPfKRT3oas5rVGmvMav6v9uAYxw7ERgJoCfhAX2gITEbmvJCyYmV9IeZkZoC+UEfa3jUseOH1WKseYSDPfy9S05pmJCM1rWlGMlLTmmYkIzX9AKBpRjJS05pmJCM1rWlGMlLTmmYkIzWtaUaSJRWeflpSkUWWVFKRRZZUUpFFllSaZiQjNa1pRjJS05pmJCM1rWlGMlLTmmYkIx+M1LSmGclITWuakYzUtKYZyUhNa5qRjNS0pul4+tlJRRZZUklFFllSSUUWIzWtaUYyUtOaZiQjNa1pRjJS05pmJCM1rWlGPgAwUtOaZiQjNa1pRjJS05pmJCM1rWlGMlLTUuHpZ0aWVFKRRZZUUpFFllRSMcBITWuakYzUtKYZyUhNa5qRjNS0phnJSE1r+qFpRjJS05pmJCM1rWlGMlLTmmYkIzWtaUYyUtN4+smRJZVUZJEllVRkkSWVphnJSE1rmpGM1LSmGclITWuakYzUtKYZyUhNPwBompGM1LSmGclITWuakYzUtKYZyUhNa5qRZL29fcF/kM+fiT8TqcgiSyqpyCJLKqnIIksqTTOSkZrWNCMZqWlNM5KRmtY0IxmpaU0zkpEPRmpa04xkpKY1zUhGalrTjGSkpjXNSEZqWtN0PP3spCKLLKmkIossqaQii5Ga1jQjGalpTTOSkZrWNCMZqWlNM5KRmtY0Ix8AGKlpTTOSkZrWNCMZqWlNM5KRmtY0IxmpaanIT/gnb29f8Dt5e/uCP8LLX/6Kb/b26y/4nbz9+gv+2TR+DLKkkoossqSSiiyypJKKAUZqWtOMZKSmNc1IRmpa04xkpKY1zUhGalrTD00zkpGa1jQjGalpTTOSkZrWNCMZqWlNM5KRmpaKLDz9MK+vwo9EllRSkUWWVFKRRZZUmmYkIzWtaUYyUtOaZiQjNa1pRjJS05pmJCM1/QCgaUYyUtOaZiQjNa1pRjJS05pmJCM1rWlGkiUVnn5aUpFFllRSkUWWVFKRRZZUmmYkIzWtaUYyUtOaZiQjNa1pRjJS05pmJCMfjNS0phnJSE1rmpGM1LSmGclITWuakYzUtKbpIAv/wuur8Ef4/Jn4I7y+Cj8hqcgiSyqpyCJLKqnIYqSmNc1IRmpa04xkpKY1zUhGalrTjGSkpjXNyAcARmpa04xkpKY1zUhGalrTjGSkpjXNSEZqWiqy8PTTIksqqcgiSyqpyCJLKqkYYKSmNc1IRmpa04xkpKY1zUhGalrTjGSkpjX90DQjGalpTTOSkZrWNCMZqWlNM5KRmtY0IxmpaanIwtNPiyyppCKLLKmkIossqTTNSEZqWtOMZKSmNc1IRmpa04xkpKY1zUhGavoBQNOMZKSmNc1IRmpa04xkpKY1zUhGalrTjCRLKqnIwtNPSCqyyJJKKrLIkkoqssiSStOMZKSmNc1IRmpa04xkpKY1zUhGalrTjGTkg5Ga1jQjGalpTTOSkZrWNCMZqWlNM5KRmtY0HWRJhaefllRkkSWVVGSRJZVUZDFS05pmJCM1rWlGMlLTmmYkIzWtaUYyUtOaZuQDACM1rWlGMlLTmmYkIzWtaUYyUtOaZiQjNS0VWWTh6edEllRSkUWWVFKRRZZUUjHASE1rmpGM1LSmGclITWuakYzUtKYZyUhNa/qhaUYyUtOaZiQjNa1pRjJS05pmJCM1rWlGMlLTUpGFp58WWVJJRRZZUklFFllSaZqRjNS0phnJSE1rmpGM1LSmGclITWuakYzU9IMsoLDHSLgBhT1Gwg0o7DESbkBhj5FwAwp7ZOHphyELgFQAyAIgFQCyAEgFgCwAUgEgC4BUAMgCIBUAsgBIBYAsAFIBIAv/gyz8HVn4O7Lw3wp7jIQbUNhjJNyAwh4j4QYU9hgJN6Cwx8gH9uAGN+xhD25wwx724AY37GEPbnDDHvbgBjc8/UhSkUWWVFKRRZZUUpFFllRSkUWWVFKRRZZUUpFFllRSkUWWVFKRRZZUUpGF37YHN7hhD3twgxv2sAc3uGEPe3CDG/awBze4Ye+Bd3twgxv2sAc3uGEPe3CDG/awBze4YQ97cMPTD0OWVFKRRZZUUpFFllRSkUWWVFKRRZZUUpFFllRSkUWWVFKRRZZUUpFFllT4Fntwgxv2sAc3uGEPe3CDG/awBze4YQ97cIPbA27Ywx7c4IY97MENbtjDHtzghj3swQ1u2MMe3PD0w5AllVRkkSWVVGSRJZVUZJEllVRkkSWVVGSRJZVUZJEllVRkkSWVVGSRhX/LDXvYgxvcsIc9uMENe9iDG9ywhz24wQ172IPbA+/csIc9uMENe9iDG9ywhz24wQ172IMb3LCHpx9GKrLIkkoqssiSSiqyyJJKKrLIkkoqssiSSiqyyJJKKrLIkkoqssiSSiqy8C3csIc9uMENe9iDG9ywhz24wQ172IMb3LCHvQf24AY37GEPbnDDHvbgBjfsYQ9ucMMe9uAGNzz9GGRJJRVZZEklFVlkSSUVWWRJJRVZZEklFVlkSSUVWWRJJRVZZEklFVlkSSUVWfhte3CDG/awBze4YQ97cIMb9rAHN7hhD3twgxv2Hni3Bze4YQ97cIMb9rAHN7hhD3twgxv2sAc3PP0wZEklFVlkSSUVWWRJJRVZZEklFVlkSSUVWWRJJRVZZEklFVlkSSUVWWRJhW+xBze4YQ97cIMb9rAHN7hhD3twgxv2sAc3uD3ghj3swQ1u2MMe3OCGPezBDW7Ywx7c4IY97MENTz+AVGSRJZVUZJEllVRkkSWVVGSRJZVUZJEllVRkkSWVVGSRJZVUZJEllVRkkYV/yw172IMb3LCHPbjBDXvYgxvcsIc9uMENe9iD2wPv3LCHPbjBDXvYgxvcsIc9uMENe9iDG9ywh9/0+TPxZ/L5M/F7eHn5Gy1tWwAACe9JREFUJJVUZJEllVRkkSWVVGSRJZVUZJEllVRkkSWVVGSRJZVUZJEllVRkkSWVVGThW7hhD3twgxv2sAc3uGEPe3CDG/awBze4YQ97D+zBDW7Ywx7c4IY97MENbtjDHtzghj3swQ1uePq9vb6KBFlSSUUWWVJJRRZZUklFFllSSUUWWVJJRRZZUklFFllSSUUWWVJJRRZZUklFFn7bHtzghj3swQ1u2MMe3OCGPezBDW7Ywx7c4Ia9B97twQ1u2MMe3OCGPezBDW7Ywx7c4IY97MEN/8LLy6e3ty/4u5eXT/hmb29f8Dt5e/uCP8LLX/6Kb/b26y/4u5eXT0BJRRZZUklFFllSSUUWWVJJRRZZUklFFllSSUUWWVJJRRZZUklFFllSSUUWWVLhW+zBDW7Ywx7c4IY97MENbtjDHtzghj3swQ1uD/zNHr7aw1d7+GoPX+3hb9zwbg/v3PBuD7/i6f9tjwFNS8VIBjQtFSMZ0LRUjGRA01IxkgFNS8VIBjQtFSMZ0LRUjGRA01IxkgFNS8VIBoDCuz28c8O7Pbxzw7s9/M0evtrDV3v4ag9f7QF44Lu5YQ97cIMb9rAHN7i97L39+guevtnrqwAwkpGa1jQjGalpTTOSkZrWNCMZqWlNM5KRmtY0IxmpaU0zkpGa1jQjGalpTTOSkZrWNCOxBze4YQ97cIMb9rAHN7hhD9/rgY9wwx724AY37GEPbnDD2xd8r9dX4Y/w+TPxR3h9FSM1rWlGMlLTmmYkIzWtaUYyUtOaZiQjNa1pRjJS05pmJCM1rWlGMlLTmmYkIzWtaUYyUtOaZiT24AY37GEPbnDDHvbghg944LvtwQ1u2MMe3OCGPezB7eXl09vbFzx9A7KwyUhNa5qRjNS0phnJSE1rmpGM1LSmGclITWuakYzUtKYZyUhNa5qRjNS0phnJSE1rmpGM1DTcsIc9uMENe9iDG9ywhz18wAMfsQc3uGEPe3CDG/awB7fXV33+TDz9ppe//BUOTTOSkZrWNCMZqWlNM5KRmtY0IxmpaU0zkpGa1jQjGalpTTOSkZrWNCMZqWlNM5KRmtY0IxkJFNywhz24wQ172IMb3LCHD3jgu7lhD3twgxv2sAc3uGEPe0C/vorE07/y8vIJOOwBrWlGMlLTmmYkIzWtaUYyUtOaZiQjNa1pRjJS05pmJCM1rWlGMlLTmmYkIzWtaUYyUtOaZiT24AY37GEPbnDDHvbgBjfs4Xs98BFu2MMe3OCGPezBDW7YY6Sm8fTb3LDHSE1rmpGM1LSmGclITWuakYzUtKYZyUhNa5qRjNS0phnJSE1rmpGM1LSmGclITWuakYzUtKYZiT24wQ172IMb3LCHPbjhAx74bntwgxv2sAc3uGEPe3CDG/YYKYEsPP2f9uAGN+wxUtOaZiQjNa1pRjJS05pmJCM1rWlGMlLTmmYkIzWtaUYyUtOaZiQjNa1pRjJS05pmJCM1DTfsYQ9ucMMe9uAGN+xhDx/wwEfswQ1u2MMe3OCGPezBTdOMZKQEsvD0j9zwbg97cNM0IxmpaU0zkpGa1jQjGalpTTOSkZrWNCMZqWlNM5KRmtY0IxmpaU0zkpGa1jQjGalpTTOSkUDBDXvYgxvcsIc9uMENe/iAB76bG/awBze4YQ97cIMb9rAHtKYZyUgJZOHpqz24wQ172ANa04xkpKY1zUhGalrTjGSkpjXNSEZqWtOMZKSmNc1IRmpa04xkpKY1zUhGalrTjGSkpjXNSOzBDW7Ywx7c4IY97MENbtjD93rgI9ywhz24wQ172IMb3LDHSE1rmpGMlEAWntzwbg97cIMb9hipaU0zkpGa1jQjGalpTTOSkZrWNCMZqWlNM5KRmtY0IxmpaU0zkpGa1jQjGalpTTOSkZrWNCOxBze4YQ97cIMb9rAHN3zAA99tD25wwx724AY37GEPbnDDHiM1rWlGMlICWfiT24Mb3LCHPbjBDXuM1LSmGclITWuakYzUtKYZyUhNa5qRjNS0phnJSE1rmpGM1LSmGclITWuakYzUtKYZyUhNww172IMb3LCHPbjBDXvYwwc88BF7cIMb9rAHN7hhD3tw0zQjGalpTTOSkRLIwp+TG97tYQ9ucMMe9uCmaUYyUtOaZiQjNa1pRjJS05pmJCM1rWlGMlLTmmYkIzWtaUYyUtOaZiQjNa1pRjJS05pmJCOBghv2sAc3uGEPe3CDG/bwAQ98NzfsYQ9ucMMe9uAGN+xhD2hNM5KRmtY0IxkpgSz8Ce3BDW7Ywx7c4IY97AGtaUYyUtOaZiQjNa1pRjJS05pmJCM1rWlGMlLTmmYkIzWtaUYyUtOaZiQjNa1pRjJS05pmJPbgBjfsYQ9ucMMe9uAGN+zhez3wEW7Ywx7c4IY97MENbthjpKY1zUhGalrTjGSkBLLw5+GGd3vYgxvcsIc9uMENe4zUtKYZyUhNa5qRjNS0phnJSE1rmpGM1LSmGclITWuakYzUtKYZyUhNa5qRjNS0phnJSE1rmpHYgxvcsIc9uMENe9iDGz7gge+2Bze4YQ97cIMb9rAHN7hhj5Ga1jQjGalpTTOSkRLIwp/EHtzghj3swQ1u2MMe3OCGPUZqWtOMZKSmNc1IRmpa04xkpKY1zUhGalrTjGSkpjXNSEZqWtOMZKSmNc1IRmpa04xkpKbhhj3swQ1u2MMe3OCGPezhAx74iD24wQ172IMb3LCHPbhpmpGM1LSmGclITWuakYyUQBb+JPbgBjfsYQ9ucMMe9uCmaUYyUtOaZiQjNa1pRjJS05pmJCM1rWlGMlLTmmYkIzWtaUYyUtOaZiQjNa1pRjJS05pmJCOBghv2sAc3uGEPe3CDG/bwAQ98NzfsYQ9ucMMe9uAGN+xhD2hNM5KRmtY0IxmpaU0zkpES3pGFf/D5M/Efxg172IMb3LCHPbjBDXvYA1rTjGSkpjXNSEZqWtOMZKSmNc1IRmpa04xkpKY1zUhGalrTjGSkpjXNSEZqWtOMZKSmNc1I7MENbtjDHtzghj3swQ1u2MP3euAj3LCHPbjBDXvYgxvcsMdITWuakYzUtKYZyUhNa5qRjNS0VGThP5sb9rAHN7hhD3twgxv2GKlpTTOSkZrWNCMZqWlNM5KRmtY0IxmpaU0zkpGa1jQjGalpTTOSkZrWNCMZqWlNM5KRmtY0I7EHN7hhD3twgxv2sAc3fMAD320PbnDDHvbgBjfsYQ9ucMMeIzWtaUYyUtOaZiQjNa1pRjJS01KRhf/t5eUTvtnb2xf8Tt5+/QW/rz24wQ172IMb3LCHPbjBDXuM1LSmGclITWuakYzUtKYZyUhNa5qRjNS0phnJSE1rmpGM1LSmGclITWuakYzUtKYZyUhNww172IMb3LCHPbjBDXvYwwf8F9BJ8hd8NhbxAAAAAElFTkSuQmCC\">"
],
"text/plain": [
"200×200 CuArray{RGB{Float32}, 2, CUDA.Mem.DeviceBuffer}:\n",
" RGB{Float32}(1.0,0.752941,0.796078) … RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) … RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) … RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" ⋮ ⋱ \n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) … RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) … RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)"
]
},
"execution_count": 165,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"let \n",
" n = 200\n",
" img = CuArray{RGB{Float32}}(undef, n,n)\n",
" shader = zoom(weave(widen(twill, 1), tartan(pink_yellow_grey_sett())); center=Point(0.75n, .4n))\n",
" @sync @cuda threads=threads blocks=blocks(img) generate(shader, img)\n",
" img\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 166,
"id": "7bfcf926-5a52-458d-bcfa-803c54c582e6",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"#344 (generic function with 1 method)"
]
},
"execution_count": 166,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"## functional flower power\n",
"🌺 = f -> (args...; kwargs...) -> x -> f(x, args...; kwargs...)"
]
},
{
"cell_type": "code",
"execution_count": 167,
"id": "6b2d818b-cefc-4c1b-a318-878a9696dca7",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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iERVoioRkYhIVCWqEhGJiERV+k29ec71nOvpzdOb51zPuZ7ePL15zv3w48c3+NCbcz3nenrz9OY513OupzdPb55z/Z6IRFWiKhGRiEhUJaoSEYmIRFWiKhGRiEhUJaoSEYmIRFWiKhGR/rPenOs519ObpzfPuZ5zPb15evOc6znX05unN8+5nnM9vXl685zrOdfTm99TlYhIRCSqElWJiEREoipRlYhIRCSqElWJiEREoipRlYhIRKTfca7ePL15zvWc6+nN05vnXM+5nt48vX348eMbfHh685zrOdfTm6c3z7mecz29eXrzG6oyIhGRqEpUJSISEYmqRFUiIhGRqEpUJSISEYmqRFUiIhGRqEq/qTfPuZ5zPb15evOc6znX05unN8+5nnM9vXl685zrOdfTm6c3z7mecz29+Y8isipRlYhIRCSqElWJiEREoipRlYhIRCSqElWJiEREoipRlYhIv+lcT2+e3jznes719ObpzXOu51xPbx9+/PgGH87Vm6c3z7mecz29eXrznOs519Ob31OViEhEJKoSVYmIRESiKlGViEhEJKoSVYmIRESiKlGViEhEpN9xrt48vXnO9Zzr6c3Tm+dcz7me3jy9ec71nOvpzdOb51zPuZ7ePL15zvV7IhJViapERCIiUZWoSkQkIhJViapERCIiUZWoSkQkIhJViapERPrPenOu51xPb57ePOd6zvX05unNc67n3A8/fnyDD8+5nt48vXnO9Zzr6c3Tm+dcz7me3vxHEVmVqEpEJCISVYmqREQiIlGVqEpEJCISVYmqREQiIlGVqEpEpN90rqc3T2+ecz3nenrz9OY513OupzdPb55zPed6evP05jnXc66nN09vfkNVRiQiElWJqkREIiJRlahKRCQiElWJqkREIiJRlahKRCQiElXpN/XmOddzrqc3T2+ecz3nenrz9OY598OnqvQphi9V6VMMX6rSp4j0qSr9SlX6lar0K1XpV6rSr1SlTxHpU1X6FJE+VaVPMXypSp9i+FKVPsXwpSp9iuFLVfoUkT5VpU8R6VNV+pWq9CtV6Veq0q9UpV+pSp8i0qeq9CmGL1XpUwxfqtKnGD5qrxgTMSZqL9ReiDERY6L2Qu2FGBMRiapEVSIiEZGoSn9OVSIiEZGoSlQlK8ZEjInaC7UXYkzEmKi9UHshxkSMidoLtRdiTMSYqL1Q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iEREoipRlYhIRCSqElWJiPSf9eZcz7me3jy9ec71nOvpzdOb51zPuZ7ePL15zvWc6+nN05vnXM+5nt78nqpERCIiUZWoSkQkIhJViapERCIiUZWoSkQkIhJViapERCIi/Y5z9ebpzXOu51xPb57ePOd6zvX05untw48f3+DD05vnXM+5nt48vXnO9Zzr6c3Tm99QlRGJiERVoioRkYhIVCWqEhGJiERVoioRkYhIVCWqEhGJiERV+k29ec71nOvpzdOb51zPuZ7ePL15zvWc6+nN05vnXM+5nt48vXnO9Zzr6c1/FJFViapERCIiUZWoSkQkIhJViapERCIiUZWoSkQkIhJViapERPpN53p68/TmOddzrqc3T2+ecz3nenr78OPHN/hwrt48vXnO9Zzr6c3Tm+dcz7me3vyeqkREIiJRlahKRCQiElWJqkREIiJRlahKRCQiElWJqkREIiL9jnP15unNc67nXE9vnt4853rO9fTm6c1zrudcT2+e3jznes719ObpzXOu3xORqEpUJSISEYmqRFUiIhGRqEpUJSISEYmqRFUiIhGRqEpUJSLSf9abcz3nenrz9OY513OupzdPb55zPed++PHjG3x4zvX05unNc67nXE9vnt4853rO9fTmP4rIqkRVIiIRkahKVCUiEhGJqkRVIiIRkahKVCUiEhGJqkRVIiL9pnM9vXl685zrOdfTm6c3z7mecz29eXrznOs519ObpzfPuZ5zPb15evMbqjIiEZGoSlQlIhIRiapEVSIiEZGoSlQlIhIRiapEVSIiEZGoSr+pN8+5nnM9vXl685zrOdfTm6c3z7kffvz4Bh96c67nXE9vnt4853rO9fTm6c1zrt8TkahKVCUiEhGJqkRVIiIRkahKVCUiEhGJqkRVIiIRkahKVCUi0n/Wm3M953p68/TmOddzrqc3T2+ecz3nenrz9OY513OupzdPb55zPed6evN7qhIRiYhEVaIqEZGISFQlqhIRiYhEVaIqEZGISFQlqhIRiYj0O87Vm6c3z7mecz29eXrznOs519Obp7cP5/rfzvVL5/qlc33pzZdz/W35cq6/LV/O9bfly7n+tnw519+WL+f60psv5/qlc/3SuX7pXL90rl8615fefDnXl958Odffli/n+tvy5Vx/W76c62/Ll3N96c2Xc33pzZdz/dK5fulc/+PDP9Sb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",
"text/html": [
"<img src=\"data:image/png;base64,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iERVoioRkYhIVCWqEhGJiERV+k29ec71nOvpzdOb51zPuZ7ePL15zv3w48c3+NCbcz3nenrz9OY513OupzdPb55z/Z6IRFWiKhGRiEhUJaoSEYmIRFWiKhGRiEhUJaoSEYmIRFWiKhGR/rPenOs519ObpzfPuZ5zPb15evOc6znX05unN8+5nnM9vXl685zrOdfTm99TlYhIRCSqElWJiEREoipRlYhIRCSqElWJiEREoipRlYhIRKTfca7ePL15zvWc6+nN05vnXM+5nt48vX348eMbfHh685zrOdfTm6c3z7mecz29eXrzG6oyIhGRqEpUJSISEYmqRFUiIhGRqEpUJSISEYmqRFUiIhGRqEq/qTfPuZ5zPb15evOc6znX05unN8+5nnM9vXl685zrOdfTm6c3z7mecz29+Y8isipRlYhIRCSqElWJiEREoipRlYhIRCSqElWJiEREoipRlYhIv+lcT2+e3jznes719ObpzXOu51xPbx9+/PgGH87Vm6c3z7mecz29eXrznOs519Ob31OViEhEJKoSVYmIRESiKlGViEhEJKoSVYmIRESiKlGViEhEpN9xrt48vXnO9Zzr6c3Tm+dcz7me3jy9ec71nOvpzdOb51zPuZ7ePL15zvV7IhJViapERCIiUZWoSkQkIhJViapERCIiUZWoSkQkIhJViapERPrPenOu51xPb57ePOd6zvX05unNc67n3A8/fnyDD8+5nt48vXnO9Zzr6c3Tm+dcz7me3vxHEVmVqEpEJCISVYmqREQiIlGVqEpEJCISVYmqREQiIlGVqEpEpN90rqc3T2+ecz3nenrz9OY513OupzdPb55zPed6evP05jnXc66nN09vfkNVRiQiElWJqkREIiJRlahKRCQiElWJqkREIiJRlahKRCQiElXpN/XmOddzrqc3T2+ecz3nenrz9OY598OnqvQphi9V6VMMX6rSp4j0qSr9SlX6lar0K1XpV6rSr1SlTxHpU1X6FJE+VaVPMXypSp9i+FKVPsXwpSp9iuFLVfoUkT5VpU8R6VNV+pWq9CtV6Veq0q9UpV+pSp8i0qeq9CmGL1XpUwxfqtKnGD5qrxgTMSZqL9ReiDERY6L2Qu2FGBMRiapEVSIiEZGoSn9OVSIiEZGoSlQlK8ZEjInaC7UXYkzEmKi9UHshxkSMidoLtRdiTMSYqL1Q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iEREoipRlYhIRCSqElWJiPSf9eZcz7me3jy9ec71nOvpzdOb51zPuZ7ePL15zvWc6+nN05vnXM+5nt78nqpERCIiUZWoSkQkIhJViapERCIiUZWoSkQkIhJViapERCIi/Y5z9ebpzXOu51xPb57ePOd6zvX05untw48f3+DD05vnXM+5nt48vXnO9Zzr6c3Tm99QlRGJiERVoioRkYhIVCWqEhGJiERVoioRkYhIVCWqEhGJiERV+k29ec71nOvpzdOb51zPuZ7ePL15zvWc6+nN05vnXM+5nt48vXnO9Zzr6c1/FJFViapERCIiUZWoSkQkIhJViapERCIiUZWoSkQkIhJViapERPpN53p68/TmOddzrqc3T2+ecz3nenr78OPHN/hwrt48vXnO9Zzr6c3Tm+dcz7me3vyeqkREIiJRlahKRCQiElWJqkREIiJRlahKRCQiElWJqkREIiL9jnP15unNc67nXE9vnt4853rO9fTm6c1zrudcT2+e3jznes719ObpzXOu3xORqEpUJSISEYmqRFUiIhGRqEpUJSISEYmqRFUiIhGRqEpUJSLSf9abcz3nenrz9OY513OupzdPb55zPed++PHjG3x4zvX05unNc67nXE9vnt4853rO9fTmP4rIqkRVIiIRkahKVCUiEhGJqkRVIiIRkahKVCUiEhGJqkRVIiL9pnM9vXl685zrOdfTm6c3z7mecz29eXrznOs519ObpzfPuZ5zPb15evMbqjIiEZGoSlQlIhIRiapEVSIiEZGoSlQlIhIRiapEVSIiEZGoSr+pN8+5nnM9vXl685zrOdfTm6c3z7kffvz4Bh96c67nXE9vnt4853rO9fTm6c1zrt8TkahKVCUiEhGJqkRVIiIRkahKVCUiEhGJqkRVIiIRkahKVCUi0n/Wm3M953p68/TmOddzrqc3T2+ecz3nenrz9OY513OupzdPb55zPed6evN7qhIRiYhEVaIqEZGISFQlqhIRiYhEVaIqEZGISFQlqhIRiYj0O87Vm6c3z7mecz29eXrznOs519Obp7cP5/rfzvVL5/qlc33pzZdz/W35cq6/LV/O9bfly7n+tnw519+WL+f60psv5/qlc/3SuX7pXL90rl8615fefDnXl958Odffli/n+tvy5Vx/W76c62/Ll3N96c2Xc33pzZdz/dK5fulc/+PDP9Sb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\">"
],
"text/plain": [
"200×200 CuArray{RGB{Float32}, 2, CUDA.Mem.DeviceBuffer}:\n",
" RGB{Float32}(1.0,0.752941,0.796078) … RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) … RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) … RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" ⋮ ⋱ \n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) … RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) … RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)\n",
" RGB{Float32}(1.0,0.752941,0.796078) RGB{Float32}(1.0,0.752941,0.796078)"
]
},
"execution_count": 167,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"let \n",
" n = 200\n",
" img = CuArray{RGB{Float32}}(undef, n,n)\n",
" \n",
" shader = twill |> 🌺(widen)(2) |> 🌺(weave)(pink_yellow_grey_sett() |> tartan) |> \n",
" 🌺(zoom)(center=Point(0.75n, .4n))\n",
" \n",
" @sync @cuda threads=threads blocks=blocks(img) generate(shader, img)\n",
" img\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 168,
"id": "da4216b3-3e16-4c2b-830f-28d823c488c5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"BenchmarkTools.Trial: 10000 samples with 1 evaluation.\n",
" Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m14.552 μs\u001b[22m\u001b[39m … \u001b[35m 10.458 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m0.00% … 99.16%\n",
" Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m75.079 μs \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m0.00%\n",
" Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m67.783 μs\u001b[22m\u001b[39m ± \u001b[32m113.046 μs\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m1.53% ± 0.99%\n",
"\n",
" \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[32m \u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m▃\u001b[34m█\u001b[39m\u001b[39m▆\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \n",
" \u001b[39m▂\u001b[39m▂\u001b[39m▄\u001b[39m▇\u001b[39m▄\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▁\u001b[39m▂\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▁\u001b[39m▁\u001b[39m▂\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▂\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▂\u001b[39m▂\u001b[39m▁\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[32m▂\u001b[39m\u001b[39m▂\u001b[39m▂\u001b[39m▃\u001b[39m▅\u001b[39m█\u001b[34m█\u001b[39m\u001b[39m█\u001b[39m█\u001b[39m▄\u001b[39m▃\u001b[39m \u001b[39m▃\n",
" 14.6 μs\u001b[90m Histogram: frequency by time\u001b[39m 80.1 μs \u001b[0m\u001b[1m<\u001b[22m\n",
"\n",
" Memory estimate\u001b[90m: \u001b[39m\u001b[33m4.86 KiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m104\u001b[39m."
]
},
"execution_count": 168,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"let \n",
" n = 200\n",
" img = CuArray{RGB{Float32}}(undef, n,n)\n",
" shader = twill |> 🌺(widen)(2) |> 🌺(weave)(pink_yellow_grey_sett() |> tartan) |> 🌺(zoom)(center=Point(0.75n, .4n))\n",
" @benchmark @sync @cuda threads=threads blocks=blocks($img) generate($shader, $img)\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 140,
"id": "94f89a79-6f9d-472d-bc51-f573d0c06e79",
"metadata": {},
"outputs": [],
"source": [
"using Interact"
]
},
{
"cell_type": "code",
"execution_count": 170,
"id": "bf61a558-8ea8-4c21-b3b1-6bbcedabea48",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.webio.node+json": {
"children": [
{
"children": [
{
"children": [
{
"children": [
{
"children": [
"pattern",
{
"children": [
{
"children": [],
"instanceArgs": {
"namespace": "html",
"tag": "select"
},
"nodeType": "DOM",
"props": {
"attributes": {
"data-bind": "options : options_js, value : index, optionsText: 'key', optionsValue: 'val', valueAllowUnset: true, optionsAfterRender: disablePlaceholder"
}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "select "
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"style": {
"display": "flex",
"flex-direction": "column"
}
},
"type": "node"
}
],
"instanceArgs": {
"handlers": {
"index": [
"(function (val){return (val!=this.model[\"index\"]()) ? (this.valueFromJulia[\"index\"]=true, this.model[\"index\"](val)) : undefined})"
],
"options_js": [
"(function (val){return (val!=this.model[\"options_js\"]()) ? (this.valueFromJulia[\"options_js\"]=true, this.model[\"options_js\"](val)) : undefined})"
]
},
"id": "17793473433762440457",
"imports": {
"data": [
{
"name": "knockout",
"type": "js",
"url": "/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js"
},
{
"name": "knockout_punches",
"type": "js",
"url": "/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js"
},
{
"name": null,
"type": "js",
"url": "/assetserver/5bfdbed13c6fce0f809548e70181dd3d67eb370e-all.js"
},
{
"name": null,
"type": "css",
"url": "/assetserver/22b77c82aff9c458955af49b5e70f2d2ede37819-style.css"
},
{
"name": null,
"type": "css",
"url": "/assetserver/f66b7b76014e70ed200c7cd0450235657e93262c-bulma_confined.min.css"
}
],
"type": "async_block"
},
"mount_callbacks": [
"function () {\n var handler = (function (ko, koPunches) {\n ko.punches.enableAll();\n ko.bindingHandlers.numericValue = {\n init: function(element, valueAccessor, allBindings, data, context) {\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\n stringified.subscribe(function(value) {\n var val = parseFloat(value);\n if (!isNaN(val)) {\n valueAccessor()(val);\n }\n });\n valueAccessor().subscribe(function(value) {\n var str = JSON.stringify(value);\n if ((str == \"0\") && ([\"-0\", \"-0.\"].indexOf(stringified()) >= 0))\n return;\n if ([\"null\", \"\"].indexOf(str) >= 0)\n return;\n stringified(str);\n });\n ko.applyBindingsToNode(\n element,\n {\n value: stringified,\n valueUpdate: allBindings.get('valueUpdate'),\n },\n context,\n );\n }\n };\n var json_data = {\"options_js\":WebIO.getval({\"name\":\"options_js\",\"scope\":\"17793473433762440457\",\"id\":\"9012372748421963558\",\"type\":\"observable\"}),\"index\":WebIO.getval({\"name\":\"index\",\"scope\":\"17793473433762440457\",\"id\":\"15310099648419870144\",\"type\":\"observable\"})};\n var self = this;\n function AppViewModel() {\n for (var key in json_data) {\n var el = json_data[key];\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\n }\n [this[\"disablePlaceholder\"]=function(option, item) {\n ko.applyBindingsToNode(option, {disable: item.val == 0}, item);\n}\n]\n \n [this[\"options_js\"].subscribe((function (val){!(this.valueFromJulia[\"options_js\"]) ? (WebIO.setval({\"name\":\"options_js\",\"scope\":\"17793473433762440457\",\"id\":\"9012372748421963558\",\"type\":\"observable\"},val)) : undefined; return this.valueFromJulia[\"options_js\"]=false}),self),this[\"index\"].subscribe((function (val){!(this.valueFromJulia[\"index\"]) ? (WebIO.setval({\"name\":\"index\",\"scope\":\"17793473433762440457\",\"id\":\"15310099648419870144\",\"type\":\"observable\"},val)) : undefined; return this.valueFromJulia[\"index\"]=false}),self)]\n \n }\n self.model = new AppViewModel();\n self.valueFromJulia = {};\n for (var key in json_data) {\n self.valueFromJulia[key] = false;\n }\n ko.applyBindings(self.model, self.dom);\n}\n);\n (WebIO.importBlock({\"data\":[{\"name\":\"knockout\",\"type\":\"js\",\"url\":\"/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\"},{\"name\":\"knockout_punches\",\"type\":\"js\",\"url\":\"/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\"}],\"type\":\"async_block\"})).then((imports) => handler.apply(this, imports));\n}\n"
],
"observables": {
"index": {
"id": "15310099648419870144",
"sync": true,
"value": 3
},
"options_js": {
"id": "9012372748421963558",
"sync": false,
"value": [
{
"id": "idP2A2492n",
"key": "escher diamonds",
"val": 1
},
{
"id": "idGvV3LPO0",
"key": "herring bone",
"val": 2
},
{
"id": "idqPOMuM30",
"key": "twill",
"val": 3
}
]
}
},
"systemjs_options": null
},
"nodeType": "Scope",
"props": {},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "field interact-widget"
},
"type": "node"
},
{
"children": [
{
"children": [
{
"children": [
{
"children": [
{
"children": [
"pink"
],
"instanceArgs": {
"namespace": "html",
"tag": "label"
},
"nodeType": "DOM",
"props": {
"className": "interact ",
"style": {
"padding": "5px 10px 0px 10px"
}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row-left"
},
"type": "node"
},
{
"children": [
{
"children": [],
"instanceArgs": {
"namespace": "html",
"tag": "input"
},
"nodeType": "DOM",
"props": {
"attributes": {
"data-bind": "numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}",
"orient": "horizontal",
"type": "range"
},
"className": "slider slider is-fullwidth",
"max": 101,
"min": 1,
"step": 1,
"style": {}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row-center"
},
"type": "node"
},
{
"children": [
{
"children": [],
"instanceArgs": {
"namespace": "html",
"tag": "p"
},
"nodeType": "DOM",
"props": {
"attributes": {
"data-bind": "text: formatted_val"
}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row-right"
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row interact-widget"
},
"type": "node"
}
],
"instanceArgs": {
"handlers": {
"changes": [
"(function (val){return (val!=this.model[\"changes\"]()) ? (this.valueFromJulia[\"changes\"]=true, this.model[\"changes\"](val)) : undefined})"
],
"index": [
"(function (val){return (val!=this.model[\"index\"]()) ? (this.valueFromJulia[\"index\"]=true, this.model[\"index\"](val)) : undefined})"
]
},
"id": "6421628563252511446",
"imports": {
"data": [
{
"name": "knockout",
"type": "js",
"url": "/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js"
},
{
"name": "knockout_punches",
"type": "js",
"url": "/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js"
},
{
"name": null,
"type": "js",
"url": "/assetserver/5bfdbed13c6fce0f809548e70181dd3d67eb370e-all.js"
},
{
"name": null,
"type": "css",
"url": "/assetserver/22b77c82aff9c458955af49b5e70f2d2ede37819-style.css"
},
{
"name": null,
"type": "css",
"url": "/assetserver/f66b7b76014e70ed200c7cd0450235657e93262c-bulma_confined.min.css"
}
],
"type": "async_block"
},
"mount_callbacks": [
"function () {\n var handler = (function (ko, koPunches) {\n ko.punches.enableAll();\n ko.bindingHandlers.numericValue = {\n init: function(element, valueAccessor, allBindings, data, context) {\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\n stringified.subscribe(function(value) {\n var val = parseFloat(value);\n if (!isNaN(val)) {\n valueAccessor()(val);\n }\n });\n valueAccessor().subscribe(function(value) {\n var str = JSON.stringify(value);\n if ((str == \"0\") && ([\"-0\", \"-0.\"].indexOf(stringified()) >= 0))\n return;\n if ([\"null\", \"\"].indexOf(str) >= 0)\n return;\n stringified(str);\n });\n ko.applyBindingsToNode(\n element,\n {\n value: stringified,\n valueUpdate: allBindings.get('valueUpdate'),\n },\n context,\n );\n }\n };\n var json_data = {\"formatted_vals\":[\"0.0\",\"0.01\",\"0.02\",\"0.03\",\"0.04\",\"0.05\",\"0.06\",\"0.07\",\"0.08\",\"0.09\",\"0.1\",\"0.11\",\"0.12\",\"0.13\",\"0.14\",\"0.15\",\"0.16\",\"0.17\",\"0.18\",\"0.19\",\"0.2\",\"0.21\",\"0.22\",\"0.23\",\"0.24\",\"0.25\",\"0.26\",\"0.27\",\"0.28\",\"0.29\",\"0.3\",\"0.31\",\"0.32\",\"0.33\",\"0.34\",\"0.35\",\"0.36\",\"0.37\",\"0.38\",\"0.39\",\"0.4\",\"0.41\",\"0.42\",\"0.43\",\"0.44\",\"0.45\",\"0.46\",\"0.47\",\"0.48\",\"0.49\",\"0.5\",\"0.51\",\"0.52\",\"0.53\",\"0.54\",\"0.55\",\"0.56\",\"0.57\",\"0.58\",\"0.59\",\"0.6\",\"0.61\",\"0.62\",\"0.63\",\"0.64\",\"0.65\",\"0.66\",\"0.67\",\"0.68\",\"0.69\",\"0.7\",\"0.71\",\"0.72\",\"0.73\",\"0.74\",\"0.75\",\"0.76\",\"0.77\",\"0.78\",\"0.79\",\"0.8\",\"0.81\",\"0.82\",\"0.83\",\"0.84\",\"0.85\",\"0.86\",\"0.87\",\"0.88\",\"0.89\",\"0.9\",\"0.91\",\"0.92\",\"0.93\",\"0.94\",\"0.95\",\"0.96\",\"0.97\",\"0.98\",\"0.99\",\"1.0\"],\"changes\":WebIO.getval({\"name\":\"changes\",\"scope\":\"6421628563252511446\",\"id\":\"11967926291637671493\",\"type\":\"observable\"}),\"index\":WebIO.getval({\"name\":\"index\",\"scope\":\"6421628563252511446\",\"id\":\"9168432472548671126\",\"type\":\"observable\"})};\n var self = this;\n function AppViewModel() {\n for (var key in json_data) {\n var el = json_data[key];\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\n }\n \n [this[\"formatted_val\"]=ko.computed( function(){\n return this.formatted_vals()[parseInt(this.index())-(1)];\n }\n,this)]\n [this[\"changes\"].subscribe((function (val){!(this.valueFromJulia[\"changes\"]) ? (WebIO.setval({\"name\":\"changes\",\"scope\":\"6421628563252511446\",\"id\":\"11967926291637671493\",\"type\":\"observable\"},val)) : undefined; return this.valueFromJulia[\"changes\"]=false}),self),this[\"index\"].subscribe((function (val){!(this.valueFromJulia[\"index\"]) ? (WebIO.setval({\"name\":\"index\",\"scope\":\"6421628563252511446\",\"id\":\"9168432472548671126\",\"type\":\"observable\"},val)) : undefined; return this.valueFromJulia[\"index\"]=false}),self)]\n \n }\n self.model = new AppViewModel();\n self.valueFromJulia = {};\n for (var key in json_data) {\n self.valueFromJulia[key] = false;\n }\n ko.applyBindings(self.model, self.dom);\n}\n);\n (WebIO.importBlock({\"data\":[{\"name\":\"knockout\",\"type\":\"js\",\"url\":\"/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\"},{\"name\":\"knockout_punches\",\"type\":\"js\",\"url\":\"/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\"}],\"type\":\"async_block\"})).then((imports) => handler.apply(this, imports));\n}\n"
],
"observables": {
"changes": {
"id": "11967926291637671493",
"sync": false,
"value": 0
},
"index": {
"id": "9168432472548671126",
"sync": true,
"value": 41
}
},
"systemjs_options": null
},
"nodeType": "Scope",
"props": {},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "field interact-widget"
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"style": {
"display": "flex",
"flex-direction": "row"
}
},
"type": "node"
},
{
"children": [
{
"children": [
{
"children": [
{
"children": [
{
"children": [
{
"children": [
"n"
],
"instanceArgs": {
"namespace": "html",
"tag": "label"
},
"nodeType": "DOM",
"props": {
"className": "interact ",
"style": {
"padding": "5px 10px 0px 10px"
}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row-left"
},
"type": "node"
},
{
"children": [
{
"children": [],
"instanceArgs": {
"namespace": "html",
"tag": "input"
},
"nodeType": "DOM",
"props": {
"attributes": {
"data-bind": "numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}",
"orient": "horizontal",
"type": "range"
},
"className": "slider slider is-fullwidth",
"max": 400,
"min": 50,
"step": 1,
"style": {}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row-center"
},
"type": "node"
},
{
"children": [
{
"children": [],
"instanceArgs": {
"namespace": "html",
"tag": "p"
},
"nodeType": "DOM",
"props": {
"attributes": {
"data-bind": "text: formatted_val"
}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row-right"
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row interact-widget"
},
"type": "node"
}
],
"instanceArgs": {
"handlers": {
"changes": [
"(function (val){return (val!=this.model[\"changes\"]()) ? (this.valueFromJulia[\"changes\"]=true, this.model[\"changes\"](val)) : undefined})"
],
"index": [
"(function (val){return (val!=this.model[\"index\"]()) ? (this.valueFromJulia[\"index\"]=true, this.model[\"index\"](val)) : undefined})"
]
},
"id": "16390296998199410164",
"imports": {
"data": [
{
"name": "knockout",
"type": "js",
"url": "/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js"
},
{
"name": "knockout_punches",
"type": "js",
"url": "/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js"
},
{
"name": null,
"type": "js",
"url": "/assetserver/5bfdbed13c6fce0f809548e70181dd3d67eb370e-all.js"
},
{
"name": null,
"type": "css",
"url": "/assetserver/22b77c82aff9c458955af49b5e70f2d2ede37819-style.css"
},
{
"name": null,
"type": "css",
"url": "/assetserver/f66b7b76014e70ed200c7cd0450235657e93262c-bulma_confined.min.css"
}
],
"type": "async_block"
},
"mount_callbacks": [
"function () {\n var handler = (function (ko, koPunches) {\n ko.punches.enableAll();\n ko.bindingHandlers.numericValue = {\n init: function(element, valueAccessor, allBindings, data, context) {\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\n stringified.subscribe(function(value) {\n var val = parseFloat(value);\n if (!isNaN(val)) {\n valueAccessor()(val);\n }\n });\n valueAccessor().subscribe(function(value) {\n var str = JSON.stringify(value);\n if ((str == \"0\") && ([\"-0\", \"-0.\"].indexOf(stringified()) >= 0))\n return;\n if ([\"null\", \"\"].indexOf(str) >= 0)\n return;\n stringified(str);\n });\n ko.applyBindingsToNode(\n element,\n {\n value: stringified,\n valueUpdate: allBindings.get('valueUpdate'),\n },\n context,\n );\n }\n };\n var json_data = {\"formatted_vals\":[\"50\",\"51\",\"52\",\"53\",\"54\",\"55\",\"56\",\"57\",\"58\",\"59\",\"60\",\"61\",\"62\",\"63\",\"64\",\"65\",\"66\",\"67\",\"68\",\"69\",\"70\",\"71\",\"72\",\"73\",\"74\",\"75\",\"76\",\"77\",\"78\",\"79\",\"80\",\"81\",\"82\",\"83\",\"84\",\"85\",\"86\",\"87\",\"88\",\"89\",\"90\",\"91\",\"92\",\"93\",\"94\",\"95\",\"96\",\"97\",\"98\",\"99\",\"100\",\"101\",\"102\",\"103\",\"104\",\"105\",\"106\",\"107\",\"108\",\"109\",\"110\",\"111\",\"112\",\"113\",\"114\",\"115\",\"116\",\"117\",\"118\",\"119\",\"120\",\"121\",\"122\",\"123\",\"124\",\"125\",\"126\",\"127\",\"128\",\"129\",\"130\",\"131\",\"132\",\"133\",\"134\",\"135\",\"136\",\"137\",\"138\",\"139\",\"140\",\"141\",\"142\",\"143\",\"144\",\"145\",\"146\",\"147\",\"148\",\"149\",\"150\",\"151\",\"152\",\"153\",\"154\",\"155\",\"156\",\"157\",\"158\",\"159\",\"160\",\"161\",\"162\",\"163\",\"164\",\"165\",\"166\",\"167\",\"168\",\"169\",\"170\",\"171\",\"172\",\"173\",\"174\",\"175\",\"176\",\"177\",\"178\",\"179\",\"180\",\"181\",\"182\",\"183\",\"184\",\"185\",\"186\",\"187\",\"188\",\"189\",\"190\",\"191\",\"192\",\"193\",\"194\",\"195\",\"196\",\"197\",\"198\",\"199\",\"200\",\"201\",\"202\",\"203\",\"204\",\"205\",\"206\",\"207\",\"208\",\"209\",\"210\",\"211\",\"212\",\"213\",\"214\",\"215\",\"216\",\"217\",\"218\",\"219\",\"220\",\"221\",\"222\",\"223\",\"224\",\"225\",\"226\",\"227\",\"228\",\"229\",\"230\",\"231\",\"232\",\"233\",\"234\",\"235\",\"236\",\"237\",\"238\",\"239\",\"240\",\"241\",\"242\",\"243\",\"244\",\"245\",\"246\",\"247\",\"248\",\"249\",\"250\",\"251\",\"252\",\"253\",\"254\",\"255\",\"256\",\"257\",\"258\",\"259\",\"260\",\"261\",\"262\",\"263\",\"264\",\"265\",\"266\",\"267\",\"268\",\"269\",\"270\",\"271\",\"272\",\"273\",\"274\",\"275\",\"276\",\"277\",\"278\",\"279\",\"280\",\"281\",\"282\",\"283\",\"284\",\"285\",\"286\",\"287\",\"288\",\"289\",\"290\",\"291\",\"292\",\"293\",\"294\",\"295\",\"296\",\"297\",\"298\",\"299\",\"300\",\"301\",\"302\",\"303\",\"304\",\"305\",\"306\",\"307\",\"308\",\"309\",\"310\",\"311\",\"312\",\"313\",\"314\",\"315\",\"316\",\"317\",\"318\",\"319\",\"320\",\"321\",\"322\",\"323\",\"324\",\"325\",\"326\",\"327\",\"328\",\"329\",\"330\",\"331\",\"332\",\"333\",\"334\",\"335\",\"336\",\"337\",\"338\",\"339\",\"340\",\"341\",\"342\",\"343\",\"344\",\"345\",\"346\",\"347\",\"348\",\"349\",\"350\",\"351\",\"352\",\"353\",\"354\",\"355\",\"356\",\"357\",\"358\",\"359\",\"360\",\"361\",\"362\",\"363\",\"364\",\"365\",\"366\",\"367\",\"368\",\"369\",\"370\",\"371\",\"372\",\"373\",\"374\",\"375\",\"376\",\"377\",\"378\",\"379\",\"380\",\"381\",\"382\",\"383\",\"384\",\"385\",\"386\",\"387\",\"388\",\"389\",\"390\",\"391\",\"392\",\"393\",\"394\",\"395\",\"396\",\"397\",\"398\",\"399\",\"400\"],\"changes\":WebIO.getval({\"name\":\"changes\",\"scope\":\"16390296998199410164\",\"id\":\"1542716100066106341\",\"type\":\"observable\"}),\"index\":WebIO.getval({\"name\":\"index\",\"scope\":\"16390296998199410164\",\"id\":\"1228369563091848844\",\"type\":\"observable\"})};\n var self = this;\n function AppViewModel() {\n for (var key in json_data) {\n var el = json_data[key];\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\n }\n \n [this[\"formatted_val\"]=ko.computed( function(){\n return this.formatted_vals()[parseInt(this.index())-(50)];\n }\n,this)]\n [this[\"changes\"].subscribe((function (val){!(this.valueFromJulia[\"changes\"]) ? (WebIO.setval({\"name\":\"changes\",\"scope\":\"16390296998199410164\",\"id\":\"1542716100066106341\",\"type\":\"observable\"},val)) : undefined; return this.valueFromJulia[\"changes\"]=false}),self),this[\"index\"].subscribe((function (val){!(this.valueFromJulia[\"index\"]) ? (WebIO.setval({\"name\":\"index\",\"scope\":\"16390296998199410164\",\"id\":\"1228369563091848844\",\"type\":\"observable\"},val)) : undefined; return this.valueFromJulia[\"index\"]=false}),self)]\n \n }\n self.model = new AppViewModel();\n self.valueFromJulia = {};\n for (var key in json_data) {\n self.valueFromJulia[key] = false;\n }\n ko.applyBindings(self.model, self.dom);\n}\n);\n (WebIO.importBlock({\"data\":[{\"name\":\"knockout\",\"type\":\"js\",\"url\":\"/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\"},{\"name\":\"knockout_punches\",\"type\":\"js\",\"url\":\"/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\"}],\"type\":\"async_block\"})).then((imports) => handler.apply(this, imports));\n}\n"
],
"observables": {
"changes": {
"id": "1542716100066106341",
"sync": false,
"value": 0
},
"index": {
"id": "1228369563091848844",
"sync": true,
"value": 200
}
},
"systemjs_options": null
},
"nodeType": "Scope",
"props": {},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "field interact-widget"
},
"type": "node"
},
{
"children": [
{
"children": [
{
"children": [
{
"children": [
{
"children": [
"widen"
],
"instanceArgs": {
"namespace": "html",
"tag": "label"
},
"nodeType": "DOM",
"props": {
"className": "interact ",
"style": {
"padding": "5px 10px 0px 10px"
}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row-left"
},
"type": "node"
},
{
"children": [
{
"children": [],
"instanceArgs": {
"namespace": "html",
"tag": "input"
},
"nodeType": "DOM",
"props": {
"attributes": {
"data-bind": "numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}",
"orient": "horizontal",
"type": "range"
},
"className": "slider slider is-fullwidth",
"max": 5,
"min": 1,
"step": 1,
"style": {}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row-center"
},
"type": "node"
},
{
"children": [
{
"children": [],
"instanceArgs": {
"namespace": "html",
"tag": "p"
},
"nodeType": "DOM",
"props": {
"attributes": {
"data-bind": "text: formatted_val"
}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row-right"
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row interact-widget"
},
"type": "node"
}
],
"instanceArgs": {
"handlers": {
"changes": [
"(function (val){return (val!=this.model[\"changes\"]()) ? (this.valueFromJulia[\"changes\"]=true, this.model[\"changes\"](val)) : undefined})"
],
"index": [
"(function (val){return (val!=this.model[\"index\"]()) ? (this.valueFromJulia[\"index\"]=true, this.model[\"index\"](val)) : undefined})"
]
},
"id": "8719906774623054284",
"imports": {
"data": [
{
"name": "knockout",
"type": "js",
"url": "/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js"
},
{
"name": "knockout_punches",
"type": "js",
"url": "/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js"
},
{
"name": null,
"type": "js",
"url": "/assetserver/5bfdbed13c6fce0f809548e70181dd3d67eb370e-all.js"
},
{
"name": null,
"type": "css",
"url": "/assetserver/22b77c82aff9c458955af49b5e70f2d2ede37819-style.css"
},
{
"name": null,
"type": "css",
"url": "/assetserver/f66b7b76014e70ed200c7cd0450235657e93262c-bulma_confined.min.css"
}
],
"type": "async_block"
},
"mount_callbacks": [
"function () {\n var handler = (function (ko, koPunches) {\n ko.punches.enableAll();\n ko.bindingHandlers.numericValue = {\n init: function(element, valueAccessor, allBindings, data, context) {\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\n stringified.subscribe(function(value) {\n var val = parseFloat(value);\n if (!isNaN(val)) {\n valueAccessor()(val);\n }\n });\n valueAccessor().subscribe(function(value) {\n var str = JSON.stringify(value);\n if ((str == \"0\") && ([\"-0\", \"-0.\"].indexOf(stringified()) >= 0))\n return;\n if ([\"null\", \"\"].indexOf(str) >= 0)\n return;\n stringified(str);\n });\n ko.applyBindingsToNode(\n element,\n {\n value: stringified,\n valueUpdate: allBindings.get('valueUpdate'),\n },\n context,\n );\n }\n };\n var json_data = {\"formatted_vals\":[\"1\",\"2\",\"3\",\"4\",\"5\"],\"changes\":WebIO.getval({\"name\":\"changes\",\"scope\":\"8719906774623054284\",\"id\":\"12466371226688110599\",\"type\":\"observable\"}),\"index\":WebIO.getval({\"name\":\"index\",\"scope\":\"8719906774623054284\",\"id\":\"2305981125209828267\",\"type\":\"observable\"})};\n var self = this;\n function AppViewModel() {\n for (var key in json_data) {\n var el = json_data[key];\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\n }\n \n [this[\"formatted_val\"]=ko.computed( function(){\n return this.formatted_vals()[parseInt(this.index())-(1)];\n }\n,this)]\n [this[\"changes\"].subscribe((function (val){!(this.valueFromJulia[\"changes\"]) ? (WebIO.setval({\"name\":\"changes\",\"scope\":\"8719906774623054284\",\"id\":\"12466371226688110599\",\"type\":\"observable\"},val)) : undefined; return this.valueFromJulia[\"changes\"]=false}),self),this[\"index\"].subscribe((function (val){!(this.valueFromJulia[\"index\"]) ? (WebIO.setval({\"name\":\"index\",\"scope\":\"8719906774623054284\",\"id\":\"2305981125209828267\",\"type\":\"observable\"},val)) : undefined; return this.valueFromJulia[\"index\"]=false}),self)]\n \n }\n self.model = new AppViewModel();\n self.valueFromJulia = {};\n for (var key in json_data) {\n self.valueFromJulia[key] = false;\n }\n ko.applyBindings(self.model, self.dom);\n}\n);\n (WebIO.importBlock({\"data\":[{\"name\":\"knockout\",\"type\":\"js\",\"url\":\"/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\"},{\"name\":\"knockout_punches\",\"type\":\"js\",\"url\":\"/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\"}],\"type\":\"async_block\"})).then((imports) => handler.apply(this, imports));\n}\n"
],
"observables": {
"changes": {
"id": "12466371226688110599",
"sync": false,
"value": 0
},
"index": {
"id": "2305981125209828267",
"sync": true,
"value": 2
}
},
"systemjs_options": null
},
"nodeType": "Scope",
"props": {},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "field interact-widget"
},
"type": "node"
},
{
"children": [
{
"children": [
{
"children": [
{
"children": [
{
"children": [
"pattern size"
],
"instanceArgs": {
"namespace": "html",
"tag": "label"
},
"nodeType": "DOM",
"props": {
"className": "interact ",
"style": {
"padding": "5px 10px 0px 10px"
}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row-left"
},
"type": "node"
},
{
"children": [
{
"children": [],
"instanceArgs": {
"namespace": "html",
"tag": "input"
},
"nodeType": "DOM",
"props": {
"attributes": {
"data-bind": "numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}",
"orient": "horizontal",
"type": "range"
},
"className": "slider slider is-fullwidth",
"max": 20,
"min": 2,
"step": 1,
"style": {}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row-center"
},
"type": "node"
},
{
"children": [
{
"children": [],
"instanceArgs": {
"namespace": "html",
"tag": "p"
},
"nodeType": "DOM",
"props": {
"attributes": {
"data-bind": "text: formatted_val"
}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row-right"
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row interact-widget"
},
"type": "node"
}
],
"instanceArgs": {
"handlers": {
"changes": [
"(function (val){return (val!=this.model[\"changes\"]()) ? (this.valueFromJulia[\"changes\"]=true, this.model[\"changes\"](val)) : undefined})"
],
"index": [
"(function (val){return (val!=this.model[\"index\"]()) ? (this.valueFromJulia[\"index\"]=true, this.model[\"index\"](val)) : undefined})"
]
},
"id": "3297936426233922109",
"imports": {
"data": [
{
"name": "knockout",
"type": "js",
"url": "/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js"
},
{
"name": "knockout_punches",
"type": "js",
"url": "/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js"
},
{
"name": null,
"type": "js",
"url": "/assetserver/5bfdbed13c6fce0f809548e70181dd3d67eb370e-all.js"
},
{
"name": null,
"type": "css",
"url": "/assetserver/22b77c82aff9c458955af49b5e70f2d2ede37819-style.css"
},
{
"name": null,
"type": "css",
"url": "/assetserver/f66b7b76014e70ed200c7cd0450235657e93262c-bulma_confined.min.css"
}
],
"type": "async_block"
},
"mount_callbacks": [
"function () {\n var handler = (function (ko, koPunches) {\n ko.punches.enableAll();\n ko.bindingHandlers.numericValue = {\n init: function(element, valueAccessor, allBindings, data, context) {\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\n stringified.subscribe(function(value) {\n var val = parseFloat(value);\n if (!isNaN(val)) {\n valueAccessor()(val);\n }\n });\n valueAccessor().subscribe(function(value) {\n var str = JSON.stringify(value);\n if ((str == \"0\") && ([\"-0\", \"-0.\"].indexOf(stringified()) >= 0))\n return;\n if ([\"null\", \"\"].indexOf(str) >= 0)\n return;\n stringified(str);\n });\n ko.applyBindingsToNode(\n element,\n {\n value: stringified,\n valueUpdate: allBindings.get('valueUpdate'),\n },\n context,\n );\n }\n };\n var json_data = {\"formatted_vals\":[\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\",\"13\",\"14\",\"15\",\"16\",\"17\",\"18\",\"19\",\"20\"],\"changes\":WebIO.getval({\"name\":\"changes\",\"scope\":\"3297936426233922109\",\"id\":\"17735567067144936912\",\"type\":\"observable\"}),\"index\":WebIO.getval({\"name\":\"index\",\"scope\":\"3297936426233922109\",\"id\":\"17063079403512140393\",\"type\":\"observable\"})};\n var self = this;\n function AppViewModel() {\n for (var key in json_data) {\n var el = json_data[key];\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\n }\n \n [this[\"formatted_val\"]=ko.computed( function(){\n return this.formatted_vals()[parseInt(this.index())-(2)];\n }\n,this)]\n [this[\"changes\"].subscribe((function (val){!(this.valueFromJulia[\"changes\"]) ? (WebIO.setval({\"name\":\"changes\",\"scope\":\"3297936426233922109\",\"id\":\"17735567067144936912\",\"type\":\"observable\"},val)) : undefined; return this.valueFromJulia[\"changes\"]=false}),self),this[\"index\"].subscribe((function (val){!(this.valueFromJulia[\"index\"]) ? (WebIO.setval({\"name\":\"index\",\"scope\":\"3297936426233922109\",\"id\":\"17063079403512140393\",\"type\":\"observable\"},val)) : undefined; return this.valueFromJulia[\"index\"]=false}),self)]\n \n }\n self.model = new AppViewModel();\n self.valueFromJulia = {};\n for (var key in json_data) {\n self.valueFromJulia[key] = false;\n }\n ko.applyBindings(self.model, self.dom);\n}\n);\n (WebIO.importBlock({\"data\":[{\"name\":\"knockout\",\"type\":\"js\",\"url\":\"/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\"},{\"name\":\"knockout_punches\",\"type\":\"js\",\"url\":\"/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\"}],\"type\":\"async_block\"})).then((imports) => handler.apply(this, imports));\n}\n"
],
"observables": {
"changes": {
"id": "17735567067144936912",
"sync": false,
"value": 0
},
"index": {
"id": "17063079403512140393",
"sync": true,
"value": 10
}
},
"systemjs_options": null
},
"nodeType": "Scope",
"props": {},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "field interact-widget"
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"style": {
"display": "flex",
"flex-direction": "row"
}
},
"type": "node"
},
{
"children": [
{
"children": [
{
"children": [
{
"children": [
{
"children": [],
"instanceArgs": {
"namespace": "html",
"tag": "input"
},
"nodeType": "DOM",
"props": {
"attributes": {
"data-bind": "checked: value, valueUpdate: 'change', event: {change: function (){this.changes(this.changes()+1)}}",
"type": "checkbox"
},
"className": "is-checkradio ",
"id": "##1304",
"style": {}
},
"type": "node"
},
{
"children": [
"zoom?"
],
"instanceArgs": {
"namespace": "html",
"tag": "label"
},
"nodeType": "DOM",
"props": {
"attributes": {
"className": "",
"for": "##1304"
}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "field interact-widget"
},
"type": "node"
}
],
"instanceArgs": {
"handlers": {
"changes": [
"(function (val){return (val!=this.model[\"changes\"]()) ? (this.valueFromJulia[\"changes\"]=true, this.model[\"changes\"](val)) : undefined})"
],
"value": [
"(function (val){return (val!=this.model[\"value\"]()) ? (this.valueFromJulia[\"value\"]=true, this.model[\"value\"](val)) : undefined})"
]
},
"id": "583368204563914709",
"imports": {
"data": [
{
"name": "knockout",
"type": "js",
"url": "/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js"
},
{
"name": "knockout_punches",
"type": "js",
"url": "/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js"
},
{
"name": null,
"type": "js",
"url": "/assetserver/5bfdbed13c6fce0f809548e70181dd3d67eb370e-all.js"
},
{
"name": null,
"type": "css",
"url": "/assetserver/22b77c82aff9c458955af49b5e70f2d2ede37819-style.css"
},
{
"name": null,
"type": "css",
"url": "/assetserver/f66b7b76014e70ed200c7cd0450235657e93262c-bulma_confined.min.css"
}
],
"type": "async_block"
},
"mount_callbacks": [
"function () {\n var handler = (function (ko, koPunches) {\n ko.punches.enableAll();\n ko.bindingHandlers.numericValue = {\n init: function(element, valueAccessor, allBindings, data, context) {\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\n stringified.subscribe(function(value) {\n var val = parseFloat(value);\n if (!isNaN(val)) {\n valueAccessor()(val);\n }\n });\n valueAccessor().subscribe(function(value) {\n var str = JSON.stringify(value);\n if ((str == \"0\") && ([\"-0\", \"-0.\"].indexOf(stringified()) >= 0))\n return;\n if ([\"null\", \"\"].indexOf(str) >= 0)\n return;\n stringified(str);\n });\n ko.applyBindingsToNode(\n element,\n {\n value: stringified,\n valueUpdate: allBindings.get('valueUpdate'),\n },\n context,\n );\n }\n };\n var json_data = {\"changes\":WebIO.getval({\"name\":\"changes\",\"scope\":\"583368204563914709\",\"id\":\"7859593449642051670\",\"type\":\"observable\"}),\"value\":WebIO.getval({\"name\":\"value\",\"scope\":\"583368204563914709\",\"id\":\"16162686986319869081\",\"type\":\"observable\"})};\n var self = this;\n function AppViewModel() {\n for (var key in json_data) {\n var el = json_data[key];\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\n }\n \n \n [this[\"changes\"].subscribe((function (val){!(this.valueFromJulia[\"changes\"]) ? (WebIO.setval({\"name\":\"changes\",\"scope\":\"583368204563914709\",\"id\":\"7859593449642051670\",\"type\":\"observable\"},val)) : undefined; return this.valueFromJulia[\"changes\"]=false}),self),this[\"value\"].subscribe((function (val){!(this.valueFromJulia[\"value\"]) ? (WebIO.setval({\"name\":\"value\",\"scope\":\"583368204563914709\",\"id\":\"16162686986319869081\",\"type\":\"observable\"},val)) : undefined; return this.valueFromJulia[\"value\"]=false}),self)]\n \n }\n self.model = new AppViewModel();\n self.valueFromJulia = {};\n for (var key in json_data) {\n self.valueFromJulia[key] = false;\n }\n ko.applyBindings(self.model, self.dom);\n}\n);\n (WebIO.importBlock({\"data\":[{\"name\":\"knockout\",\"type\":\"js\",\"url\":\"/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\"},{\"name\":\"knockout_punches\",\"type\":\"js\",\"url\":\"/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\"}],\"type\":\"async_block\"})).then((imports) => handler.apply(this, imports));\n}\n"
],
"observables": {
"changes": {
"id": "7859593449642051670",
"sync": false,
"value": 0
},
"value": {
"id": "16162686986319869081",
"sync": true,
"value": false
}
},
"systemjs_options": null
},
"nodeType": "Scope",
"props": {},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "field interact-widget"
},
"type": "node"
},
{
"children": [
{
"children": [
{
"children": [
{
"children": [
{
"children": [
"zoom i"
],
"instanceArgs": {
"namespace": "html",
"tag": "label"
},
"nodeType": "DOM",
"props": {
"className": "interact ",
"style": {
"padding": "5px 10px 0px 10px"
}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row-left"
},
"type": "node"
},
{
"children": [
{
"children": [],
"instanceArgs": {
"namespace": "html",
"tag": "input"
},
"nodeType": "DOM",
"props": {
"attributes": {
"data-bind": "numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}",
"orient": "horizontal",
"type": "range"
},
"className": "slider slider is-fullwidth",
"max": 101,
"min": 1,
"step": 1,
"style": {}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row-center"
},
"type": "node"
},
{
"children": [
{
"children": [],
"instanceArgs": {
"namespace": "html",
"tag": "p"
},
"nodeType": "DOM",
"props": {
"attributes": {
"data-bind": "text: formatted_val"
}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row-right"
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row interact-widget"
},
"type": "node"
}
],
"instanceArgs": {
"handlers": {
"changes": [
"(function (val){return (val!=this.model[\"changes\"]()) ? (this.valueFromJulia[\"changes\"]=true, this.model[\"changes\"](val)) : undefined})"
],
"index": [
"(function (val){return (val!=this.model[\"index\"]()) ? (this.valueFromJulia[\"index\"]=true, this.model[\"index\"](val)) : undefined})"
]
},
"id": "11648503266979113828",
"imports": {
"data": [
{
"name": "knockout",
"type": "js",
"url": "/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js"
},
{
"name": "knockout_punches",
"type": "js",
"url": "/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js"
},
{
"name": null,
"type": "js",
"url": "/assetserver/5bfdbed13c6fce0f809548e70181dd3d67eb370e-all.js"
},
{
"name": null,
"type": "css",
"url": "/assetserver/22b77c82aff9c458955af49b5e70f2d2ede37819-style.css"
},
{
"name": null,
"type": "css",
"url": "/assetserver/f66b7b76014e70ed200c7cd0450235657e93262c-bulma_confined.min.css"
}
],
"type": "async_block"
},
"mount_callbacks": [
"function () {\n var handler = (function (ko, koPunches) {\n ko.punches.enableAll();\n ko.bindingHandlers.numericValue = {\n init: function(element, valueAccessor, allBindings, data, context) {\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\n stringified.subscribe(function(value) {\n var val = parseFloat(value);\n if (!isNaN(val)) {\n valueAccessor()(val);\n }\n });\n valueAccessor().subscribe(function(value) {\n var str = JSON.stringify(value);\n if ((str == \"0\") && ([\"-0\", \"-0.\"].indexOf(stringified()) >= 0))\n return;\n if ([\"null\", \"\"].indexOf(str) >= 0)\n return;\n stringified(str);\n });\n ko.applyBindingsToNode(\n element,\n {\n value: stringified,\n valueUpdate: allBindings.get('valueUpdate'),\n },\n context,\n );\n }\n };\n var json_data = {\"formatted_vals\":[\"0.0\",\"0.01\",\"0.02\",\"0.03\",\"0.04\",\"0.05\",\"0.06\",\"0.07\",\"0.08\",\"0.09\",\"0.1\",\"0.11\",\"0.12\",\"0.13\",\"0.14\",\"0.15\",\"0.16\",\"0.17\",\"0.18\",\"0.19\",\"0.2\",\"0.21\",\"0.22\",\"0.23\",\"0.24\",\"0.25\",\"0.26\",\"0.27\",\"0.28\",\"0.29\",\"0.3\",\"0.31\",\"0.32\",\"0.33\",\"0.34\",\"0.35\",\"0.36\",\"0.37\",\"0.38\",\"0.39\",\"0.4\",\"0.41\",\"0.42\",\"0.43\",\"0.44\",\"0.45\",\"0.46\",\"0.47\",\"0.48\",\"0.49\",\"0.5\",\"0.51\",\"0.52\",\"0.53\",\"0.54\",\"0.55\",\"0.56\",\"0.57\",\"0.58\",\"0.59\",\"0.6\",\"0.61\",\"0.62\",\"0.63\",\"0.64\",\"0.65\",\"0.66\",\"0.67\",\"0.68\",\"0.69\",\"0.7\",\"0.71\",\"0.72\",\"0.73\",\"0.74\",\"0.75\",\"0.76\",\"0.77\",\"0.78\",\"0.79\",\"0.8\",\"0.81\",\"0.82\",\"0.83\",\"0.84\",\"0.85\",\"0.86\",\"0.87\",\"0.88\",\"0.89\",\"0.9\",\"0.91\",\"0.92\",\"0.93\",\"0.94\",\"0.95\",\"0.96\",\"0.97\",\"0.98\",\"0.99\",\"1.0\"],\"changes\":WebIO.getval({\"name\":\"changes\",\"scope\":\"11648503266979113828\",\"id\":\"14584266772959987325\",\"type\":\"observable\"}),\"index\":WebIO.getval({\"name\":\"index\",\"scope\":\"11648503266979113828\",\"id\":\"1189174022244805994\",\"type\":\"observable\"})};\n var self = this;\n function AppViewModel() {\n for (var key in json_data) {\n var el = json_data[key];\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\n }\n \n [this[\"formatted_val\"]=ko.computed( function(){\n return this.formatted_vals()[parseInt(this.index())-(1)];\n }\n,this)]\n [this[\"changes\"].subscribe((function (val){!(this.valueFromJulia[\"changes\"]) ? (WebIO.setval({\"name\":\"changes\",\"scope\":\"11648503266979113828\",\"id\":\"14584266772959987325\",\"type\":\"observable\"},val)) : undefined; return this.valueFromJulia[\"changes\"]=false}),self),this[\"index\"].subscribe((function (val){!(this.valueFromJulia[\"index\"]) ? (WebIO.setval({\"name\":\"index\",\"scope\":\"11648503266979113828\",\"id\":\"1189174022244805994\",\"type\":\"observable\"},val)) : undefined; return this.valueFromJulia[\"index\"]=false}),self)]\n \n }\n self.model = new AppViewModel();\n self.valueFromJulia = {};\n for (var key in json_data) {\n self.valueFromJulia[key] = false;\n }\n ko.applyBindings(self.model, self.dom);\n}\n);\n (WebIO.importBlock({\"data\":[{\"name\":\"knockout\",\"type\":\"js\",\"url\":\"/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\"},{\"name\":\"knockout_punches\",\"type\":\"js\",\"url\":\"/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\"}],\"type\":\"async_block\"})).then((imports) => handler.apply(this, imports));\n}\n"
],
"observables": {
"changes": {
"id": "14584266772959987325",
"sync": false,
"value": 0
},
"index": {
"id": "1189174022244805994",
"sync": true,
"value": 51
}
},
"systemjs_options": null
},
"nodeType": "Scope",
"props": {},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "field interact-widget"
},
"type": "node"
},
{
"children": [
{
"children": [
{
"children": [
{
"children": [
{
"children": [
"zoom j"
],
"instanceArgs": {
"namespace": "html",
"tag": "label"
},
"nodeType": "DOM",
"props": {
"className": "interact ",
"style": {
"padding": "5px 10px 0px 10px"
}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row-left"
},
"type": "node"
},
{
"children": [
{
"children": [],
"instanceArgs": {
"namespace": "html",
"tag": "input"
},
"nodeType": "DOM",
"props": {
"attributes": {
"data-bind": "numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}",
"orient": "horizontal",
"type": "range"
},
"className": "slider slider is-fullwidth",
"max": 101,
"min": 1,
"step": 1,
"style": {}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row-center"
},
"type": "node"
},
{
"children": [
{
"children": [],
"instanceArgs": {
"namespace": "html",
"tag": "p"
},
"nodeType": "DOM",
"props": {
"attributes": {
"data-bind": "text: formatted_val"
}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row-right"
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row interact-widget"
},
"type": "node"
}
],
"instanceArgs": {
"handlers": {
"changes": [
"(function (val){return (val!=this.model[\"changes\"]()) ? (this.valueFromJulia[\"changes\"]=true, this.model[\"changes\"](val)) : undefined})"
],
"index": [
"(function (val){return (val!=this.model[\"index\"]()) ? (this.valueFromJulia[\"index\"]=true, this.model[\"index\"](val)) : undefined})"
]
},
"id": "6277521831900828992",
"imports": {
"data": [
{
"name": "knockout",
"type": "js",
"url": "/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js"
},
{
"name": "knockout_punches",
"type": "js",
"url": "/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js"
},
{
"name": null,
"type": "js",
"url": "/assetserver/5bfdbed13c6fce0f809548e70181dd3d67eb370e-all.js"
},
{
"name": null,
"type": "css",
"url": "/assetserver/22b77c82aff9c458955af49b5e70f2d2ede37819-style.css"
},
{
"name": null,
"type": "css",
"url": "/assetserver/f66b7b76014e70ed200c7cd0450235657e93262c-bulma_confined.min.css"
}
],
"type": "async_block"
},
"mount_callbacks": [
"function () {\n var handler = (function (ko, koPunches) {\n ko.punches.enableAll();\n ko.bindingHandlers.numericValue = {\n init: function(element, valueAccessor, allBindings, data, context) {\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\n stringified.subscribe(function(value) {\n var val = parseFloat(value);\n if (!isNaN(val)) {\n valueAccessor()(val);\n }\n });\n valueAccessor().subscribe(function(value) {\n var str = JSON.stringify(value);\n if ((str == \"0\") && ([\"-0\", \"-0.\"].indexOf(stringified()) >= 0))\n return;\n if ([\"null\", \"\"].indexOf(str) >= 0)\n return;\n stringified(str);\n });\n ko.applyBindingsToNode(\n element,\n {\n value: stringified,\n valueUpdate: allBindings.get('valueUpdate'),\n },\n context,\n );\n }\n };\n var json_data = {\"formatted_vals\":[\"0.0\",\"0.01\",\"0.02\",\"0.03\",\"0.04\",\"0.05\",\"0.06\",\"0.07\",\"0.08\",\"0.09\",\"0.1\",\"0.11\",\"0.12\",\"0.13\",\"0.14\",\"0.15\",\"0.16\",\"0.17\",\"0.18\",\"0.19\",\"0.2\",\"0.21\",\"0.22\",\"0.23\",\"0.24\",\"0.25\",\"0.26\",\"0.27\",\"0.28\",\"0.29\",\"0.3\",\"0.31\",\"0.32\",\"0.33\",\"0.34\",\"0.35\",\"0.36\",\"0.37\",\"0.38\",\"0.39\",\"0.4\",\"0.41\",\"0.42\",\"0.43\",\"0.44\",\"0.45\",\"0.46\",\"0.47\",\"0.48\",\"0.49\",\"0.5\",\"0.51\",\"0.52\",\"0.53\",\"0.54\",\"0.55\",\"0.56\",\"0.57\",\"0.58\",\"0.59\",\"0.6\",\"0.61\",\"0.62\",\"0.63\",\"0.64\",\"0.65\",\"0.66\",\"0.67\",\"0.68\",\"0.69\",\"0.7\",\"0.71\",\"0.72\",\"0.73\",\"0.74\",\"0.75\",\"0.76\",\"0.77\",\"0.78\",\"0.79\",\"0.8\",\"0.81\",\"0.82\",\"0.83\",\"0.84\",\"0.85\",\"0.86\",\"0.87\",\"0.88\",\"0.89\",\"0.9\",\"0.91\",\"0.92\",\"0.93\",\"0.94\",\"0.95\",\"0.96\",\"0.97\",\"0.98\",\"0.99\",\"1.0\"],\"changes\":WebIO.getval({\"name\":\"changes\",\"scope\":\"6277521831900828992\",\"id\":\"16587066451297687837\",\"type\":\"observable\"}),\"index\":WebIO.getval({\"name\":\"index\",\"scope\":\"6277521831900828992\",\"id\":\"4759272475963708315\",\"type\":\"observable\"})};\n var self = this;\n function AppViewModel() {\n for (var key in json_data) {\n var el = json_data[key];\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\n }\n \n [this[\"formatted_val\"]=ko.computed( function(){\n return this.formatted_vals()[parseInt(this.index())-(1)];\n }\n,this)]\n [this[\"changes\"].subscribe((function (val){!(this.valueFromJulia[\"changes\"]) ? (WebIO.setval({\"name\":\"changes\",\"scope\":\"6277521831900828992\",\"id\":\"16587066451297687837\",\"type\":\"observable\"},val)) : undefined; return this.valueFromJulia[\"changes\"]=false}),self),this[\"index\"].subscribe((function (val){!(this.valueFromJulia[\"index\"]) ? (WebIO.setval({\"name\":\"index\",\"scope\":\"6277521831900828992\",\"id\":\"4759272475963708315\",\"type\":\"observable\"},val)) : undefined; return this.valueFromJulia[\"index\"]=false}),self)]\n \n }\n self.model = new AppViewModel();\n self.valueFromJulia = {};\n for (var key in json_data) {\n self.valueFromJulia[key] = false;\n }\n ko.applyBindings(self.model, self.dom);\n}\n);\n (WebIO.importBlock({\"data\":[{\"name\":\"knockout\",\"type\":\"js\",\"url\":\"/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\"},{\"name\":\"knockout_punches\",\"type\":\"js\",\"url\":\"/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\"}],\"type\":\"async_block\"})).then((imports) => handler.apply(this, imports));\n}\n"
],
"observables": {
"changes": {
"id": "16587066451297687837",
"sync": false,
"value": 0
},
"index": {
"id": "4759272475963708315",
"sync": true,
"value": 51
}
},
"systemjs_options": null
},
"nodeType": "Scope",
"props": {},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "field interact-widget"
},
"type": "node"
},
{
"children": [
{
"children": [
{
"children": [
{
"children": [
{
"children": [
"radius"
],
"instanceArgs": {
"namespace": "html",
"tag": "label"
},
"nodeType": "DOM",
"props": {
"className": "interact ",
"style": {
"padding": "5px 10px 0px 10px"
}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row-left"
},
"type": "node"
},
{
"children": [
{
"children": [],
"instanceArgs": {
"namespace": "html",
"tag": "input"
},
"nodeType": "DOM",
"props": {
"attributes": {
"data-bind": "numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}",
"orient": "horizontal",
"type": "range"
},
"className": "slider slider is-fullwidth",
"max": 80,
"min": 10,
"step": 1,
"style": {}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row-center"
},
"type": "node"
},
{
"children": [
{
"children": [],
"instanceArgs": {
"namespace": "html",
"tag": "p"
},
"nodeType": "DOM",
"props": {
"attributes": {
"data-bind": "text: formatted_val"
}
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row-right"
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "interact-flex-row interact-widget"
},
"type": "node"
}
],
"instanceArgs": {
"handlers": {
"changes": [
"(function (val){return (val!=this.model[\"changes\"]()) ? (this.valueFromJulia[\"changes\"]=true, this.model[\"changes\"](val)) : undefined})"
],
"index": [
"(function (val){return (val!=this.model[\"index\"]()) ? (this.valueFromJulia[\"index\"]=true, this.model[\"index\"](val)) : undefined})"
]
},
"id": "6060898247771274187",
"imports": {
"data": [
{
"name": "knockout",
"type": "js",
"url": "/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js"
},
{
"name": "knockout_punches",
"type": "js",
"url": "/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js"
},
{
"name": null,
"type": "js",
"url": "/assetserver/5bfdbed13c6fce0f809548e70181dd3d67eb370e-all.js"
},
{
"name": null,
"type": "css",
"url": "/assetserver/22b77c82aff9c458955af49b5e70f2d2ede37819-style.css"
},
{
"name": null,
"type": "css",
"url": "/assetserver/f66b7b76014e70ed200c7cd0450235657e93262c-bulma_confined.min.css"
}
],
"type": "async_block"
},
"mount_callbacks": [
"function () {\n var handler = (function (ko, koPunches) {\n ko.punches.enableAll();\n ko.bindingHandlers.numericValue = {\n init: function(element, valueAccessor, allBindings, data, context) {\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\n stringified.subscribe(function(value) {\n var val = parseFloat(value);\n if (!isNaN(val)) {\n valueAccessor()(val);\n }\n });\n valueAccessor().subscribe(function(value) {\n var str = JSON.stringify(value);\n if ((str == \"0\") && ([\"-0\", \"-0.\"].indexOf(stringified()) >= 0))\n return;\n if ([\"null\", \"\"].indexOf(str) >= 0)\n return;\n stringified(str);\n });\n ko.applyBindingsToNode(\n element,\n {\n value: stringified,\n valueUpdate: allBindings.get('valueUpdate'),\n },\n context,\n );\n }\n };\n var json_data = {\"formatted_vals\":[\"10\",\"11\",\"12\",\"13\",\"14\",\"15\",\"16\",\"17\",\"18\",\"19\",\"20\",\"21\",\"22\",\"23\",\"24\",\"25\",\"26\",\"27\",\"28\",\"29\",\"30\",\"31\",\"32\",\"33\",\"34\",\"35\",\"36\",\"37\",\"38\",\"39\",\"40\",\"41\",\"42\",\"43\",\"44\",\"45\",\"46\",\"47\",\"48\",\"49\",\"50\",\"51\",\"52\",\"53\",\"54\",\"55\",\"56\",\"57\",\"58\",\"59\",\"60\",\"61\",\"62\",\"63\",\"64\",\"65\",\"66\",\"67\",\"68\",\"69\",\"70\",\"71\",\"72\",\"73\",\"74\",\"75\",\"76\",\"77\",\"78\",\"79\",\"80\"],\"changes\":WebIO.getval({\"name\":\"changes\",\"scope\":\"6060898247771274187\",\"id\":\"11362687037668034639\",\"type\":\"observable\"}),\"index\":WebIO.getval({\"name\":\"index\",\"scope\":\"6060898247771274187\",\"id\":\"17648499771395736347\",\"type\":\"observable\"})};\n var self = this;\n function AppViewModel() {\n for (var key in json_data) {\n var el = json_data[key];\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\n }\n \n [this[\"formatted_val\"]=ko.computed( function(){\n return this.formatted_vals()[parseInt(this.index())-(10)];\n }\n,this)]\n [this[\"changes\"].subscribe((function (val){!(this.valueFromJulia[\"changes\"]) ? (WebIO.setval({\"name\":\"changes\",\"scope\":\"6060898247771274187\",\"id\":\"11362687037668034639\",\"type\":\"observable\"},val)) : undefined; return this.valueFromJulia[\"changes\"]=false}),self),this[\"index\"].subscribe((function (val){!(this.valueFromJulia[\"index\"]) ? (WebIO.setval({\"name\":\"index\",\"scope\":\"6060898247771274187\",\"id\":\"17648499771395736347\",\"type\":\"observable\"},val)) : undefined; return this.valueFromJulia[\"index\"]=false}),self)]\n \n }\n self.model = new AppViewModel();\n self.valueFromJulia = {};\n for (var key in json_data) {\n self.valueFromJulia[key] = false;\n }\n ko.applyBindings(self.model, self.dom);\n}\n);\n (WebIO.importBlock({\"data\":[{\"name\":\"knockout\",\"type\":\"js\",\"url\":\"/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\"},{\"name\":\"knockout_punches\",\"type\":\"js\",\"url\":\"/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\"}],\"type\":\"async_block\"})).then((imports) => handler.apply(this, imports));\n}\n"
],
"observables": {
"changes": {
"id": "11362687037668034639",
"sync": false,
"value": 0
},
"index": {
"id": "17648499771395736347",
"sync": true,
"value": 50
}
},
"systemjs_options": null
},
"nodeType": "Scope",
"props": {},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"className": "field interact-widget"
},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"style": {
"display": "flex",
"flex-direction": "row"
}
},
"type": "node"
},
{
"children": [
{
"children": [],
"instanceArgs": {
"id": "8128162522504323354",
"name": "obs-node"
},
"nodeType": "ObservableNode",
"props": {},
"type": "node"
}
],
"instanceArgs": {
"handlers": {},
"id": "8103432824579668091",
"imports": {
"data": [],
"type": "async_block"
},
"mount_callbacks": [],
"observables": {
"obs-node": {
"id": "8128162522504323354",
"sync": false,
"value": {
"children": [
{
"children": [],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"setInnerHtml": "<img src=\"data:image/png;base64,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iERVoioRkYhIVCWqEhGJiERV+k29ec71nOvpzdOb51zPuZ7ePL15zv3w48c3+NCbcz3nenrz9OY513OupzdPb55z/Z6IRFWiKhGRiEhUJaoSEYmIRFWiKhGRiEhUJaoSEYmIRFWiKhGR/rPenOs519ObpzfPuZ5zPb15evOc6znX05unN8+5nnM9vXl685zrOdfTm99TlYhIRCSqElWJiEREoipRlYhIRCSqElWJiEREoipRlYhIRKTfca7ePL15zvWc6+nN05vnXM+5nt48vX348eMbfHh685zrOdfTm6c3z7mecz29eXrzG6oyIhGRqEpUJSISEYmqRFUiIhGRqEpUJSISEYmqRFUiIhGRqEq/qTfPuZ5zPb15evOc6znX05unN8+5nnM9vXl685zrOdfTm6c3z7mecz29+Y8isipRlYhIRCSqElWJiEREoipRlYhIRCSqElWJiEREoipRlYhIv+lcT2+e3jznes719ObpzXOu51xPbx9+/PgGH87Vm6c3z7mecz29eXrznOs519Ob31OViEhEJKoSVYmIRESiKlGViEhEJKoSVYmIRESiKlGViEhEpN9xrt48vXnO9Zzr6c3Tm+dcz7me3jy9ec71nOvpzdOb51zPuZ7ePL15zvV7IhJViapERCIiUZWoSkQkIhJViapERCIiUZWoSkQkIhJViapERPrPenOu51xPb57ePOd6zvX05unNc67n3A8/fnyDD8+5nt48vXnO9Zzr6c3Tm+dcz7me3vxHEVmVqEpEJCISVYmqREQiIlGVqEpEJCISVYmqREQiIlGVqEpEpN90rqc3T2+ecz3nenrz9OY513OupzdPb55zPed6evP05jnXc66nN09vfkNVRiQiElWJqkREIiJRlahKRCQiElWJqkREIiJRlahKRCQiElXpN/XmOddzrqc3T2+ecz3nenrz9OY598OnqvQphi9V6VMMX6rSp4j0qSr9SlX6lar0K1XpV6rSr1SlTxHpU1X6FJE+VaVPMXypSp9i+FKVPsXwpSp9iuFLVfoUkT5VpU8R6VNV+pWq9CtV6Veq0q9UpV+pSp8i0qeq9CmGL1XpUwxfqtKnGD5qrxgTMSZqL9ReiDERY6L2Qu2FGBMRiapEVSIiEZGoSn9OVSIiEZGoSlQlK8ZEjInaC7UXYkzEmKi9UHshxkSMidoLtRdiTMSYqL1Q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iEREoipRlYhIRCSqElWJiPSf9eZcz7me3jy9ec71nOvpzdOb51zPuZ7ePL15zvWc6+nN05vnXM+5nt78nqpERCIiUZWoSkQkIhJViapERCIiUZWoSkQkIhJViapERCIi/Y5z9ebpzXOu51xPb57ePOd6zvX05untw48f3+DD05vnXM+5nt48vXnO9Zzr6c3Tm99QlRGJiERVoioRkYhIVCWqEhGJiERVoioRkYhIVCWqEhGJiERV+k29ec71nOvpzdOb51zPuZ7ePL15zvWc6+nN05vnXM+5nt48vXnO9Zzr6c1/FJFViapERCIiUZWoSkQkIhJViapERCIiUZWoSkQkIhJViapERPpN53p68/TmOddzrqc3T2+ecz3nenr78OPHN/hwrt48vXnO9Zzr6c3Tm+dcz7me3vyeqkREIiJRlahKRCQiElWJqkREIiJRlahKRCQiElWJqkREIiL9jnP15unNc67nXE9vnt4853rO9fTm6c1zrudcT2+e3jznes719ObpzXOu3xORqEpUJSISEYmqRFUiIhGRqEpUJSISEYmqRFUiIhGRqEpUJSLSf9abcz3nenrz9OY513OupzdPb55zPed++PHjG3x4zvX05unNc67nXE9vnt4853rO9fTmP4rIqkRVIiIRkahKVCUiEhGJqkRVIiIRkahKVCUiEhGJqkRVIiL9pnM9vXl685zrOdfTm6c3z7mecz29eXrznOs519ObpzfPuZ5zPb15evMbqjIiEZGoSlQlIhIRiapEVSIiEZGoSlQlIhIRiapEVSIiEZGoSr+pN8+5nnM9vXl685zrOdfTm6c3z7kffvz4Bh96c67nXE9vnt4853rO9fTm6c1zrt8TkahKVCUiEhGJqkRVIiIRkahKVCUiEhGJqkRVIiIRkahKVCUi0n/Wm3M953p68/TmOddzrqc3T2+ecz3nenrz9OY513OupzdPb55zPed6evN7qhIRiYhEVaIqEZGISFQlqhIRiYhEVaIqEZGISFQlqhIRiYj0O87Vm6c3z7mecz29eXrznOs519Obp7cP5/rfzvVL5/qlc33pzZdz/W35cq6/LV/O9bfly7n+tnw519+WL+f60psv5/qlc/3SuX7pXL90rl8615fefDnXl958Odffli/n+tvy5Vx/W76c62/Ll3N96c2Xc33pzZdz/dK5fulc/+PDP9Sb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\">"
},
"type": "node"
},
"3901.9 FPS"
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"style": {
"display": "flex",
"flex-direction": "column"
}
},
"type": "node"
}
}
},
"systemjs_options": null
},
"nodeType": "Scope",
"props": {},
"type": "node"
}
],
"instanceArgs": {
"namespace": "html",
"tag": "div"
},
"nodeType": "DOM",
"props": {
"style": {
"display": "flex",
"flex-direction": "column"
}
},
"type": "node"
},
"text/html": [
"<div\n",
" class=\"webio-mountpoint\"\n",
" data-webio-mountpoint=\"8521540046456432157\"\n",
">\n",
" <script>\n",
" (function(){\n",
" // Some integrations (namely, IJulia/Jupyter) use an alternate render pathway than\n",
" // just putting the html on the page. If WebIO isn't defined, then it's pretty likely\n",
" // that we're in one of those situations and the integration just isn't installed\n",
" // correctly.\n",
" if (typeof window.WebIO === \"undefined\") {\n",
" document\n",
" .querySelector('[data-webio-mountpoint=\"8521540046456432157\"]')\n",
" .innerHTML = (\n",
" '<div style=\"padding: 1em; background-color: #f8d6da; border: 1px solid #f5c6cb; font-weight: bold;\">' +\n",
" '<p><strong>WebIO not detected.</strong></p>' +\n",
" '<p>Please read ' +\n",
" '<a href=\"https://juliagizmos.github.io/WebIO.jl/latest/troubleshooting/not-detected/\" target=\"_blank\">the troubleshooting guide</a> ' +\n",
" 'for more information on how to resolve this issue.</p>' +\n",
" '<p><a href=\"https://juliagizmos.github.io/WebIO.jl/latest/troubleshooting/not-detected/\" target=\"_blank\">https://juliagizmos.github.io/WebIO.jl/latest/troubleshooting/not-detected/</a></p>' +\n",
" '</div>'\n",
" );\n",
" return;\n",
" }\n",
" WebIO.mount(\n",
" document.querySelector('[data-webio-mountpoint=\"8521540046456432157\"]'),\n",
" {\"props\":{\"style\":{\"display\":\"flex\",\"flex-direction\":\"column\"}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"style\":{\"display\":\"flex\",\"flex-direction\":\"row\"}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"className\":\"field interact-widget\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{},\"nodeType\":\"Scope\",\"type\":\"node\",\"instanceArgs\":{\"imports\":{\"data\":[{\"name\":\"knockout\",\"type\":\"js\",\"url\":\"\\/assetserver\\/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\"},{\"name\":\"knockout_punches\",\"type\":\"js\",\"url\":\"\\/assetserver\\/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\"},{\"name\":null,\"type\":\"js\",\"url\":\"\\/assetserver\\/5bfdbed13c6fce0f809548e70181dd3d67eb370e-all.js\"},{\"name\":null,\"type\":\"css\",\"url\":\"\\/assetserver\\/22b77c82aff9c458955af49b5e70f2d2ede37819-style.css\"},{\"name\":null,\"type\":\"css\",\"url\":\"\\/assetserver\\/f66b7b76014e70ed200c7cd0450235657e93262c-bulma_confined.min.css\"}],\"type\":\"async_block\"},\"id\":\"17793473433762440457\",\"handlers\":{\"options_js\":[\"(function (val){return (val!=this.model[\\\"options_js\\\"]()) ? (this.valueFromJulia[\\\"options_js\\\"]=true, this.model[\\\"options_js\\\"](val)) : undefined})\"],\"index\":[\"(function (val){return (val!=this.model[\\\"index\\\"]()) ? (this.valueFromJulia[\\\"index\\\"]=true, this.model[\\\"index\\\"](val)) : undefined})\"]},\"systemjs_options\":null,\"mount_callbacks\":[\"function () {\\n var handler = (function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init: function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n });\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n });\\n ko.applyBindingsToNode(\\n element,\\n {\\n value: stringified,\\n valueUpdate: allBindings.get('valueUpdate'),\\n },\\n context,\\n );\\n }\\n };\\n var json_data = {\\\"options_js\\\":WebIO.getval({\\\"name\\\":\\\"options_js\\\",\\\"scope\\\":\\\"17793473433762440457\\\",\\\"id\\\":\\\"9012372748421963558\\\",\\\"type\\\":\\\"observable\\\"}),\\\"index\\\":WebIO.getval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"17793473433762440457\\\",\\\"id\\\":\\\"15310099648419870144\\\",\\\"type\\\":\\\"observable\\\"})};\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n [this[\\\"disablePlaceholder\\\"]=function(option, item) {\\n ko.applyBindingsToNode(option, {disable: item.val == 0}, item);\\n}\\n]\\n \\n [this[\\\"options_js\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"options_js\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"options_js\\\",\\\"scope\\\":\\\"17793473433762440457\\\",\\\"id\\\":\\\"9012372748421963558\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"options_js\\\"]=false}),self),this[\\\"index\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"index\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"17793473433762440457\\\",\\\"id\\\":\\\"15310099648419870144\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"index\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n);\\n (WebIO.importBlock({\\\"data\\\":[{\\\"name\\\":\\\"knockout\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"\\/assetserver\\/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\\\"},{\\\"name\\\":\\\"knockout_punches\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"\\/assetserver\\/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\\\"}],\\\"type\\\":\\\"async_block\\\"})).then((imports) => handler.apply(this, imports));\\n}\\n\"],\"observables\":{\"options_js\":{\"sync\":false,\"id\":\"9012372748421963558\",\"value\":[{\"key\":\"escher diamonds\",\"val\":1,\"id\":\"idP2A2492n\"},{\"key\":\"herring bone\",\"val\":2,\"id\":\"idGvV3LPO0\"},{\"key\":\"twill\",\"val\":3,\"id\":\"idqPOMuM30\"}]},\"index\":{\"sync\":true,\"id\":\"15310099648419870144\",\"value\":3}}},\"children\":[{\"props\":{\"style\":{\"display\":\"flex\",\"flex-direction\":\"column\"}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[\"pattern\",{\"props\":{\"className\":\"select \"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"attributes\":{\"data-bind\":\"options : options_js, value : index, optionsText: 'key', optionsValue: 'val', valueAllowUnset: true, optionsAfterRender: disablePlaceholder\"}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"select\"},\"children\":[]}]}]}]}]},{\"props\":{\"className\":\"field interact-widget\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{},\"nodeType\":\"Scope\",\"type\":\"node\",\"instanceArgs\":{\"imports\":{\"data\":[{\"name\":\"knockout\",\"type\":\"js\",\"url\":\"\\/assetserver\\/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\"},{\"name\":\"knockout_punches\",\"type\":\"js\",\"url\":\"\\/assetserver\\/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\"},{\"name\":null,\"type\":\"js\",\"url\":\"\\/assetserver\\/5bfdbed13c6fce0f809548e70181dd3d67eb370e-all.js\"},{\"name\":null,\"type\":\"css\",\"url\":\"\\/assetserver\\/22b77c82aff9c458955af49b5e70f2d2ede37819-style.css\"},{\"name\":null,\"type\":\"css\",\"url\":\"\\/assetserver\\/f66b7b76014e70ed200c7cd0450235657e93262c-bulma_confined.min.css\"}],\"type\":\"async_block\"},\"id\":\"6421628563252511446\",\"handlers\":{\"changes\":[\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\"],\"index\":[\"(function (val){return (val!=this.model[\\\"index\\\"]()) ? (this.valueFromJulia[\\\"index\\\"]=true, this.model[\\\"index\\\"](val)) : undefined})\"]},\"systemjs_options\":null,\"mount_callbacks\":[\"function () {\\n var handler = (function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init: function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n });\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n });\\n ko.applyBindingsToNode(\\n element,\\n {\\n value: stringified,\\n valueUpdate: allBindings.get('valueUpdate'),\\n },\\n context,\\n );\\n }\\n };\\n var json_data = {\\\"formatted_vals\\\":[\\\"0.0\\\",\\\"0.01\\\",\\\"0.02\\\",\\\"0.03\\\",\\\"0.04\\\",\\\"0.05\\\",\\\"0.06\\\",\\\"0.07\\\",\\\"0.08\\\",\\\"0.09\\\",\\\"0.1\\\",\\\"0.11\\\",\\\"0.12\\\",\\\"0.13\\\",\\\"0.14\\\",\\\"0.15\\\",\\\"0.16\\\",\\\"0.17\\\",\\\"0.18\\\",\\\"0.19\\\",\\\"0.2\\\",\\\"0.21\\\",\\\"0.22\\\",\\\"0.23\\\",\\\"0.24\\\",\\\"0.25\\\",\\\"0.26\\\",\\\"0.27\\\",\\\"0.28\\\",\\\"0.29\\\",\\\"0.3\\\",\\\"0.31\\\",\\\"0.32\\\",\\\"0.33\\\",\\\"0.34\\\",\\\"0.35\\\",\\\"0.36\\\",\\\"0.37\\\",\\\"0.38\\\",\\\"0.39\\\",\\\"0.4\\\",\\\"0.41\\\",\\\"0.42\\\",\\\"0.43\\\",\\\"0.44\\\",\\\"0.45\\\",\\\"0.46\\\",\\\"0.47\\\",\\\"0.48\\\",\\\"0.49\\\",\\\"0.5\\\",\\\"0.51\\\",\\\"0.52\\\",\\\"0.53\\\",\\\"0.54\\\",\\\"0.55\\\",\\\"0.56\\\",\\\"0.57\\\",\\\"0.58\\\",\\\"0.59\\\",\\\"0.6\\\",\\\"0.61\\\",\\\"0.62\\\",\\\"0.63\\\",\\\"0.64\\\",\\\"0.65\\\",\\\"0.66\\\",\\\"0.67\\\",\\\"0.68\\\",\\\"0.69\\\",\\\"0.7\\\",\\\"0.71\\\",\\\"0.72\\\",\\\"0.73\\\",\\\"0.74\\\",\\\"0.75\\\",\\\"0.76\\\",\\\"0.77\\\",\\\"0.78\\\",\\\"0.79\\\",\\\"0.8\\\",\\\"0.81\\\",\\\"0.82\\\",\\\"0.83\\\",\\\"0.84\\\",\\\"0.85\\\",\\\"0.86\\\",\\\"0.87\\\",\\\"0.88\\\",\\\"0.89\\\",\\\"0.9\\\",\\\"0.91\\\",\\\"0.92\\\",\\\"0.93\\\",\\\"0.94\\\",\\\"0.95\\\",\\\"0.96\\\",\\\"0.97\\\",\\\"0.98\\\",\\\"0.99\\\",\\\"1.0\\\"],\\\"changes\\\":WebIO.getval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"6421628563252511446\\\",\\\"id\\\":\\\"11967926291637671493\\\",\\\"type\\\":\\\"observable\\\"}),\\\"index\\\":WebIO.getval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"6421628563252511446\\\",\\\"id\\\":\\\"9168432472548671126\\\",\\\"type\\\":\\\"observable\\\"})};\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"formatted_val\\\"]=ko.computed( function(){\\n return this.formatted_vals()[parseInt(this.index())-(1)];\\n }\\n,this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"6421628563252511446\\\",\\\"id\\\":\\\"11967926291637671493\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"index\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"index\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"6421628563252511446\\\",\\\"id\\\":\\\"9168432472548671126\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"index\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n);\\n (WebIO.importBlock({\\\"data\\\":[{\\\"name\\\":\\\"knockout\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"\\/assetserver\\/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\\\"},{\\\"name\\\":\\\"knockout_punches\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"\\/assetserver\\/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\\\"}],\\\"type\\\":\\\"async_block\\\"})).then((imports) => handler.apply(this, imports));\\n}\\n\"],\"observables\":{\"changes\":{\"sync\":false,\"id\":\"11967926291637671493\",\"value\":0},\"index\":{\"sync\":true,\"id\":\"9168432472548671126\",\"value\":41}}},\"children\":[{\"props\":{\"className\":\"interact-flex-row interact-widget\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"className\":\"interact-flex-row-left\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"className\":\"interact \",\"style\":{\"padding\":\"5px 10px 0px 10px\"}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"label\"},\"children\":[\"pink\"]}]},{\"props\":{\"className\":\"interact-flex-row-center\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"max\":101,\"min\":1,\"attributes\":{\"type\":\"range\",\"data-bind\":\"numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}\",\"orient\":\"horizontal\"},\"step\":1,\"className\":\"slider slider is-fullwidth\",\"style\":{}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"input\"},\"children\":[]}]},{\"props\":{\"className\":\"interact-flex-row-right\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"attributes\":{\"data-bind\":\"text: formatted_val\"}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"p\"},\"children\":[]}]}]}]}]}]},{\"props\":{\"style\":{\"display\":\"flex\",\"flex-direction\":\"row\"}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"className\":\"field interact-widget\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{},\"nodeType\":\"Scope\",\"type\":\"node\",\"instanceArgs\":{\"imports\":{\"data\":[{\"name\":\"knockout\",\"type\":\"js\",\"url\":\"\\/assetserver\\/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\"},{\"name\":\"knockout_punches\",\"type\":\"js\",\"url\":\"\\/assetserver\\/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\"},{\"name\":null,\"type\":\"js\",\"url\":\"\\/assetserver\\/5bfdbed13c6fce0f809548e70181dd3d67eb370e-all.js\"},{\"name\":null,\"type\":\"css\",\"url\":\"\\/assetserver\\/22b77c82aff9c458955af49b5e70f2d2ede37819-style.css\"},{\"name\":null,\"type\":\"css\",\"url\":\"\\/assetserver\\/f66b7b76014e70ed200c7cd0450235657e93262c-bulma_confined.min.css\"}],\"type\":\"async_block\"},\"id\":\"16390296998199410164\",\"handlers\":{\"changes\":[\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\"],\"index\":[\"(function (val){return (val!=this.model[\\\"index\\\"]()) ? (this.valueFromJulia[\\\"index\\\"]=true, this.model[\\\"index\\\"](val)) : undefined})\"]},\"systemjs_options\":null,\"mount_callbacks\":[\"function () {\\n var handler = (function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init: function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n });\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n });\\n ko.applyBindingsToNode(\\n element,\\n {\\n value: stringified,\\n valueUpdate: allBindings.get('valueUpdate'),\\n },\\n context,\\n );\\n }\\n };\\n var json_data = {\\\"formatted_vals\\\":[\\\"50\\\",\\\"51\\\",\\\"52\\\",\\\"53\\\",\\\"54\\\",\\\"55\\\",\\\"56\\\",\\\"57\\\",\\\"58\\\",\\\"59\\\",\\\"60\\\",\\\"61\\\",\\\"62\\\",\\\"63\\\",\\\"64\\\",\\\"65\\\",\\\"66\\\",\\\"67\\\",\\\"68\\\",\\\"69\\\",\\\"70\\\",\\\"71\\\",\\\"72\\\",\\\"73\\\",\\\"74\\\",\\\"75\\\",\\\"76\\\",\\\"77\\\",\\\"78\\\",\\\"79\\\",\\\"80\\\",\\\"81\\\",\\\"82\\\",\\\"83\\\",\\\"84\\\",\\\"85\\\",\\\"86\\\",\\\"87\\\",\\\"88\\\",\\\"89\\\",\\\"90\\\",\\\"91\\\",\\\"92\\\",\\\"93\\\",\\\"94\\\",\\\"95\\\",\\\"96\\\",\\\"97\\\",\\\"98\\\",\\\"99\\\",\\\"100\\\",\\\"101\\\",\\\"102\\\",\\\"103\\\",\\\"104\\\",\\\"105\\\",\\\"106\\\",\\\"107\\\",\\\"108\\\",\\\"109\\\",\\\"110\\\",\\\"111\\\",\\\"112\\\",\\\"113\\\",\\\"114\\\",\\\"115\\\",\\\"116\\\",\\\"117\\\",\\\"118\\\",\\\"119\\\",\\\"120\\\",\\\"121\\\",\\\"122\\\",\\\"123\\\",\\\"124\\\",\\\"125\\\",\\\"126\\\",\\\"127\\\",\\\"128\\\",\\\"129\\\",\\\"130\\\",\\\"131\\\",\\\"132\\\",\\\"133\\\",\\\"134\\\",\\\"135\\\",\\\"136\\\",\\\"137\\\",\\\"138\\\",\\\"139\\\",\\\"140\\\",\\\"141\\\",\\\"142\\\",\\\"143\\\",\\\"144\\\",\\\"145\\\",\\\"146\\\",\\\"147\\\",\\\"148\\\",\\\"149\\\",\\\"150\\\",\\\"151\\\",\\\"152\\\",\\\"153\\\",\\\"154\\\",\\\"155\\\",\\\"156\\\",\\\"157\\\",\\\"158\\\",\\\"159\\\",\\\"160\\\",\\\"161\\\",\\\"162\\\",\\\"163\\\",\\\"164\\\",\\\"165\\\",\\\"166\\\",\\\"167\\\",\\\"168\\\",\\\"169\\\",\\\"170\\\",\\\"171\\\",\\\"172\\\",\\\"173\\\",\\\"174\\\",\\\"175\\\",\\\"176\\\",\\\"177\\\",\\\"178\\\",\\\"179\\\",\\\"180\\\",\\\"181\\\",\\\"182\\\",\\\"183\\\",\\\"184\\\",\\\"185\\\",\\\"186\\\",\\\"187\\\",\\\"188\\\",\\\"189\\\",\\\"190\\\",\\\"191\\\",\\\"192\\\",\\\"193\\\",\\\"194\\\",\\\"195\\\",\\\"196\\\",\\\"197\\\",\\\"198\\\",\\\"199\\\",\\\"200\\\",\\\"201\\\",\\\"202\\\",\\\"203\\\",\\\"204\\\",\\\"205\\\",\\\"206\\\",\\\"207\\\",\\\"208\\\",\\\"209\\\",\\\"210\\\",\\\"211\\\",\\\"212\\\",\\\"213\\\",\\\"214\\\",\\\"215\\\",\\\"216\\\",\\\"217\\\",\\\"218\\\",\\\"219\\\",\\\"220\\\",\\\"221\\\",\\\"222\\\",\\\"223\\\",\\\"224\\\",\\\"225\\\",\\\"226\\\",\\\"227\\\",\\\"228\\\",\\\"229\\\",\\\"230\\\",\\\"231\\\",\\\"232\\\",\\\"233\\\",\\\"234\\\",\\\"235\\\",\\\"236\\\",\\\"237\\\",\\\"238\\\",\\\"239\\\",\\\"240\\\",\\\"241\\\",\\\"242\\\",\\\"243\\\",\\\"244\\\",\\\"245\\\",\\\"246\\\",\\\"247\\\",\\\"248\\\",\\\"249\\\",\\\"250\\\",\\\"251\\\",\\\"252\\\",\\\"253\\\",\\\"254\\\",\\\"255\\\",\\\"256\\\",\\\"257\\\",\\\"258\\\",\\\"259\\\",\\\"260\\\",\\\"261\\\",\\\"262\\\",\\\"263\\\",\\\"264\\\",\\\"265\\\",\\\"266\\\",\\\"267\\\",\\\"268\\\",\\\"269\\\",\\\"270\\\",\\\"271\\\",\\\"272\\\",\\\"273\\\",\\\"274\\\",\\\"275\\\",\\\"276\\\",\\\"277\\\",\\\"278\\\",\\\"279\\\",\\\"280\\\",\\\"281\\\",\\\"282\\\",\\\"283\\\",\\\"284\\\",\\\"285\\\",\\\"286\\\",\\\"287\\\",\\\"288\\\",\\\"289\\\",\\\"290\\\",\\\"291\\\",\\\"292\\\",\\\"293\\\",\\\"294\\\",\\\"295\\\",\\\"296\\\",\\\"297\\\",\\\"298\\\",\\\"299\\\",\\\"300\\\",\\\"301\\\",\\\"302\\\",\\\"303\\\",\\\"304\\\",\\\"305\\\",\\\"306\\\",\\\"307\\\",\\\"308\\\",\\\"309\\\",\\\"310\\\",\\\"311\\\",\\\"312\\\",\\\"313\\\",\\\"314\\\",\\\"315\\\",\\\"316\\\",\\\"317\\\",\\\"318\\\",\\\"319\\\",\\\"320\\\",\\\"321\\\",\\\"322\\\",\\\"323\\\",\\\"324\\\",\\\"325\\\",\\\"326\\\",\\\"327\\\",\\\"328\\\",\\\"329\\\",\\\"330\\\",\\\"331\\\",\\\"332\\\",\\\"333\\\",\\\"334\\\",\\\"335\\\",\\\"336\\\",\\\"337\\\",\\\"338\\\",\\\"339\\\",\\\"340\\\",\\\"341\\\",\\\"342\\\",\\\"343\\\",\\\"344\\\",\\\"345\\\",\\\"346\\\",\\\"347\\\",\\\"348\\\",\\\"349\\\",\\\"350\\\",\\\"351\\\",\\\"352\\\",\\\"353\\\",\\\"354\\\",\\\"355\\\",\\\"356\\\",\\\"357\\\",\\\"358\\\",\\\"359\\\",\\\"360\\\",\\\"361\\\",\\\"362\\\",\\\"363\\\",\\\"364\\\",\\\"365\\\",\\\"366\\\",\\\"367\\\",\\\"368\\\",\\\"369\\\",\\\"370\\\",\\\"371\\\",\\\"372\\\",\\\"373\\\",\\\"374\\\",\\\"375\\\",\\\"376\\\",\\\"377\\\",\\\"378\\\",\\\"379\\\",\\\"380\\\",\\\"381\\\",\\\"382\\\",\\\"383\\\",\\\"384\\\",\\\"385\\\",\\\"386\\\",\\\"387\\\",\\\"388\\\",\\\"389\\\",\\\"390\\\",\\\"391\\\",\\\"392\\\",\\\"393\\\",\\\"394\\\",\\\"395\\\",\\\"396\\\",\\\"397\\\",\\\"398\\\",\\\"399\\\",\\\"400\\\"],\\\"changes\\\":WebIO.getval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"16390296998199410164\\\",\\\"id\\\":\\\"1542716100066106341\\\",\\\"type\\\":\\\"observable\\\"}),\\\"index\\\":WebIO.getval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"16390296998199410164\\\",\\\"id\\\":\\\"1228369563091848844\\\",\\\"type\\\":\\\"observable\\\"})};\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"formatted_val\\\"]=ko.computed( function(){\\n return this.formatted_vals()[parseInt(this.index())-(50)];\\n }\\n,this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"16390296998199410164\\\",\\\"id\\\":\\\"1542716100066106341\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"index\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"index\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"16390296998199410164\\\",\\\"id\\\":\\\"1228369563091848844\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"index\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n);\\n (WebIO.importBlock({\\\"data\\\":[{\\\"name\\\":\\\"knockout\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"\\/assetserver\\/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\\\"},{\\\"name\\\":\\\"knockout_punches\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"\\/assetserver\\/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\\\"}],\\\"type\\\":\\\"async_block\\\"})).then((imports) => handler.apply(this, imports));\\n}\\n\"],\"observables\":{\"changes\":{\"sync\":false,\"id\":\"1542716100066106341\",\"value\":0},\"index\":{\"sync\":true,\"id\":\"1228369563091848844\",\"value\":200}}},\"children\":[{\"props\":{\"className\":\"interact-flex-row interact-widget\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"className\":\"interact-flex-row-left\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"className\":\"interact \",\"style\":{\"padding\":\"5px 10px 0px 10px\"}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"label\"},\"children\":[\"n\"]}]},{\"props\":{\"className\":\"interact-flex-row-center\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"max\":400,\"min\":50,\"attributes\":{\"type\":\"range\",\"data-bind\":\"numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}\",\"orient\":\"horizontal\"},\"step\":1,\"className\":\"slider slider is-fullwidth\",\"style\":{}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"input\"},\"children\":[]}]},{\"props\":{\"className\":\"interact-flex-row-right\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"attributes\":{\"data-bind\":\"text: formatted_val\"}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"p\"},\"children\":[]}]}]}]}]},{\"props\":{\"className\":\"field interact-widget\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{},\"nodeType\":\"Scope\",\"type\":\"node\",\"instanceArgs\":{\"imports\":{\"data\":[{\"name\":\"knockout\",\"type\":\"js\",\"url\":\"\\/assetserver\\/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\"},{\"name\":\"knockout_punches\",\"type\":\"js\",\"url\":\"\\/assetserver\\/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\"},{\"name\":null,\"type\":\"js\",\"url\":\"\\/assetserver\\/5bfdbed13c6fce0f809548e70181dd3d67eb370e-all.js\"},{\"name\":null,\"type\":\"css\",\"url\":\"\\/assetserver\\/22b77c82aff9c458955af49b5e70f2d2ede37819-style.css\"},{\"name\":null,\"type\":\"css\",\"url\":\"\\/assetserver\\/f66b7b76014e70ed200c7cd0450235657e93262c-bulma_confined.min.css\"}],\"type\":\"async_block\"},\"id\":\"8719906774623054284\",\"handlers\":{\"changes\":[\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\"],\"index\":[\"(function (val){return (val!=this.model[\\\"index\\\"]()) ? (this.valueFromJulia[\\\"index\\\"]=true, this.model[\\\"index\\\"](val)) : undefined})\"]},\"systemjs_options\":null,\"mount_callbacks\":[\"function () {\\n var handler = (function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init: function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n });\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n });\\n ko.applyBindingsToNode(\\n element,\\n {\\n value: stringified,\\n valueUpdate: allBindings.get('valueUpdate'),\\n },\\n context,\\n );\\n }\\n };\\n var json_data = {\\\"formatted_vals\\\":[\\\"1\\\",\\\"2\\\",\\\"3\\\",\\\"4\\\",\\\"5\\\"],\\\"changes\\\":WebIO.getval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"8719906774623054284\\\",\\\"id\\\":\\\"12466371226688110599\\\",\\\"type\\\":\\\"observable\\\"}),\\\"index\\\":WebIO.getval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"8719906774623054284\\\",\\\"id\\\":\\\"2305981125209828267\\\",\\\"type\\\":\\\"observable\\\"})};\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"formatted_val\\\"]=ko.computed( function(){\\n return this.formatted_vals()[parseInt(this.index())-(1)];\\n }\\n,this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"8719906774623054284\\\",\\\"id\\\":\\\"12466371226688110599\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"index\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"index\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"8719906774623054284\\\",\\\"id\\\":\\\"2305981125209828267\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"index\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n);\\n (WebIO.importBlock({\\\"data\\\":[{\\\"name\\\":\\\"knockout\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"\\/assetserver\\/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\\\"},{\\\"name\\\":\\\"knockout_punches\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"\\/assetserver\\/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\\\"}],\\\"type\\\":\\\"async_block\\\"})).then((imports) => handler.apply(this, imports));\\n}\\n\"],\"observables\":{\"changes\":{\"sync\":false,\"id\":\"12466371226688110599\",\"value\":0},\"index\":{\"sync\":true,\"id\":\"2305981125209828267\",\"value\":2}}},\"children\":[{\"props\":{\"className\":\"interact-flex-row interact-widget\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"className\":\"interact-flex-row-left\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"className\":\"interact \",\"style\":{\"padding\":\"5px 10px 0px 10px\"}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"label\"},\"children\":[\"widen\"]}]},{\"props\":{\"className\":\"interact-flex-row-center\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"max\":5,\"min\":1,\"attributes\":{\"type\":\"range\",\"data-bind\":\"numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}\",\"orient\":\"horizontal\"},\"step\":1,\"className\":\"slider slider is-fullwidth\",\"style\":{}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"input\"},\"children\":[]}]},{\"props\":{\"className\":\"interact-flex-row-right\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"attributes\":{\"data-bind\":\"text: formatted_val\"}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"p\"},\"children\":[]}]}]}]}]},{\"props\":{\"className\":\"field interact-widget\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{},\"nodeType\":\"Scope\",\"type\":\"node\",\"instanceArgs\":{\"imports\":{\"data\":[{\"name\":\"knockout\",\"type\":\"js\",\"url\":\"\\/assetserver\\/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\"},{\"name\":\"knockout_punches\",\"type\":\"js\",\"url\":\"\\/assetserver\\/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\"},{\"name\":null,\"type\":\"js\",\"url\":\"\\/assetserver\\/5bfdbed13c6fce0f809548e70181dd3d67eb370e-all.js\"},{\"name\":null,\"type\":\"css\",\"url\":\"\\/assetserver\\/22b77c82aff9c458955af49b5e70f2d2ede37819-style.css\"},{\"name\":null,\"type\":\"css\",\"url\":\"\\/assetserver\\/f66b7b76014e70ed200c7cd0450235657e93262c-bulma_confined.min.css\"}],\"type\":\"async_block\"},\"id\":\"3297936426233922109\",\"handlers\":{\"changes\":[\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\"],\"index\":[\"(function (val){return (val!=this.model[\\\"index\\\"]()) ? (this.valueFromJulia[\\\"index\\\"]=true, this.model[\\\"index\\\"](val)) : undefined})\"]},\"systemjs_options\":null,\"mount_callbacks\":[\"function () {\\n var handler = (function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init: function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n });\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n });\\n ko.applyBindingsToNode(\\n element,\\n {\\n value: stringified,\\n valueUpdate: allBindings.get('valueUpdate'),\\n },\\n context,\\n );\\n }\\n };\\n var json_data = {\\\"formatted_vals\\\":[\\\"2\\\",\\\"3\\\",\\\"4\\\",\\\"5\\\",\\\"6\\\",\\\"7\\\",\\\"8\\\",\\\"9\\\",\\\"10\\\",\\\"11\\\",\\\"12\\\",\\\"13\\\",\\\"14\\\",\\\"15\\\",\\\"16\\\",\\\"17\\\",\\\"18\\\",\\\"19\\\",\\\"20\\\"],\\\"changes\\\":WebIO.getval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"3297936426233922109\\\",\\\"id\\\":\\\"17735567067144936912\\\",\\\"type\\\":\\\"observable\\\"}),\\\"index\\\":WebIO.getval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"3297936426233922109\\\",\\\"id\\\":\\\"17063079403512140393\\\",\\\"type\\\":\\\"observable\\\"})};\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"formatted_val\\\"]=ko.computed( function(){\\n return this.formatted_vals()[parseInt(this.index())-(2)];\\n }\\n,this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"3297936426233922109\\\",\\\"id\\\":\\\"17735567067144936912\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"index\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"index\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"3297936426233922109\\\",\\\"id\\\":\\\"17063079403512140393\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"index\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n);\\n (WebIO.importBlock({\\\"data\\\":[{\\\"name\\\":\\\"knockout\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"\\/assetserver\\/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\\\"},{\\\"name\\\":\\\"knockout_punches\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"\\/assetserver\\/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\\\"}],\\\"type\\\":\\\"async_block\\\"})).then((imports) => handler.apply(this, imports));\\n}\\n\"],\"observables\":{\"changes\":{\"sync\":false,\"id\":\"17735567067144936912\",\"value\":0},\"index\":{\"sync\":true,\"id\":\"17063079403512140393\",\"value\":10}}},\"children\":[{\"props\":{\"className\":\"interact-flex-row interact-widget\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"className\":\"interact-flex-row-left\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"className\":\"interact \",\"style\":{\"padding\":\"5px 10px 0px 10px\"}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"label\"},\"children\":[\"pattern size\"]}]},{\"props\":{\"className\":\"interact-flex-row-center\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"max\":20,\"min\":2,\"attributes\":{\"type\":\"range\",\"data-bind\":\"numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}\",\"orient\":\"horizontal\"},\"step\":1,\"className\":\"slider slider is-fullwidth\",\"style\":{}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"input\"},\"children\":[]}]},{\"props\":{\"className\":\"interact-flex-row-right\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"attributes\":{\"data-bind\":\"text: formatted_val\"}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"p\"},\"children\":[]}]}]}]}]}]},{\"props\":{\"style\":{\"display\":\"flex\",\"flex-direction\":\"row\"}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"className\":\"field interact-widget\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{},\"nodeType\":\"Scope\",\"type\":\"node\",\"instanceArgs\":{\"imports\":{\"data\":[{\"name\":\"knockout\",\"type\":\"js\",\"url\":\"\\/assetserver\\/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\"},{\"name\":\"knockout_punches\",\"type\":\"js\",\"url\":\"\\/assetserver\\/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\"},{\"name\":null,\"type\":\"js\",\"url\":\"\\/assetserver\\/5bfdbed13c6fce0f809548e70181dd3d67eb370e-all.js\"},{\"name\":null,\"type\":\"css\",\"url\":\"\\/assetserver\\/22b77c82aff9c458955af49b5e70f2d2ede37819-style.css\"},{\"name\":null,\"type\":\"css\",\"url\":\"\\/assetserver\\/f66b7b76014e70ed200c7cd0450235657e93262c-bulma_confined.min.css\"}],\"type\":\"async_block\"},\"id\":\"583368204563914709\",\"handlers\":{\"changes\":[\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\"],\"value\":[\"(function (val){return (val!=this.model[\\\"value\\\"]()) ? (this.valueFromJulia[\\\"value\\\"]=true, this.model[\\\"value\\\"](val)) : undefined})\"]},\"systemjs_options\":null,\"mount_callbacks\":[\"function () {\\n var handler = (function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init: function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n });\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n });\\n ko.applyBindingsToNode(\\n element,\\n {\\n value: stringified,\\n valueUpdate: allBindings.get('valueUpdate'),\\n },\\n context,\\n );\\n }\\n };\\n var json_data = {\\\"changes\\\":WebIO.getval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"583368204563914709\\\",\\\"id\\\":\\\"7859593449642051670\\\",\\\"type\\\":\\\"observable\\\"}),\\\"value\\\":WebIO.getval({\\\"name\\\":\\\"value\\\",\\\"scope\\\":\\\"583368204563914709\\\",\\\"id\\\":\\\"16162686986319869081\\\",\\\"type\\\":\\\"observable\\\"})};\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n \\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"583368204563914709\\\",\\\"id\\\":\\\"7859593449642051670\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"value\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"value\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"value\\\",\\\"scope\\\":\\\"583368204563914709\\\",\\\"id\\\":\\\"16162686986319869081\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"value\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n);\\n (WebIO.importBlock({\\\"data\\\":[{\\\"name\\\":\\\"knockout\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"\\/assetserver\\/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\\\"},{\\\"name\\\":\\\"knockout_punches\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"\\/assetserver\\/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\\\"}],\\\"type\\\":\\\"async_block\\\"})).then((imports) => handler.apply(this, imports));\\n}\\n\"],\"observables\":{\"changes\":{\"sync\":false,\"id\":\"7859593449642051670\",\"value\":0},\"value\":{\"sync\":true,\"id\":\"16162686986319869081\",\"value\":false}}},\"children\":[{\"props\":{\"className\":\"field interact-widget\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"attributes\":{\"type\":\"checkbox\",\"data-bind\":\"checked: value, valueUpdate: 'change', event: {change: function (){this.changes(this.changes()+1)}}\"},\"id\":\"##1304\",\"className\":\"is-checkradio \",\"style\":{}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"input\"},\"children\":[]},{\"props\":{\"attributes\":{\"className\":\"\",\"for\":\"##1304\"}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"label\"},\"children\":[\"zoom?\"]}]}]}]},{\"props\":{\"className\":\"field interact-widget\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{},\"nodeType\":\"Scope\",\"type\":\"node\",\"instanceArgs\":{\"imports\":{\"data\":[{\"name\":\"knockout\",\"type\":\"js\",\"url\":\"\\/assetserver\\/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\"},{\"name\":\"knockout_punches\",\"type\":\"js\",\"url\":\"\\/assetserver\\/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\"},{\"name\":null,\"type\":\"js\",\"url\":\"\\/assetserver\\/5bfdbed13c6fce0f809548e70181dd3d67eb370e-all.js\"},{\"name\":null,\"type\":\"css\",\"url\":\"\\/assetserver\\/22b77c82aff9c458955af49b5e70f2d2ede37819-style.css\"},{\"name\":null,\"type\":\"css\",\"url\":\"\\/assetserver\\/f66b7b76014e70ed200c7cd0450235657e93262c-bulma_confined.min.css\"}],\"type\":\"async_block\"},\"id\":\"11648503266979113828\",\"handlers\":{\"changes\":[\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\"],\"index\":[\"(function (val){return (val!=this.model[\\\"index\\\"]()) ? (this.valueFromJulia[\\\"index\\\"]=true, this.model[\\\"index\\\"](val)) : undefined})\"]},\"systemjs_options\":null,\"mount_callbacks\":[\"function () {\\n var handler = (function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init: function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n });\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n });\\n ko.applyBindingsToNode(\\n element,\\n {\\n value: stringified,\\n valueUpdate: allBindings.get('valueUpdate'),\\n },\\n context,\\n );\\n }\\n };\\n var json_data = {\\\"formatted_vals\\\":[\\\"0.0\\\",\\\"0.01\\\",\\\"0.02\\\",\\\"0.03\\\",\\\"0.04\\\",\\\"0.05\\\",\\\"0.06\\\",\\\"0.07\\\",\\\"0.08\\\",\\\"0.09\\\",\\\"0.1\\\",\\\"0.11\\\",\\\"0.12\\\",\\\"0.13\\\",\\\"0.14\\\",\\\"0.15\\\",\\\"0.16\\\",\\\"0.17\\\",\\\"0.18\\\",\\\"0.19\\\",\\\"0.2\\\",\\\"0.21\\\",\\\"0.22\\\",\\\"0.23\\\",\\\"0.24\\\",\\\"0.25\\\",\\\"0.26\\\",\\\"0.27\\\",\\\"0.28\\\",\\\"0.29\\\",\\\"0.3\\\",\\\"0.31\\\",\\\"0.32\\\",\\\"0.33\\\",\\\"0.34\\\",\\\"0.35\\\",\\\"0.36\\\",\\\"0.37\\\",\\\"0.38\\\",\\\"0.39\\\",\\\"0.4\\\",\\\"0.41\\\",\\\"0.42\\\",\\\"0.43\\\",\\\"0.44\\\",\\\"0.45\\\",\\\"0.46\\\",\\\"0.47\\\",\\\"0.48\\\",\\\"0.49\\\",\\\"0.5\\\",\\\"0.51\\\",\\\"0.52\\\",\\\"0.53\\\",\\\"0.54\\\",\\\"0.55\\\",\\\"0.56\\\",\\\"0.57\\\",\\\"0.58\\\",\\\"0.59\\\",\\\"0.6\\\",\\\"0.61\\\",\\\"0.62\\\",\\\"0.63\\\",\\\"0.64\\\",\\\"0.65\\\",\\\"0.66\\\",\\\"0.67\\\",\\\"0.68\\\",\\\"0.69\\\",\\\"0.7\\\",\\\"0.71\\\",\\\"0.72\\\",\\\"0.73\\\",\\\"0.74\\\",\\\"0.75\\\",\\\"0.76\\\",\\\"0.77\\\",\\\"0.78\\\",\\\"0.79\\\",\\\"0.8\\\",\\\"0.81\\\",\\\"0.82\\\",\\\"0.83\\\",\\\"0.84\\\",\\\"0.85\\\",\\\"0.86\\\",\\\"0.87\\\",\\\"0.88\\\",\\\"0.89\\\",\\\"0.9\\\",\\\"0.91\\\",\\\"0.92\\\",\\\"0.93\\\",\\\"0.94\\\",\\\"0.95\\\",\\\"0.96\\\",\\\"0.97\\\",\\\"0.98\\\",\\\"0.99\\\",\\\"1.0\\\"],\\\"changes\\\":WebIO.getval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"11648503266979113828\\\",\\\"id\\\":\\\"14584266772959987325\\\",\\\"type\\\":\\\"observable\\\"}),\\\"index\\\":WebIO.getval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"11648503266979113828\\\",\\\"id\\\":\\\"1189174022244805994\\\",\\\"type\\\":\\\"observable\\\"})};\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"formatted_val\\\"]=ko.computed( function(){\\n return this.formatted_vals()[parseInt(this.index())-(1)];\\n }\\n,this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"11648503266979113828\\\",\\\"id\\\":\\\"14584266772959987325\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"index\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"index\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"11648503266979113828\\\",\\\"id\\\":\\\"1189174022244805994\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"index\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n);\\n (WebIO.importBlock({\\\"data\\\":[{\\\"name\\\":\\\"knockout\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"\\/assetserver\\/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\\\"},{\\\"name\\\":\\\"knockout_punches\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"\\/assetserver\\/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\\\"}],\\\"type\\\":\\\"async_block\\\"})).then((imports) => handler.apply(this, imports));\\n}\\n\"],\"observables\":{\"changes\":{\"sync\":false,\"id\":\"14584266772959987325\",\"value\":0},\"index\":{\"sync\":true,\"id\":\"1189174022244805994\",\"value\":51}}},\"children\":[{\"props\":{\"className\":\"interact-flex-row interact-widget\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"className\":\"interact-flex-row-left\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"className\":\"interact \",\"style\":{\"padding\":\"5px 10px 0px 10px\"}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"label\"},\"children\":[\"zoom i\"]}]},{\"props\":{\"className\":\"interact-flex-row-center\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"max\":101,\"min\":1,\"attributes\":{\"type\":\"range\",\"data-bind\":\"numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}\",\"orient\":\"horizontal\"},\"step\":1,\"className\":\"slider slider is-fullwidth\",\"style\":{}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"input\"},\"children\":[]}]},{\"props\":{\"className\":\"interact-flex-row-right\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"attributes\":{\"data-bind\":\"text: formatted_val\"}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"p\"},\"children\":[]}]}]}]}]},{\"props\":{\"className\":\"field interact-widget\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{},\"nodeType\":\"Scope\",\"type\":\"node\",\"instanceArgs\":{\"imports\":{\"data\":[{\"name\":\"knockout\",\"type\":\"js\",\"url\":\"\\/assetserver\\/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\"},{\"name\":\"knockout_punches\",\"type\":\"js\",\"url\":\"\\/assetserver\\/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\"},{\"name\":null,\"type\":\"js\",\"url\":\"\\/assetserver\\/5bfdbed13c6fce0f809548e70181dd3d67eb370e-all.js\"},{\"name\":null,\"type\":\"css\",\"url\":\"\\/assetserver\\/22b77c82aff9c458955af49b5e70f2d2ede37819-style.css\"},{\"name\":null,\"type\":\"css\",\"url\":\"\\/assetserver\\/f66b7b76014e70ed200c7cd0450235657e93262c-bulma_confined.min.css\"}],\"type\":\"async_block\"},\"id\":\"6277521831900828992\",\"handlers\":{\"changes\":[\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\"],\"index\":[\"(function (val){return (val!=this.model[\\\"index\\\"]()) ? (this.valueFromJulia[\\\"index\\\"]=true, this.model[\\\"index\\\"](val)) : undefined})\"]},\"systemjs_options\":null,\"mount_callbacks\":[\"function () {\\n var handler = (function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init: function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n });\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n });\\n ko.applyBindingsToNode(\\n element,\\n {\\n value: stringified,\\n valueUpdate: allBindings.get('valueUpdate'),\\n },\\n context,\\n );\\n }\\n };\\n var json_data = {\\\"formatted_vals\\\":[\\\"0.0\\\",\\\"0.01\\\",\\\"0.02\\\",\\\"0.03\\\",\\\"0.04\\\",\\\"0.05\\\",\\\"0.06\\\",\\\"0.07\\\",\\\"0.08\\\",\\\"0.09\\\",\\\"0.1\\\",\\\"0.11\\\",\\\"0.12\\\",\\\"0.13\\\",\\\"0.14\\\",\\\"0.15\\\",\\\"0.16\\\",\\\"0.17\\\",\\\"0.18\\\",\\\"0.19\\\",\\\"0.2\\\",\\\"0.21\\\",\\\"0.22\\\",\\\"0.23\\\",\\\"0.24\\\",\\\"0.25\\\",\\\"0.26\\\",\\\"0.27\\\",\\\"0.28\\\",\\\"0.29\\\",\\\"0.3\\\",\\\"0.31\\\",\\\"0.32\\\",\\\"0.33\\\",\\\"0.34\\\",\\\"0.35\\\",\\\"0.36\\\",\\\"0.37\\\",\\\"0.38\\\",\\\"0.39\\\",\\\"0.4\\\",\\\"0.41\\\",\\\"0.42\\\",\\\"0.43\\\",\\\"0.44\\\",\\\"0.45\\\",\\\"0.46\\\",\\\"0.47\\\",\\\"0.48\\\",\\\"0.49\\\",\\\"0.5\\\",\\\"0.51\\\",\\\"0.52\\\",\\\"0.53\\\",\\\"0.54\\\",\\\"0.55\\\",\\\"0.56\\\",\\\"0.57\\\",\\\"0.58\\\",\\\"0.59\\\",\\\"0.6\\\",\\\"0.61\\\",\\\"0.62\\\",\\\"0.63\\\",\\\"0.64\\\",\\\"0.65\\\",\\\"0.66\\\",\\\"0.67\\\",\\\"0.68\\\",\\\"0.69\\\",\\\"0.7\\\",\\\"0.71\\\",\\\"0.72\\\",\\\"0.73\\\",\\\"0.74\\\",\\\"0.75\\\",\\\"0.76\\\",\\\"0.77\\\",\\\"0.78\\\",\\\"0.79\\\",\\\"0.8\\\",\\\"0.81\\\",\\\"0.82\\\",\\\"0.83\\\",\\\"0.84\\\",\\\"0.85\\\",\\\"0.86\\\",\\\"0.87\\\",\\\"0.88\\\",\\\"0.89\\\",\\\"0.9\\\",\\\"0.91\\\",\\\"0.92\\\",\\\"0.93\\\",\\\"0.94\\\",\\\"0.95\\\",\\\"0.96\\\",\\\"0.97\\\",\\\"0.98\\\",\\\"0.99\\\",\\\"1.0\\\"],\\\"changes\\\":WebIO.getval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"6277521831900828992\\\",\\\"id\\\":\\\"16587066451297687837\\\",\\\"type\\\":\\\"observable\\\"}),\\\"index\\\":WebIO.getval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"6277521831900828992\\\",\\\"id\\\":\\\"4759272475963708315\\\",\\\"type\\\":\\\"observable\\\"})};\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"formatted_val\\\"]=ko.computed( function(){\\n return this.formatted_vals()[parseInt(this.index())-(1)];\\n }\\n,this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"6277521831900828992\\\",\\\"id\\\":\\\"16587066451297687837\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"index\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"index\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"6277521831900828992\\\",\\\"id\\\":\\\"4759272475963708315\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"index\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n);\\n (WebIO.importBlock({\\\"data\\\":[{\\\"name\\\":\\\"knockout\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"\\/assetserver\\/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\\\"},{\\\"name\\\":\\\"knockout_punches\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"\\/assetserver\\/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\\\"}],\\\"type\\\":\\\"async_block\\\"})).then((imports) => handler.apply(this, imports));\\n}\\n\"],\"observables\":{\"changes\":{\"sync\":false,\"id\":\"16587066451297687837\",\"value\":0},\"index\":{\"sync\":true,\"id\":\"4759272475963708315\",\"value\":51}}},\"children\":[{\"props\":{\"className\":\"interact-flex-row interact-widget\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"className\":\"interact-flex-row-left\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"className\":\"interact \",\"style\":{\"padding\":\"5px 10px 0px 10px\"}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"label\"},\"children\":[\"zoom j\"]}]},{\"props\":{\"className\":\"interact-flex-row-center\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"max\":101,\"min\":1,\"attributes\":{\"type\":\"range\",\"data-bind\":\"numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}\",\"orient\":\"horizontal\"},\"step\":1,\"className\":\"slider slider is-fullwidth\",\"style\":{}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"input\"},\"children\":[]}]},{\"props\":{\"className\":\"interact-flex-row-right\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"attributes\":{\"data-bind\":\"text: formatted_val\"}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"p\"},\"children\":[]}]}]}]}]},{\"props\":{\"className\":\"field interact-widget\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{},\"nodeType\":\"Scope\",\"type\":\"node\",\"instanceArgs\":{\"imports\":{\"data\":[{\"name\":\"knockout\",\"type\":\"js\",\"url\":\"\\/assetserver\\/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\"},{\"name\":\"knockout_punches\",\"type\":\"js\",\"url\":\"\\/assetserver\\/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\"},{\"name\":null,\"type\":\"js\",\"url\":\"\\/assetserver\\/5bfdbed13c6fce0f809548e70181dd3d67eb370e-all.js\"},{\"name\":null,\"type\":\"css\",\"url\":\"\\/assetserver\\/22b77c82aff9c458955af49b5e70f2d2ede37819-style.css\"},{\"name\":null,\"type\":\"css\",\"url\":\"\\/assetserver\\/f66b7b76014e70ed200c7cd0450235657e93262c-bulma_confined.min.css\"}],\"type\":\"async_block\"},\"id\":\"6060898247771274187\",\"handlers\":{\"changes\":[\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\"],\"index\":[\"(function (val){return (val!=this.model[\\\"index\\\"]()) ? (this.valueFromJulia[\\\"index\\\"]=true, this.model[\\\"index\\\"](val)) : undefined})\"]},\"systemjs_options\":null,\"mount_callbacks\":[\"function () {\\n var handler = (function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init: function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n });\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n });\\n ko.applyBindingsToNode(\\n element,\\n {\\n value: stringified,\\n valueUpdate: allBindings.get('valueUpdate'),\\n },\\n context,\\n );\\n }\\n };\\n var json_data = {\\\"formatted_vals\\\":[\\\"10\\\",\\\"11\\\",\\\"12\\\",\\\"13\\\",\\\"14\\\",\\\"15\\\",\\\"16\\\",\\\"17\\\",\\\"18\\\",\\\"19\\\",\\\"20\\\",\\\"21\\\",\\\"22\\\",\\\"23\\\",\\\"24\\\",\\\"25\\\",\\\"26\\\",\\\"27\\\",\\\"28\\\",\\\"29\\\",\\\"30\\\",\\\"31\\\",\\\"32\\\",\\\"33\\\",\\\"34\\\",\\\"35\\\",\\\"36\\\",\\\"37\\\",\\\"38\\\",\\\"39\\\",\\\"40\\\",\\\"41\\\",\\\"42\\\",\\\"43\\\",\\\"44\\\",\\\"45\\\",\\\"46\\\",\\\"47\\\",\\\"48\\\",\\\"49\\\",\\\"50\\\",\\\"51\\\",\\\"52\\\",\\\"53\\\",\\\"54\\\",\\\"55\\\",\\\"56\\\",\\\"57\\\",\\\"58\\\",\\\"59\\\",\\\"60\\\",\\\"61\\\",\\\"62\\\",\\\"63\\\",\\\"64\\\",\\\"65\\\",\\\"66\\\",\\\"67\\\",\\\"68\\\",\\\"69\\\",\\\"70\\\",\\\"71\\\",\\\"72\\\",\\\"73\\\",\\\"74\\\",\\\"75\\\",\\\"76\\\",\\\"77\\\",\\\"78\\\",\\\"79\\\",\\\"80\\\"],\\\"changes\\\":WebIO.getval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"6060898247771274187\\\",\\\"id\\\":\\\"11362687037668034639\\\",\\\"type\\\":\\\"observable\\\"}),\\\"index\\\":WebIO.getval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"6060898247771274187\\\",\\\"id\\\":\\\"17648499771395736347\\\",\\\"type\\\":\\\"observable\\\"})};\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"formatted_val\\\"]=ko.computed( function(){\\n return this.formatted_vals()[parseInt(this.index())-(10)];\\n }\\n,this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"6060898247771274187\\\",\\\"id\\\":\\\"11362687037668034639\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"index\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"index\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"6060898247771274187\\\",\\\"id\\\":\\\"17648499771395736347\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"index\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n);\\n (WebIO.importBlock({\\\"data\\\":[{\\\"name\\\":\\\"knockout\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"\\/assetserver\\/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\\\"},{\\\"name\\\":\\\"knockout_punches\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"\\/assetserver\\/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\\\"}],\\\"type\\\":\\\"async_block\\\"})).then((imports) => handler.apply(this, imports));\\n}\\n\"],\"observables\":{\"changes\":{\"sync\":false,\"id\":\"11362687037668034639\",\"value\":0},\"index\":{\"sync\":true,\"id\":\"17648499771395736347\",\"value\":50}}},\"children\":[{\"props\":{\"className\":\"interact-flex-row interact-widget\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"className\":\"interact-flex-row-left\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"className\":\"interact \",\"style\":{\"padding\":\"5px 10px 0px 10px\"}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"label\"},\"children\":[\"radius\"]}]},{\"props\":{\"className\":\"interact-flex-row-center\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"max\":80,\"min\":10,\"attributes\":{\"type\":\"range\",\"data-bind\":\"numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}\",\"orient\":\"horizontal\"},\"step\":1,\"className\":\"slider slider is-fullwidth\",\"style\":{}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"input\"},\"children\":[]}]},{\"props\":{\"className\":\"interact-flex-row-right\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"attributes\":{\"data-bind\":\"text: formatted_val\"}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"p\"},\"children\":[]}]}]}]}]}]},{\"props\":{},\"nodeType\":\"Scope\",\"type\":\"node\",\"instanceArgs\":{\"imports\":{\"data\":[],\"type\":\"async_block\"},\"id\":\"1568960929760357242\",\"handlers\":{},\"systemjs_options\":null,\"mount_callbacks\":[],\"observables\":{\"obs-node\":{\"sync\":false,\"id\":\"8389343220521182478\",\"value\":{\"props\":{\"style\":{\"display\":\"flex\",\"flex-direction\":\"column\"}},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[{\"props\":{\"setInnerHtml\":\"<img src=\\\"data:image\\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAIAAAAiOjnJAAAABGdBTUEAALGPC\\/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAIABJREFUeAHswTFuIDiyIMowdCXapM9DZeah6JM2D\\/U\\/+y2kfrsoDArTUJejiI\\/\\/b1\\/\\/nd485\\/rSmy\\/n+lR7+RRj+lR7+RRj+lR7+RRj+lR7+RRj+lR7+RRj+tKbL+f643rz5VxfeqtK\\/yPG9Kn28inG9Kn28inG9Kn28inG9Kn28inG9KU3X871pTf\\/x7n+Wx\\/+od4853rO9fTm6a0qY0zEmKi9UHshxkSMidoLtRdiTMSYqL1QeyHGRIyJ2gu1F2JMxJiovTy9ec71nOvpzdOb51x\\/0Lme3jy9ec71nBtD7YXaCzEmYkzUXqi9EGMixkTthdoLMSZiTNReqL0QYyLGRO2F2gsxpudcT2+e3jznes719OYf+PDjxzf48F8719ObpzfPuZ5zPb2h9kKMiRgTtRdqL8SYiDFRe6H2QoyJGBO1F2ovxJiIMVF7ofZCjIkY01\\/S05vnXM+5nt48vTnXv683z7mecz29eXrznIsYE7UXai\\/EmIgxUXuh9kKMiRgTtRdqL8SYiDFRe6H2QoyJGBO1F2ovxJiecz29eXrznOs51z\\/w4cePb\\/DhHzrX05unN8+5nnNjqL1QeyHGRIyJ2gu1F2JMxJiovVB7IcZEjInaC7UXYkzEmKi9UHshxvSc6+nN05vnXM+5nt78Qb15zvWc6+nN01tVxpiIMVF7ofZCjIkYE7UXai\\/EmIgxUXuh9kKMiRgTtRdqL8SYiDFRe3l685zrOdfTm6c3z7n+gQ8\\/fnyDD\\/+13jznes719ObpzXMuYkzUXqi9EGMixkTthdoLMSZiTNReqL0QYyLGRO2F2gsxJmJM1F6ovRBjes719ObpzXOu51x\\/xLme3jy9ec71nOvpDbUXYkzEmKi9UHshxkSMidoLtRdiTMSYqL1QeyHGRIyJ2gu1F2JMxJj+kp7ePOd6zvX05unNuf5bH378+AYf\\/qHePOd6zvX05umtKmNMxJiovVB7IcZEjInaC7UXYkzEmKi9UHshxkSMidoLtRdiTMSYqL08vXnO9Zzr6c3Tm+dcf9C5nt48vXnO9ZwbQ+2F2gsxJmJM1F6ovRBjIsZE7YXaCzEmYkzUXqi9EGMixkTthdoLMabnXE9vnt4853rO9fTmH\\/jw48c3+PBfO9fTm6c3z7mecz29ofZCjIkYE7UXai\\/EmIgxUXuh9kKMiRgTtRdqL8SYiDFRe6H2QoyJGNNf0tOb51zPuZ7ePL0517+vN8+5nnM9vXl685yLGBO1F2ovxJiIMVF7ofZCjIkYE7UXai\\/EmIgxUXuh9kKMiRgTtRdqL8SYnnM9vXl685zrOdc\\/8OHHj2\\/w4R8619ObpzfPuZ5zY6i9UHshxkSMidoLtRdiTMSYqL1QeyHGRIyJ2gu1F2JMxJiovVB7Icb0nOvpzdOb51zPuZ7e\\/EG9ec71nOvpzdNbVcaYiDFRe6H2QoyJGBO1F2ovxJiIMVF7ofZCjIkYE7UXai\\/EmIgxUXt5evOc6znX05unN8+5\\/oEPP358gw\\/\\/td4853rO9fTm6c1zLmJM1F6ovRBjIsZE7YXaCzEmYkzUXqi9EGMixkTthdoLMSZiTNReqL0QY3rO9fTm6c1zrudcf8S5nt48vXnO9Zzr6Q21F2JMxJiovVB7IcZEjInaC7UXYkzEmKi9UHshxkSMidoLtRdiTMSY\\/pKe3jznes719Obpzbn+Wx9+\\/PgGH\\/6h3jznes719ObprSpjTMSYqL1QeyHGRIyJ2gu1F2JMxJiovVB7IcZEjInaC7UXYkzEmKi9PL15zvWc6+nN05vnXH\\/QuZ7ePL15zvWcG0PthdoLMSZiTNReqL0QYyLGRO2F2gsxJmJM1F6ovRBjIsZE7YXaCzGm51xPb57ePOd6zvX05h\\/48OPHN\\/jw9ObLub705su5vvTm\\/9GbX6m9EJGI7qlK1F6ISET3VCVqL0QkonuqErUXIhLRPVWJ2gsRiej+1ptf6s25evPlXF968+VcX3rz5VxfevPlXF968+VcT29+qTefonuqErUXIhLRPVWJ2gsRieieqkTthYhEdE9VovZCRCK6pypReyEi\\/T9687\\/15lxfevPlXF968+Vc\\/+PDjx\\/f4MNzrqc3T2+ecz3nenrz9OY513Oupzf\\/UURWJaoSEYmIRFWiKhGRiEhUJaoSEYmIRFWiKhGRiEhUJaoSEek3nevpzdOb51zPuZ7ePL15zvWc6+nN05vnXM+5nt48vXnO9Zzr6c3Tm99QlRGJiERVoioRkYhIVCWqEhGJiERVoioRkYhIVCWqEhGJiERV+k29ec71nOvpzdOb51zPuZ7ePL15zv3w48c3+NCbcz3nenrz9OY513OupzdPb55z\\/Z6IRFWiKhGRiEhUJaoSEYmIRFWiKhGRiEhUJaoSEYmIRFWiKhGR\\/rPenOs519ObpzfPuZ5zPb15evOc6znX05unN8+5nnM9vXl685zrOdfTm99TlYhIRCSqElWJiEREoipRlYhIRCSqElWJiEREoipRlYhIRKTfca7ePL15zvWc6+nN05vnXM+5nt48vX348eMbfHh685zrOdfTm6c3z7mecz29eXrzG6oyIhGRqEpUJSISEYmqRFUiIhGRqEpUJSISEYmqRFUiIhGRqEq\\/qTfPuZ5zPb15evOc6znX05unN8+5nnM9vXl685zrOdfTm6c3z7mecz29+Y8isipRlYhIRCSqElWJiEREoipRlYhIRCSqElWJiEREoipRlYhIv+lcT2+e3jznes719ObpzXOu51xPbx9+\\/PgGH87Vm6c3z7mecz29eXrznOs519Ob31OViEhEJKoSVYmIRESiKlGViEhEJKoSVYmIRESiKlGViEhEpN9xrt48vXnO9Zzr6c3Tm+dcz7me3jy9ec71nOvpzdOb51zPuZ7ePL15zvV7IhJViapERCIiUZWoSkQkIhJViapERCIiUZWoSkQkIhJViapERPrPenOu51xPb57ePOd6zvX05unNc67n3A8\\/fnyDD8+5nt48vXnO9Zzr6c3Tm+dcz7me3vxHEVmVqEpEJCISVYmqREQiIlGVqEpEJCISVYmqREQiIlGVqEpEpN90rqc3T2+ecz3nenrz9OY513OupzdPb55zPed6evP05jnXc66nN09vfkNVRiQiElWJqkREIiJRlahKRCQiElWJqkREIiJRlahKRCQiElXpN\\/XmOddzrqc3T2+ecz3nenrz9OY598OnqvQphi9V6VMMX6rSp4j0qSr9SlX6lar0K1XpV6rSr1SlTxHpU1X6FJE+VaVPMXypSp9i+FKVPsXwpSp9iuFLVfoUkT5VpU8R6VNV+pWq9CtV6Veq0q9UpV+pSp8i0qeq9CmGL1XpUwxfqtKnGD5qrxgTMSZqL9ReiDERY6L2Qu2FGBMRiapEVSIiEZGoSn9OVSIiEZGoSlQlK8ZEjInaC7UXYkzEmKi9UHshxkSMidoLtRdiTMSYqL1QeyHGRIyJ2gtViYhERKIqUZWISH9ORKIqUZWISESkc2sv1F6IMRFjovZC7YUYEzEmai\\/UXh9+\\/PgGH6i9EGMixkTthdoLMSZiTNReqL0Q3RORqEpUJSISEVmV\\/nURiapEVSIiEZGoStReiDERY6L2Qu2FGBMxJmov1F6IMRFjovZC7YUYEzEmai\\/UXogxEWOi9kJVIiIRkahKVKU\\/oSoRkYhIVCWqEhGJGBO1F2ovxJiIMVF7ofZCjIkYE7XXhx8\\/vsFHjFl7ofZCjIkYE7UXai\\/EmIgxUXuhKhGRiEhUJaoSEenPiUhUJaoSEYmIdG7thdoLMSZiTNReqL0QYyLGRO2F2gsxJmJM1F6ovRBjIsZE7YXaCzEmIhJViapERCIiUZX+nKpERCIiUZWoSlaMiRgTtRdqL8SYiDFRe6H2QoyJGPPDjx\\/f4AMxJmov1F6IMRFjovZC7YUYEzEmai9UJSISEYmqRFX6E6oSEYmIRFWiKhGRiDFRe6H2QoyJGBO1F2ovxJiIMVF7ofZCjIkYE7UXai\\/EmIgxUXuh9kJ0T0SiKlGViEhEZFX610UkqhJViYhERKIqUXshxkSMidoLtRdiTMSYqL1QeyHG\\/PDjxzf4qL1iTMSYqL1QeyHGRIyJ2gu1F2JMRCSqElWJiEREoir9OVWJiEREoipRlawYEzEmai\\/UXogxEWOi9kLthRgTMSZqL9ReiDERY6L2Qu2FGBMxJmovVCUiEhGJqkRVIiL9ORGJqkRVIiIRkc6tvVB7IcZEjInaC7UXYkzEmKi9UHt9+PHjG3yg9kKMiRgTtRdqL8SYiDFRe6H2QnRPRKIqUZWISERkVfrXRSSqElWJiEREoipReyHGRIyJ2gu1F2JMxJiovVB7IcZEjInaC7UXYkzEmKi9UHshxkSMidoLVYmIRESiKlGV\\/oSqREQiIlGVqEpEJGJM1F6ovRBjIsZE7YXaCzEmYkzUXh9+\\/PgGHzFm7YXaCzEmYkzUXqi9EGMixkTthapERCIiUZWoSkSkPyciUZWoSkQkItK5tRdqL8SYiDFRe6H2QoyJGBO1F2ovxJiIMVF7ofZCjIkYE7UXai\\/EmIhIVCWqEhGJiERV+nOqEhGJiERVoipZMSZiTNReqL0QYyLGRO2F2gsxJmLMDz9+fIMPxJiovVB7IcZEjInaC7UXYkzEmKi9UJWISEQkqhJV6U+oSkQkIhJViapERCLGRO2F2gsxJmJM1F6ovRBjIsZE7YXaCzEmYkzUXqi9EGMixkTthdoL0T0RiapEVSIiEZFV6V8XkahKVCUiEhGJqkTthRgTMSZqL9ReiDERY6L2Qu2FGPPDjx\\/f4KP2ijERY6L2Qu2FGBMxJmov1F6IMRGRqEpUJSISEYmq9OdUJSISEYmqRFWyYkzEmKi9UHshxkSMidoLtRdiTMSYqL1QeyHGRIyJ2gu1F2JMxJiovVCViEhEJKoSVYmI9OdEJKoSVYmIREQ6t\\/ZC7YUYEzEmai\\/UXogxEWOi9kLt9eHHj2\\/wgdoLMSZiTNReqL0QYyLGRO2F2gvRPRGJqkRVIiIRkVXpXxeRqEpUJSISEYmqRO2FGBMxJmov1F6IMRFjovZC7YUYEzEmai\\/UXogxEWOi9kLthRgTMSZqL1QlIhIRiapEVfoTqhIRiYhEVaIqEZGIMVF7ofZCjIkYE7UXai\\/EmIgxUXt9+PHjG3zEmLUXai\\/EmIgxUXuh9kKMiRgTtReqEhGJiERVoioRkf6ciERVoioRkYhI59ZeqL0QYyLGRO2F2gsxJmJM1F6ovRBjIsZE7YXaCzEmYkzUXqi9EGMiIlGVqEpEJCISVenPqUpEJCISVYmqZMWYiDFRe6H2QoyJGBO1F2ovxJiIMT\\/8+PENPhBjovZC7YUYEzEmai\\/UXogxEWOi9kJVIiIRkahKVKU\\/oSoRkYhIVCWqEhGJGBO1F2ovxJiIMVF7ofZCjIkYE7UXai\\/EmIgxUXuh9kKMiRgTtRdqL0T3RCSqElWJiEREVqV\\/XUSiKlGViEhEJKoStRdiTMSYqL1QeyHGRIyJ2gu1F2LMDz9+fIOP2ivGRIyJ2gu1F2JMxJiovVB7IcZERKIqUZWISEQkqtKfU5WISEQkqhJVyYoxEWOi9kLthRgTMSZqL9ReiDERY6L2Qu2FGBMxJmov1F6IMRFjovZCVSIiEZGoSlQlItKfE5GoSlQlIhIR6dzaC7UXYkzEmKi9UHshxkSMidoLtdeHHz++wQdqL8SYiDFRe6H2QoyJGBO1F2ovRPdEJKoSVYmIRERWpX9dRKIqUZWISEQkqhK1F2JMxJiovVB7IcZEjInaC7UXYkzEmKi9UHshxkSMidoLtRdiTMSYqL1QlYhIRCSqElXpT6hKRCQiElWJqkREIsZE7YXaCzEmYkzUXqi9EGMixkTt9eHHj2\\/wEWPWXqi9EGMixkTthdoLMSZiTNReqEpEJCISVYmqRET6cyISVYmqREQiIp1be6H2QoyJGBO1F2ovxJiIMVF7ofZCjIkYE7UXai\\/EmIgxUXuh9kKMiYhEVaIqEZGISFSlP6cqEZGISFQlqpIVYyLGRO2F2gsxJmJM1F6ovRBjIsb88OPHN\\/hAjInaC7UXYkzEmKi9UHshxkSMidoLVYmIRESiKlGV\\/oSqREQiIlGVqEpEJGJM1F6ovRBjIsZE7YXaCzEmYkzUXqi9EGMixkTthdoLMSZiTNReqL0Q3RORqEpUJSISEVmV\\/nURiapEVSIiEZGoStReiDERY6L2Qu2FGBMxJmov1F6IMT\\/8+PENPmqvGBMxJmov1F6IMRFjovZC7YUYExGJqkRVIiIRkahKf05VIiIRkahKVCUrxkSMidoLtRdiTMSYqL1QeyHGRIyJ2gu1F2JMxJiovVB7IcZEjInaC1WJiEREoipRlYhIf05EoipRlYhIRKRzay\\/UXogxEWOi9kLthRgTMSZqL9ReH378+AYfqL0QYyLGRO2F2gsxJmJM1F6ovRDdE5GoSlQlIhIRWZX+dRGJqkRVIiIRkahK1F6IMRFjovZC7YUYEzEmai\\/UXogxEWOi9kLthRgTMSZqL9ReiDERY6L2QlUiIhGRqEpUpT+hKhGRiEhUJaoSEYkYE7UXai\\/EmIgxUXuh9kKMiRgTtdeHHz++wUeMWXuh9kKMiRgTtRdqL8SYiDFRe6EqEZGISFQlqhIR6c+JSFQlqhIRiYh0bu2F2gsxJmJM1F6ovRBjIsZE7YXaCzEmYkzUXqi9EGMixkTthdoLMSYiElWJqkREIiJRlf6cqkREIiJRlahKVoyJGBO1F2ovxJiIMVF7ofZCjIkY88OPH9\\/gAzGmpzd\\/Sc+5iDE9vflLes5FjOnpzf8tIv0vEVmVPkWkT1XpU0T6VJU+RaRPVelTRPpUlT5FpP9bRPqVGNPTm7+k51zEmJ7e\\/CU95yLG9PTmL+k5FzGmpzd\\/Sc+5iDE9vflL+hSRfiUiqzIifapKnyLSp6r0KSJ9qkqfItKnqvQpIn2qSkSkX4lIf0vPuYgxPb35S3rORYzp6c1f0nPuhx8\\/vsGH3pzrOdfTm6c3z7mecz29eXrznOv3RCSqElWJiEREoipRlYhIRCSqElWJiEREoipRlYhIRCSqElWJiPSf9eZcz7me3jy9ec71nOvpzdOb51zPuZ7ePL15zvWc6+nN05vnXM+5nt78nqpERCIiUZWoSkQkIhJViapERCIiUZWoSkQkIhJViapERCIi\\/Y5z9ebpzXOu51xPb57ePOd6zvX05untw48f3+DD05vnXM+5nt48vXnO9Zzr6c3Tm99QlRGJiERVoioRkYhIVCWqEhGJiERVoioRkYhIVCWqEhGJiERV+k29ec71nOvpzdOb51zPuZ7ePL15zvWc6+nN05vnXM+5nt48vXnO9Zzr6c1\\/FJFViapERCIiUZWoSkQkIhJViapERCIiUZWoSkQkIhJViapERPpN53p68\\/TmOddzrqc3T2+ecz3nenr78OPHN\\/hwrt48vXnO9Zzr6c3Tm+dcz7me3vyeqkREIiJRlahKRCQiElWJqkREIiJRlahKRCQiElWJqkREIiL9jnP15unNc67nXE9vnt4853rO9fTm6c1zrudcT2+e3jznes719ObpzXOu3xORqEpUJSISEYmqRFUiIhGRqEpUJSISEYmqRFUiIhGRqEpUJSLSf9abcz3nenrz9OY513OupzdPb55zPed++PHjG3x4zvX05unNc67nXE9vnt4853rO9fTmP4rIqkRVIiIRkahKVCUiEhGJqkRVIiIRkahKVCUiEhGJqkRVIiL9pnM9vXl685zrOdfTm6c3z7mecz29eXrznOs519ObpzfPuZ5zPb15evMbqjIiEZGoSlQlIhIRiapEVSIiEZGoSlQlIhIRiapEVSIiEZGoSr+pN8+5nnM9vXl685zrOdfTm6c3z7kffvz4Bh96c67nXE9vnt4853rO9fTm6c1zrt8TkahKVCUiEhGJqkRVIiIRkahKVCUiEhGJqkRVIiIRkahKVCUi0n\\/Wm3M953p68\\/TmOddzrqc3T2+ecz3nenrz9OY513OupzdPb55zPed6evN7qhIRiYhEVaIqEZGISFQlqhIRiYhEVaIqEZGISFQlqhIRiYj0O87Vm6c3z7mecz29eXrznOs519Obp7cP5\\/rfzvVL5\\/qlc33pzZdz\\/W35cq6\\/LV\\/O9bfly7n+tnw519+WL+f60psv5\\/qlc\\/3SuX7pXL90rl8615fefDnXl958Odffli\\/n+tvy5Vx\\/W76c62\\/Ll3N96c2Xc33pzZdz\\/dK5fulc\\/+PDP9Sb51zPuZ7ePL1VZYyJGBO1F2ovxJiIMVF7ofZCjIkYE7UXai\\/EmIgxUXuh9kKMiRgTtZenN8+5nnM9vXl685zrDzrX05unN8+5nnNjqL1QeyHGRIyJ2gu1F2JMxJiovVB7IcZEjInaC7UXYkzEmKi9UHshxvSc6+nN05vnXM+5nt78Ax9+\\/PgGH\\/5r53p68\\/TmOddzrqc31F6IMRFjovZC7YUYEzEmai\\/UXogxEWOi9kLthRgTMSZqL9ReiDERY\\/pLenrznOs519Obpzfn+vf15jnXc66nN09vnnMRY6L2Qu2FGBMxJmov1F6IMRFjovZC7YUYEzEmai\\/UXogxEWOi9kLthRjTc66nN09vnnM95\\/oHPvz48Q0+\\/EPnenrz9OY513NuDLUXai\\/EmIgxUXuh9kKMiRgTtRdqL8SYiDFRe6H2QoyJGBO1F2ovxJiecz29eXrznOs519ObP6g3z7mecz29eXqryhgTMSZqL9ReiDERY6L2Qu2FGBMxJmov1F6IMRFjovZC7YUYEzEmai9Pb55zPed6evP05jnXP\\/Dhx49v8OG\\/1pvnXM+5nt48vXnORYyJ2gu1F2JMxJiovVB7IcZEjInaC7UXYkzEmKi9UHshxkSMidoLtRdiTM+5nt48vXnO9ZzrjzjX05unN8+5nnM9vaH2QoyJGBO1F2ovxJiIMVF7ofZCjIkYE7UXai\\/EmIgxUXuh9kKMiRjTX9LT2\\/\\/PHhzj0JErWwIM426p7KLPRWWeRdFn2bWpYQ8gzf+DxoPwGmo5N8LxvI7nddyX4748r\\/\\/Wx9fXb\\/DxD92X43kdz+u4L8d9JV1josZE9kL2Qo2JGhPZC9kLNSZqTGQvZC\\/UmKgxkb2QvVBjosZE9nLcl+N5Hc\\/ruC\\/HfTme1x\\/0vI77ctyX43kdz1tD9kL2Qo2JGhPZC9kLNSZqTGQvZC\\/UmKgxkb2QvVBjosZE9kL2Qo3peF7HfTnuy\\/G8jud13Jd\\/4OPr6zf4+K89r+O+HPfleF7H8zruC9kLNSZqTGQvZC\\/UmKgxkb2QvVBjosZE9kL2Qo2JGhPZC9kLNSZqTH9px305ntfxvI77ctyX5\\/Xvuy\\/H8zqe13FfjvtyPC9qTGQvZC\\/UmKgxkb2QvVBjosZE9kL2Qo2JGhPZC9kLNSZqTGQvZC\\/UmI7nddyX474cz+t4Xv\\/Ax9fXb\\/DxDz2v474c9+V4Xsfz1pC9kL1QY6LGRPZC9kKNiRoT2QvZCzUmakxkL2Qv1JioMZG9kL1QYzqe13FfjvtyPK\\/jeR335Q+6L8fzOp7XcV+O+0q6xkSNieyF7IUaEzUmsheyF2pM1JjIXsheqDFRYyJ7IXuhxkSNiezluC\\/H8zqe13FfjvtyPK9\\/4OPr6zf4+K\\/dl+N5Hc\\/ruC\\/HfTmeFzUmsheyF2pM1JjIXsheqDFRYyJ7IXuhxkSNieyF7IUaEzUmsheyF2pMx\\/M67stxX47ndTyvP+J5HffluC\\/H8zqe13FfyF6oMVFjInshe6HGRI2J7IXshRoTNSayF7IXakzUmMheyF6oMVFj+ks77svxvI7nddyX4748r\\/\\/Wx9fXb\\/DxD92X43kdz+u4L8d9JV1josZE9kL2Qo2JGhPZC9kLNSZqTGQvZC\\/UmKgxkb2QvVBjosZE9nLcl+N5Hc\\/ruC\\/HfTme1x\\/0vI77ctyX43kdz1tD9kL2Qo2JGhPZC9kLNSZqTGQvZC\\/UmKgxkb2QvVBjosZE9kL2Qo3peF7HfTnuy\\/G8jud13Jd\\/4OPr6zf4+K89r+O+HPfleF7H8zruC9kLNSZqTGQvZC\\/UmKgxkb2QvVBjosZE9kL2Qo2JGhPZC9kLNSZqTH9px305ntfxvI77ctyX5\\/Xvuy\\/H8zqe13FfjvtyPC9qTGQvZC\\/UmKgxkb2QvVBjosZE9kL2Qo2JGhPZC9kLNSZqTGQvZC\\/UmI7nddyX474cz+t4Xv\\/Ax9fXb\\/DxDz2v474c9+V4Xsfz1pC9kL1QY6LGRPZC9kKNiRoT2QvZCzUmakxkL2Qv1JioMZG9kL1QYzqe13FfjvtyPK\\/jeR335Q+6L8fzOp7XcV+O+0q6xkSNieyF7IUaEzUmsheyF2pM1JjIXsheqDFRYyJ7IXuhxkSNiezluC\\/H8zqe13FfjvtyPK9\\/4OPr6zf4+K\\/dl+N5Hc\\/ruC\\/HfTmeFzUmsheyF2pM1JjIXsheqDFRYyJ7IXuhxkSNieyF7IUaEzUmsheyF2pMx\\/M67stxX47ndTyvP+J5HffluC\\/H8zqe13FfyF6oMVFjInshe6HGRI2J7IXshRoTNSayF7IXakzUmMheyF6oMVFj+ks77svxvI7nddyX4748r\\/\\/Wx9fXb\\/DxD92X43kdz+u4L8d9JV1josZE9kL2Qo2JGhPZC9kLNSZqTGQvZC\\/UmKgxkb2QvVBjosZE9nLcl+N5Hc\\/ruC\\/HfTme1x\\/0vI77ctyX43kdz1tD9kL2Qo2JGhPZC9kLNSZqTGQvZC\\/UmKgxkb2QvVBjosZE9kL2Qo3peF7HfTnuy\\/G8jud13Jd\\/4OPr6zf4+K89r+O+HPfleF7H8zruC9kLNSZqTGQvZC\\/UmKgxkb2QvVBjosZE9kL2Qo2JGhPZC9kLNSZqTH9px305ntfxvI77ctyX5\\/Xvuy\\/H8zqe13FfjvtyPC9qTGQvZC\\/UmKgxkb2QvVBjosZE9kL2Qo3X1nQJAAAa6klEQVSJGhPZC9kLNSZqTGQvZC\\/UmI7nddyX474cz+t4Xv\\/Ax9fXb\\/DxDz2v474c9+V4Xsfz1pC9kL1QY6LGRPZC9kKNiRoT2QvZCzUmakxkL2Qv1JioMZG9kL1QYzqe13FfjvtyPK\\/jeR335Q+6L8fzOp7XcV+O+0q6xkSNieyF7IUaEzUmsheyF2pM1JjIXsheqDFRYyJ7IXuhxkSNiezluC\\/H8zqe13FfjvtyPK9\\/4OPr6zf4+K\\/dl+N5Hc\\/ruC\\/HfTmeFzUmsheyF2pM1JjIXsheqDFRYyJ7IXuhxkSNieyF7IUaEzUmsheyF2pMx\\/M67stxX47ndTyvP+J5HffluC\\/H8zqe13FfyF6oMVFjInshe6HGRI2J7IXshRoTNSayF7IXakzUmMheyF6oMVFj+ks77svxvI7nddyX4748r\\/\\/Wx9fXb\\/DxD92X43kdz+u4L8d9JV1josZE9kL2Qo2JGhPZC9kLNSZqTGQvZC\\/UmKgxkb2QvVBjosZE9nLcl+N5Hc\\/ruC\\/HfTme1x\\/0vI77ctyX43kdz1tD9kL2Qo2JGhPZC9kLNSZqTGQvZC\\/UmKgxkb2QvVBjosZE9kL2Qo3peF7HfTnuy\\/G8jud13Jd\\/4OPr6zf4+K89r+O+HPfleF7H8zruC9kLNSZqTGQvZC\\/UmKgxkb2QvVBjosZE9kL2Qo2JGhPZC9kLNSZqTH9px305ntfxvI77ctyX5\\/Xvuy\\/H8zqe13FfjvtyPC9qTGQvZC\\/UmKgxkb2QvVBjosZE9kL2Qo2JGhPZC9kLNSZqTGQvZC\\/UmI7nddyX474cz+t4Xv\\/Ax9fXb\\/DxDz2v474c9+V4Xsfz1pC9kL1QY6LGRPZC9kKNiRoT2QvZCzUmakxkL2Qv1JioMZG9kL1QYzqe13FfjvtyPK\\/jeR335Q+6L8fzOp7XcV+O+0q6xkSNieyF7IUaEzUmsheyF2pM1JjIXsheqDFRYyJ7IXuhxkSNiezluC\\/H8zqe13FfjvtyPK9\\/4OPr6zf4uC\\/P66f78tPz+um+\\/PS8jvvyt+7LD3U7kkb2QlWjbkfSyF6oatTtSBrZC1WNuh1JI3uhqlG3I2lkL1S1\\/899+Z\\/uy\\/P66b789Lx+ui8\\/Pa+f7stPz+un+\\/LT8\\/rpvvx\\/7svfyV6oatTtSBrZC1WNuh1JI3uhqlG3I2lkL1Q16nYkjeyFqkbd\\/p\\/78rfuy\\/O6Lz89r5\\/uy0\\/P66f78n99fH39Bh\\/HfTme1\\/G8jvty3JfjeR3P67gvx335BUlXNaoaSSNpVDWqGkkjaVQ1qhpJI2lUNaoaSSNpVDWqGkn7RffleF7H8zruy3Ffjud1PK\\/jvhz35Xhex\\/M67stxX47ndTyv474c9+V4XsfzOu7Lf1TVSSNpVDWqGkkjaVQ1qhpJI2lUNaoaSSNpVDWqGkkjaVS1X\\/S8jvty3JfjeR3P67gvx305ntfxvI77+vj6+g0+ntd9Oe7L8byO53Xcl+O+HM\\/reF7Hffk1SaOqUdVIGkmjqlHVSBpJo6pR1UgaSaOqUdVIGkmjqlHVfsXzui\\/HfTme1\\/G8jvty3JfjeR3P67gvx305ntfxvI77ctyX43kdz+u4L8d9OZ7Xr6lqJI2kUdWoaiSNpFHVqGokjaRR1ahqJI2kUdWoaiSNpFHV\\/rP78ryO53Xcl+O+HM\\/reF7HfTnuy\\/G8juf9+Pr6DT6O53Xcl+O+HM\\/reF7HfTnuy\\/G8jud13Jf\\/qKqTRtKoalQ1kkbSqGpUNZJG0qhqVDWSRtKoalQ1kkbSqGq\\/6Hkd9+W4L8fzOp7XcV+O+3I8r+N5HffluC\\/H8zqe13FfjvtyPK\\/jeR335bgvvyDpqkZVI2kkjapGVSNpJI2qRlUjaSSNqkZVI2kkjapGVSNpv+i+HM\\/reF7HfTnuy\\/G8jud13JfjvhzP+\\/H19Rt83JfndTyv474c9+V4XsfzOu7LcV+O5\\/VrqhpJI2lUNaoaSSNpVDWqGkkjaVQ1qhpJI2lUNaoaSSNpVLX\\/7L48r+N5HffluC\\/H8zqe13FfjvtyPK\\/jeR335bgvx\\/M6ntdxX477cjyv43kd9+XXJI2qRlUjaSSNqkZVI2kkjapGVSNpJI2qRlUjaSSNqkZV+xXP674c9+V4XsfzOu7LcV+O53U8r+O+HPf18fX1G3wc9+V4XsfzOu7LcV+O53U8r+O+HPflFyRd1ahqJI2kUdWoaiSNpFHVqGokjaRR1ahqJI2kUdWoaiTtF92X43kdz+u4L8d9OZ7X8byO+3Lcl+N5Hc\\/ruC\\/HfTme1\\/G8jvty3JfjeR3P67gv\\/1FVJ42kUdWoaiSNpFHVqGokjaRR1ahqJI2kUdWoaiSNpFHVftHzOu7LcV+O53U8r+O+HPfleF7H8zru65O0\\/6uGn5L2Qw0\\/Je2HqvZD0n6oaj8k7e8k7e8k7e8k7e8k7e8k7Yeq9kPSfqjhp6T9UMNPSfuhhp+S9kMNPyXthxp+StoPVe2HpP2dpP2dpP2dpP2dpP2dpP1Q1X5I2g9V7Yek\\/VDDT0n7oYafkv7UmNkL2Qs1JmpMZC9kL9SYqDGRvZA0qhpVjaSRNKran1PVSBpJo6pR1Z43eyF7ocZEjYnsheyFGhM1JrIXshdqTNSYyF7IXqgxUWMieyF7ocZEVSNpJI2qRlUjaX9O0qhqVDWSRtKsGhM1JrIXshdqTNSYyF7IXqgxUWN+fH39Bh\\/UmMheyF6oMVFjInshe6HGRI2J7IWkUdWoaiSNpP0JSaOqUdVIGkmjqlFjInshe6HGRI2J7IXshRoTNSayF7IXakzUmMheyF6oMVFjInshe6FuR1UjaSSNqkZVJ+1fV9VIGkmjqlHVSBrZCzUmakxkL2Qv1JioMZG9kL1QY358ff0Gn+xVY6LGRPZC9kKNiRoT2QvZCzUmqhpJI2lUNaoaSftzkkZVo6qRNJJm1ZioMZG9kL1QY6LGRPZC9kKNiRoT2QvZCzUmakxkL2Qv1JioMZG9kDSqGlWNpJE0qtqfU9VIGkmjqlHVnjd7IXuhxkSNieyF7IUaEzUmshey18fX12\\/wQfZCjYkaE9kL2Qs1JmpMZC9kL9TtqGokjaRR1ajqpP3rqhpJI2lUNaoaSSN7ocZEjYnsheyFGhM1JrIXshdqTNSYyF7IXqgxUWMieyF7ocZEjYnshaRR1ahqJI2k\\/QlJo6pR1UgaSaOqUWMieyF7ocZEjYnsheyFGhM1JrLXx9fXb\\/CpMbMXshdqTNSYyF7IXqgxUWMieyFpVDWqGkkjaVS1P6eqkTSSRlWjqj1v9kL2Qo2JGhPZC9kLNSZqTGQvZC\\/UmKgxkb2QvVBjosZE9kL2Qo2JqkbSSBpVjapG0v6cpFHVqGokjaRZNSZqTGQvZC\\/UmKgxkb2QvVBjosb8+Pr6DT6oMZG9kL1QY6LGRPZC9kKNiRoT2QtJo6pR1UgaSfsTkkZVo6qRNJJGVaPGRPZC9kKNiRoT2QvZCzUmakxkL2Qv1JioMZG9kL1QY6LGRPZC9kLdjqpG0kgaVY2qTtq\\/rqqRNJJGVaOqkTSyF2pM1JjIXsheqDFRYyJ7IXuhxvz4+voNPtmrxkSNieyF7IUaEzUmsheyF2pMVDWSRtKoalQ1kvbnJI2qRlUjaSTNqjFRYyJ7IXuhxkSNieyF7IUaEzUmsheyF2pM1JjIXsheqDFRYyJ7IWlUNaoaSSNpVLU\\/p6qRNJJGVaOqPW\\/2QvZCjYkaE9kL2Qs1JmpMZC9kr4+vr9\\/gg+yFGhM1JrIXshdqTNSYyF7IXqjbUdVIGkmjqlHVSfvXVTWSRtKoalQ1kkb2Qo2JGhPZC9kLNSZqTGQvZC\\/UmKgxkb2QvVBjosZE9kL2Qo2JGhPZC0mjqlHVSBpJ+xOSRlWjqpE0kkZVo8ZE9kL2Qo2JGhPZC9kLNSZqTGSvj6+v3+BTY2YvZC\\/UmKgxkb2QvVBjosZE9kLSqGpUNZJG0qhqf05VI2kkjapGVXve7IXshRoTNSayF7IXakzUmMheyF6oMVFjInshe6HGRI2J7IXshRoTVY2kkTSqGlWNpP05SaOqUdVIGkmzakzUmMheyF6oMVFjInshe6HGRI358fX1G3xQYyJ7IXuhxkSNieyF7IUaEzUmsheSRlWjqpE0kvYnJI2qRlUjaSSNqkaNieyF7IUaEzUmsheyF2pM1JjIXsheqDFRYyJ7IXuhxkSNieyF7IW6HVWNpJE0qhpVnbR\\/XVUjaSSNqkZVI2lkL9SYqDGRvZC9UGOixkT2QvZCjfnx9fUbfLJXjYkaE9kL2Qs1JmpMZC9kL9SYqGokjaRR1ahqJO3PSRpVjapG0kiaVWOixkT2QvZCjYkaE9kL2Qs1JmpMZC9kL9SYqDGRvZC9UGOixkT2QtKoalQ1kkbSqGp\\/TlUjaSSNqkZVe97sheyFGhM1JrIXshdqTNSYyF7IXh9fX7\\/BB9kLNSZqTGQvZC\\/UmKgxkb2QvVC3o6qRNJJGVaOqk\\/avq2okjaRR1ahqJI3shRoTNSayF7IXakzUmMheyF6oMVFjInshe6HGRI2J7IXshRoTNSayF5JGVaOqkTSS9ickjapGVSNpJI2qRo2J7IXshRoTNSayF7IXakzUmMheH19fv8GnxsxeyF6oMVFjInshe6HGRI2J7IWkUdWoaiSNpFHV\\/pyqRtJIGlWNqva82QvZCzUmakxkL2Qv1JioMZG9kL1QY6LGRPZC9kKNiRoT2QvZCzUmqhpJI2lUNaoaSftzkkZVo6qRNJJm1ZioMZG9kL1QY6LGRPZC9kKNiRrz4+vrN\\/igxkT2QvZCjYkaE9kL2Qs1JmpMZC8kjapGVSNpJO1PSBpVjapG0kgaVY0aE9kL2Qs1JmpMZC9kL9SYqDGRvZC9UGOixkT2QvZCjYkaE9kL2Qt1O6oaSSNpVDWqOmn\\/uqpG0kgaVY2qRtLIXqgxUWMieyF7ocZEjYnsheyFGvPj6+s3+GSvGhM1JrIXshdqTNSYyF7IXqgxUdVIGkmjqlHVSNqfkzSqGlWNpJE0q8ZEjYnsheyFGhM1JrIXshdqTNSYyF7IXqgxUWMieyF7ocZEjYnshaRR1ahqJI2kUdX+nKpG0kgaVY2q9rzZC9kLNSZqTGQvZC\\/UmKgxkb2QvT6+vn6DD7IXakzUmMheyF6oMVFjInshe6FuR1UjaSSNqkZVJ+1fV9VIGkmjqlHVSBrZCzUmakxkL2Qv1JioMZG9kL1QY6LGRPZC9kKNiRoT2QvZCzUmakxkLySNqkZVI2kk7U9IGlWNqkbSSBpVjRoT2QvZCzUmakxkL2Qv1JioMZG9Pr6+foNPjZm9kL1QY6LGRPZC9kKNiRoT2QtJo6pR1UgaSaOq\\/TlVjaSRNKoaVe15sxeyF2pM1JjIXsheqDFRYyJ7IXuhxkSNieyF7IUaEzUmsheyF2pMVDWSRtKoalQ1kvbnJI2qRlUjaSTNqjFRYyJ7IXuhxkSNieyF7IUaEzXmx9fXb\\/BBjYnsheyFGhM1JrIXshdqTNSYyF5IGlWNqkbSSNqfkDSqGlWNpJE0qho1JrIXshdqTNSYyF7IXqgxUWMieyF7ocZEjYnsheyFGhM1JrIXshfqdlQ1kkbSqGpUddL+dVWNpJE0qhpVjaSRvVBjosZE9kL2Qo2JGhPZC9kLNebH19dv8MleNSZqTGQvZC\\/UmKgxkb2QvVBjoqqRNJJGVaOqkbQ\\/J2lUNaoaSSNpVo2JGhPZC9kLNSZqTGQvZC\\/UmKgxkb2QvVBjosZE9kL2Qo2JGhPZC0mjqlHVSBpJo6r9OVWNpJE0qhpV7XmzF7IXakzUmMheyF6oMVFjInshe318ff0Gn6qmHc+LGtNxX\\/7SjudFjem4L39pP1S1v1PVSVe1H5L2Q1X7IWk\\/VLUfkvZDVfshaT9UtR+SRlX7O1Xt\\/2nH86LGdNyXv7TjeVFjOu7LX9rxvKgxHfflL+14XtSYjvvyl3Y8L2pMx33536ra\\/1DVSfuhqv2QtB+q2g9J+6Gq\\/ZC0H6raD0n7oar9b1Xt79SYjvvyl3Y8L2pMx335SzueFzWm474+vr5+g4\\/ndV+O+3I8r+N5HffluC\\/H8zqe13Fffk3SqGpUNZJG0qhqVDWSRtKoalQ1kkbSqGpUNZJG0qhqVLVf8bzuy3Ffjud1PK\\/jvhz35Xhex\\/M67stxX47ndTyv474c9+V4XsfzOu7LcV+O5\\/VrqhpJI2lUNaoaSSNpVDWqGkkjaVQ1qhpJI2lUNaoaSSNpVLX\\/7L48r+N5HffluC\\/H8zqe13FfjvtyPK\\/jeT++vn6Dj+N5HffluC\\/H8zqe13FfjvtyPK\\/jeR335T+q6qSRNKoaVY2kkTSqGlWNpJE0qhpVjaSRNKoaVY2kkTSq2i96Xsd9Oe7L8byO53Xcl+O+HM\\/reF7HfTnuy\\/G8jud13JfjvhzP63hex3057ssvSLqqUdVIGkmjqlHVSBpJo6pR1UgaSaOqUdVIGkmjqlHVSNovui\\/H8zqe13FfjvtyPK\\/jeR335bgvx\\/N+fH39Bh\\/35Xkdz+u4L8d9OZ7X8byO+3Lcl+N5\\/ZqqRtJIGlWNqkbSSBpVjapG0kgaVY2qRtJIGlWNqkbSSBpV7T+7L8\\/reF7HfTnuy\\/G8jud13JfjvhzP63hex3057svxvI7nddyX474cz+t4Xsd9+TVJo6pR1UgaSaOqUdVIGkmjqlHVSBpJo6pR1UgaSaOqUdV+xfO6L8d9OZ7X8byO+3Lcl+N5Hc\\/ruC\\/HfX18ff0GH8d9OZ7X8byO+3Lcl+N5Hc\\/ruC\\/HffkFSVc1qhpJI2lUNaoaSSNpVDWqGkkjaVQ1qhpJI2lUNaoaSftF9+V4XsfzOu7LcV+O53U8r+O+HPfleF7H8zruy3Ffjud1PK\\/jvhz35Xhex\\/M67st\\/VNVJI2lUNaoaSSNpVDWqGkkjaVQ1qhpJI2lUNaoaSSNpVLVf9LyO+3Lcl+N5Hc\\/ruC\\/HfTme9\\/+0B8c4duA6AgAr6CspFnMdio+HUi7FutTyJ+1gjcXHGN5Jukq7T5vjy48ff8GX+8yhzaHdp92nzaHNod2n3afN4b9T9UHmB5kfVH1Q9UHmB5kfVH1Q9UHmB5kfVH1Q9UHmB5kfVH1Q9UHmB5kf\\/437zKHNod2n3afNoc2h3afdp82hzaHdp92nzaHNod2n3afNoc2h3ee\\/k\\/lB1QdVH2R+kPlB1QdVH2R+kPlB1QdVH2R+kPlB1QdVH2R+kPlB1QdVH2R+\\/N\\/mcJ92nzaHNod2n3afNoc2h3afdt+Xdp\\/fus9v3efbHL7d59scvt3nl+3bfX7Zvt3nl+3bfX7Zvt3n2xy+3efbHL7d57fu81v3+a37\\/NZ9fus+3+bw7T6\\/bN\\/u88v27T6\\/bN\\/u88v27T6\\/bN\\/u820O3+7zW\\/f5rfv8L1\\/+0H3aHNoc2n3afRnqbNTZyFjIWKizUWcjYyFjoc5GnY2MhYyFOht1NjIWMhbqbNTZyFjafdoc2hzafdp92hz+RXNo92n3aXNoc1R9MhYyFups1NnIWMhYqLNRZyNjIWOhzkadjYyFjIU6G3U2MhYyFupsbQ7tPu0+bQ5tDu0+f+DLjx9\\/wZd\\/bA7tPu0+bQ5tDu0+ZCzU2aizkbGQsVBno85GxkLGQp2NOhsZCxkLdTbqbGQsZCzU2aizkbG0+7Q5tDm0+7T7\\/Cvu0+bQ5tDu0+7T5kCdjYyFjIU6G3U2MhYyFups1NnIWMhYqLNRZyNjIWOhzkadjYyFjOU\\/Ptoc2n3afdoc2hzu8099+fHjL\\/jyh+bQ7tPu0+bQ5qj6ZCxkLNTZqLORsZCxUGejzkbGQsZCnY06GxkLGQt1NupsZCxkLNTZ2hzafdp92hzaHNp9\\/kX3aXNoc2j3afdlqLNRZyNjIWOhzkadjYyFjIU6G3U2MhYyFups1NnIWMhYqLNRZyNjafdpc2hzaPdp92lz+ANffvz4C778Y\\/dpc2hzaPdp92lzoM5GxkLGQp2NOhsZCxkLdTbqbGQsZCzU2aizkbGQsVBno85GxkLG8h8fbQ7tPu0+bQ5tDvf5\\/zeHdp92nzaHNod2HzIW6mzU2chYyFios1FnI2MhY6HORp2NjIWMhTobdTYyFjIW6mzU2chY2n3aHNoc2n3aff7Alx8\\/\\/oIvf+g+bQ5tDu0+7b4MdTbqbGQsZCzU2aizkbGQsVBno85GxkLGQp2NOhsZCxkLdTbqbGQs7T5tDm0O7T7tPm0O\\/6I5tPu0+7Q5tDmqPhkLGQt1NupsZCxkLNTZqLORsZCxUGejzkbGQsZCnY06GxkLGQt1tjaHdp92nzaHNod2nz\\/w5cePv+DLPzaHdp92nzaHNod2HzIW6mzU2chYyFios1FnI2MhY6HORp2NjIWMhTobdTYyFjIW6mzU2chY2n3aHNoc2n3aff4V92lzaHNo92n3aXOgzkbGQsZCnY06GxkLGQt1NupsZCxkLNTZqLORsZCxUGejzkbGQsbyHx9tDu0+7T5tDm0O9\\/mnvvz48Rd8+UNzaPdp92lzaHNUfTIWMhbqbNTZyFjIWKizUWcjYyFjoc5GnY2MhYyFOht1NjIWMhbqbG0O7T7tPm0ObQ7tPv+i+7Q5tDm0+7T7MtTZqLORsZCxUGejzkbGQsZCnY06GxkLGQt1NupsZCxkLNTZqLORsbT7tDm0ObT7tPu0OfyBLz9+\\/AVf\\/rH7tDm0ObT7tPu0OVBnI2MhY6HORp2NjIWMhTobdTYyFjIW6mzU2chYyFios1FnI2MhY\\/mPjzaHdp92nzaHNof7\\/P+bQ7tPu0+bQ5tDuw8ZC3U26mxkLGQs1Nmos5GxkLFQZ6PORsZCxkKdjTobGQsZC3U26mxkLO0+bQ5tDu0+7T5\\/4MuPH3\\/Blz90nzaHNod2n3ZfhjobdTYyFjIW6mzU2chYyFios1FnI2MhY6HORp2NjIWMhTobdTYylnafNoc2h3afdp82h3\\/RHNp92n3aHNocVZ+MhYyFOht1NjIWMhbqbNTZyFjIWKizUWcjYyFjoc5GnY2MhYyFOlubQ7tPu0+bQ5tDu88f+PLjx1\\/w5R+bQ7tPu0+bQ5tDuw8ZC3U26mxkLGQs1Nmos5GxkLFQZ6PORsZCxkKdjTobGQsZC3U26mxkLO0+bQ5tDu0+7T7\\/ivu0ObQ5tPu0+7Q5UGcjYyFjoc5GnY2MhYyFOht1NjIWMhbqbNTZyFjIWKizUWcjYyFj+Y+PNod2n3afNoc2h\\/v8U\\/8DG+AGC1n8CeIAAAAASUVORK5C\\\">\"},\"nodeType\":\"DOM\",\"type\":\"node\",\"instanceArgs\":{\"namespace\":\"html\",\"tag\":\"div\"},\"children\":[]},\"3901.9 FPS\"]}}}},\"children\":[{\"props\":{},\"nodeType\":\"ObservableNode\",\"type\":\"node\",\"instanceArgs\":{\"id\":\"8389343220521182478\",\"name\":\"obs-node\"},\"children\":[]}]}]},\n",
" window,\n",
" );\n",
" })()\n",
" </script>\n",
"</div>\n"
],
"text/plain": [
"(div { style=Dict(\"display\" => \"flex\", \"flex-direction\" => \"column\") }\n",
" (div { style=Dict(\"display\" => \"flex\", \"flex-direction\" => \"row\") }\n",
" Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Scope(Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[\"pattern\", Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :select), Any[], Dict{Symbol, Any}(:attributes => Dict{Union{String, Symbol}, Any}(Symbol(\"data-bind\") => \"options : options_js, value : index, optionsText: 'key', optionsValue: 'val', valueAllowUnset: true, optionsAfterRender: disablePlaceholder\")))], Dict{Symbol, Any}(:className => \"select \"))], Dict{Symbol, Any}(:style => Dict(\"display\" => \"flex\", \"flex-direction\" => \"column\"))), Dict{String, Tuple{AbstractObservable, Union{Nothing, Bool}}}(\"options_js\" => (Observable(OrderedDict[OrderedDict{String, Any}(\"key\" => \"escher diamonds\", \"val\" => 1, \"id\" => \"idP2A2492n\"), OrderedDict{String, Any}(\"key\" => \"herring bone\", \"val\" => 2, \"id\" => \"idGvV3LPO0\"), OrderedDict{String, Any}(\"key\" => \"twill\", \"val\" => 3, \"id\" => \"idqPOMuM30\")]), nothing), \"index\" => (Observable{Any}(3), nothing)), Set{String}(), nothing, Asset[Asset(\"js\", \"knockout\", \"/home/ec2-user/.julia/packages/Knockout/HReiN/src/../assets/knockout.js\"), Asset(\"js\", \"knockout_punches\", \"/home/ec2-user/.julia/packages/Knockout/HReiN/src/../assets/knockout_punches.js\"), Asset(\"js\", nothing, \"/home/ec2-user/.julia/packages/InteractBase/Qhvxg/src/../assets/all.js\"), Asset(\"css\", nothing, \"/home/ec2-user/.julia/packages/InteractBase/Qhvxg/src/../assets/style.css\"), Asset(\"css\", nothing, \"/home/ec2-user/.julia/packages/Interact/PENUy/src/../assets/bulma_confined.min.css\")], Dict{Any, Any}(\"options_js\" => Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"options_js\\\"]()) ? (this.valueFromJulia[\\\"options_js\\\"]=true, this.model[\\\"options_js\\\"](val)) : undefined})\")], \"index\" => Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"index\\\"]()) ? (this.valueFromJulia[\\\"index\\\"]=true, this.model[\\\"index\\\"](val)) : undefined})\")]), WebIO.ConnectionPool(Channel{Any}(32), Set{AbstractConnection}(), Condition(Base.InvasiveLinkedList{Task}(Task (runnable) @0x00007fa4033f7b00, Task (runnable) @0x00007fa4033f7b00), Base.AlwaysLockedST(1))), WebIO.JSString[WebIO.JSString(\"function () {\\n var handler = (function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init: function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n });\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n });\\n ko.applyBindingsToNode(\\n element,\\n {\\n value: stringified,\\n valueUpdate: allBindings.get('valueUpdate'),\\n },\\n context,\\n );\\n }\\n };\\n var json_data = {\\\"options_js\\\":WebIO.getval({\\\"name\\\":\\\"options_js\\\",\\\"scope\\\":\\\"17793473433762440457\\\",\\\"id\\\":\\\"9012372748421963558\\\",\\\"type\\\":\\\"observable\\\"}),\\\"index\\\":WebIO.getval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"17793473433762440457\\\",\\\"id\\\":\\\"15310099648419870144\\\",\\\"type\\\":\\\"observable\\\"})};\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n [this[\\\"disablePlaceholder\\\"]=function(option, item) {\\n ko.applyBindingsToNode(option, {disable: item.val == 0}, item);\\n}\\n]\\n \\n [this[\\\"options_js\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"options_js\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"options_js\\\",\\\"scope\\\":\\\"17793473433762440457\\\",\\\"id\\\":\\\"9012372748421963558\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"options_js\\\"]=false}),self),this[\\\"index\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"index\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"17793473433762440457\\\",\\\"id\\\":\\\"15310099648419870144\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"index\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n);\\n (WebIO.importBlock({\\\"data\\\":[{\\\"name\\\":\\\"knockout\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\\\"},{\\\"name\\\":\\\"knockout_punches\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\\\"}],\\\"type\\\":\\\"async_block\\\"})).then((imports) => handler.apply(this, imports));\\n}\\n\")])], Dict{Symbol, Any}(:className => \"field interact-widget\"))\n",
" Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Scope(Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :label), Any[\"pink\"], Dict{Symbol, Any}(:className => \"interact \", :style => Dict{Any, Any}(:padding => \"5px 10px 0px 10px\")))], Dict{Symbol, Any}(:className => \"interact-flex-row-left\")), Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :input), Any[], Dict{Symbol, Any}(:max => 101, :min => 1, :attributes => Dict{Any, Any}(:type => \"range\", Symbol(\"data-bind\") => \"numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}\", \"orient\" => \"horizontal\"), :step => 1, :className => \"slider slider is-fullwidth\", :style => Dict{Any, Any}()))], Dict{Symbol, Any}(:className => \"interact-flex-row-center\")), Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :p), Any[], Dict{Symbol, Any}(:attributes => Dict(\"data-bind\" => \"text: formatted_val\")))], Dict{Symbol, Any}(:className => \"interact-flex-row-right\"))], Dict{Symbol, Any}(:className => \"interact-flex-row interact-widget\")), Dict{String, Tuple{AbstractObservable, Union{Nothing, Bool}}}(\"changes\" => (Observable(0), nothing), \"index\" => (Observable{Any}(41), nothing)), Set{String}(), nothing, Asset[Asset(\"js\", \"knockout\", \"/home/ec2-user/.julia/packages/Knockout/HReiN/src/../assets/knockout.js\"), Asset(\"js\", \"knockout_punches\", \"/home/ec2-user/.julia/packages/Knockout/HReiN/src/../assets/knockout_punches.js\"), Asset(\"js\", nothing, \"/home/ec2-user/.julia/packages/InteractBase/Qhvxg/src/../assets/all.js\"), Asset(\"css\", nothing, \"/home/ec2-user/.julia/packages/InteractBase/Qhvxg/src/../assets/style.css\"), Asset(\"css\", nothing, \"/home/ec2-user/.julia/packages/Interact/PENUy/src/../assets/bulma_confined.min.css\")], Dict{Any, Any}(\"changes\" => Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\")], \"index\" => Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"index\\\"]()) ? (this.valueFromJulia[\\\"index\\\"]=true, this.model[\\\"index\\\"](val)) : undefined})\")]), WebIO.ConnectionPool(Channel{Any}(32), Set{AbstractConnection}(), Condition(Base.InvasiveLinkedList{Task}(Task (runnable) @0x00007fa4042908b0, Task (runnable) @0x00007fa4042908b0), Base.AlwaysLockedST(1))), WebIO.JSString[WebIO.JSString(\"function () {\\n var handler = (function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init: function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n });\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n });\\n ko.applyBindingsToNode(\\n element,\\n {\\n value: stringified,\\n valueUpdate: allBindings.get('valueUpdate'),\\n },\\n context,\\n );\\n }\\n };\\n var json_data = {\\\"formatted_vals\\\":[\\\"0.0\\\",\\\"0.01\\\",\\\"0.02\\\",\\\"0.03\\\",\\\"0.04\\\",\\\"0.05\\\",\\\"0.06\\\",\\\"0.07\\\",\\\"0.08\\\",\\\"0.09\\\",\\\"0.1\\\",\\\"0.11\\\",\\\"0.12\\\",\\\"0.13\\\",\\\"0.14\\\",\\\"0.15\\\",\\\"0.16\\\",\\\"0.17\\\",\\\"0.18\\\",\\\"0.19\\\",\\\"0.2\\\",\\\"0.21\\\",\\\"0.22\\\",\\\"0.23\\\",\\\"0.24\\\",\\\"0.25\\\",\\\"0.26\\\",\\\"0.27\\\",\\\"0.28\\\",\\\"0.29\\\",\\\"0.3\\\",\\\"0.31\\\",\\\"0.32\\\",\\\"0.33\\\",\\\"0.34\\\",\\\"0.35\\\",\\\"0.36\\\",\\\"0.37\\\",\\\"0.38\\\",\\\"0.39\\\",\\\"0.4\\\",\\\"0.41\\\",\\\"0.42\\\",\\\"0.43\\\",\\\"0.44\\\",\\\"0.45\\\",\\\"0.46\\\",\\\"0.47\\\",\\\"0.48\\\",\\\"0.49\\\",\\\"0.5\\\",\\\"0.51\\\",\\\"0.52\\\",\\\"0.53\\\",\\\"0.54\\\",\\\"0.55\\\",\\\"0.56\\\",\\\"0.57\\\",\\\"0.58\\\",\\\"0.59\\\",\\\"0.6\\\",\\\"0.61\\\",\\\"0.62\\\",\\\"0.63\\\",\\\"0.64\\\",\\\"0.65\\\",\\\"0.66\\\",\\\"0.67\\\",\\\"0.68\\\",\\\"0.69\\\",\\\"0.7\\\",\\\"0.71\\\",\\\"0.72\\\",\\\"0.73\\\",\\\"0.74\\\",\\\"0.75\\\",\\\"0.76\\\",\\\"0.77\\\",\\\"0.78\\\",\\\"0.79\\\",\\\"0.8\\\",\\\"0.81\\\",\\\"0.82\\\",\\\"0.83\\\",\\\"0.84\\\",\\\"0.85\\\",\\\"0.86\\\",\\\"0.87\\\",\\\"0.88\\\",\\\"0.89\\\",\\\"0.9\\\",\\\"0.91\\\",\\\"0.92\\\",\\\"0.93\\\",\\\"0.94\\\",\\\"0.95\\\",\\\"0.96\\\",\\\"0.97\\\",\\\"0.98\\\",\\\"0.99\\\",\\\"1.0\\\"],\\\"changes\\\":WebIO.getval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"6421628563252511446\\\",\\\"id\\\":\\\"11967926291637671493\\\",\\\"type\\\":\\\"observable\\\"}),\\\"index\\\":WebIO.getval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"6421628563252511446\\\",\\\"id\\\":\\\"9168432472548671126\\\",\\\"type\\\":\\\"observable\\\"})};\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"formatted_val\\\"]=ko.computed( function(){\\n return this.formatted_vals()[parseInt(this.index())-(1)];\\n }\\n,this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"6421628563252511446\\\",\\\"id\\\":\\\"11967926291637671493\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"index\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"index\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"6421628563252511446\\\",\\\"id\\\":\\\"9168432472548671126\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"index\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n);\\n (WebIO.importBlock({\\\"data\\\":[{\\\"name\\\":\\\"knockout\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\\\"},{\\\"name\\\":\\\"knockout_punches\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\\\"}],\\\"type\\\":\\\"async_block\\\"})).then((imports) => handler.apply(this, imports));\\n}\\n\")])], Dict{Symbol, Any}(:className => \"field interact-widget\")))\n",
" (div { style=Dict(\"display\" => \"flex\", \"flex-direction\" => \"row\") }\n",
" Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Scope(Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :label), Any[\"n\"], Dict{Symbol, Any}(:className => \"interact \", :style => Dict{Any, Any}(:padding => \"5px 10px 0px 10px\")))], Dict{Symbol, Any}(:className => \"interact-flex-row-left\")), Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :input), Any[], Dict{Symbol, Any}(:max => 400, :min => 50, :attributes => Dict{Any, Any}(:type => \"range\", Symbol(\"data-bind\") => \"numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}\", \"orient\" => \"horizontal\"), :step => 1, :className => \"slider slider is-fullwidth\", :style => Dict{Any, Any}()))], Dict{Symbol, Any}(:className => \"interact-flex-row-center\")), Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :p), Any[], Dict{Symbol, Any}(:attributes => Dict(\"data-bind\" => \"text: formatted_val\")))], Dict{Symbol, Any}(:className => \"interact-flex-row-right\"))], Dict{Symbol, Any}(:className => \"interact-flex-row interact-widget\")), Dict{String, Tuple{AbstractObservable, Union{Nothing, Bool}}}(\"changes\" => (Observable(0), nothing), \"index\" => (Observable(200), nothing)), Set{String}(), nothing, Asset[Asset(\"js\", \"knockout\", \"/home/ec2-user/.julia/packages/Knockout/HReiN/src/../assets/knockout.js\"), Asset(\"js\", \"knockout_punches\", \"/home/ec2-user/.julia/packages/Knockout/HReiN/src/../assets/knockout_punches.js\"), Asset(\"js\", nothing, \"/home/ec2-user/.julia/packages/InteractBase/Qhvxg/src/../assets/all.js\"), Asset(\"css\", nothing, \"/home/ec2-user/.julia/packages/InteractBase/Qhvxg/src/../assets/style.css\"), Asset(\"css\", nothing, \"/home/ec2-user/.julia/packages/Interact/PENUy/src/../assets/bulma_confined.min.css\")], Dict{Any, Any}(\"changes\" => Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\")], \"index\" => Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"index\\\"]()) ? (this.valueFromJulia[\\\"index\\\"]=true, this.model[\\\"index\\\"](val)) : undefined})\")]), WebIO.ConnectionPool(Channel{Any}(32), Set{AbstractConnection}(), Condition(Base.InvasiveLinkedList{Task}(Task (runnable) @0x00007fa404290d00, Task (runnable) @0x00007fa404290d00), Base.AlwaysLockedST(1))), WebIO.JSString[WebIO.JSString(\"function () {\\n var handler = (function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init: function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n });\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n });\\n ko.applyBindingsToNode(\\n element,\\n {\\n value: stringified,\\n valueUpdate: allBindings.get('valueUpdate'),\\n },\\n context,\\n );\\n }\\n };\\n var json_data = {\\\"formatted_vals\\\":[\\\"50\\\",\\\"51\\\",\\\"52\\\",\\\"53\\\",\\\"54\\\",\\\"55\\\",\\\"56\\\",\\\"57\\\",\\\"58\\\",\\\"59\\\",\\\"60\\\",\\\"61\\\",\\\"62\\\",\\\"63\\\",\\\"64\\\",\\\"65\\\",\\\"66\\\",\\\"67\\\",\\\"68\\\",\\\"69\\\",\\\"70\\\",\\\"71\\\",\\\"72\\\",\\\"73\\\",\\\"74\\\",\\\"75\\\",\\\"76\\\",\\\"77\\\",\\\"78\\\",\\\"79\\\",\\\"80\\\",\\\"81\\\",\\\"82\\\",\\\"83\\\",\\\"84\\\",\\\"85\\\",\\\"86\\\",\\\"87\\\",\\\"88\\\",\\\"89\\\",\\\"90\\\",\\\"91\\\",\\\"92\\\",\\\"93\\\",\\\"94\\\",\\\"95\\\",\\\"96\\\",\\\"97\\\",\\\"98\\\",\\\"99\\\",\\\"100\\\",\\\"101\\\",\\\"102\\\",\\\"103\\\",\\\"104\\\",\\\"105\\\",\\\"106\\\",\\\"107\\\",\\\"108\\\",\\\"109\\\",\\\"110\\\",\\\"111\\\",\\\"112\\\",\\\"113\\\",\\\"114\\\",\\\"115\\\",\\\"116\\\",\\\"117\\\",\\\"118\\\",\\\"119\\\",\\\"120\\\",\\\"121\\\",\\\"122\\\",\\\"123\\\",\\\"124\\\",\\\"125\\\",\\\"126\\\",\\\"127\\\",\\\"128\\\",\\\"129\\\",\\\"130\\\",\\\"131\\\",\\\"132\\\",\\\"133\\\",\\\"134\\\",\\\"135\\\",\\\"136\\\",\\\"137\\\",\\\"138\\\",\\\"139\\\",\\\"140\\\",\\\"141\\\",\\\"142\\\",\\\"143\\\",\\\"144\\\",\\\"145\\\",\\\"146\\\",\\\"147\\\",\\\"148\\\",\\\"149\\\",\\\"150\\\",\\\"151\\\",\\\"152\\\",\\\"153\\\",\\\"154\\\",\\\"155\\\",\\\"156\\\",\\\"157\\\",\\\"158\\\",\\\"159\\\",\\\"160\\\",\\\"161\\\",\\\"162\\\",\\\"163\\\",\\\"164\\\",\\\"165\\\",\\\"166\\\",\\\"167\\\",\\\"168\\\",\\\"169\\\",\\\"170\\\",\\\"171\\\",\\\"172\\\",\\\"173\\\",\\\"174\\\",\\\"175\\\",\\\"176\\\",\\\"177\\\",\\\"178\\\",\\\"179\\\",\\\"180\\\",\\\"181\\\",\\\"182\\\",\\\"183\\\",\\\"184\\\",\\\"185\\\",\\\"186\\\",\\\"187\\\",\\\"188\\\",\\\"189\\\",\\\"190\\\",\\\"191\\\",\\\"192\\\",\\\"193\\\",\\\"194\\\",\\\"195\\\",\\\"196\\\",\\\"197\\\",\\\"198\\\",\\\"199\\\",\\\"200\\\",\\\"201\\\",\\\"202\\\",\\\"203\\\",\\\"204\\\",\\\"205\\\",\\\"206\\\",\\\"207\\\",\\\"208\\\",\\\"209\\\",\\\"210\\\",\\\"211\\\",\\\"212\\\",\\\"213\\\",\\\"214\\\",\\\"215\\\",\\\"216\\\",\\\"217\\\",\\\"218\\\",\\\"219\\\",\\\"220\\\",\\\"221\\\",\\\"222\\\",\\\"223\\\",\\\"224\\\",\\\"225\\\",\\\"226\\\",\\\"227\\\",\\\"228\\\",\\\"229\\\",\\\"230\\\",\\\"231\\\",\\\"232\\\",\\\"233\\\",\\\"234\\\",\\\"235\\\",\\\"236\\\",\\\"237\\\",\\\"238\\\",\\\"239\\\",\\\"240\\\",\\\"241\\\",\\\"242\\\",\\\"243\\\",\\\"244\\\",\\\"245\\\",\\\"246\\\",\\\"247\\\",\\\"248\\\",\\\"249\\\",\\\"250\\\",\\\"251\\\",\\\"252\\\",\\\"253\\\",\\\"254\\\",\\\"255\\\",\\\"256\\\",\\\"257\\\",\\\"258\\\",\\\"259\\\",\\\"260\\\",\\\"261\\\",\\\"262\\\",\\\"263\\\",\\\"264\\\",\\\"265\\\",\\\"266\\\",\\\"267\\\",\\\"268\\\",\\\"269\\\",\\\"270\\\",\\\"271\\\",\\\"272\\\",\\\"273\\\",\\\"274\\\",\\\"275\\\",\\\"276\\\",\\\"277\\\",\\\"278\\\",\\\"279\\\",\\\"280\\\",\\\"281\\\",\\\"282\\\",\\\"283\\\",\\\"284\\\",\\\"285\\\",\\\"286\\\",\\\"287\\\",\\\"288\\\",\\\"289\\\",\\\"290\\\",\\\"291\\\",\\\"292\\\",\\\"293\\\",\\\"294\\\",\\\"295\\\",\\\"296\\\",\\\"297\\\",\\\"298\\\",\\\"299\\\",\\\"300\\\",\\\"301\\\",\\\"302\\\",\\\"303\\\",\\\"304\\\",\\\"305\\\",\\\"306\\\",\\\"307\\\",\\\"308\\\",\\\"309\\\",\\\"310\\\",\\\"311\\\",\\\"312\\\",\\\"313\\\",\\\"314\\\",\\\"315\\\",\\\"316\\\",\\\"317\\\",\\\"318\\\",\\\"319\\\",\\\"320\\\",\\\"321\\\",\\\"322\\\",\\\"323\\\",\\\"324\\\",\\\"325\\\",\\\"326\\\",\\\"327\\\",\\\"328\\\",\\\"329\\\",\\\"330\\\",\\\"331\\\",\\\"332\\\",\\\"333\\\",\\\"334\\\",\\\"335\\\",\\\"336\\\",\\\"337\\\",\\\"338\\\",\\\"339\\\",\\\"340\\\",\\\"341\\\",\\\"342\\\",\\\"343\\\",\\\"344\\\",\\\"345\\\",\\\"346\\\",\\\"347\\\",\\\"348\\\",\\\"349\\\",\\\"350\\\",\\\"351\\\",\\\"352\\\",\\\"353\\\",\\\"354\\\",\\\"355\\\",\\\"356\\\",\\\"357\\\",\\\"358\\\",\\\"359\\\",\\\"360\\\",\\\"361\\\",\\\"362\\\",\\\"363\\\",\\\"364\\\",\\\"365\\\",\\\"366\\\",\\\"367\\\",\\\"368\\\",\\\"369\\\",\\\"370\\\",\\\"371\\\",\\\"372\\\",\\\"373\\\",\\\"374\\\",\\\"375\\\",\\\"376\\\",\\\"377\\\",\\\"378\\\",\\\"379\\\",\\\"380\\\",\\\"381\\\",\\\"382\\\",\\\"383\\\",\\\"384\\\",\\\"385\\\",\\\"386\\\",\\\"387\\\",\\\"388\\\",\\\"389\\\",\\\"390\\\",\\\"391\\\",\\\"392\\\",\\\"393\\\",\\\"394\\\",\\\"395\\\",\\\"396\\\",\\\"397\\\",\\\"398\\\",\\\"399\\\",\\\"400\\\"],\\\"changes\\\":WebIO.getval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"16390296998199410164\\\",\\\"id\\\":\\\"1542716100066106341\\\",\\\"type\\\":\\\"observable\\\"}),\\\"index\\\":WebIO.getval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"16390296998199410164\\\",\\\"id\\\":\\\"1228369563091848844\\\",\\\"type\\\":\\\"observable\\\"})};\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"formatted_val\\\"]=ko.computed( function(){\\n return this.formatted_vals()[parseInt(this.index())-(50)];\\n }\\n,this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"16390296998199410164\\\",\\\"id\\\":\\\"1542716100066106341\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"index\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"index\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"16390296998199410164\\\",\\\"id\\\":\\\"1228369563091848844\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"index\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n);\\n (WebIO.importBlock({\\\"data\\\":[{\\\"name\\\":\\\"knockout\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\\\"},{\\\"name\\\":\\\"knockout_punches\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\\\"}],\\\"type\\\":\\\"async_block\\\"})).then((imports) => handler.apply(this, imports));\\n}\\n\")])], Dict{Symbol, Any}(:className => \"field interact-widget\"))\n",
" Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Scope(Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :label), Any[\"widen\"], Dict{Symbol, Any}(:className => \"interact \", :style => Dict{Any, Any}(:padding => \"5px 10px 0px 10px\")))], Dict{Symbol, Any}(:className => \"interact-flex-row-left\")), Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :input), Any[], Dict{Symbol, Any}(:max => 5, :min => 1, :attributes => Dict{Any, Any}(:type => \"range\", Symbol(\"data-bind\") => \"numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}\", \"orient\" => \"horizontal\"), :step => 1, :className => \"slider slider is-fullwidth\", :style => Dict{Any, Any}()))], Dict{Symbol, Any}(:className => \"interact-flex-row-center\")), Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :p), Any[], Dict{Symbol, Any}(:attributes => Dict(\"data-bind\" => \"text: formatted_val\")))], Dict{Symbol, Any}(:className => \"interact-flex-row-right\"))], Dict{Symbol, Any}(:className => \"interact-flex-row interact-widget\")), Dict{String, Tuple{AbstractObservable, Union{Nothing, Bool}}}(\"changes\" => (Observable(0), nothing), \"index\" => (Observable(2), nothing)), Set{String}(), nothing, Asset[Asset(\"js\", \"knockout\", \"/home/ec2-user/.julia/packages/Knockout/HReiN/src/../assets/knockout.js\"), Asset(\"js\", \"knockout_punches\", \"/home/ec2-user/.julia/packages/Knockout/HReiN/src/../assets/knockout_punches.js\"), Asset(\"js\", nothing, \"/home/ec2-user/.julia/packages/InteractBase/Qhvxg/src/../assets/all.js\"), Asset(\"css\", nothing, \"/home/ec2-user/.julia/packages/InteractBase/Qhvxg/src/../assets/style.css\"), Asset(\"css\", nothing, \"/home/ec2-user/.julia/packages/Interact/PENUy/src/../assets/bulma_confined.min.css\")], Dict{Any, Any}(\"changes\" => Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\")], \"index\" => Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"index\\\"]()) ? (this.valueFromJulia[\\\"index\\\"]=true, this.model[\\\"index\\\"](val)) : undefined})\")]), WebIO.ConnectionPool(Channel{Any}(32), Set{AbstractConnection}(), Condition(Base.InvasiveLinkedList{Task}(Task (runnable) @0x00007fa404291150, Task (runnable) @0x00007fa404291150), Base.AlwaysLockedST(1))), WebIO.JSString[WebIO.JSString(\"function () {\\n var handler = (function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init: function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n });\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n });\\n ko.applyBindingsToNode(\\n element,\\n {\\n value: stringified,\\n valueUpdate: allBindings.get('valueUpdate'),\\n },\\n context,\\n );\\n }\\n };\\n var json_data = {\\\"formatted_vals\\\":[\\\"1\\\",\\\"2\\\",\\\"3\\\",\\\"4\\\",\\\"5\\\"],\\\"changes\\\":WebIO.getval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"8719906774623054284\\\",\\\"id\\\":\\\"12466371226688110599\\\",\\\"type\\\":\\\"observable\\\"}),\\\"index\\\":WebIO.getval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"8719906774623054284\\\",\\\"id\\\":\\\"2305981125209828267\\\",\\\"type\\\":\\\"observable\\\"})};\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"formatted_val\\\"]=ko.computed( function(){\\n return this.formatted_vals()[parseInt(this.index())-(1)];\\n }\\n,this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"8719906774623054284\\\",\\\"id\\\":\\\"12466371226688110599\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"index\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"index\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"8719906774623054284\\\",\\\"id\\\":\\\"2305981125209828267\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"index\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n);\\n (WebIO.importBlock({\\\"data\\\":[{\\\"name\\\":\\\"knockout\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\\\"},{\\\"name\\\":\\\"knockout_punches\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\\\"}],\\\"type\\\":\\\"async_block\\\"})).then((imports) => handler.apply(this, imports));\\n}\\n\")])], Dict{Symbol, Any}(:className => \"field interact-widget\"))\n",
" Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Scope(Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :label), Any[\"pattern size\"], Dict{Symbol, Any}(:className => \"interact \", :style => Dict{Any, Any}(:padding => \"5px 10px 0px 10px\")))], Dict{Symbol, Any}(:className => \"interact-flex-row-left\")), Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :input), Any[], Dict{Symbol, Any}(:max => 20, :min => 2, :attributes => Dict{Any, Any}(:type => \"range\", Symbol(\"data-bind\") => \"numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}\", \"orient\" => \"horizontal\"), :step => 1, :className => \"slider slider is-fullwidth\", :style => Dict{Any, Any}()))], Dict{Symbol, Any}(:className => \"interact-flex-row-center\")), Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :p), Any[], Dict{Symbol, Any}(:attributes => Dict(\"data-bind\" => \"text: formatted_val\")))], Dict{Symbol, Any}(:className => \"interact-flex-row-right\"))], Dict{Symbol, Any}(:className => \"interact-flex-row interact-widget\")), Dict{String, Tuple{AbstractObservable, Union{Nothing, Bool}}}(\"changes\" => (Observable(0), nothing), \"index\" => (Observable(10), nothing)), Set{String}(), nothing, Asset[Asset(\"js\", \"knockout\", \"/home/ec2-user/.julia/packages/Knockout/HReiN/src/../assets/knockout.js\"), Asset(\"js\", \"knockout_punches\", \"/home/ec2-user/.julia/packages/Knockout/HReiN/src/../assets/knockout_punches.js\"), Asset(\"js\", nothing, \"/home/ec2-user/.julia/packages/InteractBase/Qhvxg/src/../assets/all.js\"), Asset(\"css\", nothing, \"/home/ec2-user/.julia/packages/InteractBase/Qhvxg/src/../assets/style.css\"), Asset(\"css\", nothing, \"/home/ec2-user/.julia/packages/Interact/PENUy/src/../assets/bulma_confined.min.css\")], Dict{Any, Any}(\"changes\" => Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\")], \"index\" => Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"index\\\"]()) ? (this.valueFromJulia[\\\"index\\\"]=true, this.model[\\\"index\\\"](val)) : undefined})\")]), WebIO.ConnectionPool(Channel{Any}(32), Set{AbstractConnection}(), Condition(Base.InvasiveLinkedList{Task}(Task (runnable) @0x00007fa4042915a0, Task (runnable) @0x00007fa4042915a0), Base.AlwaysLockedST(1))), WebIO.JSString[WebIO.JSString(\"function () {\\n var handler = (function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init: function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n });\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n });\\n ko.applyBindingsToNode(\\n element,\\n {\\n value: stringified,\\n valueUpdate: allBindings.get('valueUpdate'),\\n },\\n context,\\n );\\n }\\n };\\n var json_data = {\\\"formatted_vals\\\":[\\\"2\\\",\\\"3\\\",\\\"4\\\",\\\"5\\\",\\\"6\\\",\\\"7\\\",\\\"8\\\",\\\"9\\\",\\\"10\\\",\\\"11\\\",\\\"12\\\",\\\"13\\\",\\\"14\\\",\\\"15\\\",\\\"16\\\",\\\"17\\\",\\\"18\\\",\\\"19\\\",\\\"20\\\"],\\\"changes\\\":WebIO.getval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"3297936426233922109\\\",\\\"id\\\":\\\"17735567067144936912\\\",\\\"type\\\":\\\"observable\\\"}),\\\"index\\\":WebIO.getval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"3297936426233922109\\\",\\\"id\\\":\\\"17063079403512140393\\\",\\\"type\\\":\\\"observable\\\"})};\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"formatted_val\\\"]=ko.computed( function(){\\n return this.formatted_vals()[parseInt(this.index())-(2)];\\n }\\n,this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"3297936426233922109\\\",\\\"id\\\":\\\"17735567067144936912\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"index\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"index\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"3297936426233922109\\\",\\\"id\\\":\\\"17063079403512140393\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"index\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n);\\n (WebIO.importBlock({\\\"data\\\":[{\\\"name\\\":\\\"knockout\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\\\"},{\\\"name\\\":\\\"knockout_punches\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\\\"}],\\\"type\\\":\\\"async_block\\\"})).then((imports) => handler.apply(this, imports));\\n}\\n\")])], Dict{Symbol, Any}(:className => \"field interact-widget\")))\n",
" (div { style=Dict(\"display\" => \"flex\", \"flex-direction\" => \"row\") }\n",
" Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Scope(Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :input), Any[], Dict{Symbol, Any}(:attributes => Dict{Any, Any}(:type => \"checkbox\", Symbol(\"data-bind\") => \"checked: value, valueUpdate: 'change', event: {change: function (){this.changes(this.changes()+1)}}\"), :id => \"##1304\", :className => \"is-checkradio \", :style => Dict{Any, Any}())), Node{WebIO.DOM}(WebIO.DOM(:html, :label), Any[\"zoom?\"], Dict{Symbol, Any}(:attributes => Dict{SubString{String}, SubString{String}}(\"className\" => \"\", \"for\" => \"##1304\")))], Dict{Symbol, Any}(:className => \"field interact-widget\")), Dict{String, Tuple{AbstractObservable, Union{Nothing, Bool}}}(\"changes\" => (Observable(0), nothing), \"value\" => (Observable(false), nothing)), Set{String}(), nothing, Asset[Asset(\"js\", \"knockout\", \"/home/ec2-user/.julia/packages/Knockout/HReiN/src/../assets/knockout.js\"), Asset(\"js\", \"knockout_punches\", \"/home/ec2-user/.julia/packages/Knockout/HReiN/src/../assets/knockout_punches.js\"), Asset(\"js\", nothing, \"/home/ec2-user/.julia/packages/InteractBase/Qhvxg/src/../assets/all.js\"), Asset(\"css\", nothing, \"/home/ec2-user/.julia/packages/InteractBase/Qhvxg/src/../assets/style.css\"), Asset(\"css\", nothing, \"/home/ec2-user/.julia/packages/Interact/PENUy/src/../assets/bulma_confined.min.css\")], Dict{Any, Any}(\"changes\" => Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\")], \"value\" => Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"value\\\"]()) ? (this.valueFromJulia[\\\"value\\\"]=true, this.model[\\\"value\\\"](val)) : undefined})\")]), WebIO.ConnectionPool(Channel{Any}(32), Set{AbstractConnection}(), Condition(Base.InvasiveLinkedList{Task}(Task (runnable) @0x00007fa404d3db60, Task (runnable) @0x00007fa404d3db60), Base.AlwaysLockedST(1))), WebIO.JSString[WebIO.JSString(\"function () {\\n var handler = (function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init: function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n });\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n });\\n ko.applyBindingsToNode(\\n element,\\n {\\n value: stringified,\\n valueUpdate: allBindings.get('valueUpdate'),\\n },\\n context,\\n );\\n }\\n };\\n var json_data = {\\\"changes\\\":WebIO.getval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"583368204563914709\\\",\\\"id\\\":\\\"7859593449642051670\\\",\\\"type\\\":\\\"observable\\\"}),\\\"value\\\":WebIO.getval({\\\"name\\\":\\\"value\\\",\\\"scope\\\":\\\"583368204563914709\\\",\\\"id\\\":\\\"16162686986319869081\\\",\\\"type\\\":\\\"observable\\\"})};\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n \\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"583368204563914709\\\",\\\"id\\\":\\\"7859593449642051670\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"value\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"value\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"value\\\",\\\"scope\\\":\\\"583368204563914709\\\",\\\"id\\\":\\\"16162686986319869081\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"value\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n);\\n (WebIO.importBlock({\\\"data\\\":[{\\\"name\\\":\\\"knockout\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\\\"},{\\\"name\\\":\\\"knockout_punches\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\\\"}],\\\"type\\\":\\\"async_block\\\"})).then((imports) => handler.apply(this, imports));\\n}\\n\")])], Dict{Symbol, Any}(:className => \"field interact-widget\"))\n",
" Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Scope(Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :label), Any[\"zoom i\"], Dict{Symbol, Any}(:className => \"interact \", :style => Dict{Any, Any}(:padding => \"5px 10px 0px 10px\")))], Dict{Symbol, Any}(:className => \"interact-flex-row-left\")), Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :input), Any[], Dict{Symbol, Any}(:max => 101, :min => 1, :attributes => Dict{Any, Any}(:type => \"range\", Symbol(\"data-bind\") => \"numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}\", \"orient\" => \"horizontal\"), :step => 1, :className => \"slider slider is-fullwidth\", :style => Dict{Any, Any}()))], Dict{Symbol, Any}(:className => \"interact-flex-row-center\")), Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :p), Any[], Dict{Symbol, Any}(:attributes => Dict(\"data-bind\" => \"text: formatted_val\")))], Dict{Symbol, Any}(:className => \"interact-flex-row-right\"))], Dict{Symbol, Any}(:className => \"interact-flex-row interact-widget\")), Dict{String, Tuple{AbstractObservable, Union{Nothing, Bool}}}(\"changes\" => (Observable(0), nothing), \"index\" => (Observable{Any}(51), nothing)), Set{String}(), nothing, Asset[Asset(\"js\", \"knockout\", \"/home/ec2-user/.julia/packages/Knockout/HReiN/src/../assets/knockout.js\"), Asset(\"js\", \"knockout_punches\", \"/home/ec2-user/.julia/packages/Knockout/HReiN/src/../assets/knockout_punches.js\"), Asset(\"js\", nothing, \"/home/ec2-user/.julia/packages/InteractBase/Qhvxg/src/../assets/all.js\"), Asset(\"css\", nothing, \"/home/ec2-user/.julia/packages/InteractBase/Qhvxg/src/../assets/style.css\"), Asset(\"css\", nothing, \"/home/ec2-user/.julia/packages/Interact/PENUy/src/../assets/bulma_confined.min.css\")], Dict{Any, Any}(\"changes\" => Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\")], \"index\" => Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"index\\\"]()) ? (this.valueFromJulia[\\\"index\\\"]=true, this.model[\\\"index\\\"](val)) : undefined})\")]), WebIO.ConnectionPool(Channel{Any}(32), Set{AbstractConnection}(), Condition(Base.InvasiveLinkedList{Task}(Task (runnable) @0x00007fa40493e850, Task (runnable) @0x00007fa40493e850), Base.AlwaysLockedST(1))), WebIO.JSString[WebIO.JSString(\"function () {\\n var handler = (function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init: function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n });\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n });\\n ko.applyBindingsToNode(\\n element,\\n {\\n value: stringified,\\n valueUpdate: allBindings.get('valueUpdate'),\\n },\\n context,\\n );\\n }\\n };\\n var json_data = {\\\"formatted_vals\\\":[\\\"0.0\\\",\\\"0.01\\\",\\\"0.02\\\",\\\"0.03\\\",\\\"0.04\\\",\\\"0.05\\\",\\\"0.06\\\",\\\"0.07\\\",\\\"0.08\\\",\\\"0.09\\\",\\\"0.1\\\",\\\"0.11\\\",\\\"0.12\\\",\\\"0.13\\\",\\\"0.14\\\",\\\"0.15\\\",\\\"0.16\\\",\\\"0.17\\\",\\\"0.18\\\",\\\"0.19\\\",\\\"0.2\\\",\\\"0.21\\\",\\\"0.22\\\",\\\"0.23\\\",\\\"0.24\\\",\\\"0.25\\\",\\\"0.26\\\",\\\"0.27\\\",\\\"0.28\\\",\\\"0.29\\\",\\\"0.3\\\",\\\"0.31\\\",\\\"0.32\\\",\\\"0.33\\\",\\\"0.34\\\",\\\"0.35\\\",\\\"0.36\\\",\\\"0.37\\\",\\\"0.38\\\",\\\"0.39\\\",\\\"0.4\\\",\\\"0.41\\\",\\\"0.42\\\",\\\"0.43\\\",\\\"0.44\\\",\\\"0.45\\\",\\\"0.46\\\",\\\"0.47\\\",\\\"0.48\\\",\\\"0.49\\\",\\\"0.5\\\",\\\"0.51\\\",\\\"0.52\\\",\\\"0.53\\\",\\\"0.54\\\",\\\"0.55\\\",\\\"0.56\\\",\\\"0.57\\\",\\\"0.58\\\",\\\"0.59\\\",\\\"0.6\\\",\\\"0.61\\\",\\\"0.62\\\",\\\"0.63\\\",\\\"0.64\\\",\\\"0.65\\\",\\\"0.66\\\",\\\"0.67\\\",\\\"0.68\\\",\\\"0.69\\\",\\\"0.7\\\",\\\"0.71\\\",\\\"0.72\\\",\\\"0.73\\\",\\\"0.74\\\",\\\"0.75\\\",\\\"0.76\\\",\\\"0.77\\\",\\\"0.78\\\",\\\"0.79\\\",\\\"0.8\\\",\\\"0.81\\\",\\\"0.82\\\",\\\"0.83\\\",\\\"0.84\\\",\\\"0.85\\\",\\\"0.86\\\",\\\"0.87\\\",\\\"0.88\\\",\\\"0.89\\\",\\\"0.9\\\",\\\"0.91\\\",\\\"0.92\\\",\\\"0.93\\\",\\\"0.94\\\",\\\"0.95\\\",\\\"0.96\\\",\\\"0.97\\\",\\\"0.98\\\",\\\"0.99\\\",\\\"1.0\\\"],\\\"changes\\\":WebIO.getval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"11648503266979113828\\\",\\\"id\\\":\\\"14584266772959987325\\\",\\\"type\\\":\\\"observable\\\"}),\\\"index\\\":WebIO.getval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"11648503266979113828\\\",\\\"id\\\":\\\"1189174022244805994\\\",\\\"type\\\":\\\"observable\\\"})};\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"formatted_val\\\"]=ko.computed( function(){\\n return this.formatted_vals()[parseInt(this.index())-(1)];\\n }\\n,this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"11648503266979113828\\\",\\\"id\\\":\\\"14584266772959987325\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"index\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"index\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"11648503266979113828\\\",\\\"id\\\":\\\"1189174022244805994\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"index\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n);\\n (WebIO.importBlock({\\\"data\\\":[{\\\"name\\\":\\\"knockout\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\\\"},{\\\"name\\\":\\\"knockout_punches\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\\\"}],\\\"type\\\":\\\"async_block\\\"})).then((imports) => handler.apply(this, imports));\\n}\\n\")])], Dict{Symbol, Any}(:className => \"field interact-widget\"))\n",
" Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Scope(Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :label), Any[\"zoom j\"], Dict{Symbol, Any}(:className => \"interact \", :style => Dict{Any, Any}(:padding => \"5px 10px 0px 10px\")))], Dict{Symbol, Any}(:className => \"interact-flex-row-left\")), Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :input), Any[], Dict{Symbol, Any}(:max => 101, :min => 1, :attributes => Dict{Any, Any}(:type => \"range\", Symbol(\"data-bind\") => \"numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}\", \"orient\" => \"horizontal\"), :step => 1, :className => \"slider slider is-fullwidth\", :style => Dict{Any, Any}()))], Dict{Symbol, Any}(:className => \"interact-flex-row-center\")), Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :p), Any[], Dict{Symbol, Any}(:attributes => Dict(\"data-bind\" => \"text: formatted_val\")))], Dict{Symbol, Any}(:className => \"interact-flex-row-right\"))], Dict{Symbol, Any}(:className => \"interact-flex-row interact-widget\")), Dict{String, Tuple{AbstractObservable, Union{Nothing, Bool}}}(\"changes\" => (Observable(0), nothing), \"index\" => (Observable{Any}(51), nothing)), Set{String}(), nothing, Asset[Asset(\"js\", \"knockout\", \"/home/ec2-user/.julia/packages/Knockout/HReiN/src/../assets/knockout.js\"), Asset(\"js\", \"knockout_punches\", \"/home/ec2-user/.julia/packages/Knockout/HReiN/src/../assets/knockout_punches.js\"), Asset(\"js\", nothing, \"/home/ec2-user/.julia/packages/InteractBase/Qhvxg/src/../assets/all.js\"), Asset(\"css\", nothing, \"/home/ec2-user/.julia/packages/InteractBase/Qhvxg/src/../assets/style.css\"), Asset(\"css\", nothing, \"/home/ec2-user/.julia/packages/Interact/PENUy/src/../assets/bulma_confined.min.css\")], Dict{Any, Any}(\"changes\" => Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\")], \"index\" => Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"index\\\"]()) ? (this.valueFromJulia[\\\"index\\\"]=true, this.model[\\\"index\\\"](val)) : undefined})\")]), WebIO.ConnectionPool(Channel{Any}(32), Set{AbstractConnection}(), Condition(Base.InvasiveLinkedList{Task}(Task (runnable) @0x00007fa404d3d430, Task (runnable) @0x00007fa404d3d430), Base.AlwaysLockedST(1))), WebIO.JSString[WebIO.JSString(\"function () {\\n var handler = (function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init: function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n });\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n });\\n ko.applyBindingsToNode(\\n element,\\n {\\n value: stringified,\\n valueUpdate: allBindings.get('valueUpdate'),\\n },\\n context,\\n );\\n }\\n };\\n var json_data = {\\\"formatted_vals\\\":[\\\"0.0\\\",\\\"0.01\\\",\\\"0.02\\\",\\\"0.03\\\",\\\"0.04\\\",\\\"0.05\\\",\\\"0.06\\\",\\\"0.07\\\",\\\"0.08\\\",\\\"0.09\\\",\\\"0.1\\\",\\\"0.11\\\",\\\"0.12\\\",\\\"0.13\\\",\\\"0.14\\\",\\\"0.15\\\",\\\"0.16\\\",\\\"0.17\\\",\\\"0.18\\\",\\\"0.19\\\",\\\"0.2\\\",\\\"0.21\\\",\\\"0.22\\\",\\\"0.23\\\",\\\"0.24\\\",\\\"0.25\\\",\\\"0.26\\\",\\\"0.27\\\",\\\"0.28\\\",\\\"0.29\\\",\\\"0.3\\\",\\\"0.31\\\",\\\"0.32\\\",\\\"0.33\\\",\\\"0.34\\\",\\\"0.35\\\",\\\"0.36\\\",\\\"0.37\\\",\\\"0.38\\\",\\\"0.39\\\",\\\"0.4\\\",\\\"0.41\\\",\\\"0.42\\\",\\\"0.43\\\",\\\"0.44\\\",\\\"0.45\\\",\\\"0.46\\\",\\\"0.47\\\",\\\"0.48\\\",\\\"0.49\\\",\\\"0.5\\\",\\\"0.51\\\",\\\"0.52\\\",\\\"0.53\\\",\\\"0.54\\\",\\\"0.55\\\",\\\"0.56\\\",\\\"0.57\\\",\\\"0.58\\\",\\\"0.59\\\",\\\"0.6\\\",\\\"0.61\\\",\\\"0.62\\\",\\\"0.63\\\",\\\"0.64\\\",\\\"0.65\\\",\\\"0.66\\\",\\\"0.67\\\",\\\"0.68\\\",\\\"0.69\\\",\\\"0.7\\\",\\\"0.71\\\",\\\"0.72\\\",\\\"0.73\\\",\\\"0.74\\\",\\\"0.75\\\",\\\"0.76\\\",\\\"0.77\\\",\\\"0.78\\\",\\\"0.79\\\",\\\"0.8\\\",\\\"0.81\\\",\\\"0.82\\\",\\\"0.83\\\",\\\"0.84\\\",\\\"0.85\\\",\\\"0.86\\\",\\\"0.87\\\",\\\"0.88\\\",\\\"0.89\\\",\\\"0.9\\\",\\\"0.91\\\",\\\"0.92\\\",\\\"0.93\\\",\\\"0.94\\\",\\\"0.95\\\",\\\"0.96\\\",\\\"0.97\\\",\\\"0.98\\\",\\\"0.99\\\",\\\"1.0\\\"],\\\"changes\\\":WebIO.getval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"6277521831900828992\\\",\\\"id\\\":\\\"16587066451297687837\\\",\\\"type\\\":\\\"observable\\\"}),\\\"index\\\":WebIO.getval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"6277521831900828992\\\",\\\"id\\\":\\\"4759272475963708315\\\",\\\"type\\\":\\\"observable\\\"})};\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"formatted_val\\\"]=ko.computed( function(){\\n return this.formatted_vals()[parseInt(this.index())-(1)];\\n }\\n,this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"6277521831900828992\\\",\\\"id\\\":\\\"16587066451297687837\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"index\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"index\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"6277521831900828992\\\",\\\"id\\\":\\\"4759272475963708315\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"index\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n);\\n (WebIO.importBlock({\\\"data\\\":[{\\\"name\\\":\\\"knockout\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\\\"},{\\\"name\\\":\\\"knockout_punches\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\\\"}],\\\"type\\\":\\\"async_block\\\"})).then((imports) => handler.apply(this, imports));\\n}\\n\")])], Dict{Symbol, Any}(:className => \"field interact-widget\"))\n",
" Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Scope(Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :label), Any[\"radius\"], Dict{Symbol, Any}(:className => \"interact \", :style => Dict{Any, Any}(:padding => \"5px 10px 0px 10px\")))], Dict{Symbol, Any}(:className => \"interact-flex-row-left\")), Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :input), Any[], Dict{Symbol, Any}(:max => 80, :min => 10, :attributes => Dict{Any, Any}(:type => \"range\", Symbol(\"data-bind\") => \"numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}\", \"orient\" => \"horizontal\"), :step => 1, :className => \"slider slider is-fullwidth\", :style => Dict{Any, Any}()))], Dict{Symbol, Any}(:className => \"interact-flex-row-center\")), Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :p), Any[], Dict{Symbol, Any}(:attributes => Dict(\"data-bind\" => \"text: formatted_val\")))], Dict{Symbol, Any}(:className => \"interact-flex-row-right\"))], Dict{Symbol, Any}(:className => \"interact-flex-row interact-widget\")), Dict{String, Tuple{AbstractObservable, Union{Nothing, Bool}}}(\"changes\" => (Observable(0), nothing), \"index\" => (Observable(50), nothing)), Set{String}(), nothing, Asset[Asset(\"js\", \"knockout\", \"/home/ec2-user/.julia/packages/Knockout/HReiN/src/../assets/knockout.js\"), Asset(\"js\", \"knockout_punches\", \"/home/ec2-user/.julia/packages/Knockout/HReiN/src/../assets/knockout_punches.js\"), Asset(\"js\", nothing, \"/home/ec2-user/.julia/packages/InteractBase/Qhvxg/src/../assets/all.js\"), Asset(\"css\", nothing, \"/home/ec2-user/.julia/packages/InteractBase/Qhvxg/src/../assets/style.css\"), Asset(\"css\", nothing, \"/home/ec2-user/.julia/packages/Interact/PENUy/src/../assets/bulma_confined.min.css\")], Dict{Any, Any}(\"changes\" => Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\")], \"index\" => Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"index\\\"]()) ? (this.valueFromJulia[\\\"index\\\"]=true, this.model[\\\"index\\\"](val)) : undefined})\")]), WebIO.ConnectionPool(Channel{Any}(32), Set{AbstractConnection}(), Condition(Base.InvasiveLinkedList{Task}(Task (runnable) @0x00007fa404d3d880, Task (runnable) @0x00007fa404d3d880), Base.AlwaysLockedST(1))), WebIO.JSString[WebIO.JSString(\"function () {\\n var handler = (function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init: function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n });\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n });\\n ko.applyBindingsToNode(\\n element,\\n {\\n value: stringified,\\n valueUpdate: allBindings.get('valueUpdate'),\\n },\\n context,\\n );\\n }\\n };\\n var json_data = {\\\"formatted_vals\\\":[\\\"10\\\",\\\"11\\\",\\\"12\\\",\\\"13\\\",\\\"14\\\",\\\"15\\\",\\\"16\\\",\\\"17\\\",\\\"18\\\",\\\"19\\\",\\\"20\\\",\\\"21\\\",\\\"22\\\",\\\"23\\\",\\\"24\\\",\\\"25\\\",\\\"26\\\",\\\"27\\\",\\\"28\\\",\\\"29\\\",\\\"30\\\",\\\"31\\\",\\\"32\\\",\\\"33\\\",\\\"34\\\",\\\"35\\\",\\\"36\\\",\\\"37\\\",\\\"38\\\",\\\"39\\\",\\\"40\\\",\\\"41\\\",\\\"42\\\",\\\"43\\\",\\\"44\\\",\\\"45\\\",\\\"46\\\",\\\"47\\\",\\\"48\\\",\\\"49\\\",\\\"50\\\",\\\"51\\\",\\\"52\\\",\\\"53\\\",\\\"54\\\",\\\"55\\\",\\\"56\\\",\\\"57\\\",\\\"58\\\",\\\"59\\\",\\\"60\\\",\\\"61\\\",\\\"62\\\",\\\"63\\\",\\\"64\\\",\\\"65\\\",\\\"66\\\",\\\"67\\\",\\\"68\\\",\\\"69\\\",\\\"70\\\",\\\"71\\\",\\\"72\\\",\\\"73\\\",\\\"74\\\",\\\"75\\\",\\\"76\\\",\\\"77\\\",\\\"78\\\",\\\"79\\\",\\\"80\\\"],\\\"changes\\\":WebIO.getval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"6060898247771274187\\\",\\\"id\\\":\\\"11362687037668034639\\\",\\\"type\\\":\\\"observable\\\"}),\\\"index\\\":WebIO.getval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"6060898247771274187\\\",\\\"id\\\":\\\"17648499771395736347\\\",\\\"type\\\":\\\"observable\\\"})};\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"formatted_val\\\"]=ko.computed( function(){\\n return this.formatted_vals()[parseInt(this.index())-(10)];\\n }\\n,this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"6060898247771274187\\\",\\\"id\\\":\\\"11362687037668034639\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"index\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"index\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"6060898247771274187\\\",\\\"id\\\":\\\"17648499771395736347\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"index\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n);\\n (WebIO.importBlock({\\\"data\\\":[{\\\"name\\\":\\\"knockout\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"/assetserver/cd09890b3050a9b7ada1370baeed7ef4c4f019fe-knockout.js\\\"},{\\\"name\\\":\\\"knockout_punches\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"/assetserver/5ba63fc45c370c4d77f0bac98d0eb012d9bf3eb4-knockout_punches.js\\\"}],\\\"type\\\":\\\"async_block\\\"})).then((imports) => handler.apply(this, imports));\\n}\\n\")])], Dict{Symbol, Any}(:className => \"field interact-widget\")))\n",
" Observable(Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[RGB{Float32}[RGB{Float32}(1.0f0,0.7529412f0,0.79607844f0) RGB{Float32}(1.0f0,0.7529412f0,0.79607844f0) … RGB{Float32}(1.0f0,0.7529412f0,0.79607844f0) RGB{Float32}(1.0f0,0.7529412f0,0.79607844f0); RGB{Float32}(1.0f0,0.7529412f0,0.79607844f0) RGB{Float32}(1.0f0,0.7529412f0,0.79607844f0) … RGB{Float32}(1.0f0,0.7529412f0,0.79607844f0) RGB{Float32}(1.0f0,0.7529412f0,0.79607844f0); … ; RGB{Float32}(1.0f0,0.7529412f0,0.79607844f0) RGB{Float32}(1.0f0,0.7529412f0,0.79607844f0) … RGB{Float32}(1.0f0,0.7529412f0,0.79607844f0) RGB{Float32}(1.0f0,0.7529412f0,0.79607844f0); RGB{Float32}(1.0f0,0.7529412f0,0.79607844f0) RGB{Float32}(1.0f0,0.7529412f0,0.79607844f0) … RGB{Float32}(1.0f0,0.7529412f0,0.79607844f0) RGB{Float32}(1.0f0,0.7529412f0,0.79607844f0)], \"3901.9 FPS\"], Dict{Symbol, Any}(:style => Dict(\"display\" => \"flex\", \"flex-direction\" => \"column\")))))"
]
},
"execution_count": 170,
"metadata": {
"@webio": {
"kernelId": "6b3b3773-8c4e-423c-a4e6-30269ed0b779"
}
},
"output_type": "execute_result"
}
],
"source": [
"let \n",
" \n",
" img = CuArray{RGB{Float32}}(undef, 0,0)\n",
" tw = p -> twill\n",
" pattern = dropdown(Dict(\"twill\"=>tw, \"herring bone\" => herring, \"escher diamonds\" => escherDiamonds), value=tw, label=\"pattern\")\n",
" pink = slider(0:0.01:1, value=0.4, label=\"pink\")\n",
" n = slider(50:400, value=200, label=\"n\")\n",
" w = slider(1:5, value=2, label=\"widen\")\n",
" p = slider(2:20, value=10, label=\"pattern size\")\n",
" zi = slider(0:0.01:1, label=\"zoom i\")\n",
" zj = slider(0:0.01:1, label=\"zoom j\")\n",
" radius = slider(10:80, value=50, label=\"radius\")\n",
" z = checkbox(value=false, label=\"zoom?\")\n",
" reactive_img = map(pattern, pink, n,w, p, z, zi, zj, radius) do pattern, pink, n, w, p, z, zi, zj, radius\n",
" img = (n,n) == size(img) ? img : CuArray{RGB{Float32}}(undef, n,n)\n",
" \n",
" shader = pattern(p) |> 🌺(widen)(w) |> \n",
" 🌺(weave)(pink_yellow_grey_sett(p=pink) |> tartan) |>\n",
" 🌺(zoom)(center=Point(zi*n, zj*n), radius=radius, enabled=z) \n",
" \n",
" elapsed = CUDA.@timed @cuda threads=threads blocks=blocks(img) generate(shader, img)\n",
" vbox(img,\"$(round(1.0/elapsed.time, digits=1)) FPS\") \n",
" end\n",
" vbox(hbox(pattern,pink), \n",
" hbox(n,w, p),\n",
" hbox(z, zi, zj, radius), \n",
" reactive_img)\n",
"end"
]
},
{
"cell_type": "markdown",
"id": "ff77f7c3-2e73-4e7b-8efe-93853fcafd26",
"metadata": {},
"source": [
"### Future Topics\n",
"- I,J -> X,Y (derivatives)\n",
"- T\n",
"- Z\n",
"- noise\n",
"- games\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "24a09a1b-489c-4baa-bbf0-015f2d9d5a64",
"metadata": {},
"source": [
"### Issues\n",
"- Metal\n",
" - 10x slower\n",
" - invalid IR\n",
" - chtulhu help\n"
]
},
{
"cell_type": "markdown",
"id": "81c38abf-63d6-49d2-bb53-ebeed92af924",
"metadata": {
"tags": []
},
"source": [
"### Testing Utils"
]
},
{
"cell_type": "code",
"execution_count": 98,
"id": "af0412af-c36b-4734-bde1-1b26ebc5ff66",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"generate_cpu (generic function with 1 method)"
]
},
"execution_count": 98,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function generate_cpu(f, img)\n",
" r, c = size(img)\n",
" @Threads.threads for i=1:r\n",
" for j=1:c\n",
" @inbounds @inline img[i,j] = eltype(img)(f(i,j,r,c))\n",
" end\n",
" end\n",
" return\n",
"end \n",
" "
]
},
{
"cell_type": "code",
"execution_count": 144,
"id": "2c0469ea-f900-4405-b9d4-1a28d28d488a",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/html": [
"<img src=\"data:image/png;base64,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\">"
],
"text/plain": [
"200×200 Array{RGB{Float32},2} with eltype RGB{Float32}:\n",
" RGB{Float32}(1.0,0.0,0.0) … RGB{Float32}(0.0,0.0,0.0)\n",
" RGB{Float32}(1.0,0.0,0.0) RGB{Float32}(0.0,0.0,0.0)\n",
" RGB{Float32}(1.0,0.0,0.0) RGB{Float32}(0.0,0.0,0.0)\n",
" RGB{Float32}(1.0,0.0,0.0) RGB{Float32}(0.0,0.0,0.0)\n",
" RGB{Float32}(1.0,0.0,0.0) RGB{Float32}(0.0,0.0,0.0)\n",
" RGB{Float32}(1.0,0.0,0.0) … RGB{Float32}(0.0,0.0,0.0)\n",
" RGB{Float32}(1.0,0.0,0.0) RGB{Float32}(0.0,0.0,0.0)\n",
" RGB{Float32}(1.0,0.0,0.0) RGB{Float32}(1.0,0.0,0.0)\n",
" RGB{Float32}(0.972549,0.972549,1.0) RGB{Float32}(1.0,0.0,0.0)\n",
" RGB{Float32}(0.972549,0.972549,1.0) RGB{Float32}(1.0,0.0,0.0)\n",
" RGB{Float32}(0.972549,0.972549,1.0) … RGB{Float32}(1.0,0.0,0.0)\n",
" RGB{Float32}(1.0,0.0,0.0) RGB{Float32}(1.0,0.0,0.0)\n",
" RGB{Float32}(1.0,0.0,0.0) RGB{Float32}(1.0,0.0,0.0)\n",
" ⋮ ⋱ \n",
" RGB{Float32}(0.0,0.0,0.0) RGB{Float32}(1.0,0.0,0.0)\n",
" RGB{Float32}(0.0,0.0,0.0) RGB{Float32}(1.0,0.0,0.0)\n",
" RGB{Float32}(0.0,0.0,0.0) … RGB{Float32}(1.0,0.0,0.0)\n",
" RGB{Float32}(1.0,0.0,0.0) RGB{Float32}(0.0,0.0,0.0)\n",
" RGB{Float32}(1.0,0.0,0.0) RGB{Float32}(0.0,0.0,0.0)\n",
" RGB{Float32}(1.0,0.0,0.0) RGB{Float32}(0.0,0.0,0.0)\n",
" RGB{Float32}(1.0,0.0,0.0) RGB{Float32}(0.0,0.0,0.0)\n",
" RGB{Float32}(1.0,0.0,0.0) … RGB{Float32}(0.0,0.0,0.0)\n",
" RGB{Float32}(1.0,0.0,0.0) RGB{Float32}(0.0,0.0,0.0)\n",
" RGB{Float32}(1.0,0.0,0.0) RGB{Float32}(0.0,0.0,0.0)\n",
" RGB{Float32}(1.0,0.0,0.0) RGB{Float32}(0.0,0.0,0.0)\n",
" RGB{Float32}(0.0,0.0,0.0) RGB{Float32}(1.0,0.0,0.0)"
]
},
"execution_count": 144,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"let \n",
" n = 200\n",
" img = Array{RGB{Float32}}(undef, n,n)\n",
" shader = zoom(weave(widen(twill, 4), simpleColors))\n",
" generate_cpu(shader, img)\n",
" img\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c42a02d0-9c0d-41c9-8af9-4c26922b9b69",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"@webio": {
"lastCommId": "600b317d-3ccf-4d79-84bd-148799505dfb",
"lastKernelId": "6b3b3773-8c4e-423c-a4e6-30269ed0b779"
},
"kernelspec": {
"display_name": "Julia Up",
"language": "julia",
"name": "julia-1.8"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.8.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment