From d25cd4d4ec551f846d5b25cc14e73ed80c4aec31 Mon Sep 17 00:00:00 2001 From: sz Date: Tue, 29 Aug 2023 23:54:18 -0500 Subject: [PATCH 1/3] Progressive web app stuff --- web/icon-192x192.png | Bin 0 -> 21213 bytes web/icon-512x512.png | Bin 0 -> 50533 bytes web/index.html | 3 ++- web/pwa.json | 13 +++++++++++++ web/sw.js | 5 +++-- 5 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 web/icon-192x192.png create mode 100644 web/icon-512x512.png create mode 100644 web/pwa.json diff --git a/web/icon-192x192.png b/web/icon-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..e04cf26986c9c5b93a249f28d154ecf0487b28b1 GIT binary patch literal 21213 zcmXt;Q*fru)5h zM@KtIE?8erP0HBVM8{a&P*d7kGFdL!$k>S6!Cuf=NXNob(^}oiOvBtl#nMvB%8Gwf zU_{?MM9D!tL_fsX*3`<{(#qOS)zPtCy4}&z!PdqkK_{U>p}s<;!q?p2%gSw8e39=L zpJFhNRDi#WtCO#bx22D{hr7MKm%W?2mzB4NgL|}xr?H=(P_=3Gg8IBdq@rfHmbZ_m zcYr=;OtevO=!EX1d8n=VFOy(@hhm4KpdigG*UTi3#sB>APfkus@JdUOPD;`6P5(9OH=39fZ&_rSkd(IXw&z^ntXr<@o}DusJX9W2 zk(ptgn&IC4t1BxI+OK%&TiEC;v>Y<*p8v z4mCCgC$zQKH%1kFlwl)`bb+)(V z_Vg;ajgPmsRhqAvSn4VA4E0Tf1C6Jzc!G zs2z3myK-?U^zdM2DYtNYtMD{C<1%w&%RcSwe1FGhcPDgbCvR`3s`;XM@Ze}?x3&7N zrsw4N=rE(>^5XEM=Hx8x{5-bq{{Hs1=>D#{Hbj5zzbgUesw}Sp2p+AN|F1BXkq`yK zq3|XDE8rX@wOjxIY2beWmQ0I;``;mqtCXA=%puhG?g1@)aw{ZQg_ftyjSW1D9e|IHc6P7)b(+=;h`x{&=*Hf_q{63Et_E;6& zfjW8)v-$}i7znObFE5MbxnIFi-QN2z;|!dSCCvv{V`DDIG&)zG&lgwGRaFdd0MfzB zee=TM83z`vLxZlZmDNjZ&F9`?xj?Uc+DDexE2W^I&CBhTLc)1fs@{b}J z)%#lo%%RcvgF_y}^tB+XP<(2Zs3lhSOYymv#vvCIy!t+fROT#I535=q@}^wl_U3e& z-f%tk3-jEd%g^gJvmA?(*|Ls>;f z@H>~sgMpQwjM+H;i0t@!Gsn*3G2qyY#O|sTyawW5ego@qjyOJjPT(^?smd_{wz^+i z4~Ka|j?M-H)G%^BqvXK3I?wHp(eBNrH!VEU*K?m#LRJ~UK)8f4y3v}RH_sa|K%N1) zFzn7(Lc&7_!d8{Y8M9R2_VvbYN9*jMiKE&a*|J^$@7;S#xF0lesZS_b&qKC_fclo- zqlwSk{Nr}6q@JpbS7qD$;6UgazO8roNQc_dT<69Z1IC{80;hj-Q706%#%C1p$a_sJ znCx+u#=U6dxLI%EMlaC)_2MyQK9lByDof4IE24;Y}D3KVXNOfCS{^PxeHfw+Lya(H$f zx-(38y|wcgjF~*L^Ir#p;oNeMT%q7AB1nPmfQR3>(=jIrnUS$Btu6h)yKd_G-IPOO>hCpSbzwatef) zaBGmjOX%UdBVsY`6~+XYCyiJi>RAhH*?BESQ)0vN4Km<)`d9Hht(*5PmaB0HnsZi_ zl$6jk-$5_Gfj2l*SsVxLUrwxSL@pyZyZEFXw|kTITK=+H;mbAQK<(LRkbTIdSTRhKG(3o!Jj!>vA5~cEnuQJG22TanCUFPen4TymW z*U$9zyDlESCz6#RI^WMGT0XvG2054G;gph}rB#^_oi11nApvbPN}G<~qCcbI?^_+J zh=3cZ-ucHiSMBoON-dQ5?x-N{nrAB?9~tl7hjXZ!`eS;;(m%2a(@=zMaLXK6T0l?F z*hZU$#|@-U+0$j-+I-0XC(R(A?f9&U)LY~uW=FH$mz@6UTCD~Du%zR6vGDnp1Ti9x zCv0M>9WHng;=hnJzaI0ZPq~V&+pqow(Q4GqzXd-1S>|icOw1Gk^cTT)Y2hKHERj8A z7?%HxRpG8~H+(@qVlj!6B5E)sBuS$DV**-Db%bPiA_ehD9LX88fsV=w(`hLK0O0KA z8iD|+r;9)#Vm5aKEa!aw1{P{3iH9EC17i>3+)1p>G-RFxCUgJgG^@3?M$utyf5C(8 zdwOpr2a%0|q2=gGAxQ#xzMUc>NOKWG>8~<}knecqLF3*L z0?XCM1{d}v>cfb`8*Z(LLa)qw9P-YqZVdJ%7FZaj`%>P@Vo-bYdc!k^1hkwfN!fB; zm1JK>>V@n(w9Pn`F#1YD$+qJlQt$dw&)8)=zN^kYuqrufX(%x?19?m)0#;h*TotIt@UD*&V38|C7 zzeVz*<_>F^$|~Jy{xF@9NxTj3uPeXp`3hZWPuD4dC$z=9V><_Y3aF>Kb8NO;bMhh$ zld+0FpFMk(C3!o#)9Y1P0W)73RmF*nM!G!ow}1Cm>s4Ae{ELOFw>qzQMv+!vB@(C~mTDI?|a|L3t|A_D< z)V%_r5#cx#AT2@v;|c;~@;n9&q9bJVg5R)|fH@1-EmKEde! zhN$z7kMZPA>LEe;d2~zI?7Vx?g54l769JA~K!-vQ^QF`(6fcET2`m`IO#=^Y*$(g7 z52~ckl*1mKJ^njfU`t@K=t@gr`zb!-koS$Cwx4?y*6i(V?6u4e@{sE%(8s-N^AP92kSBS_4)w=^0Q@)Syfdj|)b3Q*nTiiHX z8rf>g%Q*vPfWI&Sc~P$SqY0A2!TUYdHlLjJ+tqNli%sg*mZDQuN2-UIv9z+=Q(19w zSXgnG3L0N^&{T7?hsW~wgW43m&CQ&oMI`#Msd3u4DDF_Mv$fVJ5|&jdC@58wzjNh( z=juJvOQ)v?A0Hg zapVWXWKHbqILg{ngBe2H0&5=kcvl)`%H-{spV7>wMJ`S=_$u$gqw10TDi1va&AYj3p{w~4_o{r*dSkaC zOy@mXD)4VL&#Js&d5YP_1%O`R9l`jo#?F9f*enT1Y*59ue)C|l$t_`<0dMF0eY3jZ zh#sb#tjf^P5JmpkUc-LNDJ80^tA z5%TVS7tS+}gRkjB%)pJK%h<#tXL=jXw08CQ{#J@_ul^okO}{~^!r|Kg_R3A?sU1s8 zicw#rlS#!_L`5E=zNO%GupP_pQtK8nuZ)C}9iJM67#=NFhX%SpU%kEMVWzzpCU1cP zxiRVoq`Eyh)OI7E+;j4oc(4%mcl;%AMooVxz@g+>mDBY5gnUoTm5U#vwM=~OZfn10 zTk{x6pZMd!_*X$~<~}Rz_phJl{l#YnrQ)nqq{{f5%KX@9RzK z*Yfxf>21^`j90nNfJW#~qH>-toS(K1<7-}fqVBc?c>jjg<5J~JsEoC^ZejK0#dN*Z zP_@<6(Q-K67o)A*e0t?G@}gUiMz$fu9&ApCk17m1#v&X{i5Y(j%#F+cT~P-wKwW+W zujJ|K{{EouWVgHFkZ@pSV7`5RwZg6lWgYBzeErTu!hh`>ctBTG27VUGTPAsSYKC}j zM<+cU@kMI|YLgEh{lxN1uhqoy=RqKOY#bca=!tX+7b9&ZJg|Ew1)fpa&CGgRa<*tp z7t z{+|8XDj@O39%m^Hf*{iK+QgFhA=XD8(Zg){FFuD5CsxUb%ZVhHBsPz2K=S`uF6k%;U1!!M{eK)Abt3qw{*Mq;WYVJV6}_=N(lH7)1=+!L@h-BqHSHa6u1S zUjDsuO~bv&mB0rPL<06+|AZ2LG8=WvrZ^x3FH}4 zW?OW5Za(5;qkUHkU5NQjv)9^Jij?%qQ@f9BtiiogK~@=7EL zR@G7Q1S8Uw5tW6V=3MN-;Msh6^VhdqCqKV~GOQhE-gn^Co-;B7gYY}d=9ONAF8*1K@z5$`q>j*U%P;_Mg`WkFWC_s`4^0y}G@d_|+wMcJ|+@_4&l4_qMtf zu?niHQ`Ad)^Clk3q~-g2dkK5}9*@6BX<1nr&O{;w`m_bs!doUL=>CoT{w>1jJ9rf} z>^Vjw72DF1J#4(cSMbcu@aDT;&vCSMvOPA+rBvpgtVgf;h%Zwi?O)$a~Lb9x$(weSc#lW;@?sTrqKdBL5H( z{IZJ;g*0%adXPJU;9&cH57yJ=e;iq_ga#Dt7>6p*!NcEu!TP;C8#4axj8J%nTM1yA zh!y2ypke>&iEwnB_@$EEWQPHEGh2eOT*z@7VzJ@jpg;T~r3(Jm zKqWw!D_iWIt^~vh0R_H$c?i|z3V58JD47ybzpX9DcpN`P=W>r{YJ*|=>$f^a?o0q2 z6BE)50(GKzmcNEP1&Rmz`x3mN^gIeEpcPI_`7C4rj~8_d8K|2l`FMFGj7J&R8kIAK#HP-E#!zzE<&- zl(qtya_eD@iV39{-Y*kHkgRV4FO~d@5C!qrt(-iAu!+F^wQlIaI2}PKNi4I}+|InD zq%<_7`z>T-rYo7tcKrVQLNKFf0RoBPN;fQ6Nn z3xsY|>;HoZMs0?YhICKiQUEPC_j(@&a9A^RGT}w|cdLVpTkxLOSNhknXj*G+$DCx% zUl2t+m63%D5EcaDUijsZyJN#aM!KK=oP8}HuN4ZM=blWkFXLAOMkIu2K4Ww>h=Qa3 z-B~&%H-GZsB9tenT><;2`(QR?!lNwC+IdR)f?WlO8rFc4Sc73)PTKm?RHc-oF(T)= znEYGV)i-f)fO!NtvhM=_Bq<%@I}+Lf=hvSHLq&B(Y?=4)hKAn_4V<=VcZpqJi5!`vhMwZ$ zqT-OZr1io2WZciLs6U2Z{0ZiTH_5LAoJb_=)>dT&p6MV`o@*`q`Nb-3eqx4ZbD~~( z?1`?x2t3awV#lD>35xXHz3>|48Oov}^I}}I7>KAqC~*9|gp{aSLW z63XAjwW{PKvvd*_9ipcSP!*qdvdE1pM!dU^ry_(l+z*7vU*Uau8Tg5bZ)MN$+v+_( zsh8UOCOFps`yJ%P-bZY7B8(=B3IG=1H(}(B)2lJ;aY4X9W2co%7*;mVmh1c4CzCA1 z`5dtKSqTm7h-4da10a87I6-Ivj^4@Ld|7rY;SnjPdHS6$w{y>-N}V58oUbp;EMPqm z(f;``!bYwps48_Ncf74!#kal40?(m@yeQ&){Ypzt;V-*jgFRgTHHJNo`Xxs=@hm9R zQa%ZTwyXPIOuDZDj1XuOVs2SW_m2p}1priX&cgb=`-nRU6({|Wb)1!OE4}MfM6GVL z^fWXSVY6ia{agrPABefUXTr5LaSqYvH(<{&_~HQAB0;pcXvCgi7%_if2Eb^B1w>Gq zNn`w86km1#mhFZQc)^oEA}p+mTp^6R+fzXfEG(>>U!{p*D)3^^y@e>8FrmVew^^ev zne`0(sLgX(fswwB8-pdNOWy<8jPiFG7;r^I^n4Xj4Y4CdS*Laa8VKKYv9XwWgfj@I zz<8;C|8Dtyd9jz6qWvC5O65Nnh<9T6*nKM4$L2NA$#w4gt^o*VkB&6xe4FKG;K#>z zVp=1Qp>)6rbc(Pa+ev*QWiP19>qZ!N6YcrIFXK`y&u{eud+JQXWj4Nss11uC>`mf# zfg_H{sovS~Fv13e0AVW8g2>Y8PM~9I8q9^ek|?@cjP!q|s;jAamp`h;d+|3o(BlBi zYR2w8$<#|K@yZaQb4>V@Be4kft!@?{i)LgGx`jn5EU($5iHV}7CgyG>oQM^53zvzejF*IAix$nrGhA zOF0OfEckd=7PVv(<99cX-emwGq1_%l^nGXEAg(zslJB_E+H7>Lq$v~xoKMXsEi=)! za#%G%IQ_o>ZY+|EWA#xY3OoI(k(cd(9k6Cc5V#~;iL%#&hMR!q3xLb}}| z~niOnx6qKT!UcH?nFrd`_v51A3=IS`W%P-R)IuB5AqYuiKY`DcGqioblQx zEKf6#jW@7zNs?LnP|YYlRi}~9tdW4_!|p<*hjpXKdf|iM0?F}3`j94t#*{Uaj9`p) z;NRfgKgA!x6k&kv862I<@_KIuY6Y=}5v*W#MdKa?iCLDiE(x*x;u#(Q1XUN1=E7p| znX+!e988Cq1gZS*{$K-&g}k~f2G1?;PK3J}s;aL4x&ZtKf=c1zfk{~E*jAUAq)CImL`q6#p_9| zXDH1!Y6oQo{lLU*nvGX!9EJFYGzh*fEb?(f@|joLKy?N8XLxWh9s>4T;XVTyGOOP( z(#`p(9P)&Q>Vma`08vvYHE`;bDSrV%!U zaVbND;^BMnwzl@iZ<2jEm|}2aA6)pRm|+|8Qr`j~O4La-V7EvN*%&W&Co-iYU_289 zl8K2)8u-C#0&-kiLL3U6 zrgqV$jn6DG6yShke_#(EKRpJor>Vwq6jgz5?1~!G0GJ)fB=IGlgC@4{s?VgeF%H&eZaW3p7rx$hhE-UfFkHA_GTsi zbT=F(#`wIZCU1HWmmJ;D+DY_hWX}+hjd{IB6d|3MfWgA`w{&X6t_I_xFNTOCoiMo-bx?qk(B6V&qElSne z3YGcYUse-^aQF-s?~?pSP2ryqI;xo8r@2~LS|`Nr7r8T`vG6XK^M0ZQD`Iog>2lO5 zKP9@Au`Fsm8df6D;|g8OVQl>cmw2h}yaj*CzCHS*>jpB%5HR4!_I4)V14#H_oIAOom$L{hZ86V9!W1= zAi@y1-&zY>Zbp%6Tb|9C+n4~DT80Uyqj_Ow{K45~eupD&vd5DZVt1$B3dwQo>Z2o5 zr-4d`c@jJ)LjE?bjoSk$nDpzD4!316SWX2cED6alNI=^<#Du#0y2EZ+9S;0aeCJ{W z^(SUGF_H!M5U(Y}9*{?cpNX!2C-b9jX_rxHI@VMT>`1Jn+~ zp5m8zrspoOR^7TfJ`2S&zF^MqhhY#B@C6n7w1#)ykcWXp!$+ag`ua_Vk&p`rbR#4B zbT#Aq{zgwS%W^132pBVi<-I`~E~}eAAM1G7ePodvmXU#{rwvC|$hnhs{y7rTM1@Er zM;n&+9dIBqTDmxvR6^#5UGPT{i%N8Op9NcePBJ>$1nT_E>jqwVV z;A}@l4gw@HsvOZN`Yzht?Og0r99!a%m>YpOaYzUtEE0?ea*rqqcAsvD0S5KNFv$?e zNYvv^3sp$_8xFC%JS}2%5ID`}Y0vbvIU!2o-^KRNg(z0?BV~ZExb;VFQ!`0|NgddZ zP}K0Gacy$T>Nvb8I7pl^^=*4AmSTz%QyIjgDJa6*bY)E6(W;stV@!Ler({ht&Q^Y) zj8%>dxZBm6>l*vr%+xkCU|;=FVXOilDBmb% zK)awvTWg{v8Wl+jEReu4g|>_gj*XG8A_P?65f`8uQ=l*WZUr2ID3sT+VR?G7hXt8a zuPk-!O%Nj^HSq@Cpk}4gAVG!6G80Jpxp;aBTC{gN_n1C4{CjE9Mz&ChLUNFl9+EjG zV>Lv_$bVzhj0#tn``FpMtMY#3_K#`yujD^SHOEPi zvu3l#wH{g-X(C|+%;;mbP9k{lRgs0)0l4_PRK*pb?TY5Pw*2*X>BNZ1B0_+OTv1|B zefB5sw{$!|f$t`Tvs%()JZxNA8@}(ii6}s+m_7x^o86|F5&oEON7Vr{1d8)LGoaaD zZFGYhRcj7L)$gmWPR^l2DA4NVqQdgB9hx^u4)AuJ3Sp4& zg)w&Z@fssPX9Kpz!+UHx-F@J&te9)ikXuo6WliTxsG&=NBaM%Q%I@bH>jMo0&AHA& z0LuB8tpH^w8GwW*NaR%g<4owhN{B=B54$4XoHin^w7s_1g{7Zz9}8Ol$B)plfh)&s zwbDk_bj^)-B1d$sm0e;fW7^vc#k%hQ4R>xVW>BZQplLkA3j>nY1n7dA)k4dpNcH|u z>ZoW22dQNY_~VR_7@B3OA7PJGdH7xV&aivqvnq==%i7r$^?k_6Oc7m=BGQhi?Iy;AYo}4l%QKwbphU2{ zIRb_;u%@<~qK~QU%gSFPYyJR&iXYlOMWnl2udqs0El>)N8kb3|7epR%2e7KRL(akYo}eOw-lU- zC>1t*Cge1}z8#pvHPvzqUU*qm^;ww<;0?P62Uns%wQ9Sfc|<|GLfTIE`URU!nKWApb)pSy5kl=u(z1uzgC zD114(Z#Z_kLIkqQ40v~7AvMx9Dj(?vL)`&tpa2jWDug3_97ZD~+d$z1GuVpwql%i( z29ELAmcQnRtQBz<6AKfde#5)X?3>y4DueK+w@Q)fo~^?!35|5DgWOcB**?3UoMjXP zSZTlmAi~K=fgNKS7yuFg0c{WftMmNi5+!lL0!3N$XF(?UL`magG5L&aNYkTGogY1z zXC2ZjJg|N=Ur|xP$54A`JRyZCWsEZNJ`HfTr0TUDI9Q)6svjBJNdMESM=;vKKoesX zZb=-?oN|PJ$&?0oi!BpL-?{ivHEAgJN}PfJ@Q`|X8S<#ljS;u=l}d^-JdfGpB{w=k znalJDVtqn@7aC9;8O@OMzDI2w&a@`4o3w{!hjD%rg7$FVi!_UeAenzDSE|JJG`eH+ zQ9+#^l|edZ|IVKuu`!<3Sl||GrT;syEMS#9=Oi2~5l!WnDv)`M1k3K$ zJwx<8u!Ba|Vj4;b_7s`;$32=D1x#2{Qd(7C%2Lp}15FtWf$m|#<%=F8V}L#~-iDu- z9+60k6{gK{Rq+lS#H`Li&)Z9Ng6zQ#a!Di+<$Imu_ff^aBHbiV&g`qNziy7p-|eL6 zcN|#~Ca-hP=*_qdFoMR_%0n{QBRas#R(-ry_ZPO-jQJ-STX8L8RbH9gjwjU{%%d$o zacqdY4~d)|EjGoLFe|kBL2QVCMS>MDdt&5BAncXKd zUNoaEcx@ilksy0|g~)V+M?*<)s52NF`;EVY*TH)^*1M?~o;KPnXF%9gi=l<8J80T4 z8<7319GtYFj(-%+|7bMLkK2=-+%)c2kAHxsw8@_VOZ_ZZkSY5_kP9tflQ*ziso5=W zB-!=Nvdd<~fKSY1&R|nAtZc7_rEH3DCyx!rGHmand01D?za}@hUK8{t%IfwG9(=FF zRbS^=7WbA4gS%AeK;LBE*ft>3eLK{^6jmB7lslnmv~rWOk+QidM4Mld=%wmwM6P;( zsChmc|E5F#ACyQif>`q(x+~}y(QB#K#64dkczt#K&E-gX8R3RYKIMI zNwTET)pQ>Pqs<6|{I$~d){cPxzS(&jg));>z=mmakr{zJ>N?K?YGRfOGy3=#Rni62ELl~Ktc{Kafk`F6cAgm-Mvw;GWX#H%gi)u}Y)UE%8gaWen11Qi;V~f|!~=kV(pjjCdnFyr)Jn1vk}l2t5h{}C zhB^c{uu#`P@yP^WVFMrEa0Q83G+Nw)6O$Iy&v(>$j2t6M$uu$2m34G7_mb(*U?Cp^ zZJMgmr&(&6QZ|QFqY5Vk^S{Pkbe5-l##Zp6EP;CQcbb6_Mi~ebRLoqzoY3he8Xr`tQ*1c*J)Q1U?QK1qd+)# zvZGckGrM|~m$x~N>>=WrU20TTRz|uH)m+*noD?!`83OmkA})&4c=YXXL|?Wu)H>-_ z2AQ%arCFWHn>Yp`V$|>i>cWQh#i2}q6HH^#xoUo&z}Z|43APGA!IHdsD$J=5V`SYn zez1P+r~NHy+5EejP?FT{5~}IbG>m?c32TcbBiF1=DS-HG(4q)E7;f5> zLmf{??AQ`VgM#A^8!RAB&fW8bl&bs#5E)Z7|0+};O$+_(%3Q%bkOh|u#UB7i{f~bM zT_Na`XW7J&ri=g={8W!T`tMEB4i7?CpM~wm5IHJxlU17U&iEC1Zwu>Gbyo<-pa}k5yiZ` zr&yVlhvFp(&UA=lVQY;@^=x9`&^?^JV>h;7uOd-PB||^c%FcF1;Q6h}fF6ZHpXg=2R)w?ik%Ckkpk=p&JP`( zF>4^F!}mg!a|dC7CMK zbyoiXDiAf1*U0p#bf{3Kv>N<76Z!XIVCfci3zP^W)U>U_L@Dl5)%zx11yKc41Alh` zf^L^&XBwt_v|`{Zt-q&S#md!7$wofivRV z0}9xjnciN)BoC$vvl>{%y}o2h)Ydu#(~_AuhYUn0_rn?$35j3tu`uq3hllP6u8`b) zP!?2>-1i#Q2Hm~j=clkJ!OlE!sBj~t5RgG!ky%;l(}{Z+JZp#7#TVjPzg0GfY&xJUo6Y7>J5jAVJ?d|XouAk0PZi6Le(@<@S3UnuU4 zsaHY#Ux}$`3i{G|u&lH48Djd0yfeg*!r4&ofex_W7!4W)Ysxz6Sw+J`QGypu1v2!c zTJgo;&rho@#;b{maI^kFu?iAWGLZx>T_a*H8AM_jrkc2)9uy@)2R<~$n^T5{7?K}& zSAKzm*DOWg0Av(x{c{*T@jwi%6@3XN2@1C0wVP-{n;|2UWN1PCMxHt5$kj45_~~C~ z!14I$<8tNZ4sy5nPF+*R9N|djVtG~zr2{@hiwNUn!l;~we(rd<5gd$8=cfc^TC9hp z6qubg1eCcbmXY(AGpomA05w!tfnZ=hv79;V-DDag3ll4=PV1auAihmGCY|Qt703?( zla;lnFD#72#^(G*m~=NN6d@EL$`)&{#W8ZD8dl}qHHnRbx>seSF7v4eg;0N}OiXL$U%XCe+ zxS*IKT(TmZkZ^KxDfc{I$n>N6O)6_uQD%rOE#tzYc<@SFvY`oPO+n(q`CENyJDOc0 z+ESuH!ev*wb8}Y_5viM?KcC%LL6t8%q(OKsSWu9`R8bUYB?+9-NjaGTDH6~W2qf_- zVL=!-%SUK%974&URcdAnmjh0TD`2 z8nW3y*0>lVNYBfnCI*zi3}#}kc@mudis@pB6CPHR2=Jakwv$vd13&ql@&nVsp!~?` zmQsP9tU%T*Si$2$_4OXp&s1_<($vJg1qo$p8ZbR$~ic;TqJ{%It7eNW^Ur zLPS>=f?J%KO+MP;L4Ak>phyS{3C{Z8)a_g;0ZJ!mAOSXs2o8%0$j*lAby?!Ef@@&6 z)eMHr2FsWR1F}P=lGxysuGF2>flChyX|;kRr^PBJ7gu76K-=^kEvCcl6u~^p_G#Owzoh5!* ziU){b3@HMUXo}?}X;1Uynbx^@X$<~Dl}D^TtUn%X8ih#z^TjW;c{*QwMEJl2f1qJM z8*rw3Qui3Lk=YE904Rn!+76|`drhDBQ_lGPJ^n!8L(t(v_|x5p4RuhGO#&=z6dD>D z3Rti35S#%%Yk(y%Sn-EiPY-oPXS zA4}(n>S$pE_t8?ZSNPgsUJR@;923qvKna@P|AoHAfkPS=;|r(v9UAnM?w42MJI+NN zmX?=ORKP|ZWU@OR6Tq5^mT?6yg29tLS2X5jg|*tbgy{PG?;}#1Nee?pc!*lJ2zGlWGt(P|lxPy4x9$arHBT z1G4@V9madvKpoVxh6`FSEkM%`&OCv8gL#3fk#$A}Md+RDEh^a&EoDVRLoXm4^cJ`%udrnNvs|Jv)PDgJl$JhlcEcwn zbqg#mj?XUcv8QI^v147rw6A(*F7mX`M;XR|H_w~kLRIG&Z3Tpg?e!04mN?GTkKZpou{XtrP-Sq7c}*BB!{vDIv`bx zRq>`<7Jn{wNP4~KbI@Kky@o*vIF3)=-Q7)#hD zh)^SD&>qOUA@j5xG?C`jg0Jm}-%x{np0EK<6eYL8VxZp22Az5liWLN&nRGWr&&@iG z0u(|*3;GSMegDsv-zD%Yo%-im1cH!cQr2iP&9rla10hf{pUDc_9AgrI*@1(wXUW-fapsG$kH|L z5pSF$wcAGcg(#RkHRXe%Qs@jxl8+}WCE9`|yCG(!%CV;K{@7_~?ru5tyHUOS6$@`I zEM-gwmM~#OJ~@h=d)~^OMKDu7IkiL)Qd7%_s|H)D!#H$_5l}>g1+|?Oe6KfT2`b#m zg#h9N9RZ?2#dHWxQLY}$)gTFUUvx%8>WR>nYmNf0MQWIol>MPj!vJ|MJLf3W0=JW( z>aIlfo$4>t=s*ffR+Z#%^C_T*3bE)EW||qZj6tq=ktWV3 zGT`GoiOTQ7SE6+`W*OBZgDMX#vC2dqN_ei9yxNz-sU#qBrtEKCR#F66QfJQhfWYZG z*Rykw54g!G(996c5jP})X-9I7{)gE13i8#N23_Zn|Fvabem!h)=d+Wt5&3zRK0c+W ztaB$VV8gryU-?~oOtWO`A>dP`OQh@RioEokUcXj7mpCoX(~_Eq+%`Re7Rbv4P^4hw z=s=-8igSFENw0?&Wp%H2^ACnz0L$FYOemmN%J_+$A;rl%4yRIXJqZmGi+sSOrY=u- zP3z6Fi64t!mdB+Lv7-N;#8z7}@Hn8Rr`6cuOYMU7&xQj`lUc?sG>7J*^eZty#%r#* z!)0$pYyplzd1wI=ps;6VX&?)x|CXxLmLp%=u%PPBr{@6YZ!0CqlndM3FDU~JSS;)Q z09nlgfR2cW+_X)V`G)_YR-^?OC@1kRi&gSp8v43nfY|M!K{TiZN84CtCn8jybhS1~ z$ML#QT5Fil99p8mf%Rbv6K$iJf}qOpO_)z>kau3xZ%-&P&$|FmwPW!lMX8i<1= zMNom>1vu4H6^skEd@ z0p9~h=BZgHCvB`JqA3y*c@^3jw0Y%|+dWf?R&(DdHy4~1_Euj{8X+Gc1YbIFAmg~W zLJyl5rokQ#4NL1-#shcK*XUTn18E}_JIw%>atGi&B}gE{{FiJ)asZs5Oe|Fhj|l|Q zC9{el7f^Cihu330vW8(Qz@3yjeGwZ|PJj!3;;ju9@VLE@N!w3F->aFC8p1Ja_=V{P zC&SA}ZtHZ&k&;UR{1Ik5Jj&4}cQt}ovswm`!;g)@%YY}P!=KV*zWk+f1ZW#nErNMD z^IZig?MmZP^|a*dZ{ZQ_x8i8E-pL|!ndpTF zv9+;`w$g9U3#w|$ga2}k!9pX%(J67{l!*{#CYo(m>jLg8RwJ<#-tK`v6Dqpj!I22L z8%%A-tn@bLb21cd8dm=%As)(nPx?-AaSH`hiqT^3f6|#H^8G@Bk|n)ns4hXFF3sEb zPX-b`M0{i=oz;8nWNcRa+kCy?g3a}R>Z4~g@G%c-s9a8#GY39f?Bi!JZSLh=H4<+^Zyyz3qmZDl%dc|m*E1GvQ z0Lad3pb)5d7{aQEeu^IeAPPuwMfzYB7Yj^Op|n-y0F)FJLFLI>i^u(ipD(1VsTgp0 zkC_ToS2^XhB`j5#4FI>xCrzRVEHOE>XUUSWSXgP?xN)QQ9I`h@)8>xo3Ueoel}ZKm7bV`hANm&Hw6(;RzVI-Q=FKvf4@0!FaRrNX=xE}#xVek zFi63?rhJkSDuEsYM8=qxYt7cu`b$6JNmoJJBp|?K-ce8GloVZZ^(ejB%A4=i)ZE*w zq5#j?z-vlcvse5w2avegG@R5oiVTdjN2|e8zP46gLzU%|CUG{EI(h%TrTpoU+PT zB!QykJT?aADyW!muGvriBLIr3v-FtDMk~UQLpBpIxAJlzR#Yj!$E@sEA+|38n`suT zy=!pdb)-6{x+UB6ObGSS78I)Kn*_j8#zqR+`6%_x3NnO;nqN4T;Sj z1(QgTJryU_Ac$KOG?@(y!1R#{1mHHs00z%e8a0~%m<|@8+=S}k9yOK8R9z;+^5I*^$z-%A)|iG|Su#OUao@dt zh&{r@u&J3$822~+#Ml4QQ&1Q=T4^>VC-!%WDii=9pd>z;qC0ln>`}}b0&x4@=3fDr z3Ir@CRA>Kb4#0fM0kuP{qVE~5AiMeAWO8*4?GY3e$5kr-4(^DcN$jkGnnr+#PUCU-;Fv@k=Zcp9Oqc|V7?_+J!IKA0QBd6<) z8a-VP4aq!GPF7ZKBw~Th74hE9%?*xUqGl6-GdCMGw>@t3!l9@jYrJogtb*bs%mOR% z*5T>t>N#(Mi4AsBCTc3ilXVSNj+tz{W%KsQa`4OF{$r2zrjMISLPQY&j(|O6fe9{E zM{7YV<}qvvTC-SF(p}CAkES|5>RQf2)6`U%#G1<32}pwB6Eq+K)aFezHm4i#&OExr zY_moUAIUX%-aJ%^&Ey)qDDB?8`{+?!5P07ti1X~feSIn3S&TG1w|fn zH4 zd%8}p**=-=i%v7yw^W+_$vDb8KRd;wz&30KixslV&{+=KGy=?5b zPl(R*Fa;&hAqD`_f?X{DoIbitmlZG2e(GqthVi(+j00c=kI+on3{y61xFI7IZQLk_ zJT1p4PQHwU+A>K|_b9(snm&~P=qbt0+fBpdWG78Q3?}cUS!CrPp|WzLXB+)}KYZO& zbHq4AfNYy5CnrY;+~9wbPg!o@Znjs#E2k>I_S9X51ndWJlt*Lu6m#=Q8hbTB^h0iA zL98(figJ^ggKPGwjL{u42KHhSB?YBXO0qyi_EV#j-c7T}s%)>>Y^-Xx{qOzp_hT?2 zJVH(zBP%DX<^}*Gr$guEJ^;WvY|q86Pah=!M=cd)6&Y%7ha7ZYL1V9*n&RBUZo>%@ z*gz2=1pU_vN=h8ScmUwTX#ZnCK9Z9)zKtFA=6!$vFCb7Dr#D*F(i0GtVG+3rZf-=x z#iQk9$J>?YD1#ZFW>w7H!HVt=V(_0sFBlLT(|k#*7(5^T?_N zKpbJPtR#tLW&4xZ^C-V&01za)0yY3A)4OhHA*oo;r2l=6~#$a413Oq!gV@UUr z7jg=tM=6dREepiM=gk{7Y^(}Su!7p5p>BH(7Ec{CIeL_r#AGMAc$BrE2Pk<^1Rlqf7| zcK#i#%aUl)b`p88##R{Y#quBQrmmjZ73NB!cHAW zmb)F^I~Vrfu9@;#&A!Q_QTy;RGtzkTB+?P%egLx5-1-5?Dq0@hP5OWO=y*BgfF=Ad zJA9g&&0Y<)p~e7kc?!#=WyqqTVC~*%qvrl|zl>>+=Ae)Dl(2)*kRt$x-PGVOph88E zm8a@pGj#aA%ai1WPq{p0#8mKS+$ZBUU*0!m%D&5+p`1hI+yFp!s0{}oJ7yUbS9)ui z$C4N^K#F~ViTCbx1Au)~;Gktp3gq1m57khUv-xL#9oD#IvICSf_QH{J1mN%&8nUwE zAU;SAdG?K>xw88%n-3rM+1JJ+ASAN*kTWJqeI_^eu!$`34p}5W7txcK8^d-7pb+U4 zQz1g2HdoD!MF9S%An_N=@oE|x^3odr{4XS%H%}G;l~*&dL7>sxhBEu7P8~V-3j*+k z+T@zc+xNkFBZ)%zVo9-mxZGRw)R?Y@FAp2R(6qY@n zP_pq5y18ErRg?M++Ojdb=gG=S%Z?d8o@l9|HgNE`apO>YY}{DWke&?k)=Yt}f?9eb z$>GMv^0IPsHE;?oVre61<2J@qlD(d+PRNeg?a71`=W{8!CQn9MO&%^gNLE@J;-&!x z{x-jq50RIXkz01u(sKyr9fJjz?S@XsYM2a_lb4qViziN+G!c&m3>-Of6#OaAn%q!% zoXN?vyvOy>;gWC5$PHnR2BRk671=~XY0xP2!;S6xh8cfdGjaNe0Wu)gVVils+3!Uh zKYj>^>A7q-Lch#&$g-omv6n!8y3NJHvV*7~Pn|xFAEypB`GTmn*9MVr`$C@8yrDRe zW~p)c@@9Ev|CD`TK62~u7o$I!K5paySy>oA%=q%=Q7nu@zxcy%`HLw%=Pg6#%{y%= zgExdRN0*JkVIGO2jT)6?X7~u%!3@D*WG|CVIcYh!y>imv(NLScZUFE#we9lE{ZlSq zmj8&$>*!Aa|Ko9kCL0e!poR_lH zhP3RUk74*Y8QH-M0Mi`8rh!*GHQsZ`kfTRIAjCM&}LY?ntb8Trqs=E}2Ni29i14ayFOs7Oc`K|f-Ggu|(xeSKRqr!w&v%w!z8!Dm`6!GMV|H?wD}$;&zbebPym#dp1gg# z%pYu)eJb@YXrGLb9z1x^zyZ=z_U#)6J^xIGzTvZ54gijlxzYm%4H`tWnRj}bob z>H8m0B?2&S2n-#7#sSQemL3lPpd96l{4ltE3Q$lE45Jihg+yb@XP+5wpCU74ywtz2 zffKMv`lCNUSjJ;xL2v8Jj*e%FG=hr3Aa;Kqf-_!P8ifvJ1Y3zIGK@l01-2W16Q#A6=&QwejT7hDiMz+OT0m=k9g;2qq&f_ZiE~W4q&JLqKm0hzmqz zu8qyyxgQM}NVoHcp5-RBtBW6kcr#5M+LDBhjknOb|Gn33?nkuM{&?U36uu#z*jq>q yk^29kjVDIQd^GoqFXn1s6K6aC<@xtn>Hh(mt3E5jt3%-c0000Jyzzp3btsv!30YPaP1QC={KoAfH1Ejla01;`Bl$H+Z?m?t$ly0QE zyXN7)*7M@7d(U}u_qk`C9pBHsf$FNyNQoGU005*)it?`jfZjYp0Rimh)|$=P2>=YJ zD{DR_VrLh4$S)!$@>2Mvl#Jw4c`3Q4Po$Kjjiii}o-3*<^P`@=d#o)i`daI?s)pK2 z)nM`9*IMF8y(h1AgnZ@vv|ejwh-OK>leB$l_wJ3M-do*g#)^hUl2$raMyO{B#vi*x zyEHzjo1%=3-lNLo%RF>l5;YQwlnW)?B(04tOiWEwY-~T78Tq2T#GD-rLa2(S1l`@S~?k zh)syA+eZ^`Ge>vZFOFa3BA%dqWZXU72K5FzQ5~;>0yV?6{Ln^H5s^NA=oYhIR>3x& zUwlG*zlH{h+68?L2znXg9rHE7#wFNg;^TOUQ%OMJ7l|CHJg)-hXxGPC8DSBjQ?^rm z&iy}vQVdd3I@~+GV`Jn>p2mmA#Ksu;#rs4@dxXS9e#rii@Lk<1)8?PcTufZ_f32La z$~ELmiVD8vzAP?IN%r-~^AP9|%8AcSOimd3I@lK0w&1&Hm!FrDE!_~+7@3hCksX

Zwfj03ktty6c>e7R;QGwW|U^7l$Dm22Gr%(o42&c_VrJuPS(|^*3{^gl$YoY>sD0! zz~*3`dz?MGysB%wV==KSKbCt6dkx1vHZ+gj3ksm5YWR~y#K|5jrAzaG~d zH}|&;4!#-qiw;={DjgoqoXPz2w;+D$`^eab)aj|H^_Z{AOB2&JCG-Dgrei0k(--F4 zGj}sGRj`xfrru{ej%tOUw4mnP~?o3+Y;div5_)HGy{HK;I1)iysx*KoeJVkRG z%MY3cJ&(stb}Ca=4)jNV?fBw*mo0S1+^c4lta02361SSJxt(e)r6b^dxfjOP{A|gf z!Ru=N>Bv6r)Ma) zVSp<%i6AAfOj$qAW@XSX`E`$P7qdh0FojIy-&p6KNvdzyNc-i?CI;JhE#J_qY>P0=hTmTVoEg|ibEq->D4?NR7HXSK8^B$=ZxlUKfFJra;nIhN zIWIF;<|wuX10{;Eu&)sNF=bnW<>v3qxNh2qeLLg(mB&9Y?&yG(UF$cm#EiEPhLpE;Rr8 zw>Fr%x#wVjXg26w8M~BvYMws@_qbx>rhv>zHa89+P|FvTq|}}!)=dPpzbnmSeRB@N z=Cn&ah6wLkEGF|ll?!g75(2h3A2^ELF{DOO=0Hla<5S8v-_l#;famT~w1A7-R=3*d zvQ!Jdi+)3(m*K-|Hg9Go+wT(chda;UR3wsEF!momKBhOmetXGVNErsuj#(FLl{xXZ z^b^D3&Aqk<=d>ef(Pp#unOroSW!w}s{%dKZ5FwA#+o<+j!wdYT;TL4NwKfNJ9CPzW z3m*FpDL$!hFGTn!;+4A@6vx*|Tzn!!kZ4e&XJQ=EC>GPadMcz327!t7!NVwDava&DhspuxST{x7lx5SM zmN~{nc5SP^jdhc+7in(MBF`uDy*P=%KwPSD2dKn{g3gjipIhf`N}j)gB9$UYBd_6k z+a5f+E!pTqN^nX@?dzk5OB@~B(2@zhK2@RiR5JQm6DbT7FhH1gZaMwNIY=ayhfUK4^v^E;xlT?+{~MDGT)bYXCv6lwmk)f;*@^pf6Of7)nM|$ z&W`ipF=a!-P=oa6nBayw7fPcNfVEx8+ajAjpT${SSvNg93~HCzUpV0$OW6>)4>*KI zCZ6(-DqG5Age(4lN#%-MO4VHWP@v_>Y##33JJjsH+?Bpeg(yJYr0v>-GRln#(AOw@ zT=96k%NIF&IO`TR+mHts-WMLo7D!QyabHb&as7k1mAtE;@jLU1W{>A%r@XxCeP_2g z|I~)#+LOMofB~$_PI@8^p0@Ou;@tJtf{%Lo9}pC$A0wM2iQ- zm?P{4Jk%n+J|FKJ$Y*_xO1)LPT)aC|;~%NV=t?s~?JD`EnH&>7Q^>Kst_TNQPbdHq zO^*=R#2pT@>_WAZ24(wZ9|o%(7^IE09-~_3GUq!y`r|(VOsL+^{L;-uwkU!qc|Oqj zhU7DFNolbbcoEhKFi~MABzORI?Y$CYE;-GpPMWnLvf`*$agNA^*FO??$g4X5MIIXN zuG*fT0PJ#6oL{nu;>^VR=ifFa5c=iy@>tT6`C_S()`jOzGsL}4`lWq(od?$^a|xUl z9Jjy}&l4Q#x6bLzOduuQ@qfTn&Br4dEI%Zz*_*xhS~a=uJ3gSovO$sBkH8%DkcPXa#;+`2RzN|3 zCB-OOPyKCeDG^L1GiGrPIezQ40}*)qm;+p*5v$FkfmPnhjE~+kv?kYKu4B&MgAluC zzY4A%S5`#)1~+W7`ncR!{B`^K;jJ3OrA9Ybv-o{ju+^(-UgeuRzu%k8L6&8Yz~Hwd_?h3+U&C@ z$fZ1azr7b7D}%D0bMMYOdlvznDwz)(>tUXwj>Ey~$}2iGUfGoKz=TX0DdpifuV)TSp=o5UZ}O~^nfsDRo>kdn4t{1&#f@TcR?x-46g z^r;W%lymx8G9~7^H}AnNu-+lMgEuwl?nj9Pm$8k&CPU=G@p;BDiU_hN7}4~|vr>kS zFSmGz`p0loGi=@4u47dij#hK6B-qC1w%J>jgc8G5zr~SfPQCC!gI&gYRAfZr(Q%4L zjGU%Q!thE<JJ82GUvfsL@cyI-8fOOVWOu63PDVsR|$+@FFu#LH0qDizo!=of#T0|!`{H7R^> zN_wdQ@it`qz(sELyOdXL&+owrRgtIJ0)eP+j;kV%+O^WK+Iec=aIx>h<;k2dHUyju ze!e0Oxsa79nG-va?hNqo6)k%3SIcJkssSTBP9AqyD{qyRZuaHDZ6ph2#OxR{KJ`s%H$X)?5|vwA@~lIyGL~ImP^6%# z(+E7d`T3&NC_09p))D!5z6Se0alRmFv!nYD5D*(z6J#aC=FVHEOzpjZExgO6z=+K> z%naJw SQ=iwe^+WTma~74)f$KBjcGCi@yiY zEzWsgE32aEI~6cjh+8R?xejw`$Mq>pEiU~{xd@Qd zy$et4#3exd^_38M*{E=eZ`hM_bcM!T-ju8sE-wOrRE2CNV8~04Ki`x zm3qsvQfC*O?bKw2S8oHJBN*x7F%ej-Y?;b?jese9UwOKwwz?k04Q*XhvK6H14n%hi z@~NQ?oB=lKKL$p$pB3qO=9~0iA@UIPfS|!#zY^20n!z*Vh!9+LTJk!_7AiHhx^qM< zNfVOG@|zD&9$+V!VAxUahuiOgx^1Qr!F9TWD)bh-LD2&#$_{jJ@|X}fvLOJDPWjEd z7zKdiq3g#$1X?U*>Ia1aZ7*)o;5%+FQ6#VSl)Ljf{>p&hq@i;=B=9IaU0MlGIc1v{ zU}V|A#=;s!H5-rS9Xtq1%gfE~uNM^x3VwF4E&K$E4$lE#{!2uehif72Hll>+vqgA* z@jjf{Re2tBaSj)7y8}^0H|%c=eS^-?WJ9Q+ZdVj@=HdTI*{!M7a7s#@o$kFSMPFs! z;v+&|5853{08vUs2y&pe-l8?!hy!+5YwHp}i~oDbrZ zge)2FTSgWqh0GMnXQgeb?eA44nYP*fvWgHFR9#l4bti^r9=03h#vqkS_2lxc%(c@i zvP8UdJWfzE(lKo`e*!;4&zS$E|154YN6rkl^1WtL&q4&wWKKJ0Kqwjy<;1@l69SKR z#4Vhy9^4Mz_L04XeT_Epf_nI}wDcm-k}x^t_s{7!g1?!d$bCgNH21pEp~p=OV*BZB zv0Ta=l_LdEifa_;dU*!|4mPYwb@cnhJ+}ciVY0&{k6rMe*O&7LR`rE1@xiVR!73Xp za^7@+7Y3M`M+wd$OtSB+9&hYl$oAXi-Cs<)UK>1jZ?M_Vq`z)^yYkO;rgaV~nS-lX z!!w3}H)LU5(A`05V~PVMLL+WVILD)(Yr=**YiI9|y{rxgLQrf@#@VStwsOekvAaR` z#>ynbFKqzx`X4h2s4x1SslIgamf?SKBTmGShynM1-j4w)WaK;w*yxl2$(EGQ=yCVf zkcmtIPdg@SUbY&q{Y5tH)%z9eZ}&|0PGqh-zdWFIm04r?)wPkU2`fJZ#Mqp<}clRjgLkh5X1p~S9k9%4WD{iOjE5w_3ef^yMUBDa{ zB<@0`juRWY>hqh6LD%4%pc^O3hW1;rXa`_D$C$FnLm&6P7PlcacRoIx3O6+c*vWFG z;}@^|_cPty$ymf4*VWaY2O7&L8d@7^oebE?e#5)UQyGnNYn8rlO`pfv? zT|qoi`jH+W8CgjJ*d#c;IZwRHO+xCouJj!dAYM~lIe78b+LL1g)5@g-LYB4qC!T{` z13I{r)E&s`lXZb5?dA>A+>JJ3H-RsGAD%yHc1h#FUm{ZbFiaG#AySO9r4V&2TUpMF z+WhopuOB8#&M5r)cYcGVb3CzVA6{PL-_!%f$R@}#w$v*d+(ND zh&I{2n)j>qXY@8vPRL8aDVfz~gwU2!*p<-Lp{zwRx#3wX(W`8UTvi7lnI$PTgtP5t za#MDbxwU+8jqgT5bK-ght`c(fz8*_S୛o_&kA`G^^?_cFwr{vMMq`~(R=yTMK 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 VuCA_AFvnhkCDEv0U%D6 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

4(fxTt6o|_#_}`0V(1+ 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 Cimbar Encoder - + + diff --git a/web/pwa.json b/web/pwa.json new file mode 100644 index 00000000..b978022a --- /dev/null +++ b/web/pwa.json @@ -0,0 +1,13 @@ +{ + "lang": "en", + "dir": "ltr", + "name": "Cimbar Encoder", + "short_name": "cimbar.org", + "icons": [{"src":"icon-192x192.png","sizes":"192x192","type":"image/png"},{"src":"icon-512x512.png","sizes":"512x512","type":"image/png"}], + "scope": "/", + "start_url": "index.html", + "display": "fullscreen", + "theme_color": "aliceblue", + "background_color": "black" +} + diff --git a/web/sw.js b/web/sw.js index ef81b292..e4507751 100644 --- a/web/sw.js +++ b/web/sw.js @@ -1,12 +1,13 @@ -var _cacheName = 'cimbar-js-v0.5.8.c'; +var _cacheName = 'cimbar-js-v0.5.13'; var _cacheFiles = [ '/', '/index.html', '/cimbar_js.js', '/cimbar_js.wasm', '/favicon.ico', - '/main.js' + '/main.js', + '/pwa.json' ]; // fetch files From 106809ce0cefd4d46f6f65f39c10f9f626926fbc Mon Sep 17 00:00:00 2001 From: sz Date: Wed, 29 Nov 2023 20:35:54 -0600 Subject: [PATCH 2/3] Change params for symbol decode's adaptiveThreshold operation The negative constant (-5) with blockSize=3 is an overfit for 8x8 cimbar based on my current (371 frame) trial set. blockSize=3 or 5 or 7 aren't *too* different if the subtraction constant is set to 0 (and intuitively maybe it *should* be). 7 seems slighly worse than the other two, and 5 (marginally) the best. When the sharpen kernel is enabled, 7 and 5 are more or less identical (3 is worse), but 7 seems best --- src/lib/cimb_translator/CimbReader.cpp | 9 ++++++--- src/lib/cimb_translator/test/CimbReaderTest.cpp | 13 +++++++------ src/lib/encoder/test/DecoderTest.cpp | 2 +- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/lib/cimb_translator/CimbReader.cpp b/src/lib/cimb_translator/CimbReader.cpp index 5a3f7ebe..289e169b 100644 --- a/src/lib/cimb_translator/CimbReader.cpp +++ b/src/lib/cimb_translator/CimbReader.cpp @@ -27,13 +27,16 @@ namespace { template bitbuffer preprocessSymbolGrid(const MAT& img, bool needs_sharpen) { - int blockSize = 3; // default: no preprocessing + int blockSize = 5; // default: no preprocessing cv::Mat symbols; cv::cvtColor(img, symbols, cv::COLOR_RGB2GRAY); if (needs_sharpen) - sharpenSymbolGrid(symbols, symbols); // we used to change blockSize for this case -- may one day be a useful trick again? - cv::adaptiveThreshold(symbols, symbols, 255, cv::ADAPTIVE_THRESH_MEAN_C, cv::THRESH_BINARY, blockSize, -5); + { + blockSize = 7; + sharpenSymbolGrid(symbols, symbols); + } + cv::adaptiveThreshold(symbols, symbols, 255, cv::ADAPTIVE_THRESH_MEAN_C, cv::THRESH_BINARY, blockSize, 0); bitbuffer bb(std::pow(Config::image_size(), 2) / 8); bitmatrix::mat_to_bitbuffer(symbols, bb.get_writer()); diff --git a/src/lib/cimb_translator/test/CimbReaderTest.cpp b/src/lib/cimb_translator/test/CimbReaderTest.cpp index 6b6723ff..32d69b59 100644 --- a/src/lib/cimb_translator/test/CimbReaderTest.cpp +++ b/src/lib/cimb_translator/test/CimbReaderTest.cpp @@ -73,9 +73,9 @@ TEST_CASE( "CimbReaderTest/testSample", "[unit]" ) ++count; } - string expected = "0=0 99=8 600=33 710=28 711=30 821=8 822=22 823=19 934=55 11688=55 11799=25 " - "11900=28 12000=23 12100=0 12200=5 12201=0 12298=32 12299=34 12300=30 12301=32 " - "12398=10 12399=15"; + string expected = "0=0 99=8 11680=3 11681=32 11900=28 11901=25 11904=12 11995=2 11996=8 11998=6 " + "11999=54 12001=29 12004=6 12099=2 12195=57 12196=1 12200=5 12201=0 12298=32 " + "12299=34 12300=30 12399=15"; assertEquals( expected, turbo::str::join(res) ); PositionData pos; @@ -109,8 +109,9 @@ TEST_CASE( "CimbReaderTest/testSampleMessy", "[unit]" ) ++count; } - string expected = "0=0 99=8 600=33 711=30 11462=2 11573=33 11574=0 11685=52 11686=17 11687=41 " - "11688=55 11797=30 11798=15 11799=25 12200=5 12298=46 12299=34 12300=30 12301=32 12397=38 12398=10 12399=15"; + string expected = "0=0 1=28 99=8 100=28 600=33 601=38 711=30 712=57 11464=53 11576=32 11577=44 " + "11687=41 11688=55 11689=32 11690=48 11798=15 11799=25 12297=46 12298=32 " + "12299=34 12300=30 12399=15"; assertEquals( expected, turbo::str::join(res) ); PositionData pos; @@ -200,7 +201,7 @@ TEST_CASE( "CimbReaderTest/testCCM.VeryNecessary", "[unit]" ) " 0.023812667, 0.98703396, -0.0048082001;\n" " 0, 0, 1.0017186]", ss.str()); - std::array expectedColors = {0, 0, 0, 0, 0, 3}; // it's wrong, but it's consistent! + std::array expectedColors = {0, 0, 0, 0, 0, 0}; // it's wrong, but it's consistent! for (unsigned i = 0; i < expectedColors.size(); ++i) { PositionData pos; diff --git a/src/lib/encoder/test/DecoderTest.cpp b/src/lib/encoder/test/DecoderTest.cpp index 16e2bfb2..edb4053b 100644 --- a/src/lib/encoder/test/DecoderTest.cpp +++ b/src/lib/encoder/test/DecoderTest.cpp @@ -57,5 +57,5 @@ TEST_CASE( "DecoderTest/testDecode.Sample", "[unit]" ) assertEquals( 9300, bytesDecoded ); if (CV_VERSION_MAJOR == 4) - assertEquals( "0f74a76cb1f59df7a42449a3527d464d913d12a03bffa51d6f53828724c3feb1", get_hash(decodedFile) ); + assertEquals( "2040c157884c476def842f7854621a7655182e5f11a34ade563616d93cb93455", get_hash(decodedFile) ); } From 5b4b70da8ecb12d070ad1d7fbd269cbee822494b Mon Sep 17 00:00:00 2001 From: sz Date: Wed, 29 Nov 2023 20:53:16 -0600 Subject: [PATCH 3/3] Bump version --- web/sw.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/sw.js b/web/sw.js index e4507751..dad10abf 100644 --- a/web/sw.js +++ b/web/sw.js @@ -1,5 +1,5 @@ -var _cacheName = 'cimbar-js-v0.5.13'; +var _cacheName = 'cimbar-js-v0.5.14'; var _cacheFiles = [ '/', '/index.html',