From 697ccca2f2ff1e809785adff2f8698dffeb82f16 Mon Sep 17 00:00:00 2001 From: crbelaus Date: Sun, 14 Sep 2025 11:59:34 +0200 Subject: [PATCH 1/3] Bump Phoenix Playground for dev server --- dev.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev.exs b/dev.exs index af25241..a2f0427 100644 --- a/dev.exs +++ b/dev.exs @@ -5,7 +5,7 @@ Mix.install([ {:ecto_sqlite3, ">= 0.0.0"}, {:error_tracker, path: ".", force: true}, - {:phoenix_playground, "~> 0.1.7"} + {:phoenix_playground, "~> 0.1.8"} ]) otp_app = :error_tracker_dev From 30554c6934d5a7e4ec44b98c3c37741cfd0ecf9e Mon Sep 17 00:00:00 2001 From: crbelaus Date: Sun, 14 Sep 2025 12:00:12 +0200 Subject: [PATCH 2/3] Require Phoenix LiveView 1.0 at least --- assets/bun.lockb | Bin 4128 -> 383368 bytes mix.exs | 2 +- mix.lock | 31 +++++++++++++++---------------- priv/static/app.css | 17 ++++------------- priv/static/app.js | 20 +++++++++++++------- 5 files changed, 33 insertions(+), 37 deletions(-) diff --git a/assets/bun.lockb b/assets/bun.lockb index b0a82aef6f8b36d72b88f81ba61b60b0431c611d..d9f93cfd249e45effab5bf87fe22532eeb31b7f7 100755 GIT binary patch literal 383368 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%0A;=6&hlcrd1tEyQ(3*9QopDl*pIRU-7f7TnQr6P zBP5|?5t|mz7Lvll6|~f>N=gY3>lWxHIpx=w>_Tp#L(pAA6BX_+f2a;psoaX+j;ilY zdE=+pf_++h(EUn)ujrrkyGXTPoDX3@WT(jftO}E3pm1C(IY3L{-ET#nmGD32De3sa z?+axAexxbEK+UAbk#kp*!257qCI{Rna{%2pvkS?%)AVacE^^R(nD@0?qjA_bQm&m9M;Ya8Qd`~kl&A>%Y{L0KA=JK zhAo5dPdOX!Xg3-8Lxl_6bgN91BpZiA17*}u$a|)s*TpzXvOHe%?0TzUi<)Uf^f^NH@qQ`PCd6V*E0eRuqf;ow`hbDR zer5y2`w4WFrimlJ5r%J`e7IQZirn)aGDUo$8uTV-NPIYZED$1z-g>;;dut2T*>SvP z$bQdKeW8x0-&di@j?pBj-i!m*lP;j!m*ir=k6|~CCdw!xGt87BU53tB&#*J>*|~%B z74Zyavxth?odb23CDTh_R9kj+ak=C17f!u>s5ctk5WzvBwJZ`0qjA*dUxfAYtb zlz6ClYob~A_k|`QB=WUm#!L&7#Cku54 zjskgb16?#pJ!_SGwMiz?PVpC<53Xo43EVh8_4!XueZ@cnn@$8Fk9t?1ImV$bweKhLpNK7>zSfT7L zZiENgN|ai^>Z`steN(1npEFGP)W+IS5LLP_nG*g?`h(*%jnfZsU+fHUE&40zwH;}MbLUE(UqQ!v%bSkdX<*ty3%mvN6bK8zFQj% zku{9^@T9%=`pKH1`PXNx(eOJ8xw+hSmTjCuNU_s#u>ar|-10!|195s=4jd2giX zQPVcBuFYF*yQ0c}aHNGY+GP!f;$RDo?dYS6xy0x3^S!dc*5*lihJ zys+#_T-C)B_D6 z&y&$#)>92`HO3941JQDf(oK;yub0^lGl#n zdiNKd?XoqKVA2snE>4Q2{=9{4SB|`Ytq~Y$w94|#H-iS(EHd_8ps=QeQu{SdtT!4i z;QE8^zy(UVJ(g5>UmK$*wT*P9q-o`~#;W@4LU~;?CN1-(cB$P9Sxz0#0rHQYs-b&$ zal%VRsKNRaVb-TZMy4GizzqOhDe7=0mJ*31ew`N%~sPH zvPvtZ%d+c=%6`IQL=)1z!b#dq+sNdIr*+X9bm(bj=AsvpsgnE~4IAqN(zg^$aKAeU zbQhS++t-k(o%02?{p+l8_ui-W1|sFRb-7*TkC>asO|;p6<@Q}_x z+CFxEwy+5#!8Q8t8T5bWZy4zMOYNYjCUm}iycaa?BHRd~f2~}b>=w26mj8Wm8)rZ~ zmaF8SXX+BZd9?vri#mixW6sU!*c5t!DX&28;?&p6r+cf64H}!oK=buLh=Mf`7 zH{zAV3wkSzzS8&9g9D?s*lHOa^5;PU?ci@~y-7QYJ{PWLYn}e3!xxGtC4}U-I($VN z)t#k5d;v7~igr74|2-S=FAtHR8_vkyFeJ>gv5#9-@&KXUAq8ay70s9d?Xt&~MdUMg zi$Fw2*027A=y_i7K6)nV3$}!=jb*#}DuxObMf;OH7;hBl`W0>)9j1vZnHg8kQd~f_ zT{5RqCflx3<0C4o{rP%yq<6ZPu+{fd@U##6;d)o0&IzU1Oew4Jv)2w|e15nW8xU_a z=u$AmFFmY;&k42%nogjuB|kW4-?&HbCyVPQrjwANyM67Qb%Wo-sP%m5KejjuvQpQd zoc+4`r&B$UQi~691ru;%K({4h0H^O*8?xQ^ZWI4m-b_lnHXuCjHX(+>L%^2NQB zf$P_~-PLqRiQZ-!Jbc&7{LEGh%+Yi!rRwNwZE&9<7Ibk0ozPepF+*`fKZSly`1=`@ zYwspgWW6%U&JFJM5SO6D0S#QpW%orHPwfsy{HT|#DZ|2ccS3BUtW>5gidJwABo1_^ zK8DC1$`m#1FppAR=7+AE{+Pt^h|S3ATHjKTnBQPJf~5arT`Im&ZV9JyP9%ikJ5g{+=T#7|^)q_ec-945MSvxir7?!MTbA&`nIeC6UV{uaR}c&Jy1Vt&PFsW-_mLyZrB3Y|us6_dSjFC_Npe-5$)3A@d|TAl-!`hQm-jj#|zJ5GafR@qPwf{P~g(8aB&m zS1U(oJTZ7YJp=bYm$^pAW~$6h@jQ?EvU)n$(Gm(&o0M>o=`KX0O$vB2R)gr?epY9m zRE$oN0Nh;ARd3X{jL6MP1#t5~mzhQDenEh~T??U$cxDRE^hS5l@UgI|`I6k;U2ni*`Vd{#v=(u4 z%>eNhfNl#JXFP`P^TOKEz+B2!hjKz_jmb~ix^A^(55YvnV1gkl>?tX}92!P=2JyK4 zO?aG^NBqOp)&<_8#ia+h6mV{^5OmD~^Vck0C)E!yT*{|L)L?RO4$Y+@;1)d}?fCWe zeyL>Yuq9cQ7{AV~(Ogru9TwNh%xBf5DUSb~NsP)^(+~fD2uY zZV1;vxZH#8?`RSytrm&c=Hp9!KwD6|uIQ=vdbyf5r3NM}O_U%q$`YKn{{p&*w}RR-jxs&;n}g8u&X0MOQ&t}O2$z~A-^>(@bFy<~h{Y%i%tsk*Hq{U`A?*#9jBUCi^yGch+*+%TU8GYpPYh&NXJvjh}8nJrEc!(FVyUw`<(kbV{; zUmP7p;dWQP+N2n6CQ-z~#>dtE_R7Ks8=OBY1Kq-ryihd(u7n@+YLivzP4{wbRxR%M zCI^O4X4ZQ1gEW=yNr81;lMg{XP;u&S+gfqBmA2OUuZHJo?xG9*P1Auql!I=2weqjK zWS=FU9Y`S>z2ufKoW^x}-$xt1jzR8O?osp(duJkyWw${^r4T5Km@asl@aA)Ebu5nn z130oSrZ@6{TLHT4ABBvB$$Bo7{fXVODv`Or6lM9~@hODo`8XXCC5fFi2*XO9%CvKp zAi<1G+Ah;yoD+=JS$$J_j_&J3kYiB<+)B_@eoqZai;rT?w)R0Zi?NMlaJ9X2Ppx4- ze4>u`rdc4;NR!gfUwx&MPUYdYOlE5}>hc_>d)aOm1&L4TExUFk;8uaIXhCh5bPOf) z7p!I1c4=pyuc-7Nv*UDRf8|3Ho1$tFdRK33*R%gn{qXy8)rVilPx+^r!i452*SGtz zJKW0mnt)pkx;QF}ZbTMwqTj?E`hsU?9D414%^^7*x;1S(#%ta)b~`Mm;E^|N%;IXQ z_br?qU0?0)#x$~b{0!;AVomU#0Q=Q7p!I1vwoYcxEdXr$T&%y`i?@`#o4I5R>?M9VS0f>XK&pS$xIy|HCKvxIAB;gWVT0-hyE?+appH?tS7ADfQ( zg)+E*TnD;=hct~4Y>)HNewI)c@_dWZI2XEj(kHB!YaR;BLyAi`#=ok#c|?rKc0C{7 z-8kyx(HmXkVD6@=u-E0j6ZZk@oqEtkIlUqHK`{2?2Q+$qt=DH!*-3g{@|SqtiO&bv z{PB=N?{EW9zK}zzE6^bRIe29?n<(5FNhsG{k?w`?qBlpx2;`vwbVH^+%;9ItUePs_ zQl~_7N-K^L+4|Wr%{D2RQxFT+a%h}~9K+|>dDq~rco+>}3@1z9BA~~@8>RMn4Xv6d zg7r=#=$ZxHzr*4rQ>vlUSY|j8OvOZ35jD;d1TO6+2poqlc}gKfg=&R7h)d$`HxRHhAmu z745z(@oniMsOnybuVc=egqIRk**)zs9B_V3ch`!FK&8WM=BJSka$L2YgywYPIRraWt%mse(tri%Lh(NK4wD<2%*?}v@ZBV zp=Ees+Xr1o{4%pP|o9wezk6`pmox&ZeZ=;pM^^^z~`Y=K+1Cx@G zZ_e<|Gi7(X_Arbe9$eqrL04X1Lf_bFRGed%mPN{3AUhQcTg!!sO5?E^ZwMZ};b+x& zCv+X$A?mNu$AyZ)jxP5WTgmB+o>Kj`J726QckuqW19X|a$RJ65(>YJ|IARF(wV9*s zsHGBT^J5D!b(hLkY2FU`lIXaE3yjtL@hiM?dBMr#@3kBm%@|kqcY%Kj!LkSP+X=cu zhufO&5ho3&QDiQiDpHmMqc28^#K|5lvek;IkT_ZbE!ft?EWRWqm`D_gwo;d8b#`T*Kzo z&F=?qA3wytIl{Hrd#jrvnd1u|(FJbVBg5KRAl`1!MOS*OES|_pmln)-dp65invHW|YEn@y(x(189;rg`=O1hHD8TIjUAX2~ zoiuVhKRzD+T6hvqhQ z!L=`hpSe<#UD;f0NPXKCZyhYs3`^vm`A)2fjf*&1HPO8;Zi>o%pj29FCsF(Mk4^+KG4N`63-EhD@aN(XQqqVtgfJk6HjnL zhnQw2f881qo!KrdPtI-L z(mUT7ht}#{G()Bi*Ek!AI&7WUS~|n0_+S;<(%xAL4>Wm)PUnw>Icc0cmGxCMcqVtu zepPuY`i@lx#M=+LvK~%J1-u@j0d6*bC{9oC@}P*7O%X`HK+DGs`BLc>yiP`eYE1jK(sL4wQqCwvYx9W@;lGd2!EGq zy*c(rZ#GA^M`rp+LcY_$-n%PbiRQJH@UPCv1>U?F2K>&1V3eFbux~#Iy6r{01*-QR z)7mc2+EuFLGAAZKI9_d^G%KpL>XX>B6P@Km&3$6~lFTRFk`7;3Z4jK(H2hf zAW4CdG#d+eP-eV8R%}SWaj~WDY-}zJkfDvOr8up=!jsyzAAXeuxFeve>JrU>Inkq* z_1ghn?FX6x-lF0o*ar)sitG3zHHe6DiF6#2);9AIG}+RbiM=HC5v5 z8KlRKUrW%&T}SQtk63pfX1vy6`Czv0iYv(Qp}qm`sPoJ7Fu)xL-L=r|`KdSEP*3%8 z*QzKH+rICo?09W6UaJH(Jk<%Z6Vsw~VD1*p+c^gGVH|nBd)6B_J(%VEqMX>h^jZT3-K)t9ZsjmuQ1;uDrXdcq`8v zu?IP&D4v&l;qHnVIbpUc{6|2%lc2k})>v~Rs59Xvn01VqV#mFcdQXRM2WPd_WvyE9 ze2oC7RvW?)>-h#vA`{j2+TgHiRy33P)BFI1%JG|3zZ8DJodVtYD6Zc=3nmo}XxX2> zAtrhh%VsUT4-}-@E73E9a2n85l4mwCDjWUXDnHz5$QV*qt>wW_P&It7#_v5cq&prl5jvF&`igXMa)bM4>om@fPSiL`gbi1YWdNLr!<{bTz0B(fqF)oM)eUgb~;7p&O5U{y;@Js z7o)siq-xI@^9j>n!Tq;6(2X+n9Ge#Jg@B`@#%@TUo^~{zXC@KQeku4mvhg^H(7jH3 z-O7c=qxGFAVz7UXv6MIOQ`qo{KYEif1;5Lm>_#BodC=vWOZ_1K5HRQkk;H-;Q7l^5 z%$~2w^3IHigYNP7#1gyE(PT+EdYsb5X~1ly57R>CTiyAw3>Tx`Qco#wUT~{%8Ej@)d>)Z&Ez(E0~ao0>wL7*Hj{ISgJOg+hX3XPMk zxbF`uwDz*2+GrmC-`gcjrt{KNX)<-wOXhcAUA+XlWN(t$vyHIauN%IZtu)t`XdDs? z{W>2K37@^x{&T%wzm(TUFFQdp*6P`}To5Zt^xUa5AHCM5l8TQKb?N%S9Ef)rblK>< zc}2tJ^4BzP7q2cfY_ysH@`W_BKe z5$Ao)0#RchQ+Q;{#$S8n zFa0GbV{kTOmHu}7K}44x(^7GT-hZ@tec!2Rd$((~fxkBFm|J zsEC}iGxLGFM7e{jB>AelhO(2uu7mFUlt(6x<%x2z0%nZgTCH-pjcDaTmN>!G6-x{6y#Fg$Vt%rc2xYnS z#KSB`Il9Wrc6R(bAK&$wOsr^e8F8?l+yLEEyry>tUCzvI6R$0Jx%Gw+*$W~xR*I2Q zBOVOML)4E3euerm8(Z|Io4jC#BiC0R717ejU=7QUzH@J~grFG#;@t$@Vu@5pmT5>A zryqB@%Odn1CZaY@8r3Ao6l+ls^nZv>yTe_+zD`mvu>QtmcXJ@ruHLo2Qn_$&wdUx= ze&W#&&TDLe?%f^b!{r;5C4?abV^$&$N>xh^%985rExHh<5+U#R`=WTs^b{E|L(@aH z=*(oubC3wUQcG*^R-h!-8=tL$zP0 z^v%3Wh9ya4&GXoLOmfJdOW^AEfM?tR>0-Sh#-x!jZRc+X(+0@HPtf({t3t}vL#wIN zEidPCYQQGSO-Q2;H)@}SJ{8(u__an1mwb}y(|~0LvBfeEfny!wwqdRx#SPsV0H;hI z{^c2PcR+U*>sv;c7d1(`=a@J{hK>)RZTRtI^W3MU1!efA#RXhgf!&+U9~V413^@vh z@VA)xL4S9g-@v?`%EuLhl!TH7++EPc>}dS$fLMq|;fa^cXq3^|IX>!1>lE}uvo+S9 zI=R;x!$?y{ufglrJB+uYCer;~?a(B|y+41>T&{?D?7GI30PY^>YK2<-kG(g6=c-%# z|AmxNqCtg>MMV=LA(t@J-28Deq5PACn)gRt9TEC7ntu$- zZ!6pHgtY?Q9)jURxBJ+P9hiCOUQBn~%ux*r@H*LJ#{e#cJt$x zwAWvc8|IPbUu&Vs<$(zJg?@0}Bt!QvK7T5EwsSryN9d>&L~ zxa^UR`Pj|=UFI9M-^T63YbI=Q9KUsey5F5W%U6FJB6=@>THGF~g{!<3TdiHzw5E*j z^h!7MvUs(@aD4Ebl`d-vlR~qissn{|)s*?1SnYkw_WMJApu%-EsYCC!#PV%zo+9_& zVgFF~`E^gTow~~M_D^`(G0gjEZZGw@`GyAmW!5q?o?Z)oJ}GUpwM>e{!dZo??B~>X zY`@9leY@8D&>L|l$!cinQSgt* ziw2g}((5m(Kk*Sp!bs1KB-?RPde-Lu|DdEw1q;#v@u$2~bllb;LIw^Tzgk{wL z?@5YfIWa}+&Z!Sh{nkIw)Z_J{6LP*WakUlgce3w0T${5wVPzA`?+3Qu_%(HN`bad& z^<2-Z8|u7E@u$E1z0w6Q+vlCDm9A?lx=|uF=V!u=F$?+5jJTe3{ZUzb>TYcXo75{i zUVdm@k*Qt8^4rGtd)4f<*k*0zQjLw5Wt6=3S1AhGzO-(>BG6#k`;AkWcTs@Kqa2-K z7TxvNYY#8mbT0gE(C}wjffbSFQv^dcZs1$S^81nPH`{3D2Bqt>Bc!}brEEfuuXy-; zdd!T}HD0T0FHIgOpQqXHfxU6RXmjm(_Dh?4628hD`rf}@by2DK;^v~qX(Lv$|J}?d zwqNmQYL@PC{4?eV?B2E`m(t;yZ8@9xeWlq`Ps zt>c&$#SJs@-+Fng_9;2*xDuvPZLe|)ADxogbF!~N zYlgqlj=l%hMkc#m%QjorJ}LC(1&_0iQPHc4Z$7FjuZ%uBRc{i@Z#&y>iqn@}*J2Ar z)Q>eBy%isQ=1QKe+&Jq=#Z!vj>$Rtc#MqRD_Lh6mH)rSr;XzSb{374q$;h=7k-U~Q zIiR=I`A6*a^$xb*-TFpdwnwLV-LV;|Q>+z!ZSVBc)r~HaHok?61RvVv{}da4S9$Ke zH6b1{1!FC=&K#WMrSe>GU)M=x7o+_Ga;nL!_I9%UPQIOXN=m0#Mz|v^b@$vQuDX-Q zMNWNL5w$n)aPdar*1@|CE(y8U#YEW*Te|t>t9Pe-4h)|bX1H~0@L2KSL9ZvVxX{FPzXt(5?vi}r#(8x>ili&{bJ>IS1 z!_M8fteUoJ?GLfHQLb(~uWLmO_8Vd1$!c#m+pnHr)1{9d*VkI*6iyiQ^y9W&>e?Q4 zz4KouD8{XkPZe{uX&h~pq zME_BbUT#R_z=piTLkGkvni-lGbccES_FFX}_(itYG`0G@ehMR>EwAhxc;w1XnW|;0 zd}}5KJDi9~^tIG}bcE&i2ivbgpZw&<=k~Vk>Km_I{b1aUOJ!#l%sv%hHz;?T+(JE* z#4l&>+>#u&QKiy(mCqo%geCITiB}VRN60^4I;?D#=yCRY%TKmnlepIpQwR5?9yJN* z;fr5>%I<)#+l(n@4C#84t#J1N54Idwi5?@8e&Mk%De-Mm)+}ysXmVa><&WzLO_Cy7H=K)Ri-9N;MwVCVV~?koCr5 zVWv{AkhD!HU(&yCpQ2-v-{)9Aug}L`xwHKCu>C$t-58Lg`%dZUfoA=~0n7WFEpIDO zwZCNZbmY0ddfzts+}=Coed8IAjEL`7M?JFER!}MU()849Syf}(SQ96?&Ft^U>L(Mc=qtrA%b;|gO9d! zUc1^)uw!ZTlnIYrJ3cCXY_@vSwq#?@m<#VT3N%}+`Hu|UvWB0%Uc%4z>wC6ypxF)| z@9`Gd8B?o$E-xQb{!(Ztf3u-u#l@}fR_N_johGW1n%?>>ZP>1sjmM357=2vg{CQJB zQEk@stKDzd&rt$wzs`ZYDvNvUGW#l@xm@|`vdi6u#eIyt&u;y7Q*_Oh>QyJ>SmU8L z+wYFrz4(kv3=ezUU~N->AUHKefhciCRbXg54i1;?8J2aa>JlC5RmgJ<$ol|~zV)$`c( zbVF#x+4R-@*Ln_5GwpXZIL34FdbPffZZ&nSOFWntn-+8bVINj|`>_4`1!@J#yjYN6 z?h*cQ`zM*bp<5RY9lF2VE6K9$_05r|Is}6qRtdbzFPge)Z)5)yuQiJfH|%d5>$Y`z z^%diT8(*{UZ++Q*&0loB9$?-&kI&{u=lB3arSB3uhwQ4*YP&SfPASzR-(JkN=A->C z=~OSdkJ{IFO)}UWQ>Z$j?7g*t*(k66N6xX|TZGwur+w=Yo*ZoCUQyi7QvCj$84XR2 z%BF$ZnXL!fjW=x#%Trvq&+h&ECCToM)5rC_q4rJ6zqU4R`htmb^o9u8FS9z$ibFrP z->`AFA8AFMip>hW+}&8#_&CMg*QdX^QW^gw?aC+x&uQC)m)^Oub6cP4_npy82a3oX zxI6QSmVfK~`nI;!0R{8e|IWQX+plz^pY<%iJ;6do(|@fzxwI#$&%qrAJmWWmdF;TeFkjN)u%-_PV_Y+wb0)hR0Q7W#xmW zUf>_nS|A$aF~MSw@5^h88U^(lw53hGGkb)NntXE6w72f8HVm7@_f2rAZ=g=2gMVC5XtT+r{`^~*+b!<)Qrm=}8N^@`iywSV-%&wok(`#L_uP;jaUOsrj(od59*&T1b z4biY2xJaa~>fFf@If2cEMrVBkE=Ql4!T!DSK(=2)Kb6xlM>Tqa#E+G>8eh2PX*&PH z&S#&dteSLslK18p-5vdPSI^&BB2<1NwRPD8Gl?d(kGHO_OEmsuG2`aCmS|#e+HXy&E;ZWe7yeuecU=*hz zeX2XxN9|bL)h-8*yZ%F2aTvt*Ym{%h-)GmOxVfdrKOFV!j^$U3?Ke=WFg8nF>xM{y zPxn!g_gM-D!fx06JSz0)`pZQ^)H)Y1U7Ylxl zdKMi0z=h>kob9(;R8T|W;`t(#Y2`<6wl5e{c7Eu?{6m8s*IMbO-|?9<>9O{L$xX|0 zlwV{HpE2sJRA%fmh17ucvo3CFSAM~N>di5h-@$CZx6iB;j_-6@JR>e*Y@VEt^j!XJ z)%ht$s=9sUgi4S0%pW-RLQq9x?=YEtKELKpdHJ!TZob#|>teB@i~F1(bNe;>-(L)2 z`_0mMw>$TVf70KtGpWL~ttBr8l zrJ09&&E0fq??{hn!^970j_wx}U~ul-xVCp296v2QAoV^zeI_do!`ObWMj95Ko#*bk z#%l1%_GqK^r&46353lJkzOlD9aPo)q??z|M4ai@)M~Xcwo*>j;kazc z!+c%a#uqHV5^TSZG;gGQ-ZH2}F1N$FueoNwOGU5q)OtmaxtEqJ-a4rlvqSrOUcnKw_a;^^%;*7rL_hTglH zJox4FW8zcnKMSlp;3ul#Z>6(lerWWoGd;&s9hQFRyj0Ns!?#z>qxHvk#^3(H@;id< zw;^u#>@WxO;6Z~@^|kZnc6IkT-Jtts&y4w9b1px9x+(STfqkLhG9PbN9euP}H}u*C zhtk#lTcwVkIF&C_=Gfwt%JMss?KfjxZ=c>qk9XAhdTZtmFPAyozeT$WExMjd)-s(N!?tG%MP#Df@2TS>b2X zZ)q0Dixm3LZV;PqYf`bfX<=dF_szbFORuv0O0)gCjre~5a>hoveMXP37HIz9A2!^s z?&JQ0SG?{V|Ed@_du#k2mje=WH^r}uQMfbh&N7jD=P}E|!*%EG9cmQwNI(1&%kL<* zU(I*ZZj4M7Qg+!yGsZDi?dGPZEt^kB&pq8RI_aEK zvZO(w-_a{W!~4ZFUn!4ezYoc<{R;IeuR3Xe+%7b#qcZIoT`gGS=%Ff7tTU=4H{OlXy!!vy|5@&=KZjP$i&uXtM+i&pcdU5Loua*5g zR;NYO^d9Quw_shYx0CGGf{5KWM>&MGzA5>vII`BKuA|K9Mrh^dWAYi7b*^P8PV*9+ z5c9CGj zR||R}J5>Ms-R?XuB>Z$3R`W<_Ssu1N=82yEP90Q9UNCO;u{(NI0|r!H_slvwdsAe=^CKUl+@}BV z7%gt0u_-n%_K;>-mR9!jehy31_7u5))VYuUh>7pA9qi}z(QLoFjrx?TFD?3FRr7t@ zz0%MbUCS31HgEm7^|R7&%NOe#mP%gjJ~~R^e(AN_W3$ehjL*Lj-lZ8B8U5hK=ppwk z#Q5K_;xLBoSLxbM)3AF7`xa=8(NX^~?WNX5Z{gyX`i`~%l@8+<$sZ_|3GP0$qTkZ> z)ea^T>_x(F8#wp~T~D5$FRmtP?cb-2vnfHA1_40ies*~D9)-F$dGeMzv5Z`I`?{}2he($dp zHp?yuzbhv4Dl|oMspX(=Pd~30cAat}=c4DkB|mmaswXs$DmWwQaIIj3PH0X*y;0t% zw+1;UR%VVEsNMg_Vpe;{vi+X@vZms0e)7ImF@>X}1pD@?*0u;-5?g7Ks54}&ar&T$ zsKX5w3k_F_TNuCJofp|982V-A%k4wHRLW*GI@M0IV6V%KWBXN`*iY%mZRgpU_O73& z##}ubIDON}4+e8O%#1GQIGx)ry69=7yTm4+{$J2{neGww#R-_x0;=ah9fm>ee7*=Z?+In2~N5bo*-G@iB-wRdQesyf} z9*Z=dp1WdRN{p@YEcXFEiF4x0*XKU$uK#g!qQ<&e$B&3xCJY>${AvD(_7ygf-QO}t zSo+DA?piKte_MSl`}ubQ+pk~F_u1cj>?Y`D4x6)aRdsgShwD41$>wgd>DMz}ETp%R zX@;fLs(Iy!f=aL7e&UxlS+?QkD|d}sN5q<=GQVb6{9wglBHOQPg2iz8>k(ysk_#JJ zH(x3k_rPRQRM1j|TGh?Rc9k6&HPN-UwDH#bkL9wbrOI{cw}d<#8})9VgJSF9Nj3G2 zJJ{3!ob`uL27sV zsA(LTKVzD4MElsOOKMIwbd~vvrCGn%6NV#iBtq^~UNI}l4G8{Wtv^}Q=D~}g$we>Y zga-JYl^VF;{cC6EMBBL$%>q4dt1j6`8fJ`68zSRnIw6MDUUjzL=R?YW+?Q%!78w*G z^|)s2)F+7}jBmQx&orDHvTfHn^DU>eE=IY|8!eyv_ zD|S!;%dZC8?^V6*%L(6__SB^6Kdsi6vsW5n=RRQm$2+Zu=4`M`(=T^FI^S;Juv?R- z8?DyO>Ha8Z?=sU+yhYnRE7^H^kMGx|EWcCPey>L)Evho9&$wcC&**w=-uPz=$JBVF zpRvx#dXnyN!D`k>t$M|u`a<3Y)h4z-Zp^+dc*V0~nn=jF^i4MwYirr+vixeY{f^Ar zAh)aV*Wu=_)c4|P>)$`H8L_6mO>@uqwUcy$MjC6)|6Y+~7xgf8y4K1w8nYJYY-})0 zt6X^7Lum66b4Q^sHY~qdY`?9?Iy+8m_O(>MddltToxUaJ%awD(I{Ocm5D6CXM5$)-g3B4xuiTo| zeB5f zu3fugW5BG@vF)`Z>REnu*?t?90wY3idWaN#%(?YJy*e;Y%vn<`zM*Q}oxZa6(|vcI z_ZyO-c;He*Mql~O{YtW)dB>*jY&jU-emADlKDS7i z++g{g!S-v^>&KI2`XR%m)bnH(FORfd9_3M7`%BfyQ>V9em#<1{a>?7+r>oM}4A{&6 zTEf{;u!c`Lxa`0zrJqX1yM)HJOR@awv;DqQI1<&iPvVAIU_pJO$z#iG#{vB1!ex~? zMa}ioo$4))Y@MM|Dm^>B^~L97fj=W8O}A~Uw6!_^A%E=hkK#3H?C-HN*?v!ZT)Eiq zc;2|62mo2zYlzN_tlt_+iIKQ+|EASX~REp!qWWWwXyFvJ^k`IW`p?v zt*;;Tm&p#?C^3Z9UIVt@fqRl`&2APx?UCl+khw1~X=r5B(M6BU&z1DL?w~xtu*hTJ zT7LtNq}U_bvBhOgU|gAm~@pd(mCvLX2|v%n7t)CY|!E$%fZK!7AUAp ze)dh~^H1?Z$pPANhGETYICkCL3HYM;HMROf)g-Va|Jjayqr z>qpfEmlqUYoLaNso7W**eJi2FLpg`Tn$G6vgy5>L%V{54W#<^$z3|s{bJc-J>@TE-3K1% z{O}K~9X~Dch3bg6;qhV_0(!ECbwvl{1`g^k%WAI~+wYj2hn1}O4=8^qUn@LI_4T}# z!r{U>+? zJ&ol*zcEQAH_OB3W|Xt3D*OGy{6F};dSlwDxGi-@#&38e^?i!bgtBELijG(Kdwwl7 z?;~1v&09+PZJK-_->bea`3{fsuRk91&U>9zxIzCIO(oB%jfJfCTCn}z^z=Pu5ih;{ zx_gXWs=(8paD&p;-lE#8Rs`1-K6xSjWgLerL1&nrQij^IH{b_D-lc{>I+Huk@;XThzq0g|TG~aWQ-rtyQOVY*pUd zHx>qr5$t&=GST*Pmv^i+|Jw5p4A0s}rm&w=E!loIbh_^N5^(hL`nt5(C3hpPp6)$d zvsfC%8^$;l;3-ym3M)Q}E=S%m(>wZpCq11WMahf6b9A zyVA`J{lbg=!}P7sPw;T~_q*vtG;oUGaRjUx_~R9FC<#jdpTMQ+180wG6W#z9;qQ zv$DI+H492smo$5R9a*_$%}TX`wW65| zX3tDokmtSqow#ErE50^tzfIn=-eej^2^kO8zi*Qg5?1rlYyUBiAJ%)0JP921L2tgT zuZZ03yP+W)=gjS|pjv(6%<*@^uXKDQ`fuOdCZx9N6wB`dw%_)NPi-p)xhvye^_@8v zlG<-sjOOeeMuJbjwqGx=AD7NM*WsjegCBEyv{#FP?38dN{Rz2TZ> znRKIpbju`}Rm0^q?QiWIcr?ZT$n5udFCz+OpNeP2VKLk9>Y%SjT&+JuoY|e&$HOq@ z#2tqvfr%Go%YBR{bU0mo{q_0^-Rf(jm!4W2vD_@aOn$4(73G07nT-OrPm`i<-@azR z@@vobD|{;?AvEi?(1e63$GzO5O`A?dwQp~mqNdq$w6t`dmz}rFgAx_R8&gIJ+)20Z zFID*E-Rwn0cTPPwUVKNR{Av&Tz0iT}cgF(tskxDz>+V@^n?L^IoJs{n^Y#<(*L(c% zd?jgbZaOe@Z^nvZSN|?Il`j=emz5;ft$S8(J-ulvyKOQZV_KXRb*ecRwg<0C^Y(+l-fY>K2E7VNlv|B_Q_ROW&at@>kn zB)secVs{6y-;bTxe%~k9*_IEvcUaW4W7d%{5sy5{qp$lfyX9h2m6lT!WMg1wvOA(B zP~5OOyiM(3#cg%%4^jy-H#Qa6^#t#+eH6|9cXdnHez!jDb9e5L*~c8-1dMt-`f+YZ zTUIDkXjNBY@Lhk(xb~Frq!}9CS_FG^YoGRLybvSVHqEp_E>qkqK zbw?bmJY65*GHlCGq3Sfr5Yhcd8b2SizV3A|+_vmM;NeN7XS_Q3KAhfn-hcQ;_Byx+ z+pmt?th+Dvgw{S;KV*lg=)$%NUz^mo&7Dv8yzuIX|DO0< zrs=Izzc#sUAN~E|NiP=bu;&L)wqLDkvvU^=hP@qE`R?+C37r!AE)^G5?fJgw@-6*~ zJqO=7d~+5~oElW{YI(2bety#N7P>OxPreP+Ogb2F&8H-NJ=?Dr+i&6Y@?%$~IgYHK zme{J0{Nvuh(;aP2+iPbGpY4C&A@Z7s(9uT`T^Z4@Lf*Z3KQ%8o)o1RJg`O@l?+3fv z;`ga*yIApE%JwVXbTMeE-`XyP#a1O&7D`Ho=1l3_Eb#02bL~>sAtsN+&i4va;}4;w$1EgC-DB5%1_zeQx4vXeW)He%FKDv%pHeWewVTR zDpsdg3#yFL*|H(rGSI!wDgDwS#WkCg)W5%bw(fxYkYSIO*G{=P=)?9Zi~db^xoQ#{0q<=2Pp_lVtD?O&F=tkfnwUp04N#H8KY{AJ&~zw3BMpc9XM|0@izQ#ax5PiNXZ+>7%tqmv9&^WkIQG!EWOB=_6Qfs)&l+&S{K4mV z!-k8+zO458vHiMQBwt!!cRX0#N?72bz0<<;p6S+^!^Bp7%)5K&$NBoZs3V&3;jHoChBf9+loZ=%m3e zqrz)z;~th*D@zPk@@=g7bzL@X=hE*M`8$t{nY-6Qr%Kp8WS>*p@v*APXOmfe1K57Y z-+eakZdZ6p?~iYc3|eMLs9-a8t*T7_3?*>@mBY>ts$-JE_|%=E$NkU z?ZlKbGn;NMNo*|~Qst4)^1Gbv*ZSFxyyE%8M5+#awM@*9nHR3p>-5a0Z*<4)S!NNq zIOUP(IFUWs?ULUz?q7JFe9bpH=*@xH?%*sN8#xoNOWQNqzY7Xv`#ox7^YZ(KCHiU0 zlJ_S*QXi|oL%C9@nx{B-cqB!>Q7JjJOSMdLyuY5)0S!Cf+P$&f zV`@i)vf3NO^80^(Irsn3g5Up%jea`l7vLY@<`NV_|4p!de0&jqZN0zCx&{5t{ zYwP%H^HE!ZJ^VsF&>V-}e0&4`hJO6Db^N{aQJY)({1Njuq=Wv4+D!GjxCI3HBV8=a z$A>==Fu9G302cu+0$c>R2yhYjCx`$&0w#{;;~V-=EpSRB*yS=9%k{Is*JP zPzUdMoHQ@r09Pb@K@V5% z;rjp27XkW)8-46Q&Ohw=`OnAx`Fg;$h>O5~9RXS+>{2uG?zUD#S zS^u%yKfZ>4Z2LLyTm-lXa1r1lz(s(I02cu+0$c>R2yhYLBEUs}ivSk^E&^NxxCn3& z;3B|9fQtYZ0WJbu1h@!r5#S=gMSzO{7XdB;Tm-lXa1r1lz(s(I02cu+0$c>R2yhYL zBEUs}ivSk^E&^NxxCn3&;3B|9fQtYZ0WJbu1h@!r5#S=gMSzO{7XdB;Tm-lXa1r1l zz(s(I02cu+0$c>R2yhYLBEUs}ivSk^E&^NxxCn3&;3B|9fQtYZ0WJbu1h@!r5#S=g zMSzO{7XdB;Tm-lXa1r1lz(s(I02cu+0$c>R2yhYLBEUs}ivSk^E&^NxxCn3&;3B|9 zfQtYZ0WJbu1h@!r5#S=gMSzRI-y;IO{vJ*^A6x{u2yhYLBEUs}ivSk^E&^NxxCn3& z;3B|9fQtYZ0WJbu1h@!r5#S=gMSzO{7XdB;Tm-lXa1r1lz(s(I02cu+0$c>R2yhYL zBEUu9-#P-lmU|2Q?qKDHKhl0W!9i{ly#0eiTzq{e_y)N7czXMKOt1;^@X(W;GD$Yr zdyPkcr;4n)tc$O=mw$j~KUREx_587s^n#y{kABOCX15~yP8u=$*;*8b}jr4T4qy z8-MtO7>)YyiUe$ZkWyXLhbh!}Y{Jm!@L-_EXd)1(%|n0&qYYrn4u!_g)GNwp!=MQ; zniw?v;gbOCDA?GBKp=m^!CYu04`s9wu)P><7^97Z_5e1W7YRm_gxw7%RLyW`)GR6R zozbMAQG2Dq4@R2=jruzZEQ3bjp8}1}g$(e4Mw>1)GG&1;qv=7TI^=*KG%9Pr_>+en z$mBC(GzDlLfHo6obXXC1l7P(=8u=Rya;Rh2ESP*_U|(mn*^H(H?Iw8_v0Fq#uIipvx*5E_lcC5)y9Tb#+~%xLP+1~Zxq zG%_{75JvN4@=b*{l+nDPQTsH31f$XXgg<;*U<9N2GWn)K8_8(?(C9R114%{;VaiU2 zCe3Iop;13{z$ivr#rV^OCc|iJn0$KBWEm}t(Plt90_eJ1%V_$rdzf*xj?rd9``sZV z>lw`ewl)S6jrVXyGlX3PjjqoKXcPk@aF@|&ZYI~pKm_NPuGx)@W&&G`(Ka!fDYQ;z zOhz%98MKSA=~~>(XtQ8v!KQ5sQZmiKRTz|SD^eQ679g9^_93OV%mz7(wx7`~p$Ve# zbZsXvnicE;jCKGTHERwS$Y@8QQF!M9F-AKH4PED(2Zk_O3R8AIv|)^v4h<%sHIQJm z3(%;2HefiTWia^`KpVkmm!RPf-$D?L0yOtzGG%RHZ(}ry5BakL$uMX>qWF-u2%I4U z+cid83_F#{M=_(r_TVC;QOrnl0GAl;I-@y4i-$(@TP`%}n-kaxO%~}*Cf^d+yBRHy z(VU@CKje_+Gnxx*>IZ4J7|j*-3TX033!qUQZeS&&-G+ugeC|LA&~}H(=KBNFOnpAMAC|Xrp^6m8JHsWVA{~3xF2FXjP219NO_d_zT-(Mx%a>fD@XN zs~If_HnpF&8b%9-P3@<7x|Y$X|C5<{qmI#5K$`-M=Hw@g77E)Fb;a=rgT2y z0nH7h^>mVlf2Ohu z(5T)-5Wr}P&?tU~KoFyiVe%b@7R+c$j7Im_dK930kTO&DDC~>S=pHnV(T>5UHd`T8 zVYDRJ)MnBqK%>j&IG{R6qi1Gn-w9w0Z4Od(Mmq_c-ZALDM9uohyz~sw={S`LNwF?<7A2vB&hs2iAZozJXP4lW9qZPn@ z0h_i(NU3jypb|FCwf0D<3AaHFqd72I5j1K`1aM@uV%P<+HzRdov^%iLNi>orjCL1x zHf)N&GozKjz6_h@JQqeQg?$e8cBHP1b`N$6Y?|}j7_AJpJ?fyj%$?E7VN?5PF7sft z`;10&nJ1$?fK6kU<|r>ldkCAZX_}*!LW9Zo2+%c6nh!K#q!nZ{S_riM*slaM4^h5w z#$Od|nukb>fJSkC3}_xAZ3ClK!=^ccv`tLe8rX-R(cBot|aMEHK?J4XXjJB64+X#*3s{=^m8LbJnDWmO! zhCh7Iz-&f42!Z|W4LB0a@u z?_g6~Xg*42wD++4Qlqe)hDQDU0BHPWf-_9MHqvnI(_C?u(LTc73XSH9R7U#*+Xnt< z4oG9P&#)IV8eJ1qT|4*$y8vlAqjkWhdT)dCjMfR8?%i~KUSPB@uqhv1cNvV<1=|sh z>3X`zXkTH|_@is$5;W@DH$ZVF?Fy5x8#cw6v`j|(4x8dk*ACTBZTDQT5qI3 z0gXS>avALx>}`y8iz(X!jm{C}qj`q>(O)zs=~^sgG@9#aOp*L^&t(8YmkqgpRoITT+qFi zv~ICSFl7~B(>Wro3mTmxMcC99 z8m~W?e4}C0IU?;Rqm6-0=Yz)ZFGf>hG#alxjHV2mo>^(UQU#QZ#a~pG#%nJ|8^>rg z4*3~vJZx$UohJcCQ-MuwAx)6cRAEz0>D={Zv8&UsRSf zT9YJA2Y*q2X*|%HBx$<%i`qwVq%}#>^zhdPXcV(yj5Y%{jY*0btyALg?`K3ROKqZc zN+f(U@fVe)`e~h#Gz0uaWvPBzr=+rmuqmeGm)0qf@EI{0<)?K@(ta=cAz4ccZrJ+i ztWcYxhi@_e$yXUFL;g{m@3s)u7(p?(1MUL)4nyBv?twB;4(@{opdZT6bCd`W1%tp~ zFa!((KXI@81%7`&!9!Rtzz+lfeLv|9ija@)b$7sBK=-&(K+leJZ=+|!`+%PP=w3qi z1iA-g!0$zH30wwOKqklnSHU%q4RSy(xB+g0Jdh7=fdWtnZi6CF4DNutpahhHd!P)I zgZtnCcnBVW3Q!5Ez++GiYCtWh15ZFbXaG+^BWME8Kr?s_UVs+x610L>;5B#y-hy}F zJ@^3Hz(?>2dp*5NzsF%Kf(Yw1k z&;ayJi@sqAg5KaE#_uCg0V+WicnqpR4X6cm;0dS)4d5wg1Wn)>Xa>*03qaq(d~h-O z0{V93fida{B*1Vm0*nNbKpKn!=E!FOW&{AU6Apah)6>I~6U=ElH#1WIh;5f#}K%{C&)xlJ70PIJM62NZQ zdq5mm1HwQ62n0c(9C_}8Xb=Oo0{UL1jq@-a=z!(ecK}Xc32+AV{mK=1fgV1Q$Wzz7%v`fgq~Lyw=&YPKn|E9rt(M?fFc+T#sDRt zj=UORDv-v$6zB(f0a~vchjU8b#Z&>^7wJAo_c*$z(Y=Z8J9M9+`wHDh=)OVs3A!)P zeSqfu;eh6Pn%ikEr@5QvYWjvG3+Vlf-m?jN|f1}R`W*adcjJs=LO1GEM|*|=cN|*=g1|bk9&7@;KpdcT16mVE0Eyr*p!aurUq1z=!iN^ffY0OL7@+t0 zE}W;Y;2Y=$AHa3ge-nBAz-HtTLAsA0b2RkN;1Q?sRqs=#TCjZcYXbbv0<12cd= zm1@<73#h=4DwqIXBCiFs#YiV(e+pOv z8)4x?k>B4<1|S^>#DF*$3KVd#0(tAfW|XJj+AIQ2zzZw`et^D-cEjIy@B=IZejorW z2L%*=kPE&bFZ~Wh1JG|z==UOfQCDBYU;v=^Eh!)ejzHIjrU!}utf#S3x$&0rcI!HxL5!y`R4C4+8W}UmOeuL%>i#-|y*rJ$;`a0Y(BzAO)ns zC=iXlYy-*QG)M*M-~z}17r`ZP8DxSi5D#{OSg;H120TA2V6O!7=z~891gk+9p!dF8 zh*uI~v>ogK;plTD7=dH=(LY*GnS=d_=s$hK^~C;C;0@#ez4MO)EoeK%X$l#N(AI)TFadcc0?NaO{aZ+4z&79t7JzwRC&oeq zumUqc8pePW@{0o+6NWg?LP*IEaTaZ)SkwB;SH!&=@amv7JX$-W^{z@#4Qc@8r#$IQ zN;aLd0>CSq&DfWaUIynt3ZqdTd$fW4@O+U*F<_rx_PO=PIr&THm)4kRO_|n^!$Bm7 z0<>1V1#AV|!45#@*%X+8S%A*D1(*%!+|L1Y{`&*od0hqDmbIUWc+vNRzf>pHMfFhr zL&(z$=^gZo&OhxF+W@VxxI?Et(=mc)Q_8D*GHg0my#d9E$}9wSpa$oQz6opvFK~|O z+*$)0un^b+@%2E6Nwj?wkTJI+2Av=+uI|GWL@%U|jpX=dX>m74rUP z@uu~0iXp9)(RFkdHpNT;DP5PJ0j-_#u21&0N$aO{ZF&QWH|75XczOTNbqVcv+?kZF zF?Kyvp6a7KwC*^NiN`L)dmEtfYsY95CtmEFp#68+O>@=X()QnT8_LkQItFMS;`Nc& z4w{E(EVARoo40hw9ZFki{=msK=a7|85=nE_o|n!DP9|RZKA&LY~Hz` z*id^Y&i`-u>39_2_2bX`N#v({3lcuEDMeHG5@75H^o&W* zn)Ljs1EvFYK+irj@8<(ruYHCxCIFW)A1*;Ys#y}yx{Mr<1z3{&{rrW?`}gzMD5Nq# z8b|?NetISw1o{J72c>dUhMw0*qhs{^Mr)(=EGG(vfWd&)gCqbw(+vZ(HbnIh#=r>Z z1A6bK_it@54e;I@r@~eT^qxfbC}p4oMgv744-~){pbAs~y-$q;W5ER`%Oq2!BcPrI0Fmd1QvtKfSx}N1DZoAF6#ls zh@Pt`cFO?GvDSdz-K>BapnoYqzRbZaUzzz(n-Yy(?CG>8GzKFSvh$mbqF^;7$(PSU6?y!xqb zUcGx^?`Iv`2b=my=aEug8EPZ%7-{4q37i7Q!BHR%jsVh+ffL{)I1Q4)IdBGC05m?* zKni2id8cEfr-HM9@?8W}j_mUw9b^FNn=_y`76LlQ6vF~w2d)7c2Q==MgR5XZ$OKtn zFmMJmUh=^WK;?L4tYK5R9FPsJgIsVEXm2e-jpPy|RT1{8xkpd8!- zDu9lcf)YS_8ACnN$Dj&41P?$3cmygz4X6gSpbk6%jldbuHE@}+sb3V6Wq@KpeQyWv z!CUYKP@XpM0W<@;p8tIOCG_Xu1!w`}lYCKZ$OpyD2ebkjBcZ?_1b|oIHJ~z7mkS`x z4NzN2e+MX*y!MbkcKfJ3ykpeHPk?-V1fPLQFU+f86zuUxX)R6}P`)up6@e_EXBAop z=nwhy}%dbr5n~SBtO7+&<(zUPS61;Hk7Xmd{NT=tJVStWP z-l1S5pyQN}%1}yqD5Wx^fC7*QG`{4JQYInTOwC8?1}uRZZ~-(X z>3Mz%pmtGyI!5)j^=>{B1u=WY@9=^c;!(t8N4+0ipGJ(~}KMs-tp2c-0_LhE}H*mp)s zZJ@D7^QSrB#e;nD+DCQK_@?=tef-a3o7zvltdP$P&{*q-vU46}lGb7}c{Bwilpw@Xj0QzR=k1qic!kq&j>6yPdpwJpnqeKNRa=><0q6hUgsg zuCoBx{(yIHV7GfYbSg{j<;~AQOkTSF$QLg@dtp->DL-A)R7V^L0V@FIqhoZxCT$_o z-AHNv2t~RJ#Dbk*2iOj_fvq40M1w70Gl&A4z(%kEM1lwq4%UN}U=>&k!oX^ ziFb~8@jrxPa)5XKkHTi3Uz%&LK%-cvBVCU43{v(rd;7iu%LH3jg_>uK23_hdkIo|Agiq+p-s z4br=@UjSYJY6D&W&9IxmHy{tbfHqKsW1UDp0h-f3Afu3mk^U1q@Y2Kl6Pw}E_ zlIo$2p83U)pW1c>I0HIPb@?JMwUg@M)j{*?5aeHmlgt8m8XCnV5%Bs-zLsI1 z=a1TD1*lGOAPVUF&|j*bz8%s1jn`MIo9gWco!3_Z*yNM?mVkOFcJwS}0^1lw!tRee z6i*SPygq7RpV}l0jr!LIDSfXZ|KyM2MbCeN(0T(ZPx&by9qY@|XrEUH&j+=U{5S)O z0omk(_Q?;`N!OGGQW~?gPcfnIWX`auJhhGbM{y#J{E$vIeM9>lTSg=Q^ln9UPhB^Pr~Xi%$6%l4HZ`OQfUb3Uq%=R# zSfTl2EcTDXRz^zs>3h~_pa^(*Nhgi=37V%!BYOf+0pr0qKl0dD(ORG-&Uj{a16oCi2`z9%}1U*t|Jk1NL8<^Lg_;&G|Hc z(r*Z;JkJN+mneSpI|6+`za`j(_S3rbW~BR&(mOyr(l`(Wdk@mxU>Ar5o1kq+O6%DE zU@M3L(O?VM45Gj$uo3uy4ImOkfN-FXHmpZV>-cK{t?#b^w7$OztOTK81qcDbz#0UB zK(HLpZyS7p4_F4g!BXG_Jb?#r2X4R_ECGwbB47t>!9uVA*noM!2p9soHYg6f)R@sI zR;I8`nEgoX&xJh)Sb^DK7BB-Az#Lct%0vFB5Ay-}rLu8=be_iB=haK;pEX`v*zM!x zr*_#h{;920)(QKhI|2v5tBY4ZFXbKQ`C`}Yf^xilSJ>?S(;Pzeu**@~{;PJf^HOAmEKHdbXfZXy1ySpdH_(JL4fA-e58k=(LA3BZec$g9D*H)^f=NavIYJq zN8jjYV&4yGK2n-H^N`YWXD-rYa0;kke=JZ2pWr7G+7&PW`QbrsinTo-Yj#YO)9Vf;OS>kzJkxQMrt_rY&N;G%kZ#_#2{>3x~!EJ!yaE=r4@X>k7u zf8XPJhwE=#Z*jfB^%2(xTvV>i4s@At?}>}jCE5(QCw?e4fZk1qzjFGt-cIjQx`a`l zggNGup1)7eDR06kf1;ClB^gk8C}uM|E{fkQhKu4qDGrq4LA`M0z(wV!D<|$rCb{`D zy3d7sSw{4?0De<@pjb4DNz03iXw_&OpHbQrb6SMI?;v7CURS|AwG;YHv{ZL=Pjw!Ed(szw{3X5j#a~%wR4zaM zTTV+(gZK=_C8tBQa#<)1YRg1VGNCl+eX`jh_)G7}?Sf<=m!0ZDmM@i+=t*znG^*lW z&YzyqJ?;G&Ms-8aMEFkE$THN{mI7tJryZyH0*#C;>&*TdBi z*O#~&;HuB>>8~7P)&lpFU!d_{Ih2FOK{SRbjjI!AsDB~9VH&X1;};9) z|6d)ym{GRQDD&rxVdC)KFvw^;{*s*N{&W4NH#?CL{;mB!9s8T5X4im_?(v~Gi83U4 z&!d0JlPE1QX1&SKPm}X@x6D-%o?YDG+>?A@;4Pc zcs6VeJvUNYxIOs#it_r86+8k$ef<5ATspLjfnH2>?x;*=mW2G{=?7 zl5fJBCdc!a@(2J@6+9J#=92E%kA1wlcT$hbs8cFWpfvYGNY#MS`HmEi&I-ieCy+Sk zZPrn7G)14REKxL9;%u%5K!TB49?%?FshQrP@lanz1ctAqH9~)^>Z8uynerT4lEgtdI0;IVL(vY!7Z?^2W`ZnbQ zaZ*0I2(#4$-mbi!7`bENuYUqT%>^SPvX`WZUDsx8R?IKYV}=C#AT>P@O0DFsy!Tt( ztFw?Hfj&V}9C2nK7jslI<<8fv2@rqiAyP|=+$chr%2OzJZe#n>InN`tKuMybfaC)* zH%r3y<57ptFa-60Q56u9=#~M4elKw>+gXPAQ7x?Jsa@OCZ1JxXV!Ck}NK`Cq9qLD2 zqG2#ZRNMW=+IQ!9{P%dIhSo#%Bj5mtD%XrAPS;znjWk%Neu#eu?~{PJKP5&g^kgM+o&l;J}E-qzA|ATs^gC)Z9%xHPR4{ zlxtD9TKk-aLJT2+YKC&8#q2#*f5|d#t&-1pjvQ{6u28|s-6sGElJsB}M?xFu7lnUO zpev&R22TqJwVxurUQ8a|HGgZC59$GP6F{g1-}tib^&4&eUcu`J*2N1f6W1lL`SvK^ zqvU;04^$f^rqS!QQ3k8c?lm!SO;X2L`2a6Q0 zIe2)~$CZ9rFb0@r{`U&r{Y{>e16GIsdvj+lAR4*y7AQ+ZttHGkFwDH^7 z({B2~QZN~S#%{Ak#91&)l`VJEXY&?(E7bxzGZl>=3>`0D1G%X2+F0--u&kv?#mh?&bi#-Gas|9~NZ(5SppK3Tj% z{Cu+vyROg_143=#d7t9%2W}{gRstHp z%WbYz%`=(nh!~x*H@H9Z%Micj`MZ%$4f(t1 z8)HFJ033Yrd({?8G`}Z;MsgEf^t3}jLtbZuWpHcVsCmah0~<+LHhLtGYLa<*$!QiW%H4O} zZbSaO9#`;${C7cZ`v+(mz(FdCH)efb>B;MRQREGBGo}NQ8_1&vbLO=3J=mNhC}}jD zYm#-ZCJ|XnjqY$22=CDc1EKuh=F<267<3vs+QZ)mIufKw00G&zJ_XO-8$bQ3h9OKt zhH#`Y)wmfkPG~BwV_*L+GsWTD#RpK@$=33mcA`DuCDawpFkgV@xAFs^; z-uMVi+)C!5VUs3y==J#1-;;EIF&ZZ8ZwgDA*wXjFqCzJQ=4A-8y(%T;9^@I&kS2!r zDN`#fYfiG)TtkYZs;N%TbzXV4$;)qllD-=LTqM6M#k34KMXD1M(Mop^}l#O|I zmJu7WUhCDHw-QLymm~B04T$PIXkbgF{Rngvro1L-sI~{?t{JdptMO;>M(qb2h-KXl zG{oD?;1;)!g=U`z8h;w*1O|$0VGd}>zODQ{$rgIc_n=}E>lb5thLS$auljYBcD|Jr z#F=Z^`ac5=*^mV0d~u8`^IHCdg)zKLZZ*0-rhjr8DA+@ZOh@3%RL z)M#81ict;_s%@_YBc`4h@>6!DPQ{jQC1}W6-dNHh+tSF2R6nF|sO=X(V9=5#e7B*) zhe2nkq`aMqbw@?x$sL3}uT67x`-h);}N+9%OiYH2UBP!!$v63ZFQ_@?rMP#V8b#p?^y@9lEgj z(!|D~VcwJTtdzt-piebT&9agnI> zRSsCq2}Z7H^^cJnwe9?Q?lrG4s_}j)pHLWtfO1mLRQB-q?aCL4O(!8F9kJX5(t+;8 z+RP>lLNwK_;XP^sKEI>F8yrZg?P$HpmS~F5^eWt{>b#CwPkVaY08i99L|g|5 zUZ8mtJK&ql)kEMb%c+U2i`YLXht%LaBx$1d9C|XT5ByOk9muT)5H#YXF8!D6 zewFX$S|y*afS?H_1q~cO>-oS9@T-Ue{I3y9^cHBS{X9D~$TIKJDYE{-Qt$i#2U@b1idC%*q1;^-;NZ`^Kt&~ISVTJWT=3Z3?PqI>6b3}>Dw(b;;+eEQSuW< z`rWToaKZwqwnNE>^#MZp1Wt+QzkmKh%wUwn6ROkd_)E6xQ4O8$ctA^<^}v7u(}tlf z`5Rjc9=?9|?8je$kQKv(Vpkw=ppshu@!hhojt%U_Xjog&+ah#EU8MfK@!*FRUHkO} z0$-i1nAjeqmVuYYVWgiK=_le_O$JP!KA*Y%V&Q=$$?lMSLwUp+(xi&yC-%7V%%|nT z!lOaM>c>_4nTZxcmRz2t_97Z)-_$jpTBAA#gs8Sg*0R)7qgJnOcL));lC-piPmm62 ze2w_;iwsD&=#?ZL8l=Z!o+bivc+|FO?MJ`1CI6bsTEw-hR=-Fq`8#v-ZGBjH#4dPG zrfj&gN=FG(iG8O0}RaQEI1ROCjJI2K1kD;JW7G3?_p`XS3NdOd1q1 zt9n0H3v7J45eqb=`TGi&&9Jj)uiLB^7_y5aB|Pu;X!G(5RX$1)fgFMb^JloAWKYKRG)0Tm~wYp1@~mwKaTV)J645s#U~b2Z|zjKyHp*)c5m`st&@ znoaYQk3{;0+{I&=NkOQec24p>kcXde<2WIF#x7Ii|8_q3-cMVCe2kmN?RAc|h z8%T|NLe+s_vLtDlCEvBbat!j|B}G2sk&$4o6D93{)X0+0U-#za%wE^_AvJC-Rc2e! zos+()^nk=Q5CI3sN2OWJS*)KK=daA*NYt zvnjG(48#k_;gb(H5ANB#kAjGKOR(xJmPABl&b#ts`GI}kL8~MNG-9NDZAnK*rk_&b zT8(ShkPlW|NeEE}Q=~TDqRDa3kfZSCHZ~x<&+-Ee@s?C82-2eD!azfM@c2#mjh=Zjksm^K2Q)fsv_*%7MbDg1FLXR`lScg1 z7*KP1o5gB~(`gP)-M&UwH{C5Dyg!YrBh}p0j>|k6FZI~P*QTHc{$Y|tJGMF5Qs=el zsFF`jjx-vW=ezJ8ca|xsS+w{}EG+4z(ls-VNF4bMLs)r$7~%|e&8zOM$9=G!s04&Y z)!^EqwX=oVA)P80_F(G41M0UTM2eAd?g3@Qxuk^9Dww#W1&|Nv zTeG|evs@`v!KiRh8VL1(MvrsNRxJK~u);wQM@IhD_&~Y33Dg=nZxK3EU!4srUcoE& z4X>2GVqVe%He&g&%Hv!=GH+wRbzYQb@r7d*UTpZu7hKc4Hk`40K&YLT)y0=;-N%ZE z0ohLst}nHc#*a5G?)Gq5n5PFdEOb}uv#m_8#kDQyHDMFQH7D?%(8md8ThX67&)v#0 zP#x*{qvs41%qyb>tIxJlQB{0pZmXPUb!AOdok7QJQK$=vinUj?A`q&wCLwbmSb0E6 z1=ax^g)qi_PE1yitiVgfqgB<}pS!3Q9f>xeggw(kAlmKf) z|1zd)GHBa`nzX{fBNuhyI<|`a{O@s{PxsbiT}JLpRHKeS1wF9Yn7t0ue(dowDI-S6 z=+T*dv+4TL!h@#J8Q*LrcXy)k59h#?VAEL)81WU|`LIl$pr@N6vk2mP%ZkJr1hl=&2JAYl`;aU@rv!!rw>4ZR2&iuVKy`GJrx zW_;Z}yc&B*wc=9PK;K{X&We{jh+ z>G8;RztNm3*Mo*YXbxpy_jK#}*#>L{LZckWpaVx9FJ9s|zs38-K)AOa3B(ID0R>i< z>+e5sBoJ_DhDTN2rG(4yw%b{s*Sj^Ie2>h0!KFTQ#=5H6h=KynjJrJG~pn^bHH zg!8tXBQy2q%blLE)fY7M=n}+)aj0~iBB$>A}K)iv>xKppqnZ||h0wIBtRtbAe zu?+rb!hP~}wRc3euLEo&u9_o#cOZP=sB0m$tOX$vt$sKZZD%wrsxlS` z>Gk_dO+6d5|8W!$K3DT65SqdG^I6%wivmNaHS*Lx0m%+z(GQ=pyz76l8B2|6uPO&@ zBq7!}yETZ3y?WH0%dZJ5AFx=vXABTB2WWFD5nimM0h+F@rFPmXq0+a(=hl7XC54j|3xwKFj<6XIiwtPj zndQT3?idj2v&yz8x$sb(>vfZ5}hw-4Y5TCli0v7jL<=2P>a{=t}b9XSV}5%ZP^8j_C1 zk|Y1knt`%JK@)A3q8&ffX>)vA%uFdthmEsT%fn-YTFOJ zatF!2^{zE-RG*)(OXFZBQN4`?=xh2_x?N=8zC$L+fVUFCcpK$;%2WIG@s7g#yg!^v zN3qA4KgQ@?=xvC5T5&(;?1vzqKx!rZ;*4-st+u{b_Y5kvWf8R>J`(TOSt@CaZSAMO zbFMOAY)1VYcpD0Ytk~J$yzRSOf0;3_N9|hFZ3bv)r-nAdXn3waJ?d9X4cXC(-IpAz(XCf;(2x}iz+OuDu+-|E>Y)S&t#v*feWJ7pr6**$4@NuG7Os}65 zB$y*-i@l7{EY6&$AkMQza%y!!L%Or(#Pxy?_O(Eyl8m(ENa(v2OS&eSzE%+N2-$f} zLQZXB9?6o+F~Le|&QZKFjq|KKAv7c791|?lh-WamqCB}#(rY7s_BeiUDP|*Nnm8bZ zfQ%fK!LV)k-H8e!ZdqcviMbZH1${q@J_0T1N|oR*3OxLV{A*s@Dp4R+F=j$f+qm<{)b=@YjFvBs;eC0(Sn8Z zf0KBlniK1eSPzCEHSz-TdHt}n|3s7IQ!u|uHD-Yp`+{qm*lerRPB#H52%6W;C;s98Yv~v!HT7FOCYqN6#;k~A<8%FLxrk4L&*Wqc)H;jgs_%*YD6ams>WzJGhy%X|s z1hu`9(@cwt|FOXAKK&WO=AJGCL2yq}mP%c^-M=vL#RMgvCqRhnv-+0{r#yV|UZKg` z1G~h56#02pc+KV0B;F{%OH&63rFJX$<+HcB%KV|w=z;hG*&g?zbiG;IX%!p1kqo8* zDFbBpnAyb#Uf3Z?lp(3xf|tiOyi1y)x@sk$K|bgKwSNB^4cp=3%$v)6{wo@$A^!ny z|C{r{Y^%RhEP)*1^)KoHYuo>Utka@9X_0{&8gbt!?&s3d%ZT$yOKQiXB;WshtygOT zJYUfIHuq4(sfjrdd&Ghm4D=Y{zFzDRr`9UTTBg+t5c_;$Pe>&`gho^7HN`P9DiJpn zTZAr25T)ZEsu9Q4h$9BXtN*cirMV4O4_$2q8Yb`&vl~#c`-x)h z?TPgW@)OM6;=(q>CUipkq4{`tD1s;*=(U(@v2?^V|8VCP(?oGTVp}C1O{K+)#t!xf z9Y!F7x^yYl>*dsF!RoG!HmG1qHirLm0fvfBIZjR+rv)OdV|*`&8)gRZ7i z^;JE`=kl1z@?oA#>Y3aAc<@v8>rNs74T-$;@xaeucdvL|0ck!NL@ow<6 z%c^Ex2wOCamiv*BpLd^TLQM`s*} zb<{}Vqp-bgix*tHkQ%qJDzSMXQuLX)&53&q@%)aMH$8&i?0ReB^8E`hcIsH| zD^^k#&nIp_V&25|Ks?(j)_Acd&M-@T$^P6mUiEA~Z;^Q0 zHhJK!dJ7XKfj6$BX_1@QdlJu5cLxX5o8@nw?T<}+2C%hVX)aAXb1EK5h^>p*ON#{u zUf>|lg;G9Cewe!lGT>vg{v65q%k*-k{5sL7jnB-bC2CKsA>#f=Y^(D1k!tQyHt#}N zhnA&PQt~PMT=}qKyCc>eu^vnZ2h2lReA>s$@R(N1`CPPEI^y|jaczt3f!II5;Y4O* zU%jS+|I#x>9>l+9HAgX@F8oBX_KH_H#F|*lD$PYNH(%U&u1|Jvl8#hARe-ME6M9o36_}tsmg$PssgTY7Kk%%^1crN2k>2-Erom@in9#l)Wo%L z3?*f2M%C*TYGb&oVI{@1n7^i=O=@%BbshNY*yk<%fzZk-w6_8fn)CkaK-X8x$CSLE z4to*UrZP0|8XSR9j)wH{U z?BV&?OMT&W?xzD+6yz5mv`>72=3GrprR$ywlHM+*R_orswzz`f{XB!W1MwlG*B2~!*6e_TvT8ut)w89j`U58 zoK27-na6+nwaRaGbg-~IY{LbOIJIF((hT6WhmkvizG{OA2)X?@TUfcxsd`+jm5A+u z*ne~Oxa54g43T(S9NRZO@nhFwOgeOmq$U~&jdq8v*Pp3Wtre{qQ4fguojyQlJ?s6x zs&7x~+eC5%5*0_nsB+EvEb+Mhzw-G6b`%ld;*n8mdrfkae3yTB?fuzM$&L=q*=d%c z1?w?*KF&5?=0NNTiF@a?cqkvhTW;t<*L6F$|G4uqMV4~jat@P_8D2?s1G}$9JEb6A zf3)C|K=Oem)8)(sR+hTwu(LtzhdB34az4)OhY;8MF~l+u$5LMe*IB{!@K2i;yepWG zB9*u|C>Vi}b-~*1KV9EmH(Y9s4KiQ-u)OibbjXK$cK_~pK^#33HbU|(>t8%L``5h% z*MS3y27-qou7xI`AxlxQ#?sE^y1kmJ=z(~Bp&h4*3GVs5ZjP>&ioS z*+q3|Y-xDmH)ah*E*NV1MP+g=$Fk4s{}bslitYR$QXCzlEZgKHXz zW5hoINM0Z>I@YauFril)r99%6Ww&Wf2*}k8?;H}9>)6d66n#b;`Td+`oE5KA?AeK} zrPv~gtxE(($n7-HTc^^w@9fO(M%mf!2;xKF2l@^&ij zWum{4G``z!A0G7|m+ht^QL)BbI8E6RN0;vPK11V1KJ$|nizMD>Bpzppdl~U)O00>A zC=dBn2j^Zq_s#Y-D@g{@h(&BI#dRtk(~6^K#I-H11+lEf?Nls-gppF4o3~-?IR9+v zb0K<@&wlBxRoE^E4A^14P zD2(=i)EKkqdO*pybPf~Wd6I6lWUKx%%@~?D%lD;$FpoHGZ9&{l#s0wbq)1d8`=u&3F>frIPW8+lhKOsW^d2q|La#he;`Xiwinh#EH|;`6SsP?bb1?c zmNsgxQ>~%nx^Hhr>y6}f!dt%uS(9hC=u!X5_HHjIa*_JeV0;_NKa`dVH1(f*JpXNv zeIF27rv-vw_ILx3g5`(n&MypT4FqkT%A*^{3TiG!s;$cp`Xqs>vnlVU9DRq~!xPTAr6%>-+0;99^N z+BW&*j^AGZ2UwB7(S3fYzw_V)j|;(@Xv4Z#OjO|Ct5(x;gk5h+E4YYIq0N2bmZiG> zgN&qe3G{k=;j2J{*!;UjvHddAb|OQx$!rDkuur7Fv5=y<82IWz z_Kg+v#I>};QoJ8SC90pV${TE2HZ(~X9(B*BRXlmBd=)`()&#iTi1L$G$zR*>#8)ub z5uchJ6D7pEZ`1YGyiG}~{P3j-=z;j${X?K34}ZZoJHK51A;#n* zdS8t!*}vN6zYa^Og-~ZdNkVG(@Z5F&k4(3KQ2POp9Y{{%;MnBMH%6>q1%$i}lvEta zTog23pwSQhJ;BCHt&U%R^Dz)=3;w~HUO@7I=Kk8m$(`=@p&4{)jmXCaghn4XOBTwVrB)6) zRRfYnku)PY^73lweBZ73g=V%%5lK3jDk2((lS#RT%mqz;APF7zuAH9n%xXr%%JTyd zinhNq>YDwBmM1bX4k+4Da{@?lAhul{R;~5SNgh7&=7+DYaHP6_v-X9D+@jP-*5EqB zWNBWxW8uc4gEux8y=7I-h_*`?a;_n3l@n(8sWjp`6_4vx z&Yt03z}K@R8?vfo=S6>y_(VM*X)iQhWfvB&1@Q`@`d(icbIsb>(l~h5w6H_xw{9WHc zKMs?)CW|y4sbz-D_vN_1qS3}kY1RX$!T@n<^-Q8DkJyIHKx$q{t>5-nRnu2*LOl~{ zBCMEynAA=kPBh}P9yK}gStlBC&p~xYhV|R35~WT?qaIH|L?H{Mh?|Tp2P9Z3KCS1O ztcj_=g{9c|mZ0%QNspcS@nPZCJ$&*e(>U9B6W%4gb{?^?wH(xfvrjIsv8awdSfAy* z`%_L$JjM`n;5=fHQxo&1>UFZ!Wg5$9`>B1MLR=o_F^0^6^H@ffj`IkN(V(`~N0hX2 zN-Uk!V`peD2&$q360gFE&)s*PZI#O-mZ@! zJOjwMhP4#WD~tQ>)RAP0b*cTGWJe9fnuct={H`9&x|0h@E7GF*c;|RaCLQRG^E|AK zh+Dn$JfBP>*51_RQD)4<+AChC726QOJOx(&)1ryaD-W!sup!QClrrKxOD!W}?RB1Y zXEd<>V(oR_aV^t0uP)0RsP>Jl2NbWYiuE8ZwXGTl$-Kd|=z&-|f~ZQD8t=SL%j5c9Asx znUk@V$u~X|Vk2alv}mI0`U2A`7cJQ7i~*SgvAuTQdnwa6ulC7^Sl`5Y;G*AF`&uX4 zU(XL)(tOk2G+I0OJ)N7GjHX9+XAFGeBhE@<|jV}kP z&d9LVD9%Uh^Et-_$Sq4;QgQt_M`p{ZiS4zx4;FJE_ASM{iBnTMZIn9$&Eh19B0k0KR9xHtm8``j6_3$XBi5K+i_0U{Ua>DG)&sFtiQ9IBS;PK0 zM;)m~5V3e9)fgF8Qs)RF)_&l>rNxel#~9+)D6Tp2NJ6ZMD$z}Rl~nAD31XNqYbb6D z;yM-AoVcXo@`$}B)z}C`o4ERRhjWY!YMb@jVy?wDUM$hnJ}ir#p%Y?NVoGEV#6F)m zHPy%wc(;Oh7a)NevE0NhSS$naxI`=+@l1($Hg94cY0XtRUyQX=jNZjui*-k=y<&@$ zmQl5MZZIvgE6yjJG2Ov3zy4OQ)qSoq5WAairqMNVMBwz6vTP;|2M)_s7^6dqw7|TJ%GxgfCfXLz&`R-- z`5M<<@-p@TX!tCSSZ)VELpy0auYWUe*62X&E08662S`aExqm)%w`bQ9h_sLq&(+e7 zs`8O@myPYc2P^C{k{0PW^G5M5RH@D!$cQ)}F(O_=cIH4_p4zp7e1K{mu94=}$3{;3 zVb|5;6jwuQl&GJ-IkLCP+^aP@6l@9vt68*4suCx}zvLFDw?^wh`||tT^E{_S(N1VY z;*j==+qOV=;QL4EZ1z6zF8khX`mz&0MmU$03Q9B!KtmBkHA*z@(SJ(QX1t^*hgBbMGejk7a+Yb( zzRvV2-57$Ebeu+l)z@TMM}LBbZtVEpflSYw||{U454 zqeW!Zh&86Y{|`m11<<}jaXga1xQSN}q*g zVzQRvh&6G1h z2xgp@gC-wr@2L1)Wjz~bjPvxEh$n^cMD=92fDl;u-FSocig+%48#L4}lNR}~h$uhJ zRgUbNU*c2mW?$0@3~XlGPow^==3sOtuR%kxli?Y&&(_bh`+^3;ybvJyHcLpbZsLgW zi}NV<3kcB!0%3c7&-SZyDEGWg3epycH&QFz?{3{(duK){i2C=csXSKDkXJJ?bE6hB z|9a^U8h&2QR3N2*?Ej_s!nMr?Tu@Tm%#k~v^b5Y()1SU0z&0xmNW=gJHOZ zRgiZaN&n?ZzaihAo~R%tw@D`>Y)qfC{X*Z`UogZ!6hUTTR{Bi?5XGry%P%^7E0eHU0MFyRRUZIkG1)YSYG*UtX5;3DtP)kWPn)3hJ7%nn!)k zHMP^q9NF2m?v(wL7Srw z3K(}I8^r)}S)T_|1;`(}PyG@X6HXDv9MSC5XtY3Pcnr#WZ`@%A-n2k`fRy|-^MiXq z5nMWC54v)s|Ja&cq7pKNDyfa;$nC0?$28pSty_IzjF zC7nLKz0&kze{7q!!PDa&-X#lBog+o_R}8;-`_yPDHL}XRfxy-$y>8uo{=@de==)4O zpZOfQxcvU^t*0mTSCBJ6FrY|^Y*4uC;j2ZX<Agew)))uWdT^d$z_TFq~sb|9H4#`6~4H}a5k4FP)AH7zO z_vqwYUItPUNU?51+TPXlJpdXS1cK%*kn%tp)jodM^Y{kZO+?=!frp|wC`q(h-czkZ zyA7g!)tsg>5NZ=+79MRlB{E#v9mP_MwPA-ANFTLrTKmzjZ69He0Ngq%kGQ1bI#suP zRHv1WNNsNE(~`f>9kUd^80odJwy~$mPkrwtqsa&X&^Wm8o46+{nw8>~f>IOn_76FL zbhLiz`Ou;B;(XH57Q{5_9Jns2I5jcXX=#n()I=Nz&OsOJ0jmXZKH|1r{iM`u=E!`z zUGb+oX-3ACzOj5%W(~RTuU-qJ2Un3#QD|c0%F*|(H-YVdqSyaj6h0uA|M-2#V= z-aPBmS%s$PDXFKu*s{moLZ?l%uZ^en&$U;RruHMUeEu4B8IUHXr92`Han)mpXvFQ* z&qX_(_M=n_=L<|LTXgBl!iuc_X+9)_3TLGKV5@pU&{M+^*EnNS*G@|-()ib4qgMTh-e63Zr*QB|1u^y<8>tU2M z>SJ_#0aypU$p2jd#i$^ zsXW4b(vq6GzEMfjl3H45{woet^?=O@sp>UDMCD1F=b)NTn*C7`Z~t~brz*Gq54cvh z%C6g-sK@y4v^OoaAokX~85 zX?-Es`FlBD9^>$CAy|Epjt02!gjCns*a-}|f01S*#@E?(s`2~-zk>tXlaC2L^>e8) zS>xwi9+@|B{W#NLbm(%PB1rQI-bOx@xJLZM7!JJypb;^&PUu9L}QsijaZ^$ zuEiYu^Uo6ng51_=iDfA4&DYYR>$H6d89h zM>SLKe9fAmJbZ3l{8cvJ`_fLQXHR?2o1^S8=C!=fgvdR-)hV<}Z)W}#xG+Ky$ZG2WbG%m(uqvz!kkeXE~y z{WAObvzVnG%%cOnt4qkh4Bh9}8n+ZNfQ&at$2l?qG%Pehhtx=`BFAm%Xt=)MDJ05k zZXUWcIt!#jug9PMo}@!mC2LtIkA*_Q@Gr30y}z~$tC$f8FR4nK3zlR(9`94U<)c16 zbAH{}`P&K}tiw>TZwj&qG{oD0Q=ywiyn1>`K{oQ#WEZiP^eMNcw#|j=e z#FEu%>a#$Q8Vi5+(-ifP&Z4Sxr+A}ce)E?pNUSZ=9ETKF4Y|K%^2O+2AY?(Hz5~D; zt=MdSH!WoI)!X-g;H)yzodoC_{mYoH$)If$YMz9wLwzt}@zdCJ{YVith0ge9E4jN< zBOuTmY73?Wo6dsMsD3TF^I@4hK~kMUM?y3fd~IG2b6NJls-@l~&;whbzS?mVistv$0gC{jD31*SoTmRy?sbML{yz zIFhT-;h6=`hSF|H$eO~1U-OdYZhWnoF8UUYo%yO&e$bE%jIX<=Hw;Nk2Lu{QJ%$zt z^>YJTJT}e9`1U#wY75}HArM-z8Q4ADx_-6+G~T9`1*8K<9xqY~>)w>x7EVUUx zNJExXx;Zw!Nkxhh4cNm)i~?WR<^ZxNpG7K%)f+=j{v-Zy+=7 z)N6C5aba5Zg?h01(V6<{P~9JbSL_>JDSbtDrYz$?EQ3FqNcD4kUF{u_?Q43|+3B>p ztDh`NrFNX5D%*50yzNOd}PT#r-lMtsNgX-K3viRAjudll!IsDFCETixW%h z?0fCSQe)?6t^h)PR+-NJ8_pIOOT8wotYUHhAP}0B8h@`|?ecS){K65)I(2GTdnXzo z*PluG{1MT&L$1hl6zjnyD&P$?sq^8f!K#S!Nehj5*WblIrB+gS=gk92?>41ZcDEP! zQnD1y@*d1`rBns7Z|scEs!r#VD?2$;TVq+si{P?ll6z)N$rn`Xk2pX&u%-uSh05n#i^p3LHa6wJRAz*zyKQRX**_1tiH2&^V~>{zHkGs z<2lmi)|RZ7ay)NL`QSiGq-QX})xf{wgQr+FX1dcC2w4|oBtF-$x7nmKf#&g=K5M@| zP>xQUr2-)zqd8J%i-CWAw{NZa)mokhg8bp6_zwXGMZjCFDhY=df7tmGqhTJ(JRrG% zWUr`6I=w4q1`wo09IOFS5Xk;F_xCUPaB#YU90o$tdGzGrFAd&xp}vHAT6h5}-Yxg5 zeg+MBC>=VTYNLNVm}G#X{wN=-K2B%tt0vheU<=2)L z@HYS<>7b+!cxoBWotS+2`wUc4oEuBf3n2MH^RUa{m>*X~laE9kfF|=xDYcp(*WTuEGbnnK*PJ&HFCb+~6wdQuW0pcd$bCae z`$idzI1E^`qVm1Q`Pz+r4TR2iM8Dt%8j@&U7O_^+R-nZqH()HuT(8HC=#^_w;qoA6hJn-L(h^V)|)bY(Eeh zv3x&!WQXH(U#&qtyiQ|?W&B%NdeN>dXA-GDrM)~Tk7}#OOje+#?<+|<2fl83$9!w2 z9Nh#B83u$}$&4+{7H6t@h-84)gK7x1m~D1=(wc6%A5T1Po{1uIL(#V3wM^uxRlcy; zdam~dX(x@Oy+Ftd@YwO8e~&|hBk0UhoF9xjT?>R{(7gKo*ttOqS}4d~jy(Gzp<~b7 z$5B$5<}47>(T}h8RVz_BKRhn?h&Uf{YV(9#izSK=YT%Syy)A3Z8$-~_vlM?F#D)tl zWG$APm^auKvmp}SFl<$#OsNAGF{*}M!zd!20_$_6iMG*=KWN4X`>njuWz(vq5(MvR1h zko0ZSjCRuxZ8=4wP_Bvffsnm^+Pm47!E3I=?#S~8@g_r*0p~0KUO&@cJr3uf5g0}+ zR1M)egOTj$)!(z(?`=D82I5wt`hIr339YeK-nPv{My!#}J!W-kx0>Ul(bxMv>hSJv z!%{SM=BcGcuSfHe7A#(`YpEd>r5OyCkC+3obbk0K)oH>)OPjBE#U+9_E;n&)J9}Jm zc~tvT#@im`lNYscs$`+CVn^c0r;yw?jhHvJ+NN4T^tZ6K#dRv?O`MuZq0rF z_sAAI#zA}k215N@+u#2BZvLgcK}e13j+kq4Nz;3HuzBC7b%KxgOTU@+^6>H$1VZ)m zKJU9K<-d7{NM<>oDnQ6fv+vBcx5LRBAA#^zUk?cN7;(M(|JiqACz`Y4{^(91`GABp zdcFA4+Y<8_!t~%QM+!gfRe%1~Zwie#HL-Nmv`Vt^ zV!4TF)DTHWBO=W4^kuDzEk}Hqwxr=1aLsG3e}cgt0ej$)w^zTwK5b+q2z#-GwXK$q z#PzFm9?ZM_Za~oc-c{yNL_43E^Gq*kZ`MaW+YP9d?T*4hUXI+GFfMXVz5X-@$@QQd z5YmJ12464LXmC36AUW67InrwTf=z`lv?mXrj~7}3Aq`1L7}zC#{9iQ3#c3ir(!Kq? zkR?Y?K2VSx89i8!@l|h+G64ZYdnrgcAefR*I-0cV!mJ;bIBO&!FdzN8a=vL z)?a6mB$}<*fPMk@c1==BIt~c+CHd;*KkCzNq>sY2Sa-y=FbApSL24Q2o(@<%lG$Ef zbK-Wo1~k;NF4k&Yv}t%7Y5xyvC1UC1%`91$)jzk+biUieHsG4)BbI?!--;tOl0m^o z8*;R=wCak~xbBFhBi0=;*J2LDT#NHbi;g}+Ny)3JydvVazv34!MoD?!DCR(nh&d2* zEp9(zS*Jzg#XXbQj%Lp$=|S+L8H@TKx@%F|LJ=S|tGg*8`bLK0_IL#u1*8Iy{TYUi zDV_J>Tp%=ZMQdCS#2d(kdJ)h1514CGkh4H&_vf~}Mb{K4yqw0{oaPmfVnEhcFSEDs z*~?K1k~_PHrX-MdN#&#JJo#;$f&>D=LUz)k!*5E@vDPE&!c*(QY5qF0rB&~eAITt8JC-jVy&8(%Y&_# z913mHvbe`R+DXH;cLfk?3n#x#zpZDE35OI!EH|-MiS%ex=hwQo z_s!jsO_71B56g5kR~`?x>#y>c4flUJ{3%&6E>W>`{&7h$BO^{tT-)!#8(COg^-qmz zUAlQ%;Y}=^Jb5LWau2^Ly45>FR)t1fr(&(Dgw$w#E=%>;(&ZcGxv8X99|-N~+8$de zXOdJzDCH0+bXg4it9%#x3r`tt~qf&|5)G9(~8R@*0=wEmPahN zw3J7jn%IWu3reFY-%-o=&s$P!rlQx0K*&F+(e=W+HG7&lw8n`*sBPDL@l*YW3j?s~ zE4PyGfsjA?u3ylTq+RzMM%8e(X2U|C5 zxN4|zWWOVa6^V-T5!b0|EucTc3~(CetHd=YUPTbskGKaE*PK{xs?kkM-ws2fw951J zOWmb>_PyUhqI@nuAOk2(TIL4DJyTkGO@TKE-qPalh^@c4e#B$VwA5VI;*wrBu(mJp zediiOm53X$UW?n0m;-TYPrw1q31y!CDtC?9%_wGp+bVINCFUS4vk~?Zk|sWT-l^lP zMU&YaF;o=IF$stlcsu;#{Y7Tqy6lUx5+W{-DsN2V)54or2IACIz8_4dDZsi=EVb6s zJNiJqCl8PQvW?bh5%WWc%D4XTO+!LXdP`ow^MPx^_O|i-1~fe0$$e3*1p;-cw;=9t;;GDKR1TO8XrKJjDMVvGaETicQzEVlKl^7})E zOlnWMLpB7hQ3r&)nz_&NtU7poc6QDikQ+eA?(`3&9SF^jR$te=`~4Pm z?VJWOXkALmCu1Gsm>u4GA{hrvZasl`fu`KaGTZmwen6|`Tzkc-iD^{gAo*N$qRwbE z*zB6;GuK}%Jg_81wQy_cA0|aJID99P*J(|TID99P`#U&w*c_p=>o1kAnQ=toNUBqw zkIH$(JfAhOQa--RYVW%@B76{N_z0|IIcc3Ks$XpFv7ZdJ6{HFfiZ=0VH_6tw*49lx zpdX}F!5q01w)~2DVoWB6uvOoFKyrd+V3+#cr~k5dI!8d$puCjNoYi-(d>p60qU6&W z2(5vw4nADx;Pfq@ID*VyFo=1nqn0syYu39fhr-7bai+>&|a0^nU_>G zZiC{v)px5f#B7RSvr@;_*PA`7pDqjIfVD=0DavSwjqhnQxqb(p6J14;cgs7iyNr?LSmJ~_WcC&`f)ucS%l4#WTS|Qp| zbiQRUPLf7ybjCo+^DQYg@!1*b=UWnu`uUcGsGo01gQWhYU<}(5~6;-B_ZnPTN0vvz9k{*=UWn@e!e9k>gQV$@=wpVBpUVe zEeTOS-;xmZ^DPPaZJTt8Wy`IdyJpKnQs z`uUcm*Xrk6lD?^*Z%L`CpKnQs`uUcGsGo01i2C`Kgs7iyNr?LSmV~IEZ%N2MJ>QaK zpnkq3rKWzqB_ZnPTN2V!>%q>qyr|DSx>2?!8rGk(9pvgKUlNV_$(MwvpL|J(`pK7s zsGodEdZ2#tCDEv#d`XD<$(Mwr-iz=#Ctr%~n>aP`&TerZ?3|jsw_Ih90PPfnC-lE} zuWzW+-irUby}ob0M+htag)W!=W~phjM)(*^Hai9^K9bMl(*WU(R+G-y&TciBqHBBm zhj`lz{q^RkD&C>qI{3gQb5s_bKu$X^HK*#;-tn$c*L~+|OOdI^#%y?huyvd7@8CCi zm%rGD8oVN#TziDyG{?ELch|8|jp`Qtx`Tu#o?iEUXutcxqwzZz@Bwib>)(zJ$oh=$ z(cJd5?6IkTW-`nH?gcz&&o%`r%xd_Pot?&sT@~;0F11dZlsDX9@}*}vZ!WI+v{;`V zcAHIa?W?zT|Ji#;+o)!5GOm)MMu&$6pYrIJ<72okTu*_Y>n_}EUirqKZ?@c%My=<3 zrtBYCaBP)B_)VkbQcq6q`)T##^;hwm=FrD%`|hU&mbhpCxAZZ*28v%w&uSz~&G=A= zI$6^G$&zNU#>dAuQg5;OT4Kz4lc8U#pFLyjaYhcY`_#D6&{yBHuR)(6zm)tS#%{OR zs{8ul@Kuaht%*J+OI)nY$83%EwVN&BI;*di-)P}s;y-(I|1eg1-w2~YzB60({1)!H zO>fugO?|^8@7g!k7G^Q(5)-U6dh)gFZT2wQn2X#D5x&wpT8lA0+F;Vg+OXHa2PduS zEc#Rk$WlI0(xm-Vl%c_DHpL+%AIV@_GJ6_lHeu*&wQD2HPzGJJKKX%FZ!ue;=q}11 zXSP~mkP;*y-)d=NMpcr53py@iknuaMKWMOR4`fC|ILXZ?*5)DsCngyOyd*N?Ub22UL!_RhjN%&2R$FhgPK%}uIcxcD8f$XWvOs{4AZ*D1n`j3QhsqBv4NF7ZNGWxOj%DOLKyEYv;ab|s>7*`^V}hwM2oIsU)hKCQ1PY58 z7PCz+-6rUay(7$VaXM3^-WmnXjz(0sDN-8|V=zWSYjvjZc%v2-nXFVP9!l~|e#FJ= zqPC6wwefa?(FT6yTVhXYYA)zfX94=ukI-akbXVgj!%azI}CqTuMSa(cTdCH6d z(`Z|~g(;Avb1wKz`67}{`2b3j%&X8O#prC>D5EYK)bg#C&3L&}5`Jh0=;ZS|6guiV zc;Dx;SxWB^gAdwF*y8$+PH5osWlpDq<#cG zC}bZci?Et)m|L>w5==I9{5s^^&tP{|$;w+KDCHN#?OvrFvIDilFU6wRV)WrUQ#7=V zwNO{AqgaS#wJu?i_RXS?X6D)v3v_U3U7n7 z$%1MVVhj;6KE9-s%5N7uvGsFL(ju|mG&04l0l?l#8){0FBt@1;QVG;HLBU=(Qd+sigWO_`X(k!lP zmZhv%w~|cAej#UUhIB)%(sLsfm8YzWbl25_j#HBh$0Qc1H|nFYreM>X=rDYgd-Ruh z3wtEZCKuvWc^mwyJk?T^EUPt}E=sQrkB^FS>7O{fg#;abX{id_sgBG53B`dQ`pLu| z?4}YOWCL=CU(k87hOQMzuZLuh%^a3&VDoj%pqH z<8vCUw6$w_voyVHdIz{jNfwi%#FBY&LFZU<(pY!qPAL|Xmt4lrs#OPT1!9L^jM`n# zqF6l;D?eCY?oKb*>yhCyVPrVf6M3U<8n$e4iCy{rvlJxRXoE8Oo)yzwo@y2OInE-R ze-b5fOTeorKEo zKoy7<4gO5}XtUj*vzuMXRCx(WC_hk2TH177N~LLlR{4Qy1rP2zLe+-izCNNbX%U0$ z*k9K5yR##Gbyli$`on6$-TUfuL`Xp$U}-Xa2%{G;XC}=dxthyK^(N9zrqW8E@FvNJ zg-4k6zI{WJrxYYIcpx;fBmJP6Gn&VVH`@6FtIlM@*e#C#B;PG87IQ$+`UJhv=xe8w z9kp>fiv{zzVbl<9Y)FC0A)`LRu64*RnqG~;X+^u$u(4wKv=ZHkGV3>P^x17-VZVYvuIVW@>-$fdjpz!xY$^v^k#* ze@xJ8@-$rZHYpRN`cILAmJS|d29nD_&N{^$4n&O^Lc3Nenu{ErUq-IZ4?oMOyJ8Bd zsxr$GcIWjARRO7{Pz^LKSahz}iu&*=Lv6g(;Fy#oAZQhIHBukpLP{>Ez(T5Y(6(>{ zi5n~An4$xFNX_9F8&A7y`6)D#xN+1_HZ{ajz@b-Gv^mTQ&5{E|$Y z)ac?((K-tWI6lH2Z`ETW)o3>9*@wk3JB=X6I2YwfIY&s$rI>ESVA}nN$T2IV;P~^i zT4=IGlgmifjY>$PQ5bKF0pl$lHu}3LNAf#JBl(``nY*6X!8C)`;TNdU`?_;aA`DtY zu9-o~??A@Qp$m4|VQ)kegUN7Ea2K8_BRf^qRhQ@R7LsuIrDV<4CtyIB&2_~Gtz*dV z5kHQ>_vOOH*uIKA7n=%wU@=m+c6-3{d&dQT9ujtSp5=YB922MiD{>tJ2v@Aw)L zar}wtP1fbP_Q4#wdC;@$9JEkEF{wzax6%(=L=4t&Y^i$~z9hjPvlGi)uFV8#q1!XnE zeeqR@9P?6=V%fRno=l1_uO6hs?;LB>W-vt4@IadR?3W3lz-mW6j%cPt=ktuCqJ5;i7mBZ?PgJ zr>eMid@6%{3aoc9*;`zssP;ONR(t$eyPiOX%A%%wW?1@~swUiMn4e zaOg9Tv%@boZ|iQdL#Y@LD?iZt(81iU?MiarOeL24b;!#-&(b;iAd_wsJAm^gjam%V zqFr@P%1cN=`9U26{sYe#GD*$PT}mlmL~1D?C|)Fj#!c~Y;Vy?($?qVYDZ^cw zR}w)?Y21xB+2%nc!v2C2@{e3Mwm8Z&&IVN=6Yl!m6s#%J5~-P15H{#ysmhT_6tHFu zlM{-y@ov{e1v$Tr{G`qrJu7EgTB~K6%KabL(LE{HL3-Tnfih$F14)6u;Le|Pd=1G+ z{-9GTTuFH^;@&@#TAUgc@=$yHd8*EtMXZhFeOvWJM|}YbENxBFhU@J*p8)=*l$G3y z?fN*xd)eh6GfZD#vc@L=#OH4i+=a#+ri-&+Jt`KnTbL1$XTDMtDb5@jk5DP3AkCf0 zIq;&<%9#N!RMCNqi@slc3VsjA(Lu^fvIddHuzCOE;K z8MbhpO>Z=qu=p!UN}k_jIuz*V=jUHF$R8)U8?e%c2|l|X3*8Y|3_x|75yAzJ%@7~Q z25?p&NDLDS5N&dLO!C^ua2HlVod7JW1I(N=J;$mW3IY$)MdIYI8F4fcl9O-YO1Pga zPf;Wgr})h}TPXn1Rn{t!A~sYWqfB(7vpa9fu^y0;<4>f3u?ep)G6ED@=RP!2RQ*U@ z1flTU&bTOhasxy{$@l2?+|MrYy`G@scc?D+RH}1Hm0XJe!kb|vN zO~im$4#a@EkdG@er;K@W|HydACLM{%w+?0_W%d-xuQPr=yZn8HPyRs4z@5Lu^G@z$ zkWBKuqhK9YUVzJX$(2miDWvpedNw(a4w3o_KuVe?px{4SM7-6S zXaPtoW|S#LGv+vaQqJZouu`1>xvB$90Pe;R=$~bNSVGCaK#hrIMlKxz%vR;72M%C& zY}>I5fh1c{B%6FMiH2#i3sMr61wk;Nly9K}?n6kDh0F<=z_Ikl=jhp>9Kov=noMvR zjF#$6B$w)m)S0pdiJlt!#Us&HUC;i*S~2B&*k$N&2jdA#Vn2Q=qku%5{2UwWl3r>9Gkzk0l$6#+s zb;sXfI2Hk}jpHM2M66AIOSS{6i{k;k(0%gAKtiKXEW$bOiV7MpYla2ND4}* zt$Tmjq3o$7fn7BcKQ1^>l#!Q)Yv$)zDmI1P=+zJw(YzL8S$KwO%9XYBB~6lqVGJYN%qI+nUi zXh}GR@RCm9%bjd)AKO7Nh{KQ{`^<1dANA2;ob}brO-(U=khhbv zZFP=wxJENh)WYX8DWV|C5X~a$^!*}?@sY09W*lDwCyqbaB(u9Bsk^2$OW;neQ+b{w z1{Two?8idc@gGYDMZzIbWC301pYjsYQhq@H$TqodV>G-06&vMX?pE?~qHI1`+B1^U zvC#ya6J0oB7US)%B%1nFB%At?)b8D|&QSxrn_!xBhiOj;R`U`O1%Pfj?l|wfFsMW~oolYPq59d3yjf$uu5J=*SqG?T&)7k;UG)a|(RtvV+ zfn>KQ3U4jJg^bhLK)V(y-&nQqB~ai?-c+D1P7-qDPTpd(smRhtxD&z_>@Jq1o^QL~ z$`L7xgr`bMi`OT1fAj#R{F0-+SP0z;O5vH3wY>tC=Os{?xz>Uo=xinSF5AuR@mE?1! zkR|X5ZU!AQkOp8j&xmVKW!SS}py0G8RpE31l!1S^-JIC~t8kb=fh2j;j^EniaaGZB ztcq1vVI=b~f|cw&seuX#SB-PWI_S60xYYgV=$0*6IO-xnF<u@cb{2aL0$u19m zPV8ogQ=#ttbJhYqM>MYIht>J{Ucp}WH^&{**k*$OS;=rd4C{7UbaxJ2ly-K^ET^72 z#Hr9;<#?8eP((c7KJn#cU~9sxlWD^9hxPDf4|Aujt~F23o15+JPF7RmjsfM7&x3kZ z2TuYQphC_$iW}p|O`M$BW|{DGl+)rM8rGK)L(RZGvqtY}xN*0#QWY%_r|LD<7Dc{6 zUQF*=HczAvu1N~Ih?#KlVmo|R_k~Kkk3dr9kb}9`MjZSN#60nyQ@&~(mILsozEkra z49saRUBb6?gLxYO%RI45ubj6q5!VmYw)C?BhbPXF?Y9;ezcoAv4k;@M_ zUA-n7z(h0}ugM0qXaK74kq(C-NMEUKGs!aOvRJ~Wj7aS=m@&ZJy;P8`aR<(^T~MdDZp*_Oe9IeXV(ufRlUA=gWvnSb;H`=8{=%|~+tSwV_WR5R` z?wGcud_H~rk!ku4g+di4EMA4XL1Z&vyxhGE=3hg7+-@))v2SoXVkSJlkaD~c4_e(m8`Ul)Aztutc!)Jt zE6)THo+c@Morl=qf;Po5Be zB|MX}y`V_hgn0TI%TnQgp_)Op@I|qQt;M<#N!)Nkkq>SK=Pd7w%7H&$aV!B%U$SJ(`TI+dPf zNykR-`4~@SRIo)L(8U*3|Jw~zt&PfuvpY%$Ygr7jx|!p>X7n#=2yKZstZc~|o^|eP zHNF*Fe`Jy$9qwD(GlY;;p9u2!NAk719>5ywRezD9g;uH5z~OmZJ#C@m9-zYCR&mDF z7qu7YZ`b}IOD8$WFGdFcsH9pVpBAVcwC-7GJdbj!-dv_#h&5><7dAwG^5>|u8;B99 z-rxlSjB0I)CO~IFlA|EbQCKbhyYw0NjV}@_z<$)LtxhS;4aM|TwK9$-%>TJ6aziiC_JnZ%5y(qnbchP6JPE(aNkB$9-j5Wv{zk~i4# zKW{vUSiJRFy*)N3eI5_1r}5!<))&9OrY|%w4k+HL-%N&&f&Xd4)OlEA=Bo4s#o~pP z=Al4~-;z?cQ4@qi58g(EK1I-U8d<#rJQDw&aH8DaVy4muQ7gna#%lR;5@VGdYa!aT ze8i9HNfad=K@}QBheJFkmtuQAw!Opja$bF5Pw`7JU2T|aTpZ8l>3}RDEzZK2$p-Zm zaVRR1YGtL=EfD5PYpz8$b!r@J`Xdx%5$I-1FmHc+DK9=}+6gFYx+X2EnBM{6<|UD< zZ`e$HEP`1lC*r|rdxOJ48JR(0;`GO-a*osk+pTrV2zJN&Ey|OG!6clmnkYq6mh)!i z3%Pv}$9%Iu=`Znj&lyaH{L5kQKS=|XzMPQnY+;w&w+*hy-w z4~w0`DFZVSE*Zpc9KWWD$c(@gKuNu+TSwJwMkIa${adRam2ifbv_6b;wG&+P#6-WX z=#QGuYrGzhe}9FRE!wlsF3$;deI41(U`0_~P~?DM%M<#znXBm_O11Wcvx;0M%0De-90}S0h(eurUkKP*QYUmxI#l=#@HF)T=;^mN4Avf zSZ7Blz&A_N4Tz?(Bwio^j`TVSvFBWSDk2Kq98QwxdX;LJ1H)UAm6Cn$?v|+_(XQsA zqmny$>uZs&4U^Lvb1X`WX13Dzq_f064$R{c4Bq!rHu%)e@^V}gY=JI*scm>CP#{U( zu)P_gN?EwVVy#}k@=L3=iO5z3nk$(X(O6(x91lRZ4s-rA;lF(^po>n~>5 zcJFWlsW|V`JNqLQBt>XI(9QO-k>^uA8I94>y+@*J5K!;|Mjb)*3Wv$Dmsa?l}d8?`e`M zO09BFSpZMuM+#uZUfI&*a+#_c8DNAN58u^<92X`Pa(kDf*zX;Ln}I7WAO!=@t7mMp zs*}}Kq%-s<6=?wPz${^06zb{lM8H7Z5~x+#4AxUg^Q%p`RcR@29*HrKoJY7EPGb*W z864=cclhz)DcI21;uOVQlI{{y!iKU@<_qr4pTqO^@ZtUN<;Rc1e*CJ)W)+CJmk{sGQruw)K8ne zWYBF*|7=89N!`2{UD-sd5uJc~dXh~hMbTmEtI{)}-NcbVe^DRpDx?}s<2=r!_Jr`- zo9Vu+Y0Sfr&wrF^9?lQ4om1OgErB};gxpf0ZuwO!QF(Ywn8mA56OgY!&W|-RhAdM|p}rzf2EsN?fW89BF!C-F3?N^D93$lr=Y(aN zIowww9Hy;0-2iqK+3BQOqB(`RieRb|)LU&-2)-J@YKwLBu5GW0u*$>)M)f+Ii5ZOCp?rTvalM%NjMyfn|CT<|`1?TB(xr z5Pig^OCO3cO+qnh-_@rJw?)fNawUQQs-;lO7`16R1B9)xgA|cfvYYndSF^Epe2N+x zbvY`&w+7xu7!e^~+%(-e8_bvLZ|6)L8umbs0fl>paJAvU<7eVcz3l0LkM08U3b{s3 z*l0k&o*e_MP>Gy^FurKs*1kwyX7c9=Vp^5Wqq;gBtVdEHwWMQ7QqyD0_U$YM>cvRj zuk*oGC=e!ZGEVdvZZqNeQf7&LMa-(jHgh;k0W_QXMC*OJvuMZziIddZcFx^2sU zc<8x(>zYNa1P)ue?GW-OoK-5mzzmoQsVb&chfPWu#H3|Tm{AyRZFzXY`&uq7Au4V3 z_GAa9!tDeS8k3Z+Et^1?{NY*mvb%;A;oX-`o|CdwSijxKjn?FI5A-VwG?MMC?^j&- zQ(L94^_sOKgJAnmUTl3*P&s(&f*Z>Ix|Wo=hGRF>0Q1w1koBWBN(U+1Arjn}%>g@T zR4H6FpU6r=5HI1S&f41zGgiSmOGBvbLzQ}JiZHz(@Q>uP-4>eD>U3JY;9FZMZUP0C z^SDl4fL0LbL+nQ8Fr+JAkJD?suY0RJfZ1dpa(wIQ>}2;vCcm<({Pa zi!ekb8y&;H`(1F)?q($9h}?uE=ZDnlePzBPx^P&C0*WVaUAdTGv)exsY?cCVa?wm3 z*{sGq9(+WOUSih6A zNp9HRZIdRv#@vWUw|o%|I(e-hvPl3zoV+EtE5*T|aPRJ~wkHM`IUGan$*sfgOiLwy z1cG{eVSun6Q_1_d+g#*Oj{Y)Twhz1MMTg`F7ar1Zg;n>iZOdlf`b-x2fyxhbHRf<_Le6Yf zVK#vRL-MBDVvAkhr=0LlvZvr5m2u5)r;6APs;*$?VUt5t-wOXejxm(|qbhza&Qqqy zo4!WQoz`N0fE6YvnH)m*w#xLiYvj!6z)kkvH8*l#0G&z-q7NvRW<98IT~I80hIt7% zy%AFG!QF49UE9Sd;|x!QXn+Ahc#iCrChNa$&DE=4r1kT^7|hErU zZYz_`$TIbU<*`zI0Yu zfgB3Up;}F=;lvdidE*Ps{nu_n;n>dYAi@8&DXUXDX5r1YW*wh`f_j>y!*xsL3ba8G zo>ehuDMq?r)XUiIi2}9nqwy1)_C98&xUj8Ae;$`!*7q%~Cy5$Q;gUCPF|FL3LOK%j zK$^RMRI5TO-)7VZhh(!SgxNOVOY8^ik$)k|ijwq9VOx(sR5_QlT9w+40wZQp{ zB$o)DnzLa5f-9L3rP=qLlgz^E_%daQNx>?GP-)6JVvj@56suShndAqJE9jgEb8s-{ z3Bs8Sw2cW{BMFh&PKQLED)hBD61m+MN29naz1C#lST|x?_mQ?U8+CC|YD6H)TUB4( zOiv1dW}2k4cWXR1mV(=buoGVTD#M|e5Am-MiIZ%U>1(ncK5x0NTzn5Ce|+ncqhmg~ zoB|}tTPG5KyF`+6f`|F8y{n)tH1jh7%RJFB)v8&|m&!xba*uDC-d9dV>HSwcD*rAh z+C5iMtksdiBXDnygVwwkd>qIeo}HzuF=RM#O#L0Sp|vFG_A3PeRO3sZ%xtqWZk+}k zEQkH3c%STEzi--AC9VtP9yc(VC-ha1LzS-IRKTrT)w=Q4kM3xA{iw6^`V`GI!Ze1T ztAOS-FjoZqWZ-527K^sjE9jD%xsdMGnVhsIjQy$bJtHa`S{OEdz_=UL%%A`KBj1j+Jgi8Dw2;qSA$(Odn@FRyd!i zqAcJ|cTWnR&&W}tJ}%~G8(jl6i#)dL+A_X?eUh0XO;VBqRdkR7=A3VlRaTI<<5eFQ ztI#)NNret?>1!X(v{JQjv5vbGl+ZfJ9G=zGs-wy$nbqW^8rK<02*mVVZdI++g>Dv-SBgtvt?L$`9a77xBGzGz zRgo|*?ibaAgA;igHYBU|mevTFQXy;lszubPRzsZ(#Hb)p`f99I(F78VlN3eTnqH*Y z{9XzozvTG7ZBaaJE+d=cQUv!T*%(~w%aTIx&IWhTW$%4G$V?GpaZ&39gL2z);tf&x z{w@sU3A(6k$!~&dX@9k?{CPxie-Vb_i!#$RHk&w7B?HQB3#%tS$=DHX*eFJuUWfdN zCjHKBl#9&63(ZIdibgY%fZSMKwrgMI-ijp_G;0MRDO&fVvrc8y`xK#6#RH>idN9^L zq?_cGiu1lfQYy=wB#NLbjQE?fVZc8!#I(1cCKSj%NlCb=koV0Y*6N3L`F+Sfr@6C; z66)baTt9zwCK@R_TQK6!!)X)g89x$~SS<0IlLSz5wHE^7Iuy>iWz5w4r{nI0ePxNH zeA@gnzOQ}!;MsHjlQCQx*O&~)yQQzC@VGIrMn9Ye3yz<61QcOXSzub6L-Znm<7tUH zp`?a0TdKwDk zu=gFg5E*$1kM#e?mpUyy@1y%xvv|a@=(wJpPnR_Txhp{7Vi&njZiyvX8yxTK_LU_d z+}Fh2t;Dzm^|noOB1Ch8id=)YgzEP4v?G`_&bR7er)}TQ7fJbE;F*9|4($>y>0+Eq zV<(F3s0l^m%X7}ET%xYvf478;De(9_c$rPGMb3QOV_NUSaY{6TdAe@CSj0AsL%PJA zZ|dUjCReYv;6^Ua+U%F%R1#0(&9J@OR(jzqHt-VR7)-esNjnOLC6->YqgVUMD6@po zyZbi*U6@nC?KQ`xc?j7h;;m5Qu{^$_+YLm}S?5}}5x-A&j&VBp;n;vSb)A0D3R z7M+~Al#)CgcXDBo%ye-=e)m47FVv3QRR>64l=dj)NqpS4JocOYjhr|7BJ9XzpUt-U zdZsE7wDW?;a@4|DFXfRbfpb->CpU!*_ow6KsW?L3T<*Dq1n+(>BRPHlac5CI6@g7@kpM)c`ug#foXYI=_o3~RtHU-{s5QvkW+{mFC zcDoXKu)uW>Si+*?=Aui2oZZ#ofQE{`#2tCEJ<`qLG-G6H`o;0lG8v>Sf-8N+J;i*? zCDmOM7N3U6%)n&E$6uJO@VvsDkX9vk!g&P> z-rM%IR}?Fu+93p$oDNR1W#ZaerPN7_gii7%ULI|O(l2sfIT`gAQ+C^#NlDOIJT)F6 z)jk+XKI>tHe&vuYe-{s3JJ(g0g`vpti8Z~sd6W(JHp6sJ$Ivq)*lTkpV`)Bqj*o=6 z*2#l5fWn!~xaz^kYNU3e{q@KwgAM*Yq!Yd?HDX+tY~oZHHT2nqITfI{&`j#X-AYy0 z%8C`)lTmnk?S&Y*9+NOOS2bsR_2{Qp$g4wbp0U)C=Pew?22oRKBR75U*Ktx?x|BGn z!C%KoW!+U`qyl~&AImGo5*y3V2^aYgX6mo?lIyhJA`p3PHp8Tm~H=)D5^IxZFsJ|!j=frSTC)ADwA+U!?PEYr9}naj|lIkLOnmk^|N zQYMkeCFe=bXoR-k%}ACjQqPi|7K0H$>eozR?Iml12Ksa_%E`ipBS^MB zjy*NA6_*HR0FGAEcWHrEw27Ap#jj3|tyr2i;ml@nr}m|H7?-Hcp3!6aveRtHa1U<61@q?b@V0< zBqe$ikhjoV^lORq7D1r*{ZB3?!W*>C+}kFSi*r~G@s`p>T(_AAP>EU&aV53PE2&5= zgLn%ytCpFkRHU{9@fK=PlD<lL1^u%Ug8R^`%5B1GtV>Tub0@ zSE7{x2(7nkf~k{WiB$Uix>BVsizQ0w_vG$g>rS6<1O6m9OC`orQN7xdf zzTP41&3|arO#V@(ufYhaSc7JrvZtE@4op>D>6|ZX1FyY@DlCFtHs2*-P|1U zr$gAJQiJ>EaZFa%|ocWOl+!{W%PrB6jkdt}U@9@ciJ++|} zj#hLit)haSElQgjsj>tSL;2K(SZ!R)7y2?$L0zD+SM+NUm6sT;h3I2yopI4(w9JHy zab*uDMqE!H6Bzci>@%!)sp z^X|hZ@xIy}htu|Eb-6u$yM8!6Zn^Akc%OmQB)^D3#1YV`Gth*1!&K%or+7a2$V7y< z!mnpVI8nL!rNUnh2(COKIw=`CseyyIY1RZkg9Yy_4b<%;Y*tB6An=d$vv&BUQvHIX zl-zaBQLG9$oNLUV@Qhzy+s|#kdfZ6BZ>amnOsL{i2DplkF$nPFFcS{dyG>#{C zlv93m@@iS`M&=2*7ejyHPXb%e=RYl+%Oe8DMdFXBce)0Z8HqB(nUC}NY5dpUih~%Z z`A#qIxOM)Q@g1S9iDSHe92}I0BECt)u%?^rFXQcTPd@z}Wc+Xpo=(r3n}O4Y$9;wN z!+Fns_<=(@62Esm5a35^vY4*&YT1sTA6Dn*`+yV9CMmSi_Kflcw#3_Hu-mnc(n{uu zU17?eKdc9`;xcN^2#(Y?z&S!u`-C}2<}B%-NgPWlSDlQ-u5wqvEq@p9UcIlc_2BW?fB^XcP{ z!ZAN8uGVmLyE?B1NQt1rb64YKD3CErl?{8Of^EY1v>I3Y%O6&czdXqaWjS+jtc|=y zcvuQ~>E%}VPo$lXM>y7xtKB+JIUgT42RYM`Co2bX3WI)|e{pHUYIlD;5x;(4n{OLA zjpG?cxNk>j%5jHc7|!snxSG3rxsXKqR`yJ&#;A;-ZWfB!G>a*Jm8PCEjXRV$ANz{Y z>Gu_^rZfdj`mU|HHCeboOi7%sFq?5sl{qAY^Wyw8(_9i|$we2ML#%F?U03VceCr}J zxCs-kZQ_(UskvjRai5lnf^GR@!hEHECMWt`oT+)DTpJ^65@s10TQjYrKFVgGFr2;1 zm}U37kS^zzH-qdx9#5h$v+8`j-=1aoagCFghs(_{asq~MMHcmKAm{kNH6c5>Dg^jJFB_Wp{%I?h){J*+-c>k+TgS1`K2)l<2u}?Z)9H%n0y_V3etL_7eW7JROplMG; z%K5=5*fR7TIM%eieMi8{O8FfSDBJ^8$Q0UAwbE8g*7OyblZcT?2E{_EE(cpBirNrJ;tPYTjZM~^RYgnmG}NaGkCc+L`mzsbPjYb3 z>J~xa@XhgYwudVyQZVqOui8#pYl<@w3GT&W=N{-XZIwuEx5Bl1(CTQ-XE&>@EcoT8 zYyQh+NX|S#4IbKvOz@7C49HZdittL{Q&Rp~uCPL{;7c1pz@yVwYuL=!2IS2XRAjBH z%p?Jdq;^`X)bbJl9OVy4-?GGUnxtQWMf4!KQtQ_Ohx<{Aj zV^z|{1WnrISQW~Uz&K)qg&Ht_kS$pax*`GBFiLsDBmLI_#H2eWPoKEFcU*+em`U)! zl&Rv9%>~JEi%z}&scsj@S%*ZP&?T~*7&!8TF7-aLZpF0Am_*>NSp})8NExekdZl<} zG>THpvt)wIKhccayVwzLsNf7`NY$EYb&5Z5Tk~2LHtsLq~H<$RR=2_F-13GVKAJQL9?(SI|hbyX*hCc6AxLULZ+paKNlJI8Qd z5!P+TrpGeCC~Punp&}&GQyqj^7JDp_wR-%ZB87##nM4<0qIx<-_i#BpR<{Sr845%l zrby}aZG(u$snjwWK~@9JZUP8R+k=kG-mw{WWG7Cwq%Kyn92xEGOIHCepD$qGf6U)z zfv@l|uJno_`2o9F3hP?+{v5SAmXxs7`?TU)E2L#Cbnq$_zAJ^+X7>^W(JsR{Q=yc> zMT!xv_G;X0_1a_NvP{0H@3tthK^g24yc;XTxjW07F}eT)lWi4p!ezq$oJ8{RmALcf zOP??g18!ut@Zdp<-n!Sdkv~Oa6*ASI*IGtFX>Y5jLk(FuawB7 z5E+fhw}?3w)sJ?&)y*bpX+D{)$#h;+rpL>TcjB4jiR-lZO>^mLf|*qH{P@iilGFIO zAInnucB8S;EvQylF9olKN+qqhp;D`1kSy$`} z;Mt^_!QmkEDUudtlL^eaMdM(1`}@QqR#o9e^+@l2g4}!q_yOzlMmoDYvb;CxMxz4vTjz738POBrxllx z-cJTWn;4`e9dOWFK9&&lR2^QjY{FLMGt8MHRfh6`KH|L5GwHn=*CLk{`jPdTXkuM? zA?Fq4Q={Rbf-SE=5akJKX?kV*%!Y}aHEEvNXKkIY>8)az^utq*I~%#cD>gC~eWBti zLI^N|F*L2PMQv78j;yk`zuab1Fc2xYE)Llqjkegj$GF>K+lz0-eq^xeSQ5nMAky_i zdM=yvi;Dae1A-e;Y+;uZ)0sx`>3YuB3$_HnE0W3qg;krMTuyDcE#smyu#wj+ZP9ty z64csg&u+Y7O;%xQ3K~&|+~QAS9?ES*NTitqRJ%b)6B_Oq zl*t>Or74NicHIi%38z%WY_IvOdB-&u+X#<%4i0h>q?}q2QaJ;J%OA8!xN!oHOt${S z6r1u$-Hm1&It=1&*qC~ini9?i&QKo zJCDL%VWVvzd&rvsC?+XgCi~rq%PY8wTZ~rWSvM$JUF8Lv5w>XZ*%S2abY`X2t9=Mu z3yuFhUIDG~P&L(y=$ZCJG0Z8a!jK$jz-UfM)WbzdD9)pmI$8) zmxHYSu}ky-6Hi%0Z%|cc=Bf_d|XoZA0 z2jgMLsiEVJJGLZ9t~N%kloLBHRRUC;z$k8e#x!pGf&m4GU08nfAaalyI?by{TZ2O2 zo&4dMobAO@A^`FxZz>~gLnNLy9CRTV0FTd{M>#&%hPnvkFj|f%^olqVS}wDvoUudX z5^eQ$L>|f^@^2AQNNLqk4hXtDp|6Ib>gG;6fhJk6xioldD;P;GdX!U+a%3U73!jVX z0tWXW12_BWtsR@kBgZMoq`#^uw{mcU7x4Tar_)OPrH9DKmc9-WmBcz)1w(oy4Gifk z{Ptb(ZTax6>ZlirruPw%Y44xau zWCl}QPfQ{=kJT81jebC^wfR!(tPMO=mF&jF|Lsy}|{ZLvkrGF9SBEN)T7R47u9KDw2B%5HD6NfMf6T(_$&mL2y>O9@)wZ%1b z!rE)#9rvvYsKp!l0LkiinGf2kpA|L>!((FoBm49G7pH$W{&w|m|K@-HGfnwozrXs; z<;RadfAiBfBQEC0yFcTJO}zWV@$Ofa^H2Waul~iKJ^$bT^>6;?U;dZ>{-6Hi?(c{H z^YefE_y6^`|HCl+_U|0VU;So0t>0}AoHE+&-nmFB@BRZ9JPdfitNSvlRcMmv;N!5?snkz!3q2fV8F>R zF+z?x6-ZUeYxDwz1Q-|^<^pLhAe~m6T9%quQmn|xzyMU=P>_+InwMF@Fj+uGVUnH# z2mgZ@PMz`(S0}G9zred3sL2+n2&k4pck)Ja?a3d^Ie4F7ioW3F0IIP7DrK7NILVwh z1ITkn(YWD(!*l}?#t>DIS?oXzqB($=35bCX0|PicxiLq0dWi_5fF4oG;o7&)@@73f@2iB$Q-Mm?-`p8nT|QNs7J?XBXfRNimK5^}3A@}3qye9l&OOZtH?ndOE# zv!B(R5b|1^IPrwOsOZVbx2~+7_}^eI*VdIauWuw;Ua~*ya!&{7bVi1M{47A%u`)~# z5@ZUSzQdQ1*JtX?_9-DIp)D(!&Y71=ZT(kNEB$X$r;&BYuSI3ywLa$a^>2rN-ga5T zCoFX;>yz&jPpuALd0*a1ch$^Ka%Da`rciVL0crN>3%i+orpNj*iceqD&Ez;;;RY+m z^aGB}=D?U@k%UEha!#gRRxu>3!D7=dwlc|slrSkWPS;z(lm^!r1!uj5vov`aS8zhY zcn>GTbfZjW8|i=lApj%{ipCdE1sq%q)9*Ji8%nbQ1wru)k_5?FKqEH+qCnLcCJ9Oa zAU22w#Wph#gTf4C04oqrfNGq=%`pA^Zf4c#KXx-Oa0R95eM>hV^;o;bLxVBSP|w6r z&wv5u;q@si;+7=*UdhA=lrRNKFu>CLM5q6+c3a`~^9QmE}d5=@}*Z zC8@h$>QtdiUjd=PanfTGRUSsfYKCo>+?o_=8|6U$@{M~%q`%sE&^fJ*p) dIa8fm0-E~`_`zn_a#uhFfW^Y}#Wz@=0s!jlF^vEK diff --git a/mix.exs b/mix.exs index a826a1c..bc882da 100644 --- a/mix.exs +++ b/mix.exs @@ -87,7 +87,7 @@ defmodule ErrorTracker.MixProject do {:ecto_sql, "~> 3.0"}, {:ecto, "~> 3.11"}, {:jason, "~> 1.1"}, - {:phoenix_live_view, "~> 0.19 or ~> 1.0"}, + {:phoenix_live_view, "~> 1.0"}, {:phoenix_ecto, "~> 4.6"}, {:plug, "~> 1.10"}, {:postgrex, ">= 0.0.0", optional: true}, diff --git a/mix.lock b/mix.lock index e8dfa60..5f0b90e 100644 --- a/mix.lock +++ b/mix.lock @@ -1,14 +1,14 @@ %{ "bun": {:hex, :bun, "1.3.0", "6833722da5b073777e043aec42091b0cf8bbacb84262ec6d348a914dda4c6a98", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}], "hexpm", "dde1b8116ba57269a9f398b4b28492b16fb29a78800c9533b7c9fb036793d62a"}, "bunt": {:hex, :bunt, "1.0.0", "081c2c665f086849e6d57900292b3a161727ab40431219529f13c4ddcf3e7a44", [:mix], [], "hexpm", "dc5f86aa08a5f6fa6b8096f0735c4e76d54ae5c9fa2c143e5a1fc7c1cd9bb6b5"}, - "castore": {:hex, :castore, "1.0.7", "b651241514e5f6956028147fe6637f7ac13802537e895a724f90bf3e36ddd1dd", [:mix], [], "hexpm", "da7785a4b0d2a021cd1292a60875a784b6caef71e76bf4917bdee1f390455cf5"}, + "castore": {:hex, :castore, "1.0.15", "8aa930c890fe18b6fe0a0cff27b27d0d4d231867897bd23ea772dee561f032a3", [:mix], [], "hexpm", "96ce4c69d7d5d7a0761420ef743e2f4096253931a3ba69e5ff8ef1844fe446d3"}, "cc_precompiler": {:hex, :cc_precompiler, "0.1.10", "47c9c08d8869cf09b41da36538f62bc1abd3e19e41701c2cea2675b53c704258", [:mix], [{:elixir_make, "~> 0.7", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "f6e046254e53cd6b41c6bacd70ae728011aa82b2742a80d6e2214855c6e06b22"}, - "cowboy": {:hex, :cowboy, "2.12.0", "f276d521a1ff88b2b9b4c54d0e753da6c66dd7be6c9fca3d9418b561828a3731", [:make, :rebar3], [{:cowlib, "2.13.0", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, "1.8.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "8a7abe6d183372ceb21caa2709bec928ab2b72e18a3911aa1771639bef82651e"}, + "cowboy": {:hex, :cowboy, "2.13.0", "09d770dd5f6a22cc60c071f432cd7cb87776164527f205c5a6b0f24ff6b38990", [:make, :rebar3], [{:cowlib, ">= 2.14.0 and < 3.0.0", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, ">= 1.8.0 and < 3.0.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "e724d3a70995025d654c1992c7b11dbfea95205c047d86ff9bf1cda92ddc5614"}, "cowboy_telemetry": {:hex, :cowboy_telemetry, "0.4.0", "f239f68b588efa7707abce16a84d0d2acf3a0f50571f8bb7f56a15865aae820c", [:rebar3], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7d98bac1ee4565d31b62d59f8823dfd8356a169e7fcbb83831b8a5397404c9de"}, - "cowlib": {:hex, :cowlib, "2.13.0", "db8f7505d8332d98ef50a3ef34b34c1afddec7506e4ee4dd4a3a266285d282ca", [:make, :rebar3], [], "hexpm", "e1e1284dc3fc030a64b1ad0d8382ae7e99da46c3246b815318a4b848873800a4"}, + "cowlib": {:hex, :cowlib, "2.15.0", "3c97a318a933962d1c12b96ab7c1d728267d2c523c25a5b57b0f93392b6e9e25", [:make, :rebar3], [], "hexpm", "4f00c879a64b4fe7c8fcb42a4281925e9ffdb928820b03c3ad325a617e857532"}, "credo": {:hex, :credo, "1.7.7", "771445037228f763f9b2afd612b6aa2fd8e28432a95dbbc60d8e03ce71ba4446", [:mix], [{:bunt, "~> 0.2.1 or ~> 1.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "8bc87496c9aaacdc3f90f01b7b0582467b69b4bd2441fe8aae3109d843cc2f2e"}, "db_connection": {:hex, :db_connection, "2.6.0", "77d835c472b5b67fc4f29556dee74bf511bbafecdcaf98c27d27fa5918152086", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "c2f992d15725e721ec7fbc1189d4ecdb8afef76648c746a8e1cad35e3b8a35f3"}, - "decimal": {:hex, :decimal, "2.1.1", "5611dca5d4b2c3dd497dec8f68751f1f1a54755e8ed2a966c2633cf885973ad6", [:mix], [], "hexpm", "53cfe5f497ed0e7771ae1a475575603d77425099ba5faef9394932b35020ffcc"}, + "decimal": {:hex, :decimal, "2.3.0", "3ad6255aa77b4a3c4f818171b12d237500e63525c2fd056699967a3e7ea20f62", [:mix], [], "hexpm", "a4d66355cb29cb47c3cf30e71329e58361cfcb37c34235ef3bf1d7bf3773aeac"}, "earmark_parser": {:hex, :earmark_parser, "1.4.42", "f23d856f41919f17cd06a493923a722d87a2d684f143a1e663c04a2b93100682", [:mix], [], "hexpm", "6915b6ca369b5f7346636a2f41c6a6d78b5af419d61a611079189233358b8b8b"}, "ecto": {:hex, :ecto, "3.11.2", "e1d26be989db350a633667c5cda9c3d115ae779b66da567c68c80cfb26a8c9ee", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "3c38bca2c6f8d8023f2145326cc8a80100c3ffe4dcbd9842ff867f7fc6156c65"}, "ecto_sql": {:hex, :ecto_sql, "3.11.2", "c7cc7f812af571e50b80294dc2e535821b3b795ce8008d07aa5f336591a185a8", [:mix], [{:db_connection, "~> 2.4.1 or ~> 2.5", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.11.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.6.0", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.16 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:tds, "~> 2.1.1 or ~> 2.2", [hex: :tds, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "73c07f995ac17dbf89d3cfaaf688fcefabcd18b7b004ac63b0dc4ef39499ed6b"}, @@ -20,38 +20,37 @@ "finch": {:hex, :finch, "0.19.0", "c644641491ea854fc5c1bbaef36bfc764e3f08e7185e1f084e35e0672241b76d", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.6.2 or ~> 1.7", [hex: :mint, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.4 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 1.1", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "fc5324ce209125d1e2fa0fcd2634601c52a787aff1cd33ee833664a5af4ea2b6"}, "glob_ex": {:hex, :glob_ex, "0.1.11", "cb50d3f1ef53f6ca04d6252c7fde09fd7a1cf63387714fe96f340a1349e62c93", [:mix], [], "hexpm", "342729363056e3145e61766b416769984c329e4378f1d558b63e341020525de4"}, "hpax": {:hex, :hpax, "1.0.3", "ed67ef51ad4df91e75cc6a1494f851850c0bd98ebc0be6e81b026e765ee535aa", [:mix], [], "hexpm", "8eab6e1cfa8d5918c2ce4ba43588e894af35dbd8e91e6e55c817bca5847df34a"}, - "igniter": {:hex, :igniter, "0.5.43", "92dcc3e58f7cc78bacc0e560516020e14d5f01b3ac3761e32816e1e8d101eea7", [:mix], [{:glob_ex, "~> 0.1.7", [hex: :glob_ex, repo: "hexpm", optional: false]}, {:inflex, "~> 2.0", [hex: :inflex, repo: "hexpm", optional: false]}, {:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}, {:owl, "~> 0.11", [hex: :owl, repo: "hexpm", optional: false]}, {:phx_new, "~> 1.7", [hex: :phx_new, repo: "hexpm", optional: true]}, {:req, "~> 0.5", [hex: :req, repo: "hexpm", optional: false]}, {:rewrite, ">= 1.1.1 and < 2.0.0-0", [hex: :rewrite, repo: "hexpm", optional: false]}, {:sourceror, "~> 1.4", [hex: :sourceror, repo: "hexpm", optional: false]}, {:spitfire, ">= 0.1.3 and < 1.0.0-0", [hex: :spitfire, repo: "hexpm", optional: false]}], "hexpm", "d206f9699b4e94d133abaeadbd18a2b2a89bcb3456facb2e1f4d79cd03327bdc"}, - "inflex": {:hex, :inflex, "2.1.0", "a365cf0821a9dacb65067abd95008ca1b0bb7dcdd85ae59965deef2aa062924c", [:mix], [], "hexpm", "14c17d05db4ee9b6d319b0bff1bdf22aa389a25398d1952c7a0b5f3d93162dd8"}, + "igniter": {:hex, :igniter, "0.6.28", "9db10192f19f10b924f14c805f5b2ad992617fccaff9cf9582b7f065d562d4d8", [:mix], [{:glob_ex, "~> 0.1.7", [hex: :glob_ex, repo: "hexpm", optional: false]}, {:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}, {:owl, "~> 0.11", [hex: :owl, repo: "hexpm", optional: false]}, {:phx_new, "~> 1.7", [hex: :phx_new, repo: "hexpm", optional: true]}, {:req, "~> 0.5", [hex: :req, repo: "hexpm", optional: false]}, {:rewrite, ">= 1.1.1 and < 2.0.0-0", [hex: :rewrite, repo: "hexpm", optional: false]}, {:sourceror, "~> 1.4", [hex: :sourceror, repo: "hexpm", optional: false]}, {:spitfire, ">= 0.1.3 and < 1.0.0-0", [hex: :spitfire, repo: "hexpm", optional: false]}], "hexpm", "ad9369d626aeca21079ef17661a2672fb32598610c5e5bccae2537efd36b27d4"}, "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, "makeup": {:hex, :makeup, "1.2.1", "e90ac1c65589ef354378def3ba19d401e739ee7ee06fb47f94c687016e3713d1", [:mix], [{:nimble_parsec, "~> 1.4", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "d36484867b0bae0fea568d10131197a4c2e47056a6fbe84922bf6ba71c8d17ce"}, "makeup_elixir": {:hex, :makeup_elixir, "1.0.1", "e928a4f984e795e41e3abd27bfc09f51db16ab8ba1aebdba2b3a575437efafc2", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "7284900d412a3e5cfd97fdaed4f5ed389b8f2b4cb49efc0eb3bd10e2febf9507"}, "makeup_erlang": {:hex, :makeup_erlang, "1.0.1", "c7f58c120b2b5aa5fd80d540a89fdf866ed42f1f3994e4fe189abebeab610839", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "8a89a1eeccc2d798d6ea15496a6e4870b75e014d1af514b1b71fa33134f57814"}, - "mime": {:hex, :mime, "2.0.5", "dc34c8efd439abe6ae0343edbb8556f4d63f178594894720607772a041b04b02", [:mix], [], "hexpm", "da0d64a365c45bc9935cc5c8a7fc5e49a0e0f9932a761c55d6c52b142780a05c"}, + "mime": {:hex, :mime, "2.0.7", "b8d739037be7cd402aee1ba0306edfdef982687ee7e9859bee6198c1e7e2f128", [:mix], [], "hexpm", "6171188e399ee16023ffc5b76ce445eb6d9672e2e241d2df6050f3c771e80ccd"}, "mint": {:hex, :mint, "1.7.1", "113fdb2b2f3b59e47c7955971854641c61f378549d73e829e1768de90fc1abf1", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:hpax, "~> 0.1.1 or ~> 0.2.0 or ~> 1.0", [hex: :hpax, repo: "hexpm", optional: false]}], "hexpm", "fceba0a4d0f24301ddee3024ae116df1c3f4bb7a563a731f45fdfeb9d39a231b"}, "myxql": {:hex, :myxql, "0.6.4", "1502ea37ee23c31b79725b95d4cc3553693c2bda7421b1febc50722fd988c918", [:mix], [{:db_connection, "~> 2.4.1 or ~> 2.5", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:geo, "~> 3.4", [hex: :geo, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "a3307f4671f3009d3708283649adf205bfe280f7e036fc8ef7f16dbf821ab8e9"}, "nimble_options": {:hex, :nimble_options, "1.1.1", "e3a492d54d85fc3fd7c5baf411d9d2852922f66e69476317787a7b2bb000a61b", [:mix], [], "hexpm", "821b2470ca9442c4b6984882fe9bb0389371b8ddec4d45a9504f00a66f650b44"}, "nimble_parsec": {:hex, :nimble_parsec, "1.4.0", "51f9b613ea62cfa97b25ccc2c1b4216e81df970acd8e16e8d1bdc58fef21370d", [:mix], [], "hexpm", "9c565862810fb383e9838c1dd2d7d2c437b3d13b267414ba6af33e50d2d1cf28"}, "nimble_pool": {:hex, :nimble_pool, "1.1.0", "bf9c29fbdcba3564a8b800d1eeb5a3c58f36e1e11d7b7fb2e084a643f645f06b", [:mix], [], "hexpm", "af2e4e6b34197db81f7aad230c1118eac993acc0dae6bc83bac0126d4ae0813a"}, "owl": {:hex, :owl, "0.12.2", "65906b525e5c3ef51bab6cba7687152be017aebe1da077bb719a5ee9f7e60762", [:mix], [{:ucwidth, "~> 0.2", [hex: :ucwidth, repo: "hexpm", optional: true]}], "hexpm", "6398efa9e1fea70a04d24231e10dcd66c1ac1aa2da418d20ef5357ec61de2880"}, - "phoenix": {:hex, :phoenix, "1.7.12", "1cc589e0eab99f593a8aa38ec45f15d25297dd6187ee801c8de8947090b5a9d3", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.7", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "d646192fbade9f485b01bc9920c139bfdd19d0f8df3d73fd8eaf2dfbe0d2837c"}, + "phoenix": {:hex, :phoenix, "1.8.1", "865473a60a979551a4879db79fbfb4503e41cd809e77c85af79716578b6a456d", [:mix], [{:bandit, "~> 1.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.7", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "84d77d2b2e77c3c7e7527099bd01ef5c8560cd149c036d6b3a40745f11cd2fb2"}, "phoenix_ecto": {:hex, :phoenix_ecto, "4.6.2", "3b83b24ab5a2eb071a20372f740d7118767c272db386831b2e77638c4dcc606d", [:mix], [{:ecto, "~> 3.5", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.1", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm", "3f94d025f59de86be00f5f8c5dd7b5965a3298458d21ab1c328488be3b5fcd59"}, - "phoenix_html": {:hex, :phoenix_html, "4.1.1", "4c064fd3873d12ebb1388425a8f2a19348cef56e7289e1998e2d2fa758aa982e", [:mix], [], "hexpm", "f2f2df5a72bc9a2f510b21497fd7d2b86d932ec0598f0210fed4114adc546c6f"}, + "phoenix_html": {:hex, :phoenix_html, "4.2.1", "35279e2a39140068fc03f8874408d58eef734e488fc142153f055c5454fd1c08", [:mix], [], "hexpm", "cff108100ae2715dd959ae8f2a8cef8e20b593f8dfd031c9cba92702cf23e053"}, "phoenix_live_reload": {:hex, :phoenix_live_reload, "1.5.3", "f2161c207fda0e4fb55165f650f7f8db23f02b29e3bff00ff7ef161d6ac1f09d", [:mix], [{:file_system, "~> 0.3 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.4", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm", "b4ec9cd73cb01ff1bd1cac92e045d13e7030330b74164297d1aee3907b54803c"}, - "phoenix_live_view": {:hex, :phoenix_live_view, "0.20.14", "70fa101aa0539e81bed4238777498f6215e9dda3461bdaa067cad6908110c364", [:mix], [{:floki, "~> 0.36", [hex: :floki, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.15 or ~> 1.7.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.3 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.15", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "82f6d006c5264f979ed5eb75593d808bbe39020f20df2e78426f4f2d570e2402"}, + "phoenix_live_view": {:hex, :phoenix_live_view, "1.1.11", "1b4d8fa56898d93b6f528c89227198a3fce7c5b242819b22ed9e92b73c1bb077", [:mix], [{:igniter, ">= 0.6.16 and < 1.0.0-0", [hex: :igniter, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:lazy_html, "~> 0.1.0", [hex: :lazy_html, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.15 or ~> 1.7.0 or ~> 1.8.0-rc", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.3 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.15", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "266823602e11a54e562ac03a25b3d232d79de12514262db7cfcbb83fdfd8fd57"}, "phoenix_pubsub": {:hex, :phoenix_pubsub, "2.1.3", "3168d78ba41835aecad272d5e8cd51aa87a7ac9eb836eabc42f6e57538e3731d", [:mix], [], "hexpm", "bba06bc1dcfd8cb086759f0edc94a8ba2bc8896d5331a1e2c2902bf8e36ee502"}, "phoenix_template": {:hex, :phoenix_template, "1.0.4", "e2092c132f3b5e5b2d49c96695342eb36d0ed514c5b252a77048d5969330d639", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "2c0c81f0e5c6753faf5cca2f229c9709919aba34fab866d3bc05060c9c444206"}, - "plug": {:hex, :plug, "1.16.0", "1d07d50cb9bb05097fdf187b31cf087c7297aafc3fed8299aac79c128a707e47", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "cbf53aa1f5c4d758a7559c0bd6d59e286c2be0c6a1fac8cc3eee2f638243b93e"}, - "plug_cowboy": {:hex, :plug_cowboy, "2.7.1", "87677ffe3b765bc96a89be7960f81703223fe2e21efa42c125fcd0127dd9d6b2", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "02dbd5f9ab571b864ae39418db7811618506256f6d13b4a45037e5fe78dc5de3"}, - "plug_crypto": {:hex, :plug_crypto, "2.1.0", "f44309c2b06d249c27c8d3f65cfe08158ade08418cf540fd4f72d4d6863abb7b", [:mix], [], "hexpm", "131216a4b030b8f8ce0f26038bc4421ae60e4bb95c5cf5395e1421437824c4fa"}, + "plug": {:hex, :plug, "1.18.1", "5067f26f7745b7e31bc3368bc1a2b818b9779faa959b49c934c17730efc911cf", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "57a57db70df2b422b564437d2d33cf8d33cd16339c1edb190cd11b1a3a546cc2"}, + "plug_cowboy": {:hex, :plug_cowboy, "2.7.4", "729c752d17cf364e2b8da5bdb34fb5804f56251e88bb602aff48ae0bd8673d11", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "9b85632bd7012615bae0a5d70084deb1b25d2bcbb32cab82d1e9a1e023168aa3"}, + "plug_crypto": {:hex, :plug_crypto, "2.1.1", "19bda8184399cb24afa10be734f84a16ea0a2bc65054e23a62bb10f06bc89491", [:mix], [], "hexpm", "6470bce6ffe41c8bd497612ffde1a7e4af67f36a15eea5f921af71cf3e11247c"}, "postgrex": {:hex, :postgrex, "0.18.0", "f34664101eaca11ff24481ed4c378492fed2ff416cd9b06c399e90f321867d7e", [:mix], [{:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "a042989ba1bc1cca7383ebb9e461398e3f89f868c92ce6671feb7ef132a252d1"}, - "ranch": {:hex, :ranch, "1.8.0", "8c7a100a139fd57f17327b6413e4167ac559fbc04ca7448e9be9057311597a1d", [:make, :rebar3], [], "hexpm", "49fbcfd3682fab1f5d109351b61257676da1a2fdbe295904176d5e521a2ddfe5"}, + "ranch": {:hex, :ranch, "2.2.0", "25528f82bc8d7c6152c57666ca99ec716510fe0925cb188172f41ce93117b1b0", [:make, :rebar3], [], "hexpm", "fa0b99a1780c80218a4197a59ea8d3bdae32fbff7e88527d7d8a4787eff4f8e7"}, "req": {:hex, :req, "0.5.1", "90584216d064389a4ff2d4279fe2c11ff6c812ab00fa01a9fb9d15457f65ba70", [:mix], [{:brotli, "~> 0.3.1", [hex: :brotli, repo: "hexpm", optional: true]}, {:ezstd, "~> 1.0", [hex: :ezstd, repo: "hexpm", optional: true]}, {:finch, "~> 0.17", [hex: :finch, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mime, "~> 1.6 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:nimble_csv, "~> 1.0", [hex: :nimble_csv, repo: "hexpm", optional: true]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "7ea96a1a95388eb0fefa92d89466cdfedba24032794e5c1147d78ec90db7edca"}, "rewrite": {:hex, :rewrite, "1.1.2", "f5a5d10f5fed1491a6ff48e078d4585882695962ccc9e6c779bae025d1f92eda", [:mix], [{:glob_ex, "~> 0.1", [hex: :glob_ex, repo: "hexpm", optional: false]}, {:sourceror, "~> 1.0", [hex: :sourceror, repo: "hexpm", optional: false]}, {:text_diff, "~> 0.1", [hex: :text_diff, repo: "hexpm", optional: false]}], "hexpm", "7f8b94b1e3528d0a47b3e8b7bfeca559d2948a65fa7418a9ad7d7712703d39d4"}, "sourceror": {:hex, :sourceror, "1.8.2", "f486ddded3b884175583413b431178b691b42d3e616f1ee80bed15503c5f7fd7", [:mix], [], "hexpm", "3f3126d50c222e1029c31861165e73e9c89ebcd543d2896192e2c1d792688fef"}, "spitfire": {:hex, :spitfire, "0.2.0", "0de1f519a23f65bde40d316adad53c07a9563f25cc68915d639d8a509a0aad8a", [:mix], [], "hexpm", "743daaee2d81a0d8095431729f478ce49b47ea8943c7d770de86704975cb7775"}, "tailwind": {:hex, :tailwind, "0.2.2", "9e27288b568ede1d88517e8c61259bc214a12d7eed271e102db4c93fcca9b2cd", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}], "hexpm", "ccfb5025179ea307f7f899d1bb3905cd0ac9f687ed77feebc8f67bdca78565c4"}, - "telemetry": {:hex, :telemetry, "1.2.1", "68fdfe8d8f05a8428483a97d7aab2f268aaff24b49e0f599faa091f1d4e7f61c", [:rebar3], [], "hexpm", "dad9ce9d8effc621708f99eac538ef1cbe05d6a874dd741de2e689c47feafed5"}, + "telemetry": {:hex, :telemetry, "1.3.0", "fedebbae410d715cf8e7062c96a1ef32ec22e764197f70cda73d82778d61e7a2", [:rebar3], [], "hexpm", "7015fc8919dbe63764f4b4b87a95b7c0996bd539e0d499be6ec9d7f3875b79e6"}, "text_diff": {:hex, :text_diff, "0.1.0", "1caf3175e11a53a9a139bc9339bd607c47b9e376b073d4571c031913317fecaa", [:mix], [], "hexpm", "d1ffaaecab338e49357b6daa82e435f877e0649041ace7755583a0ea3362dbd7"}, "websock": {:hex, :websock, "0.5.3", "2f69a6ebe810328555b6fe5c831a851f485e303a7c8ce6c5f675abeb20ebdadc", [:mix], [], "hexpm", "6105453d7fac22c712ad66fab1d45abdf049868f253cf719b625151460b8b453"}, - "websock_adapter": {:hex, :websock_adapter, "0.5.6", "0437fe56e093fd4ac422de33bf8fc89f7bc1416a3f2d732d8b2c8fd54792fe60", [:mix], [{:bandit, ">= 0.6.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.6", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:websock, "~> 0.5", [hex: :websock, repo: "hexpm", optional: false]}], "hexpm", "e04378d26b0af627817ae84c92083b7e97aca3121196679b73c73b99d0d133ea"}, + "websock_adapter": {:hex, :websock_adapter, "0.5.8", "3b97dc94e407e2d1fc666b2fb9acf6be81a1798a2602294aac000260a7c4a47d", [:mix], [{:bandit, ">= 0.6.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.6", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:websock, "~> 0.5", [hex: :websock, repo: "hexpm", optional: false]}], "hexpm", "315b9a1865552212b5f35140ad194e67ce31af45bcee443d4ecb96b5fd3f3782"}, } diff --git a/priv/static/app.css b/priv/static/app.css index 706e0a2..cb62bd2 100644 --- a/priv/static/app.css +++ b/priv/static/app.css @@ -837,6 +837,10 @@ select { margin-top: 2.5rem; } +.mt-2 { + margin-top: 0.5rem; +} + .mt-4 { margin-top: 1rem; } @@ -845,10 +849,6 @@ select { margin-top: 1.5rem; } -.mt-2 { - margin-top: 0.5rem; -} - .block { display: block; } @@ -881,11 +881,6 @@ select { display: none; } -.size-4 { - width: 1rem; - height: 1rem; -} - .\!h-4 { height: 1rem !important; } @@ -938,10 +933,6 @@ select { grid-template-columns: repeat(2, minmax(0, 1fr)); } -.grid-cols-4 { - grid-template-columns: repeat(4, minmax(0, 1fr)); -} - .flex-col { flex-direction: column; } diff --git a/priv/static/app.js b/priv/static/app.js index c1f8744..d34a29c 100644 --- a/priv/static/app.js +++ b/priv/static/app.js @@ -1,14 +1,20 @@ -var G5=Object.create;var{defineProperty:I1,getPrototypeOf:j5,getOwnPropertyNames:K5}=Object;var B5=Object.prototype.hasOwnProperty;var M5=(Q,Z,$)=>{$=Q!=null?G5(j5(Q)):{};const Y=Z||!Q||!Q.__esModule?I1($,"default",{value:Q,enumerable:!0}):$;for(let z of K5(Q))if(!B5.call(Y,z))I1(Y,z,{get:()=>Q[z],enumerable:!0});return Y};var U5=(Q,Z)=>()=>(Z||Q((Z={exports:{}}).exports,Z),Z.exports);var J5=U5((z5,i0)=>{(function(Q,Z){function $(){Y.width=Q.innerWidth,Y.height=5*j.barThickness;var U=Y.getContext("2d");U.shadowBlur=j.shadowBlur,U.shadowColor=j.shadowColor;var V,X=U.createLinearGradient(0,0,Y.width,0);for(V in j.barColors)X.addColorStop(V,j.barColors[V]);U.lineWidth=j.barThickness,U.beginPath(),U.moveTo(0,j.barThickness/2),U.lineTo(Math.ceil(z*Y.width),j.barThickness/2),U.strokeStyle=X,U.stroke()}var Y,z,J,W=null,q=null,G=null,j={autoRun:!0,barThickness:3,barColors:{0:"rgba(26, 188, 156, .9)",".25":"rgba(52, 152, 219, .9)",".50":"rgba(241, 196, 15, .9)",".75":"rgba(230, 126, 34, .9)","1.0":"rgba(211, 84, 0, .9)"},shadowBlur:10,shadowColor:"rgba(0, 0, 0, .6)",className:null},B={config:function(U){for(var V in U)j.hasOwnProperty(V)&&(j[V]=U[V])},show:function(U){var V,X;J||(U?G=G||setTimeout(()=>B.show(),U):(J=!0,q!==null&&Q.cancelAnimationFrame(q),Y||((X=(Y=Z.createElement("canvas")).style).position="fixed",X.top=X.left=X.right=X.margin=X.padding=0,X.zIndex=100001,X.display="none",j.className&&Y.classList.add(j.className),V="resize",U=$,(X=Q).addEventListener?X.addEventListener(V,U,!1):X.attachEvent?X.attachEvent("on"+V,U):X["on"+V]=U),Y.parentElement||Z.body.appendChild(Y),Y.style.opacity=1,Y.style.display="block",B.progress(0),j.autoRun&&function L(){W=Q.requestAnimationFrame(L),B.progress("+"+0.05*Math.pow(1-Math.sqrt(z),2))}()))},progress:function(U){return U===void 0||(typeof U=="string"&&(U=(0<=U.indexOf("+")||0<=U.indexOf("-")?z:0)+parseFloat(U)),z=1{if(typeof Q==="function")return Q;else return function(){return Q}},V5=typeof self!=="undefined"?self:null,V0=typeof window!=="undefined"?window:null,q0=V5||V0||q0,X5="2.0.0",p={connecting:0,open:1,closing:2,closed:3},L5=1e4,F5=1000,_={closed:"closed",errored:"errored",joined:"joined",joining:"joining",leaving:"leaving"},n={close:"phx_close",error:"phx_error",join:"phx_join",reply:"phx_reply",leave:"phx_leave"},l0={longpoll:"longpoll",websocket:"websocket"},D5={complete:4},S0=class{constructor(Q,Z,$,Y){this.channel=Q,this.event=Z,this.payload=$||function(){return{}},this.receivedResp=null,this.timeout=Y,this.timeoutTimer=null,this.recHooks=[],this.sent=!1}resend(Q){this.timeout=Q,this.reset(),this.send()}send(){if(this.hasReceived("timeout"))return;this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload(),ref:this.ref,join_ref:this.channel.joinRef()})}receive(Q,Z){if(this.hasReceived(Q))Z(this.receivedResp.response);return this.recHooks.push({status:Q,callback:Z}),this}reset(){this.cancelRefEvent(),this.ref=null,this.refEvent=null,this.receivedResp=null,this.sent=!1}matchReceive({status:Q,response:Z,_ref:$}){this.recHooks.filter((Y)=>Y.status===Q).forEach((Y)=>Y.callback(Z))}cancelRefEvent(){if(!this.refEvent)return;this.channel.off(this.refEvent)}cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=null}startTimeout(){if(this.timeoutTimer)this.cancelTimeout();this.ref=this.channel.socket.makeRef(),this.refEvent=this.channel.replyEventName(this.ref),this.channel.on(this.refEvent,(Q)=>{this.cancelRefEvent(),this.cancelTimeout(),this.receivedResp=Q,this.matchReceive(Q)}),this.timeoutTimer=setTimeout(()=>{this.trigger("timeout",{})},this.timeout)}hasReceived(Q){return this.receivedResp&&this.receivedResp.status===Q}trigger(Q,Z){this.channel.trigger(this.refEvent,{status:Q,response:Z})}},H1=class{constructor(Q,Z){this.callback=Q,this.timerCalc=Z,this.timer=null,this.tries=0}reset(){this.tries=0,clearTimeout(this.timer)}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout(()=>{this.tries=this.tries+1,this.callback()},this.timerCalc(this.tries+1))}},I5=class{constructor(Q,Z,$){this.state=_.closed,this.topic=Q,this.params=X0(Z||{}),this.socket=$,this.bindings=[],this.bindingRef=0,this.timeout=this.socket.timeout,this.joinedOnce=!1,this.joinPush=new S0(this,n.join,this.params,this.timeout),this.pushBuffer=[],this.stateChangeRefs=[],this.rejoinTimer=new H1(()=>{if(this.socket.isConnected())this.rejoin()},this.socket.rejoinAfterMs),this.stateChangeRefs.push(this.socket.onError(()=>this.rejoinTimer.reset())),this.stateChangeRefs.push(this.socket.onOpen(()=>{if(this.rejoinTimer.reset(),this.isErrored())this.rejoin()})),this.joinPush.receive("ok",()=>{this.state=_.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach((Y)=>Y.send()),this.pushBuffer=[]}),this.joinPush.receive("error",()=>{if(this.state=_.errored,this.socket.isConnected())this.rejoinTimer.scheduleTimeout()}),this.onClose(()=>{if(this.rejoinTimer.reset(),this.socket.hasLogger())this.socket.log("channel",`close ${this.topic} ${this.joinRef()}`);this.state=_.closed,this.socket.remove(this)}),this.onError((Y)=>{if(this.socket.hasLogger())this.socket.log("channel",`error ${this.topic}`,Y);if(this.isJoining())this.joinPush.reset();if(this.state=_.errored,this.socket.isConnected())this.rejoinTimer.scheduleTimeout()}),this.joinPush.receive("timeout",()=>{if(this.socket.hasLogger())this.socket.log("channel",`timeout ${this.topic} (${this.joinRef()})`,this.joinPush.timeout);if(new S0(this,n.leave,X0({}),this.timeout).send(),this.state=_.errored,this.joinPush.reset(),this.socket.isConnected())this.rejoinTimer.scheduleTimeout()}),this.on(n.reply,(Y,z)=>{this.trigger(this.replyEventName(z),Y)})}join(Q=this.timeout){if(this.joinedOnce)throw new Error("tried to join multiple times. 'join' can only be called a single time per channel instance");else return this.timeout=Q,this.joinedOnce=!0,this.rejoin(),this.joinPush}onClose(Q){this.on(n.close,Q)}onError(Q){return this.on(n.error,(Z)=>Q(Z))}on(Q,Z){let $=this.bindingRef++;return this.bindings.push({event:Q,ref:$,callback:Z}),$}off(Q,Z){this.bindings=this.bindings.filter(($)=>{return!($.event===Q&&(typeof Z==="undefined"||Z===$.ref))})}canPush(){return this.socket.isConnected()&&this.isJoined()}push(Q,Z,$=this.timeout){if(Z=Z||{},!this.joinedOnce)throw new Error(`tried to push '${Q}' to '${this.topic}' before joining. Use channel.join() before pushing events`);let Y=new S0(this,Q,function(){return Z},$);if(this.canPush())Y.send();else Y.startTimeout(),this.pushBuffer.push(Y);return Y}leave(Q=this.timeout){this.rejoinTimer.reset(),this.joinPush.cancelTimeout(),this.state=_.leaving;let Z=()=>{if(this.socket.hasLogger())this.socket.log("channel",`leave ${this.topic}`);this.trigger(n.close,"leave")},$=new S0(this,n.leave,X0({}),Q);if($.receive("ok",()=>Z()).receive("timeout",()=>Z()),$.send(),!this.canPush())$.trigger("ok",{});return $}onMessage(Q,Z,$){return Z}isMember(Q,Z,$,Y){if(this.topic!==Q)return!1;if(Y&&Y!==this.joinRef()){if(this.socket.hasLogger())this.socket.log("channel","dropping outdated message",{topic:Q,event:Z,payload:$,joinRef:Y});return!1}else return!0}joinRef(){return this.joinPush.ref}rejoin(Q=this.timeout){if(this.isLeaving())return;this.socket.leaveOpenTopic(this.topic),this.state=_.joining,this.joinPush.resend(Q)}trigger(Q,Z,$,Y){let z=this.onMessage(Q,Z,$,Y);if(Z&&!z)throw new Error("channel onMessage callbacks must return the payload, modified or unmodified");let J=this.bindings.filter((W)=>W.event===Q);for(let W=0;W{let q=this.parseJSON(Q.responseText);W&&W(q)},J)Q.ontimeout=J;return Q.onprogress=()=>{},Q.send(Y),Q}static xhrRequest(Q,Z,$,Y,z,J,W,q){if(Q.open(Z,$,!0),Q.timeout=J,Q.setRequestHeader("Content-Type",Y),Q.onerror=()=>q&&q(null),Q.onreadystatechange=()=>{if(Q.readyState===D5.complete&&q){let G=this.parseJSON(Q.responseText);q(G)}},W)Q.ontimeout=W;return Q.send(z),Q}static parseJSON(Q){if(!Q||Q==="")return null;try{return JSON.parse(Q)}catch(Z){return console&&console.log("failed to parse JSON response",Q),null}}static serialize(Q,Z){let $=[];for(var Y in Q){if(!Object.prototype.hasOwnProperty.call(Q,Y))continue;let z=Z?`${Z}[${Y}]`:Y,J=Q[Y];if(typeof J==="object")$.push(this.serialize(J,z));else $.push(encodeURIComponent(z)+"="+encodeURIComponent(J))}return $.join("&")}static appendParams(Q,Z){if(Object.keys(Z).length===0)return Q;let $=Q.match(/\?/)?"&":"?";return`${Q}${$}${this.serialize(Z)}`}},H5=(Q)=>{let Z="",$=new Uint8Array(Q),Y=$.byteLength;for(let z=0;zthis.poll(),0)}normalizeEndpoint(Q){return Q.replace("ws://","http://").replace("wss://","https://").replace(new RegExp("(.*)/"+l0.websocket),"$1/"+l0.longpoll)}endpointURL(){return T0.appendParams(this.pollEndpoint,{token:this.token})}closeAndRetry(Q,Z,$){this.close(Q,Z,$),this.readyState=p.connecting}ontimeout(){this.onerror("timeout"),this.closeAndRetry(1005,"timeout",!1)}isActive(){return this.readyState===p.open||this.readyState===p.connecting}poll(){this.ajax("GET","application/json",null,()=>this.ontimeout(),(Q)=>{if(Q){var{status:Z,token:$,messages:Y}=Q;this.token=$}else Z=0;switch(Z){case 200:Y.forEach((z)=>{setTimeout(()=>this.onmessage({data:z}),0)}),this.poll();break;case 204:this.poll();break;case 410:this.readyState=p.open,this.onopen({}),this.poll();break;case 403:this.onerror(403),this.close(1008,"forbidden",!1);break;case 0:case 500:this.onerror(500),this.closeAndRetry(1011,"internal server error",500);break;default:throw new Error(`unhandled poll status ${Z}`)}})}send(Q){if(typeof Q!=="string")Q=H5(Q);if(this.currentBatch)this.currentBatch.push(Q);else if(this.awaitingBatchAck)this.batchBuffer.push(Q);else this.currentBatch=[Q],this.currentBatchTimer=setTimeout(()=>{this.batchSend(this.currentBatch),this.currentBatch=null},0)}batchSend(Q){this.awaitingBatchAck=!0,this.ajax("POST","application/x-ndjson",Q.join("\n"),()=>this.onerror("timeout"),(Z)=>{if(this.awaitingBatchAck=!1,!Z||Z.status!==200)this.onerror(Z&&Z.status),this.closeAndRetry(1011,"internal server error",!1);else if(this.batchBuffer.length>0)this.batchSend(this.batchBuffer),this.batchBuffer=[]})}close(Q,Z,$){for(let z of this.reqs)z.abort();this.readyState=p.closed;let Y=Object.assign({code:1000,reason:void 0,wasClean:!0},{code:Q,reason:Z,wasClean:$});if(this.batchBuffer=[],clearTimeout(this.currentBatchTimer),this.currentBatchTimer=null,typeof CloseEvent!=="undefined")this.onclose(new CloseEvent("close",Y));else this.onclose(Y)}ajax(Q,Z,$,Y,z){let J,W=()=>{this.reqs.delete(J),Y()};J=T0.request(Q,this.endpointURL(),Z,$,this.timeout,W,(q)=>{if(this.reqs.delete(J),this.isActive())z(q)}),this.reqs.add(J)}};var y0={HEADER_LENGTH:1,META_LENGTH:4,KINDS:{push:0,reply:1,broadcast:2},encode(Q,Z){if(Q.payload.constructor===ArrayBuffer)return Z(this.binaryEncode(Q));else{let $=[Q.join_ref,Q.ref,Q.topic,Q.event,Q.payload];return Z(JSON.stringify($))}},decode(Q,Z){if(Q.constructor===ArrayBuffer)return Z(this.binaryDecode(Q));else{let[$,Y,z,J,W]=JSON.parse(Q);return Z({join_ref:$,ref:Y,topic:z,event:J,payload:W})}},binaryEncode(Q){let{join_ref:Z,ref:$,event:Y,topic:z,payload:J}=Q,W=this.META_LENGTH+Z.length+$.length+z.length+Y.length,q=new ArrayBuffer(this.HEADER_LENGTH+W),G=new DataView(q),j=0;G.setUint8(j++,this.KINDS.push),G.setUint8(j++,Z.length),G.setUint8(j++,$.length),G.setUint8(j++,z.length),G.setUint8(j++,Y.length),Array.from(Z,(U)=>G.setUint8(j++,U.charCodeAt(0))),Array.from($,(U)=>G.setUint8(j++,U.charCodeAt(0))),Array.from(z,(U)=>G.setUint8(j++,U.charCodeAt(0))),Array.from(Y,(U)=>G.setUint8(j++,U.charCodeAt(0)));var B=new Uint8Array(q.byteLength+J.byteLength);return B.set(new Uint8Array(q),0),B.set(new Uint8Array(J),q.byteLength),B.buffer},binaryDecode(Q){let Z=new DataView(Q),$=Z.getUint8(0),Y=new TextDecoder;switch($){case this.KINDS.push:return this.decodePush(Q,Z,Y);case this.KINDS.reply:return this.decodeReply(Q,Z,Y);case this.KINDS.broadcast:return this.decodeBroadcast(Q,Z,Y)}},decodePush(Q,Z,$){let Y=Z.getUint8(1),z=Z.getUint8(2),J=Z.getUint8(3),W=this.HEADER_LENGTH+this.META_LENGTH-1,q=$.decode(Q.slice(W,W+Y));W=W+Y;let G=$.decode(Q.slice(W,W+z));W=W+z;let j=$.decode(Q.slice(W,W+J));W=W+J;let B=Q.slice(W,Q.byteLength);return{join_ref:q,ref:null,topic:G,event:j,payload:B}},decodeReply(Q,Z,$){let Y=Z.getUint8(1),z=Z.getUint8(2),J=Z.getUint8(3),W=Z.getUint8(4),q=this.HEADER_LENGTH+this.META_LENGTH,G=$.decode(Q.slice(q,q+Y));q=q+Y;let j=$.decode(Q.slice(q,q+z));q=q+z;let B=$.decode(Q.slice(q,q+J));q=q+J;let U=$.decode(Q.slice(q,q+W));q=q+W;let V=Q.slice(q,Q.byteLength),X={status:U,response:V};return{join_ref:G,ref:j,topic:B,event:n.reply,payload:X}},decodeBroadcast(Q,Z,$){let Y=Z.getUint8(1),z=Z.getUint8(2),J=this.HEADER_LENGTH+2,W=$.decode(Q.slice(J,J+Y));J=J+Y;let q=$.decode(Q.slice(J,J+z));J=J+z;let G=Q.slice(J,Q.byteLength);return{join_ref:null,ref:null,topic:W,event:q,payload:G}}},x1=class{constructor(Q,Z={}){if(this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.channels=[],this.sendBuffer=[],this.ref=0,this.timeout=Z.timeout||L5,this.transport=Z.transport||q0.WebSocket||z0,this.primaryPassedHealthCheck=!1,this.longPollFallbackMs=Z.longPollFallbackMs,this.fallbackTimer=null,this.sessionStore=Z.sessionStorage||q0.sessionStorage,this.establishedConnections=0,this.defaultEncoder=y0.encode.bind(y0),this.defaultDecoder=y0.decode.bind(y0),this.closeWasClean=!1,this.binaryType=Z.binaryType||"arraybuffer",this.connectClock=1,this.transport!==z0)this.encode=Z.encode||this.defaultEncoder,this.decode=Z.decode||this.defaultDecoder;else this.encode=this.defaultEncoder,this.decode=this.defaultDecoder;let $=null;if(V0&&V0.addEventListener)V0.addEventListener("pagehide",(Y)=>{if(this.conn)this.disconnect(),$=this.connectClock}),V0.addEventListener("pageshow",(Y)=>{if($===this.connectClock)$=null,this.connect()});if(this.heartbeatIntervalMs=Z.heartbeatIntervalMs||30000,this.rejoinAfterMs=(Y)=>{if(Z.rejoinAfterMs)return Z.rejoinAfterMs(Y);else return[1000,2000,5000][Y-1]||1e4},this.reconnectAfterMs=(Y)=>{if(Z.reconnectAfterMs)return Z.reconnectAfterMs(Y);else return[10,50,100,150,200,250,500,1000,2000][Y-1]||5000},this.logger=Z.logger||null,!this.logger&&Z.debug)this.logger=(Y,z,J)=>{console.log(`${Y}: ${z}`,J)};this.longpollerTimeout=Z.longpollerTimeout||20000,this.params=X0(Z.params||{}),this.endPoint=`${Q}/${l0.websocket}`,this.vsn=Z.vsn||X5,this.heartbeatTimeoutTimer=null,this.heartbeatTimer=null,this.pendingHeartbeatRef=null,this.reconnectTimer=new H1(()=>{this.teardown(()=>this.connect())},this.reconnectAfterMs)}getLongPollTransport(){return z0}replaceTransport(Q){if(this.connectClock++,this.closeWasClean=!0,clearTimeout(this.fallbackTimer),this.reconnectTimer.reset(),this.conn)this.conn.close(),this.conn=null;this.transport=Q}protocol(){return location.protocol.match(/^https/)?"wss":"ws"}endPointURL(){let Q=T0.appendParams(T0.appendParams(this.endPoint,this.params()),{vsn:this.vsn});if(Q.charAt(0)!=="/")return Q;if(Q.charAt(1)==="/")return`${this.protocol()}:${Q}`;return`${this.protocol()}://${location.host}${Q}`}disconnect(Q,Z,$){this.connectClock++,this.closeWasClean=!0,clearTimeout(this.fallbackTimer),this.reconnectTimer.reset(),this.teardown(Q,Z,$)}connect(Q){if(Q)console&&console.log("passing params to connect is deprecated. Instead pass :params to the Socket constructor"),this.params=X0(Q);if(this.conn)return;if(this.longPollFallbackMs&&this.transport!==z0)this.connectWithFallback(z0,this.longPollFallbackMs);else this.transportConnect()}log(Q,Z,$){this.logger&&this.logger(Q,Z,$)}hasLogger(){return this.logger!==null}onOpen(Q){let Z=this.makeRef();return this.stateChangeCallbacks.open.push([Z,Q]),Z}onClose(Q){let Z=this.makeRef();return this.stateChangeCallbacks.close.push([Z,Q]),Z}onError(Q){let Z=this.makeRef();return this.stateChangeCallbacks.error.push([Z,Q]),Z}onMessage(Q){let Z=this.makeRef();return this.stateChangeCallbacks.message.push([Z,Q]),Z}ping(Q){if(!this.isConnected())return!1;let Z=this.makeRef(),$=Date.now();this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:Z});let Y=this.onMessage((z)=>{if(z.ref===Z)this.off([Y]),Q(Date.now()-$)});return!0}transportConnect(){this.connectClock++,this.closeWasClean=!1,this.conn=new this.transport(this.endPointURL()),this.conn.binaryType=this.binaryType,this.conn.timeout=this.longpollerTimeout,this.conn.onopen=()=>this.onConnOpen(),this.conn.onerror=(Q)=>this.onConnError(Q),this.conn.onmessage=(Q)=>this.onConnMessage(Q),this.conn.onclose=(Q)=>this.onConnClose(Q)}getSession(Q){return this.sessionStore&&this.sessionStore.getItem(Q)}storeSession(Q,Z){this.sessionStore&&this.sessionStore.setItem(Q,Z)}connectWithFallback(Q,Z=2500){clearTimeout(this.fallbackTimer);let $=!1,Y=!0,z,J,W=(q)=>{this.log("transport",`falling back to ${Q.name}...`,q),this.off([z,J]),Y=!1,this.replaceTransport(Q),this.transportConnect()};if(this.getSession(`phx:fallback:${Q.name}`))return W("memorized");this.fallbackTimer=setTimeout(W,Z),J=this.onError((q)=>{if(this.log("transport","error",q),Y&&!$)clearTimeout(this.fallbackTimer),W(q)}),this.onOpen(()=>{if($=!0,!Y){if(!this.primaryPassedHealthCheck)this.storeSession(`phx:fallback:${Q.name}`,"true");return this.log("transport",`established ${Q.name} fallback`)}clearTimeout(this.fallbackTimer),this.fallbackTimer=setTimeout(W,Z),this.ping((q)=>{this.log("transport","connected to primary after",q),this.primaryPassedHealthCheck=!0,clearTimeout(this.fallbackTimer)})}),this.transportConnect()}clearHeartbeats(){clearTimeout(this.heartbeatTimer),clearTimeout(this.heartbeatTimeoutTimer)}onConnOpen(){if(this.hasLogger())this.log("transport",`${this.transport.name} connected to ${this.endPointURL()}`);this.closeWasClean=!1,this.establishedConnections++,this.flushSendBuffer(),this.reconnectTimer.reset(),this.resetHeartbeat(),this.stateChangeCallbacks.open.forEach(([,Q])=>Q())}heartbeatTimeout(){if(this.pendingHeartbeatRef){if(this.pendingHeartbeatRef=null,this.hasLogger())this.log("transport","heartbeat timeout. Attempting to re-establish connection");this.triggerChanError(),this.closeWasClean=!1,this.teardown(()=>this.reconnectTimer.scheduleTimeout(),F5,"heartbeat timeout")}}resetHeartbeat(){if(this.conn&&this.conn.skipHeartbeat)return;this.pendingHeartbeatRef=null,this.clearHeartbeats(),this.heartbeatTimer=setTimeout(()=>this.sendHeartbeat(),this.heartbeatIntervalMs)}teardown(Q,Z,$){if(!this.conn)return Q&&Q();this.waitForBufferDone(()=>{if(this.conn)if(Z)this.conn.close(Z,$||"");else this.conn.close();this.waitForSocketClosed(()=>{if(this.conn)this.conn.onopen=function(){},this.conn.onerror=function(){},this.conn.onmessage=function(){},this.conn.onclose=function(){},this.conn=null;Q&&Q()})})}waitForBufferDone(Q,Z=1){if(Z===5||!this.conn||!this.conn.bufferedAmount){Q();return}setTimeout(()=>{this.waitForBufferDone(Q,Z+1)},150*Z)}waitForSocketClosed(Q,Z=1){if(Z===5||!this.conn||this.conn.readyState===p.closed){Q();return}setTimeout(()=>{this.waitForSocketClosed(Q,Z+1)},150*Z)}onConnClose(Q){let Z=Q&&Q.code;if(this.hasLogger())this.log("transport","close",Q);if(this.triggerChanError(),this.clearHeartbeats(),!this.closeWasClean&&Z!==1000)this.reconnectTimer.scheduleTimeout();this.stateChangeCallbacks.close.forEach(([,$])=>$(Q))}onConnError(Q){if(this.hasLogger())this.log("transport",Q);let Z=this.transport,$=this.establishedConnections;if(this.stateChangeCallbacks.error.forEach(([,Y])=>{Y(Q,Z,$)}),Z===this.transport||$>0)this.triggerChanError()}triggerChanError(){this.channels.forEach((Q)=>{if(!(Q.isErrored()||Q.isLeaving()||Q.isClosed()))Q.trigger(n.error)})}connectionState(){switch(this.conn&&this.conn.readyState){case p.connecting:return"connecting";case p.open:return"open";case p.closing:return"closing";default:return"closed"}}isConnected(){return this.connectionState()==="open"}remove(Q){this.off(Q.stateChangeRefs),this.channels=this.channels.filter((Z)=>Z!==Q)}off(Q){for(let Z in this.stateChangeCallbacks)this.stateChangeCallbacks[Z]=this.stateChangeCallbacks[Z].filter(([$])=>{return Q.indexOf($)===-1})}channel(Q,Z={}){let $=new I5(Q,Z,this);return this.channels.push($),$}push(Q){if(this.hasLogger()){let{topic:Z,event:$,payload:Y,ref:z,join_ref:J}=Q;this.log("push",`${Z} ${$} (${J}, ${z})`,Y)}if(this.isConnected())this.encode(Q,(Z)=>this.conn.send(Z));else this.sendBuffer.push(()=>this.encode(Q,(Z)=>this.conn.send(Z)))}makeRef(){let Q=this.ref+1;if(Q===this.ref)this.ref=0;else this.ref=Q;return this.ref.toString()}sendHeartbeat(){if(this.pendingHeartbeatRef&&!this.isConnected())return;this.pendingHeartbeatRef=this.makeRef(),this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:this.pendingHeartbeatRef}),this.heartbeatTimeoutTimer=setTimeout(()=>this.heartbeatTimeout(),this.heartbeatIntervalMs)}flushSendBuffer(){if(this.isConnected()&&this.sendBuffer.length>0)this.sendBuffer.forEach((Q)=>Q()),this.sendBuffer=[]}onConnMessage(Q){this.decode(Q.data,(Z)=>{let{topic:$,event:Y,payload:z,ref:J,join_ref:W}=Z;if(J&&J===this.pendingHeartbeatRef)this.clearHeartbeats(),this.pendingHeartbeatRef=null,this.heartbeatTimer=setTimeout(()=>this.sendHeartbeat(),this.heartbeatIntervalMs);if(this.hasLogger())this.log("receive",`${z.status||""} ${$} ${Y} ${J&&"("+J+")"||""}`,z);for(let q=0;q$.topic===Q&&($.isJoined()||$.isJoining()));if(Z){if(this.hasLogger())this.log("transport",`leaving duplicate topic "${Q}"`);Z.leave()}}};var p5=function(){let Q=new Set,Z=document.querySelectorAll("*[id]");for(let $=0,Y=Z.length;$=0;G--)if(Y=$[G],z=Y.name,J=Y.namespaceURI,W=Y.value,J){if(z=Y.localName||z,q=Q.getAttributeNS(J,z),q!==W){if(Y.prefix==="xmlns")z=Y.name;Q.setAttributeNS(J,z,W)}}else if(q=Q.getAttribute(z),q!==W)Q.setAttribute(z,W);var j=Q.attributes;for(var B=j.length-1;B>=0;B--)if(Y=j[B],z=Y.name,J=Y.namespaceURI,J){if(z=Y.localName||z,!Z.hasAttributeNS(J,z))Q.removeAttributeNS(J,z)}else if(!Z.hasAttribute(z))Q.removeAttribute(z)},$9=function(Q){var Z=N.createElement("template");return Z.innerHTML=Q,Z.content.childNodes[0]},Y9=function(Q){if(!v0)v0=N.createRange(),v0.selectNode(N.body);var Z=v0.createContextualFragment(Q);return Z.childNodes[0]},z9=function(Q){var Z=N.createElement("body");return Z.innerHTML=Q,Z.childNodes[0]},J9=function(Q){if(Q=Q.trim(),Q9)return $9(Q);else if(Z9)return Y9(Q);return z9(Q)},h0=function(Q,Z){var $=Q.nodeName,Y=Z.nodeName,z,J;if($===Y)return!0;if(z=$.charCodeAt(0),J=Y.charCodeAt(0),z<=90&&J>=97)return $===Y.toUpperCase();else if(J<=90&&z>=97)return Y===$.toUpperCase();else return!1},W9=function(Q,Z){return!Z||Z===e5?N.createElement(Q):N.createElementNS(Z,Q)},q9=function(Q,Z){var $=Q.firstChild;while($){var Y=$.nextSibling;Z.appendChild($),$=Y}return Z},q1=function(Q,Z,$){if(Q[$]!==Z[$])if(Q[$]=Z[$],Q[$])Q.setAttribute($,"");else Q.removeAttribute($)},e=function(){},G9=function(Q){if(Q)return Q.getAttribute&&Q.getAttribute("id")||Q.id},j9=function(Q){return function Z($,Y,z){if(!z)z={};if(typeof Y==="string")if($.nodeName==="#document"||$.nodeName==="HTML"||$.nodeName==="BODY"){var J=Y;Y=N.createElement("html"),Y.innerHTML=J}else Y=J9(Y);else if(Y.nodeType===p1)Y=Y.firstElementChild;var W=z.getNodeKey||G9,q=z.onBeforeNodeAdded||e,G=z.onNodeAdded||e,j=z.onBeforeElUpdated||e,B=z.onElUpdated||e,U=z.onBeforeNodeDiscarded||e,V=z.onNodeDiscarded||e,X=z.onBeforeElChildrenUpdated||e,L=z.skipFromChildren||e,H=z.addChild||function(I,F){return I.appendChild(F)},P=z.childrenOnly===!0,y=Object.create(null),g=[];function E(I){g.push(I)}function C(I,F){if(I.nodeType===x0){var R=I.firstChild;while(R){var x=void 0;if(F&&(x=W(R)))E(x);else if(V(R),R.firstChild)C(R,F);R=R.nextSibling}}}function Y0(I,F,R){if(U(I)===!1)return;if(F)F.removeChild(I);V(I),C(I,R)}function S(I){if(I.nodeType===x0||I.nodeType===p1){var F=I.firstChild;while(F){var R=W(F);if(R)y[R]=F;S(F),F=F.nextSibling}}}S($);function d(I){G(I);var F=I.firstChild;while(F){var R=F.nextSibling,x=W(F);if(x){var A=y[x];if(A&&h0(F,A))F.parentNode.replaceChild(A,F),D(A,F);else d(F)}else d(F);F=R}}function M(I,F,R){while(F){var x=F.nextSibling;if(R=W(F))E(R);else Y0(F,I,!0);F=x}}function D(I,F,R){var x=W(F);if(x)delete y[x];if(!R){if(j(I,F)===!1)return;if(Q(I,F),B(I),X(I,F)===!1)return}if(I.nodeName!=="TEXTAREA")k(I,F);else f1.TEXTAREA(I,F)}function k(I,F){var R=L(I,F),x=F.firstChild,A=I.firstChild,J0,i,W0,w0,l;Q:while(x){w0=x.nextSibling,J0=W(x);while(!R&&A){if(W0=A.nextSibling,x.isSameNode&&x.isSameNode(A)){x=w0,A=W0;continue Q}i=W(A);var P0=A.nodeType,t=void 0;if(P0===x.nodeType){if(P0===x0){if(J0){if(J0!==i)if(l=y[J0])if(W0===l)t=!1;else{if(I.insertBefore(l,A),i)E(i);else Y0(A,I,!0);A=l,i=W(A)}else t=!1}else if(i)t=!1;if(t=t!==!1&&h0(A,x),t)D(A,x)}else if(P0===m1||P0==c1){if(t=!0,A.nodeValue!==x.nodeValue)A.nodeValue=x.nodeValue}}if(t){x=w0,A=W0;continue Q}if(i)E(i);else Y0(A,I,!0);A=W0}if(J0&&(l=y[J0])&&h0(l,x)){if(!R)H(I,l);D(l,x)}else{var o0=q(x);if(o0!==!1){if(o0)x=o0;if(x.actualize)x=x.actualize(I.ownerDocument||N);H(I,x),d(x)}}x=w0,A=W0}M(I,A,i);var D1=f1[I.nodeName];if(D1)D1(I,F)}var O=$,f=O.nodeType,F1=Y.nodeType;if(!P){if(f===x0)if(F1===x0){if(!h0($,Y))V($),O=q9($,W9(Y.nodeName,Y.namespaceURI))}else O=Y;else if(f===m1||f===c1)if(F1===f){if(O.nodeValue!==Y.nodeValue)O.nodeValue=Y.nodeValue;return O}else O=Y}if(O===Y)V($);else{if(Y.isSameNode&&Y.isSameNode(O))return;if(D(O,Y,P),g)for(var a0=0,q5=g.length;a0this.error(Q)),this.uploadChannel.join().receive("ok",(Q)=>this.readNextChunk()).receive("error",(Q)=>this.error(Q))}isDone(){return this.offset>=this.entry.file.size}readNextChunk(){let Q=new window.FileReader,Z=this.entry.file.slice(this.offset,this.chunkSize+this.offset);Q.onload=($)=>{if($.target.error===null)this.offset+=$.target.result.byteLength,this.pushChunk($.target.result);else return h("Read error: "+$.target.error)},Q.readAsArrayBuffer(Z)}pushChunk(Q){if(!this.uploadChannel.isJoined())return;this.uploadChannel.push("chunk",Q).receive("ok",()=>{if(this.entry.progress(this.offset/this.entry.file.size*100),!this.isDone())this.chunkTimer=setTimeout(()=>this.readNextChunk(),this.liveSocket.getLatencySim()||0)}).receive("error",({reason:Z})=>this.error(Z))}},h=(Q,Z)=>console.error&&console.error(Q,Z),a=(Q)=>{let Z=typeof Q;return Z==="number"||Z==="string"&&/^(0|[1-9]\d*)$/.test(Q)},m5=(Q,Z,$,Y)=>{if(Q.liveSocket.isDebugEnabled())console.log(`${Q.id} ${Z}: ${$} - `,Y)},W1=(Q)=>typeof Q==="function"?Q:function(){return Q},p0=(Q)=>{return JSON.parse(JSON.stringify(Q))},R0=(Q,Z,$)=>{do{if(Q.matches(`[${Z}]`)&&!Q.disabled)return Q;Q=Q.parentElement||Q.parentNode}while(Q!==null&&Q.nodeType===1&&!($&&$.isSameNode(Q)||Q.matches(U0)));return null},j0=(Q)=>{return Q!==null&&typeof Q==="object"&&!(Q instanceof Array)},c5=(Q,Z)=>JSON.stringify(Q)===JSON.stringify(Z),_1=(Q)=>{for(let Z in Q)return!1;return!0},Z0=(Q,Z)=>Q&&Z(Q),s5=function(Q,Z,$,Y){Q.forEach((z)=>{new f5(z,$.config.chunk_size,Y).upload()})},e1={canPushState(){return typeof history.pushState!=="undefined"},dropLocal(Q,Z,$){return Q.removeItem(this.localKey(Z,$))},updateLocal(Q,Z,$,Y,z){let J=this.getLocal(Q,Z,$),W=this.localKey(Z,$),q=J===null?Y:z(J);return Q.setItem(W,JSON.stringify(q)),q},getLocal(Q,Z,$){return JSON.parse(Q.getItem(this.localKey(Z,$)))},updateCurrentState(Q){if(!this.canPushState())return;history.replaceState(Q(history.state||{}),"",window.location.href)},pushState(Q,Z,$){if(this.canPushState()){if($!==window.location.href){if(Z.type=="redirect"&&Z.scroll){let z=history.state||{};z.scroll=Z.scroll,history.replaceState(z,"",window.location.href)}delete Z.scroll,history[Q+"State"](Z,"",$||null);let Y=this.getHashTargetEl(window.location.hash);if(Y)Y.scrollIntoView();else if(Z.type==="redirect")window.scroll(0,0)}}else this.redirect($)},setCookie(Q,Z){document.cookie=`${Q}=${Z}`},getCookie(Q){return document.cookie.replace(new RegExp(`(?:(?:^|.*;s*)${Q}s*=s*([^;]*).*\$)|^.*\$`),"$1")},redirect(Q,Z){if(Z)e1.setCookie("__phoenix_flash__",Z+"; max-age=60000; path=/");window.location=Q},localKey(Q,Z){return`${Q}-${Z}`},getHashTargetEl(Q){let Z=Q.toString().substring(1);if(Z==="")return;return document.getElementById(Z)||document.querySelector(`a[name="${Z}"]`)}},s=e1,d5={focusMain(){let Q=document.querySelector("main h1, main, h1");if(Q){let Z=Q.tabIndex;Q.tabIndex=-1,Q.focus(),Q.tabIndex=Z}},anyOf(Q,Z){return Z.find(($)=>Q instanceof $)},isFocusable(Q,Z){return Q instanceof HTMLAnchorElement&&Q.rel!=="ignore"||Q instanceof HTMLAreaElement&&Q.href!==void 0||!Q.disabled&&this.anyOf(Q,[HTMLInputElement,HTMLSelectElement,HTMLTextAreaElement,HTMLButtonElement])||Q instanceof HTMLIFrameElement||(Q.tabIndex>0||!Z&&Q.getAttribute("tabindex")!==null&&Q.getAttribute("aria-hidden")!=="true")},attemptFocus(Q,Z){if(this.isFocusable(Q,Z))try{Q.focus()}catch($){}return!!document.activeElement&&document.activeElement.isSameNode(Q)},focusFirstInteractive(Q){let Z=Q.firstElementChild;while(Z){if(this.attemptFocus(Z,!0)||this.focusFirstInteractive(Z,!0))return!0;Z=Z.nextElementSibling}},focusFirst(Q){let Z=Q.firstElementChild;while(Z){if(this.attemptFocus(Z)||this.focusFirst(Z))return!0;Z=Z.nextElementSibling}},focusLast(Q){let Z=Q.lastElementChild;while(Z){if(this.attemptFocus(Z)||this.focusLast(Z))return!0;Z=Z.previousElementSibling}}},B0=d5,_0=null,v1=200,i5={exec(Q,Z,$,Y,z){let[J,W]=z||[null,{callback:z&&z.callback}];(Z.charAt(0)==="["?JSON.parse(Z):[[J,W]]).forEach(([G,j])=>{if(G===J&&W.data)j.data=Object.assign(j.data||{},W.data),j.callback=j.callback||W.callback;this.filterToEls(Y,j).forEach((B)=>{this[`exec_${G}`](Q,Z,$,Y,B,j)})})},isVisible(Q){return!!(Q.offsetWidth||Q.offsetHeight||Q.getClientRects().length>0)},isInViewport(Q){const Z=Q.getBoundingClientRect(),$=window.innerHeight||document.documentElement.clientHeight,Y=window.innerWidth||document.documentElement.clientWidth;return Z.right>0&&Z.bottom>0&&Z.left{let j=G.getAttribute(J);if(!j)throw new Error(`expected ${J} to contain JS command on "${W}"`);$.liveSocket.execJS(G,j,Q)})},exec_dispatch(Q,Z,$,Y,z,{to:J,event:W,detail:q,bubbles:G}){q=q||{},q.dispatcher=Y,K.dispatchEvent(z,W,{detail:q,bubbles:G})},exec_push(Q,Z,$,Y,z,J){let{event:W,data:q,target:G,page_loading:j,loading:B,value:U,dispatcher:V,callback:X}=J,L={loading:B,value:U,target:G,page_loading:!!j},H=Q==="change"&&V?V:Y,P=G||H.getAttribute($.binding("target"))||H;$.withinTargets(P,(y,g)=>{if(!y.isConnected())return;if(Q==="change"){let{newCid:E,_target:C}=J;if(C=C||(K.isFormInput(Y)?Y.name:void 0),C)L._target=C;y.pushInput(Y,g,E,W||Z,L,X)}else if(Q==="submit"){let{submitter:E}=J;y.submitForm(Y,g,W||Z,E,L,X)}else y.pushEvent(Q,Y,g,W||Z,q,L,X)})},exec_navigate(Q,Z,$,Y,z,{href:J,replace:W}){$.liveSocket.historyRedirect(J,W?"replace":"push")},exec_patch(Q,Z,$,Y,z,{href:J,replace:W}){$.liveSocket.pushHistoryPatch(J,W?"replace":"push",Y)},exec_focus(Q,Z,$,Y,z){window.requestAnimationFrame(()=>B0.attemptFocus(z))},exec_focus_first(Q,Z,$,Y,z){window.requestAnimationFrame(()=>B0.focusFirstInteractive(z)||B0.focusFirst(z))},exec_push_focus(Q,Z,$,Y,z){window.requestAnimationFrame(()=>_0=z||Y)},exec_pop_focus(Q,Z,$,Y,z){window.requestAnimationFrame(()=>{if(_0)_0.focus();_0=null})},exec_add_class(Q,Z,$,Y,z,{names:J,transition:W,time:q}){this.addOrRemoveClasses(z,J,[],W,q,$)},exec_remove_class(Q,Z,$,Y,z,{names:J,transition:W,time:q}){this.addOrRemoveClasses(z,[],J,W,q,$)},exec_toggle_class(Q,Z,$,Y,z,{to:J,names:W,transition:q,time:G}){this.toggleClasses(z,W,q,$)},exec_toggle_attr(Q,Z,$,Y,z,{attr:[J,W,q]}){if(z.hasAttribute(J))if(q!==void 0)if(z.getAttribute(J)===W)this.setOrRemoveAttrs(z,[[J,q]],[]);else this.setOrRemoveAttrs(z,[[J,W]],[]);else this.setOrRemoveAttrs(z,[],[J]);else this.setOrRemoveAttrs(z,[[J,W]],[])},exec_transition(Q,Z,$,Y,z,{time:J,transition:W}){this.addOrRemoveClasses(z,[],[],W,J,$)},exec_toggle(Q,Z,$,Y,z,{display:J,ins:W,outs:q,time:G}){this.toggle(Q,$,z,J,W,q,G)},exec_show(Q,Z,$,Y,z,{display:J,transition:W,time:q}){this.show(Q,$,z,J,W,q)},exec_hide(Q,Z,$,Y,z,{display:J,transition:W,time:q}){this.hide(Q,$,z,J,W,q)},exec_set_attr(Q,Z,$,Y,z,{attr:[J,W]}){this.setOrRemoveAttrs(z,[[J,W]],[])},exec_remove_attr(Q,Z,$,Y,z,{attr:J}){this.setOrRemoveAttrs(z,[],[J])},show(Q,Z,$,Y,z,J){if(!this.isVisible($))this.toggle(Q,Z,$,Y,z,null,J)},hide(Q,Z,$,Y,z,J){if(this.isVisible($))this.toggle(Q,Z,$,Y,null,z,J)},toggle(Q,Z,$,Y,z,J,W){W=W||v1;let[q,G,j]=z||[[],[],[]],[B,U,V]=J||[[],[],[]];if(q.length>0||B.length>0)if(this.isVisible($)){let X=()=>{this.addOrRemoveClasses($,U,q.concat(G).concat(j)),window.requestAnimationFrame(()=>{this.addOrRemoveClasses($,B,[]),window.requestAnimationFrame(()=>this.addOrRemoveClasses($,V,U))})};$.dispatchEvent(new Event("phx:hide-start")),Z.transition(W,X,()=>{this.addOrRemoveClasses($,[],B.concat(V)),K.putSticky($,"toggle",(L)=>L.style.display="none"),$.dispatchEvent(new Event("phx:hide-end"))})}else{if(Q==="remove")return;let X=()=>{this.addOrRemoveClasses($,G,B.concat(U).concat(V));let L=Y||this.defaultDisplay($);K.putSticky($,"toggle",(H)=>H.style.display=L),window.requestAnimationFrame(()=>{this.addOrRemoveClasses($,q,[]),window.requestAnimationFrame(()=>this.addOrRemoveClasses($,j,G))})};$.dispatchEvent(new Event("phx:show-start")),Z.transition(W,X,()=>{this.addOrRemoveClasses($,[],q.concat(j)),$.dispatchEvent(new Event("phx:show-end"))})}else if(this.isVisible($))window.requestAnimationFrame(()=>{$.dispatchEvent(new Event("phx:hide-start")),K.putSticky($,"toggle",(X)=>X.style.display="none"),$.dispatchEvent(new Event("phx:hide-end"))});else window.requestAnimationFrame(()=>{$.dispatchEvent(new Event("phx:show-start"));let X=Y||this.defaultDisplay($);K.putSticky($,"toggle",(L)=>L.style.display=X),$.dispatchEvent(new Event("phx:show-end"))})},toggleClasses(Q,Z,$,Y,z){window.requestAnimationFrame(()=>{let[J,W]=K.getSticky(Q,"classes",[[],[]]),q=Z.filter((j)=>J.indexOf(j)<0&&!Q.classList.contains(j)),G=Z.filter((j)=>W.indexOf(j)<0&&Q.classList.contains(j));this.addOrRemoveClasses(Q,q,G,$,Y,z)})},addOrRemoveClasses(Q,Z,$,Y,z,J){z=z||v1;let[W,q,G]=Y||[[],[],[]];if(W.length>0){let j=()=>{this.addOrRemoveClasses(Q,q,[].concat(W).concat(G)),window.requestAnimationFrame(()=>{this.addOrRemoveClasses(Q,W,[]),window.requestAnimationFrame(()=>this.addOrRemoveClasses(Q,G,q))})},B=()=>this.addOrRemoveClasses(Q,Z.concat(G),$.concat(W).concat(q));return J.transition(z,j,B)}window.requestAnimationFrame(()=>{let[j,B]=K.getSticky(Q,"classes",[[],[]]),U=Z.filter((H)=>j.indexOf(H)<0&&!Q.classList.contains(H)),V=$.filter((H)=>B.indexOf(H)<0&&Q.classList.contains(H)),X=j.filter((H)=>$.indexOf(H)<0).concat(U),L=B.filter((H)=>Z.indexOf(H)<0).concat(V);K.putSticky(Q,"classes",(H)=>{return H.classList.remove(...L),H.classList.add(...X),[X,L]})})},setOrRemoveAttrs(Q,Z,$){let[Y,z]=K.getSticky(Q,"attrs",[[],[]]),J=Z.map(([G,j])=>G).concat($),W=Y.filter(([G,j])=>!J.includes(G)).concat(Z),q=z.filter((G)=>!J.includes(G)).concat($);K.putSticky(Q,"attrs",(G)=>{return q.forEach((j)=>G.removeAttribute(j)),W.forEach(([j,B])=>G.setAttribute(j,B)),[W,q]})},hasAllClasses(Q,Z){return Z.every(($)=>Q.classList.contains($))},isToggledOut(Q,Z){return!this.isVisible(Q)||this.hasAllClasses(Q,Z)},filterToEls(Q,{to:Z}){return Z?K.all(document,Z):[Q]},defaultDisplay(Q){return{tr:"table-row",td:"table-cell"}[Q.tagName.toLowerCase()]||"block"}},T=i5,u={byId(Q){return document.getElementById(Q)||h(`no id found for ${Q}`)},removeClass(Q,Z){if(Q.classList.remove(Z),Q.classList.length===0)Q.removeAttribute("class")},all(Q,Z,$){if(!Q)return[];let Y=Array.from(Q.querySelectorAll(Z));return $?Y.forEach($):Y},childNodeLength(Q){let Z=document.createElement("template");return Z.innerHTML=Q,Z.content.childElementCount},isUploadInput(Q){return Q.type==="file"&&Q.getAttribute(o)!==null},isAutoUpload(Q){return Q.hasAttribute("data-phx-auto-upload")},findUploadInputs(Q){const Z=Q.id,$=this.all(document,`input[type="file"][${o}][form="${Z}"]`);return this.all(Q,`input[type="file"][${o}]`).concat($)},findComponentNodeList(Q,Z){return this.filterWithinSameLiveView(this.all(Q,`[${r}="${Z}"]`),Q)},isPhxDestroyed(Q){return Q.id&&u.private(Q,"destroyed")?!0:!1},wantsNewTab(Q){let Z=Q.ctrlKey||Q.shiftKey||Q.metaKey||Q.button&&Q.button===1,$=Q.target instanceof HTMLAnchorElement&&Q.target.hasAttribute("download"),Y=Q.target.hasAttribute("target")&&Q.target.getAttribute("target").toLowerCase()==="_blank";return Z||Y||$},isUnloadableFormSubmit(Q){if(Q.target&&Q.target.getAttribute("method")==="dialog"||Q.submitter&&Q.submitter.getAttribute("formmethod")==="dialog")return!1;else return!Q.defaultPrevented&&!this.wantsNewTab(Q)},isNewPageClick(Q,Z){let $=Q.target instanceof HTMLAnchorElement?Q.target.getAttribute("href"):null,Y;if(Q.defaultPrevented||$===null||this.wantsNewTab(Q))return!1;if($.startsWith("mailto:")||$.startsWith("tel:"))return!1;if(Q.target.isContentEditable)return!1;try{Y=new URL($)}catch(z){try{Y=new URL($,Z)}catch(J){return!0}}if(Y.host===Z.host&&Y.protocol===Z.protocol){if(Y.pathname===Z.pathname&&Y.search===Z.search)return Y.hash===""&&!Y.href.endsWith("#")}return Y.protocol.startsWith("http")},markPhxChildDestroyed(Q){if(this.isPhxChild(Q))Q.setAttribute($0,"");this.putPrivate(Q,"destroyed",!0)},findPhxChildrenInFragment(Q,Z){let $=document.createElement("template");return $.innerHTML=Q,this.findPhxChildren($.content,Z)},isIgnored(Q,Z){return(Q.getAttribute(Z)||Q.getAttribute("data-phx-update"))==="ignore"},isPhxUpdate(Q,Z,$){return Q.getAttribute&&$.indexOf(Q.getAttribute(Z))>=0},findPhxSticky(Q){return this.all(Q,`[${S1}]`)},findPhxChildren(Q,Z){return this.all(Q,`${U0}[${K0}="${Z}"]`)},findExistingParentCIDs(Q,Z){let $=new Set,Y=new Set;return Z.forEach((z)=>{this.filterWithinSameLiveView(this.all(Q,`[${r}="${z}"]`),Q).forEach((J)=>{$.add(z),this.all(J,`[${r}]`).map((W)=>parseInt(W.getAttribute(r))).forEach((W)=>Y.add(W))})}),Y.forEach((z)=>$.delete(z)),$},filterWithinSameLiveView(Q,Z){if(Z.querySelector(U0))return Q.filter(($)=>this.withinSameLiveView($,Z));else return Q},withinSameLiveView(Q,Z){while(Q=Q.parentNode){if(Q.isSameNode(Z))return!0;if(Q.getAttribute($0)!==null)return!1}},private(Q,Z){return Q[m]&&Q[m][Z]},deletePrivate(Q,Z){Q[m]&&delete Q[m][Z]},putPrivate(Q,Z,$){if(!Q[m])Q[m]={};Q[m][Z]=$},updatePrivate(Q,Z,$,Y){let z=this.private(Q,Z);if(z===void 0)this.putPrivate(Q,Z,Y($));else this.putPrivate(Q,Z,Y(z))},copyPrivates(Q,Z){if(Z[m])Q[m]=Z[m]},putTitle(Q){let Z=document.querySelector("title");if(Z){let{prefix:$,suffix:Y}=Z.dataset;document.title=`${$||""}${Q}${Y||""}`}else document.title=Q},debounce(Q,Z,$,Y,z,J,W,q){let G=Q.getAttribute($),j=Q.getAttribute(z);if(G==="")G=Y;if(j==="")j=J;let B=G||j;switch(B){case null:return q();case"blur":if(this.once(Q,"debounce-blur"))Q.addEventListener("blur",()=>q());return;default:let U=parseInt(B),V=()=>j?this.deletePrivate(Q,I0):q(),X=this.incCycle(Q,D0,V);if(isNaN(U))return h(`invalid throttle/debounce value: ${B}`);if(j){let H=!1;if(Z.type==="keydown"){let P=this.private(Q,b1);this.putPrivate(Q,b1,Z.key),H=P!==Z.key}if(!H&&this.private(Q,I0))return!1;else{q();const P=setTimeout(()=>{if(W())this.triggerCycle(Q,D0)},U);this.putPrivate(Q,I0,P)}}else setTimeout(()=>{if(W())this.triggerCycle(Q,D0,X)},U);let L=Q.form;if(L&&this.once(L,"bind-debounce"))L.addEventListener("submit",()=>{Array.from(new FormData(L).entries(),([H])=>{let P=L.querySelector(`[name="${H}"]`);this.incCycle(P,D0),this.deletePrivate(P,I0)})});if(this.once(Q,"bind-debounce"))Q.addEventListener("blur",()=>{clearTimeout(this.private(Q,I0)),this.triggerCycle(Q,D0)})}},triggerCycle(Q,Z,$){let[Y,z]=this.private(Q,Z);if(!$)$=Y;if($===Y)this.incCycle(Q,Z),z()},once(Q,Z){if(this.private(Q,Z)===!0)return!1;return this.putPrivate(Q,Z,!0),!0},incCycle(Q,Z,$=function(){}){let[Y]=this.private(Q,Z)||[0,$];return Y++,this.putPrivate(Q,Z,[Y,$]),Y},maybeAddPrivateHooks(Q,Z,$){if(Q.hasAttribute&&(Q.hasAttribute(Z)||Q.hasAttribute($)))Q.setAttribute("data-phx-hook","Phoenix.InfiniteScroll")},isFeedbackContainer(Q,Z){return Q.hasAttribute&&Q.hasAttribute(Z)},maybeHideFeedback(Q,Z,$,Y){const z={};Z.forEach((J)=>{if(!Q.contains(J))return;const W=J.getAttribute($);if(!W){T.addOrRemoveClasses(J,[],[b0]);return}if(z[W]===!0){this.hideFeedback(J);return}if(z[W]=this.shouldHideFeedback(Q,W,Y),z[W]===!0)this.hideFeedback(J)})},hideFeedback(Q){T.addOrRemoveClasses(Q,[b0],[])},shouldHideFeedback(Q,Z,$){const Y=`[name="${Z}"], - [name="${Z}[]"], - [${$}="${Z}"]`;let z=!1;return u.all(Q,Y,(J)=>{if(this.private(J,B1)||this.private(J,s0))z=!0}),!z},feedbackSelector(Q,Z,$){let Y=`[${Z}="${Q.name}"], - [${Z}="${Q.name.replace(/\[\]$/,"")}"]`;if(Q.getAttribute($))Y+=`,[${Z}="${Q.getAttribute($)}"]`;return Y},resetForm(Q,Z,$){Array.from(Q.elements).forEach((Y)=>{let z=this.feedbackSelector(Y,Z,$);this.deletePrivate(Y,B1),this.deletePrivate(Y,s0),this.all(document,z,(J)=>{T.addOrRemoveClasses(J,[b0],[])})})},showError(Q,Z,$){if(Q.name){let Y=this.feedbackSelector(Q,Z,$);this.all(document,Y,(z)=>{T.addOrRemoveClasses(z,[],[b0])})}},isPhxChild(Q){return Q.getAttribute&&Q.getAttribute(K0)},isPhxSticky(Q){return Q.getAttribute&&Q.getAttribute(S1)!==null},isChildOfAny(Q,Z){return!!Z.find(($)=>$.contains(Q))},firstPhxChild(Q){return this.isPhxChild(Q)?Q:this.all(Q,`[${K0}]`)[0]},dispatchEvent(Q,Z,$={}){let Y=!0;if(Q.nodeName==="INPUT"&&Q.type==="file"&&Z==="click")Y=!1;let W={bubbles:$.bubbles===void 0?Y:!!$.bubbles,cancelable:!0,detail:$.detail||{}},q=Z==="click"?new MouseEvent("click",W):new CustomEvent(Z,W);Q.dispatchEvent(q)},cloneNode(Q,Z){if(typeof Z==="undefined")return Q.cloneNode(!0);else{let $=Q.cloneNode(!1);return $.innerHTML=Z,$}},mergeAttrs(Q,Z,$={}){let Y=new Set($.exclude||[]),z=$.isIgnored,J=Z.attributes;for(let q=J.length-1;q>=0;q--){let G=J[q].name;if(!Y.has(G)){const j=Z.getAttribute(G);if(Q.getAttribute(G)!==j&&(!z||z&&G.startsWith("data-")))Q.setAttribute(G,j)}else if(G==="value"&&Q.value===Z.value)Q.setAttribute("value",Z.getAttribute(G))}let W=Q.attributes;for(let q=W.length-1;q>=0;q--){let G=W[q].name;if(z){if(G.startsWith("data-")&&!Z.hasAttribute(G)&&![v,Q0].includes(G))Q.removeAttribute(G)}else if(!Z.hasAttribute(G))Q.removeAttribute(G)}},mergeFocusedInput(Q,Z){if(!(Q instanceof HTMLSelectElement))u.mergeAttrs(Q,Z,{exclude:["value"]});if(Z.readOnly)Q.setAttribute("readonly",!0);else Q.removeAttribute("readonly")},hasSelectionRange(Q){return Q.setSelectionRange&&(Q.type==="text"||Q.type==="textarea")},restoreFocus(Q,Z,$){if(Q instanceof HTMLSelectElement)Q.focus();if(!u.isTextualInput(Q))return;let Y=Q.matches(":focus");if(Q.readOnly)Q.blur();if(!Y)Q.focus();if(this.hasSelectionRange(Q))Q.setSelectionRange(Z,$)},isFormInput(Q){return/^(?:input|select|textarea)$/i.test(Q.tagName)&&Q.type!=="button"},syncAttrsToProps(Q){if(Q instanceof HTMLInputElement&&t1.indexOf(Q.type.toLocaleLowerCase())>=0)Q.checked=Q.getAttribute("checked")!==null},isTextualInput(Q){return T5.indexOf(Q.type)>=0},isNowTriggerFormExternal(Q,Z){return Q.getAttribute&&Q.getAttribute(Z)!==null},syncPendingRef(Q,Z,$){let Y=Q.getAttribute(v);if(Y===null)return!0;let z=Q.getAttribute(Q0);if(u.isFormInput(Q)||Q.getAttribute($)!==null){if(u.isUploadInput(Q))u.mergeAttrs(Q,Z,{isIgnored:!0});return u.putPrivate(Q,v,Z),!1}else return a1.forEach((J)=>{Q.classList.contains(J)&&Z.classList.add(J)}),Z.setAttribute(v,Y),Z.setAttribute(Q0,z),!0},cleanChildNodes(Q,Z){if(u.isPhxUpdate(Q,Z,["append","prepend"])){let $=[];Q.childNodes.forEach((Y)=>{if(!Y.id){if(!(Y.nodeType===Node.TEXT_NODE&&Y.nodeValue.trim()===""))h(`only HTML element tags with an id are allowed inside containers with phx-update. +var I5=Object.create;var{defineProperty:b1,getPrototypeOf:x5,getOwnPropertyNames:A5}=Object;var H5=Object.prototype.hasOwnProperty;var O5=(Z,$,Q)=>{Q=Z!=null?I5(x5(Z)):{};const z=$||!Z||!Z.__esModule?b1(Q,"default",{value:Z,enumerable:!0}):Q;for(let J of A5(Z))if(!H5.call(z,J))b1(z,J,{get:()=>Z[J],enumerable:!0});return z};var w5=(Z,$)=>()=>($||Z(($={exports:{}}).exports,$),$.exports);var X5=w5((F5,Q1)=>{(function(Z,$){function Q(){z.width=Z.innerWidth,z.height=5*B.barThickness;var M=z.getContext("2d");M.shadowBlur=B.shadowBlur,M.shadowColor=B.shadowColor;var X,F=M.createLinearGradient(0,0,z.width,0);for(X in B.barColors)F.addColorStop(X,B.barColors[X]);M.lineWidth=B.barThickness,M.beginPath(),M.moveTo(0,B.barThickness/2),M.lineTo(Math.ceil(J*z.width),B.barThickness/2),M.strokeStyle=F,M.stroke()}var z,J,W,q=null,Y=null,G=null,B={autoRun:!0,barThickness:3,barColors:{0:"rgba(26, 188, 156, .9)",".25":"rgba(52, 152, 219, .9)",".50":"rgba(241, 196, 15, .9)",".75":"rgba(230, 126, 34, .9)","1.0":"rgba(211, 84, 0, .9)"},shadowBlur:10,shadowColor:"rgba(0, 0, 0, .6)",className:null},K={config:function(M){for(var X in M)B.hasOwnProperty(X)&&(B[X]=M[X])},show:function(M){var X,F;W||(M?G=G||setTimeout(()=>K.show(),M):(W=!0,Y!==null&&Z.cancelAnimationFrame(Y),z||((F=(z=$.createElement("canvas")).style).position="fixed",F.top=F.left=F.right=F.margin=F.padding=0,F.zIndex=100001,F.display="none",B.className&&z.classList.add(B.className),X="resize",M=Q,(F=Z).addEventListener?F.addEventListener(X,M,!1):F.attachEvent?F.attachEvent("on"+X,M):F["on"+X]=M),z.parentElement||$.body.appendChild(z),z.style.opacity=1,z.style.display="block",K.progress(0),B.autoRun&&function V(){q=Z.requestAnimationFrame(V),K.progress("+"+0.05*Math.pow(1-Math.sqrt(J),2))}()))},progress:function(M){return M===void 0||(typeof M=="string"&&(M=(0<=M.indexOf("+")||0<=M.indexOf("-")?J:0)+parseFloat(M)),J=1{if(typeof Z==="function")return Z;else return function(){return Z}},R5=typeof self!=="undefined"?self:null,R0=typeof window!=="undefined"?window:null,n=R5||R0||globalThis,P5="2.0.0",a={connecting:0,open:1,closing:2,closed:3},S5=1e4,b5=1000,f={closed:"closed",errored:"errored",joined:"joined",joining:"joining",leaving:"leaving"},Z0={close:"phx_close",error:"phx_error",join:"phx_join",reply:"phx_reply",leave:"phx_leave"},Y1={longpoll:"longpoll",websocket:"websocket"},N5={complete:4},G1="base64url.bearer.phx.",f0=class{constructor(Z,$,Q,z){this.channel=Z,this.event=$,this.payload=Q||function(){return{}},this.receivedResp=null,this.timeout=z,this.timeoutTimer=null,this.recHooks=[],this.sent=!1}resend(Z){this.timeout=Z,this.reset(),this.send()}send(){if(this.hasReceived("timeout"))return;this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload(),ref:this.ref,join_ref:this.channel.joinRef()})}receive(Z,$){if(this.hasReceived(Z))$(this.receivedResp.response);return this.recHooks.push({status:Z,callback:$}),this}reset(){this.cancelRefEvent(),this.ref=null,this.refEvent=null,this.receivedResp=null,this.sent=!1}matchReceive({status:Z,response:$,_ref:Q}){this.recHooks.filter((z)=>z.status===Z).forEach((z)=>z.callback($))}cancelRefEvent(){if(!this.refEvent)return;this.channel.off(this.refEvent)}cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=null}startTimeout(){if(this.timeoutTimer)this.cancelTimeout();this.ref=this.channel.socket.makeRef(),this.refEvent=this.channel.replyEventName(this.ref),this.channel.on(this.refEvent,(Z)=>{this.cancelRefEvent(),this.cancelTimeout(),this.receivedResp=Z,this.matchReceive(Z)}),this.timeoutTimer=setTimeout(()=>{this.trigger("timeout",{})},this.timeout)}hasReceived(Z){return this.receivedResp&&this.receivedResp.status===Z}trigger(Z,$){this.channel.trigger(this.refEvent,{status:Z,response:$})}},N1=class{constructor(Z,$){this.callback=Z,this.timerCalc=$,this.timer=null,this.tries=0}reset(){this.tries=0,clearTimeout(this.timer)}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout(()=>{this.tries=this.tries+1,this.callback()},this.timerCalc(this.tries+1))}},C5=class{constructor(Z,$,Q){this.state=f.closed,this.topic=Z,this.params=P0($||{}),this.socket=Q,this.bindings=[],this.bindingRef=0,this.timeout=this.socket.timeout,this.joinedOnce=!1,this.joinPush=new f0(this,Z0.join,this.params,this.timeout),this.pushBuffer=[],this.stateChangeRefs=[],this.rejoinTimer=new N1(()=>{if(this.socket.isConnected())this.rejoin()},this.socket.rejoinAfterMs),this.stateChangeRefs.push(this.socket.onError(()=>this.rejoinTimer.reset())),this.stateChangeRefs.push(this.socket.onOpen(()=>{if(this.rejoinTimer.reset(),this.isErrored())this.rejoin()})),this.joinPush.receive("ok",()=>{this.state=f.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach((z)=>z.send()),this.pushBuffer=[]}),this.joinPush.receive("error",()=>{if(this.state=f.errored,this.socket.isConnected())this.rejoinTimer.scheduleTimeout()}),this.onClose(()=>{if(this.rejoinTimer.reset(),this.socket.hasLogger())this.socket.log("channel",`close ${this.topic} ${this.joinRef()}`);this.state=f.closed,this.socket.remove(this)}),this.onError((z)=>{if(this.socket.hasLogger())this.socket.log("channel",`error ${this.topic}`,z);if(this.isJoining())this.joinPush.reset();if(this.state=f.errored,this.socket.isConnected())this.rejoinTimer.scheduleTimeout()}),this.joinPush.receive("timeout",()=>{if(this.socket.hasLogger())this.socket.log("channel",`timeout ${this.topic} (${this.joinRef()})`,this.joinPush.timeout);if(new f0(this,Z0.leave,P0({}),this.timeout).send(),this.state=f.errored,this.joinPush.reset(),this.socket.isConnected())this.rejoinTimer.scheduleTimeout()}),this.on(Z0.reply,(z,J)=>{this.trigger(this.replyEventName(J),z)})}join(Z=this.timeout){if(this.joinedOnce)throw new Error("tried to join multiple times. 'join' can only be called a single time per channel instance");else return this.timeout=Z,this.joinedOnce=!0,this.rejoin(),this.joinPush}onClose(Z){this.on(Z0.close,Z)}onError(Z){return this.on(Z0.error,($)=>Z($))}on(Z,$){let Q=this.bindingRef++;return this.bindings.push({event:Z,ref:Q,callback:$}),Q}off(Z,$){this.bindings=this.bindings.filter((Q)=>{return!(Q.event===Z&&(typeof $==="undefined"||$===Q.ref))})}canPush(){return this.socket.isConnected()&&this.isJoined()}push(Z,$,Q=this.timeout){if($=$||{},!this.joinedOnce)throw new Error(`tried to push '${Z}' to '${this.topic}' before joining. Use channel.join() before pushing events`);let z=new f0(this,Z,function(){return $},Q);if(this.canPush())z.send();else z.startTimeout(),this.pushBuffer.push(z);return z}leave(Z=this.timeout){this.rejoinTimer.reset(),this.joinPush.cancelTimeout(),this.state=f.leaving;let $=()=>{if(this.socket.hasLogger())this.socket.log("channel",`leave ${this.topic}`);this.trigger(Z0.close,"leave")},Q=new f0(this,Z0.leave,P0({}),Z);if(Q.receive("ok",()=>$()).receive("timeout",()=>$()),Q.send(),!this.canPush())Q.trigger("ok",{});return Q}onMessage(Z,$,Q){return $}isMember(Z,$,Q,z){if(this.topic!==Z)return!1;if(z&&z!==this.joinRef()){if(this.socket.hasLogger())this.socket.log("channel","dropping outdated message",{topic:Z,event:$,payload:Q,joinRef:z});return!1}else return!0}joinRef(){return this.joinPush.ref}rejoin(Z=this.timeout){if(this.isLeaving())return;this.socket.leaveOpenTopic(this.topic),this.state=f.joining,this.joinPush.resend(Z)}trigger(Z,$,Q,z){let J=this.onMessage(Z,$,Q,z);if($&&!J)throw new Error("channel onMessage callbacks must return the payload, modified or unmodified");let W=this.bindings.filter((q)=>q.event===Z);for(let q=0;qG.abort(),J);Y.signal=G.signal}return n.fetch($,Y).then((B)=>B.text()).then((B)=>this.parseJSON(B)).then((B)=>q&&q(B)).catch((B)=>{if(B.name==="AbortError"&&W)W();else q&&q(null)}),G}static xdomainRequest(Z,$,Q,z,J,W,q){if(Z.timeout=J,Z.open($,Q),Z.onload=()=>{let Y=this.parseJSON(Z.responseText);q&&q(Y)},W)Z.ontimeout=W;return Z.onprogress=()=>{},Z.send(z),Z}static xhrRequest(Z,$,Q,z,J,W,q,Y){Z.open($,Q,!0),Z.timeout=W;for(let[G,B]of Object.entries(z))Z.setRequestHeader(G,B);if(Z.onerror=()=>Y&&Y(null),Z.onreadystatechange=()=>{if(Z.readyState===N5.complete&&Y){let G=this.parseJSON(Z.responseText);Y(G)}},q)Z.ontimeout=q;return Z.send(J),Z}static parseJSON(Z){if(!Z||Z==="")return null;try{return JSON.parse(Z)}catch{return console&&console.log("failed to parse JSON response",Z),null}}static serialize(Z,$){let Q=[];for(var z in Z){if(!Object.prototype.hasOwnProperty.call(Z,z))continue;let J=$?`${$}[${z}]`:z,W=Z[z];if(typeof W==="object")Q.push(this.serialize(W,J));else Q.push(encodeURIComponent(J)+"="+encodeURIComponent(W))}return Q.join("&")}static appendParams(Z,$){if(Object.keys($).length===0)return Z;let Q=Z.match(/\?/)?"&":"?";return`${Z}${Q}${this.serialize($)}`}},y5=(Z)=>{let $="",Q=new Uint8Array(Z),z=Q.byteLength;for(let J=0;Jthis.poll(),0)}normalizeEndpoint(Z){return Z.replace("ws://","http://").replace("wss://","https://").replace(new RegExp("(.*)/"+Y1.websocket),"$1/"+Y1.longpoll)}endpointURL(){return p0.appendParams(this.pollEndpoint,{token:this.token})}closeAndRetry(Z,$,Q){this.close(Z,$,Q),this.readyState=a.connecting}ontimeout(){this.onerror("timeout"),this.closeAndRetry(1005,"timeout",!1)}isActive(){return this.readyState===a.open||this.readyState===a.connecting}poll(){const Z={Accept:"application/json"};if(this.authToken)Z["X-Phoenix-AuthToken"]=this.authToken;this.ajax("GET",Z,null,()=>this.ontimeout(),($)=>{if($){var{status:Q,token:z,messages:J}=$;this.token=z}else Q=0;switch(Q){case 200:J.forEach((W)=>{setTimeout(()=>this.onmessage({data:W}),0)}),this.poll();break;case 204:this.poll();break;case 410:this.readyState=a.open,this.onopen({}),this.poll();break;case 403:this.onerror(403),this.close(1008,"forbidden",!1);break;case 0:case 500:this.onerror(500),this.closeAndRetry(1011,"internal server error",500);break;default:throw new Error(`unhandled poll status ${Q}`)}})}send(Z){if(typeof Z!=="string")Z=y5(Z);if(this.currentBatch)this.currentBatch.push(Z);else if(this.awaitingBatchAck)this.batchBuffer.push(Z);else this.currentBatch=[Z],this.currentBatchTimer=setTimeout(()=>{this.batchSend(this.currentBatch),this.currentBatch=null},0)}batchSend(Z){this.awaitingBatchAck=!0,this.ajax("POST",{"Content-Type":"application/x-ndjson"},Z.join("\n"),()=>this.onerror("timeout"),($)=>{if(this.awaitingBatchAck=!1,!$||$.status!==200)this.onerror($&&$.status),this.closeAndRetry(1011,"internal server error",!1);else if(this.batchBuffer.length>0)this.batchSend(this.batchBuffer),this.batchBuffer=[]})}close(Z,$,Q){for(let J of this.reqs)J.abort();this.readyState=a.closed;let z=Object.assign({code:1000,reason:void 0,wasClean:!0},{code:Z,reason:$,wasClean:Q});if(this.batchBuffer=[],clearTimeout(this.currentBatchTimer),this.currentBatchTimer=null,typeof CloseEvent!=="undefined")this.onclose(new CloseEvent("close",z));else this.onclose(z)}ajax(Z,$,Q,z,J){let W,q=()=>{this.reqs.delete(W),z()};W=p0.request(Z,this.endpointURL(),$,Q,this.timeout,q,(Y)=>{if(this.reqs.delete(W),this.isActive())J(Y)}),this.reqs.add(W)}};var m0={HEADER_LENGTH:1,META_LENGTH:4,KINDS:{push:0,reply:1,broadcast:2},encode(Z,$){if(Z.payload.constructor===ArrayBuffer)return $(this.binaryEncode(Z));else{let Q=[Z.join_ref,Z.ref,Z.topic,Z.event,Z.payload];return $(JSON.stringify(Q))}},decode(Z,$){if(Z.constructor===ArrayBuffer)return $(this.binaryDecode(Z));else{let[Q,z,J,W,q]=JSON.parse(Z);return $({join_ref:Q,ref:z,topic:J,event:W,payload:q})}},binaryEncode(Z){let{join_ref:$,ref:Q,event:z,topic:J,payload:W}=Z,q=this.META_LENGTH+$.length+Q.length+J.length+z.length,Y=new ArrayBuffer(this.HEADER_LENGTH+q),G=new DataView(Y),B=0;G.setUint8(B++,this.KINDS.push),G.setUint8(B++,$.length),G.setUint8(B++,Q.length),G.setUint8(B++,J.length),G.setUint8(B++,z.length),Array.from($,(M)=>G.setUint8(B++,M.charCodeAt(0))),Array.from(Q,(M)=>G.setUint8(B++,M.charCodeAt(0))),Array.from(J,(M)=>G.setUint8(B++,M.charCodeAt(0))),Array.from(z,(M)=>G.setUint8(B++,M.charCodeAt(0)));var K=new Uint8Array(Y.byteLength+W.byteLength);return K.set(new Uint8Array(Y),0),K.set(new Uint8Array(W),Y.byteLength),K.buffer},binaryDecode(Z){let $=new DataView(Z),Q=$.getUint8(0),z=new TextDecoder;switch(Q){case this.KINDS.push:return this.decodePush(Z,$,z);case this.KINDS.reply:return this.decodeReply(Z,$,z);case this.KINDS.broadcast:return this.decodeBroadcast(Z,$,z)}},decodePush(Z,$,Q){let z=$.getUint8(1),J=$.getUint8(2),W=$.getUint8(3),q=this.HEADER_LENGTH+this.META_LENGTH-1,Y=Q.decode(Z.slice(q,q+z));q=q+z;let G=Q.decode(Z.slice(q,q+J));q=q+J;let B=Q.decode(Z.slice(q,q+W));q=q+W;let K=Z.slice(q,Z.byteLength);return{join_ref:Y,ref:null,topic:G,event:B,payload:K}},decodeReply(Z,$,Q){let z=$.getUint8(1),J=$.getUint8(2),W=$.getUint8(3),q=$.getUint8(4),Y=this.HEADER_LENGTH+this.META_LENGTH,G=Q.decode(Z.slice(Y,Y+z));Y=Y+z;let B=Q.decode(Z.slice(Y,Y+J));Y=Y+J;let K=Q.decode(Z.slice(Y,Y+W));Y=Y+W;let M=Q.decode(Z.slice(Y,Y+q));Y=Y+q;let X=Z.slice(Y,Z.byteLength),F={status:M,response:X};return{join_ref:G,ref:B,topic:K,event:Z0.reply,payload:F}},decodeBroadcast(Z,$,Q){let z=$.getUint8(1),J=$.getUint8(2),W=this.HEADER_LENGTH+2,q=Q.decode(Z.slice(W,W+z));W=W+z;let Y=Q.decode(Z.slice(W,W+J));W=W+J;let G=Z.slice(W,Z.byteLength);return{join_ref:null,ref:null,topic:q,event:Y,payload:G}}},C1=class{constructor(Z,$={}){if(this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.channels=[],this.sendBuffer=[],this.ref=0,this.timeout=$.timeout||S5,this.transport=$.transport||n.WebSocket||B0,this.primaryPassedHealthCheck=!1,this.longPollFallbackMs=$.longPollFallbackMs,this.fallbackTimer=null,this.sessionStore=$.sessionStorage||n&&n.sessionStorage,this.establishedConnections=0,this.defaultEncoder=m0.encode.bind(m0),this.defaultDecoder=m0.decode.bind(m0),this.closeWasClean=!1,this.disconnecting=!1,this.binaryType=$.binaryType||"arraybuffer",this.connectClock=1,this.transport!==B0)this.encode=$.encode||this.defaultEncoder,this.decode=$.decode||this.defaultDecoder;else this.encode=this.defaultEncoder,this.decode=this.defaultDecoder;let Q=null;if(R0&&R0.addEventListener)R0.addEventListener("pagehide",(z)=>{if(this.conn)this.disconnect(),Q=this.connectClock}),R0.addEventListener("pageshow",(z)=>{if(Q===this.connectClock)Q=null,this.connect()});if(this.heartbeatIntervalMs=$.heartbeatIntervalMs||30000,this.rejoinAfterMs=(z)=>{if($.rejoinAfterMs)return $.rejoinAfterMs(z);else return[1000,2000,5000][z-1]||1e4},this.reconnectAfterMs=(z)=>{if($.reconnectAfterMs)return $.reconnectAfterMs(z);else return[10,50,100,150,200,250,500,1000,2000][z-1]||5000},this.logger=$.logger||null,!this.logger&&$.debug)this.logger=(z,J,W)=>{console.log(`${z}: ${J}`,W)};this.longpollerTimeout=$.longpollerTimeout||20000,this.params=P0($.params||{}),this.endPoint=`${Z}/${Y1.websocket}`,this.vsn=$.vsn||P5,this.heartbeatTimeoutTimer=null,this.heartbeatTimer=null,this.pendingHeartbeatRef=null,this.reconnectTimer=new N1(()=>{this.teardown(()=>this.connect())},this.reconnectAfterMs),this.authToken=$.authToken}getLongPollTransport(){return B0}replaceTransport(Z){if(this.connectClock++,this.closeWasClean=!0,clearTimeout(this.fallbackTimer),this.reconnectTimer.reset(),this.conn)this.conn.close(),this.conn=null;this.transport=Z}protocol(){return location.protocol.match(/^https/)?"wss":"ws"}endPointURL(){let Z=p0.appendParams(p0.appendParams(this.endPoint,this.params()),{vsn:this.vsn});if(Z.charAt(0)!=="/")return Z;if(Z.charAt(1)==="/")return`${this.protocol()}:${Z}`;return`${this.protocol()}://${location.host}${Z}`}disconnect(Z,$,Q){this.connectClock++,this.disconnecting=!0,this.closeWasClean=!0,clearTimeout(this.fallbackTimer),this.reconnectTimer.reset(),this.teardown(()=>{this.disconnecting=!1,Z&&Z()},$,Q)}connect(Z){if(Z)console&&console.log("passing params to connect is deprecated. Instead pass :params to the Socket constructor"),this.params=P0(Z);if(this.conn&&!this.disconnecting)return;if(this.longPollFallbackMs&&this.transport!==B0)this.connectWithFallback(B0,this.longPollFallbackMs);else this.transportConnect()}log(Z,$,Q){this.logger&&this.logger(Z,$,Q)}hasLogger(){return this.logger!==null}onOpen(Z){let $=this.makeRef();return this.stateChangeCallbacks.open.push([$,Z]),$}onClose(Z){let $=this.makeRef();return this.stateChangeCallbacks.close.push([$,Z]),$}onError(Z){let $=this.makeRef();return this.stateChangeCallbacks.error.push([$,Z]),$}onMessage(Z){let $=this.makeRef();return this.stateChangeCallbacks.message.push([$,Z]),$}ping(Z){if(!this.isConnected())return!1;let $=this.makeRef(),Q=Date.now();this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:$});let z=this.onMessage((J)=>{if(J.ref===$)this.off([z]),Z(Date.now()-Q)});return!0}transportConnect(){this.connectClock++,this.closeWasClean=!1;let Z=void 0;if(this.authToken)Z=["phoenix",`${G1}${btoa(this.authToken).replace(/=/g,"")}`];this.conn=new this.transport(this.endPointURL(),Z),this.conn.binaryType=this.binaryType,this.conn.timeout=this.longpollerTimeout,this.conn.onopen=()=>this.onConnOpen(),this.conn.onerror=($)=>this.onConnError($),this.conn.onmessage=($)=>this.onConnMessage($),this.conn.onclose=($)=>this.onConnClose($)}getSession(Z){return this.sessionStore&&this.sessionStore.getItem(Z)}storeSession(Z,$){this.sessionStore&&this.sessionStore.setItem(Z,$)}connectWithFallback(Z,$=2500){clearTimeout(this.fallbackTimer);let Q=!1,z=!0,J,W,q=(Y)=>{this.log("transport",`falling back to ${Z.name}...`,Y),this.off([J,W]),z=!1,this.replaceTransport(Z),this.transportConnect()};if(this.getSession(`phx:fallback:${Z.name}`))return q("memorized");this.fallbackTimer=setTimeout(q,$),W=this.onError((Y)=>{if(this.log("transport","error",Y),z&&!Q)clearTimeout(this.fallbackTimer),q(Y)}),this.onOpen(()=>{if(Q=!0,!z){if(!this.primaryPassedHealthCheck)this.storeSession(`phx:fallback:${Z.name}`,"true");return this.log("transport",`established ${Z.name} fallback`)}clearTimeout(this.fallbackTimer),this.fallbackTimer=setTimeout(q,$),this.ping((Y)=>{this.log("transport","connected to primary after",Y),this.primaryPassedHealthCheck=!0,clearTimeout(this.fallbackTimer)})}),this.transportConnect()}clearHeartbeats(){clearTimeout(this.heartbeatTimer),clearTimeout(this.heartbeatTimeoutTimer)}onConnOpen(){if(this.hasLogger())this.log("transport",`${this.transport.name} connected to ${this.endPointURL()}`);this.closeWasClean=!1,this.disconnecting=!1,this.establishedConnections++,this.flushSendBuffer(),this.reconnectTimer.reset(),this.resetHeartbeat(),this.stateChangeCallbacks.open.forEach(([,Z])=>Z())}heartbeatTimeout(){if(this.pendingHeartbeatRef){if(this.pendingHeartbeatRef=null,this.hasLogger())this.log("transport","heartbeat timeout. Attempting to re-establish connection");this.triggerChanError(),this.closeWasClean=!1,this.teardown(()=>this.reconnectTimer.scheduleTimeout(),b5,"heartbeat timeout")}}resetHeartbeat(){if(this.conn&&this.conn.skipHeartbeat)return;this.pendingHeartbeatRef=null,this.clearHeartbeats(),this.heartbeatTimer=setTimeout(()=>this.sendHeartbeat(),this.heartbeatIntervalMs)}teardown(Z,$,Q){if(!this.conn)return Z&&Z();let z=this.connectClock;this.waitForBufferDone(()=>{if(z!==this.connectClock)return;if(this.conn)if($)this.conn.close($,Q||"");else this.conn.close();this.waitForSocketClosed(()=>{if(z!==this.connectClock)return;if(this.conn)this.conn.onopen=function(){},this.conn.onerror=function(){},this.conn.onmessage=function(){},this.conn.onclose=function(){},this.conn=null;Z&&Z()})})}waitForBufferDone(Z,$=1){if($===5||!this.conn||!this.conn.bufferedAmount){Z();return}setTimeout(()=>{this.waitForBufferDone(Z,$+1)},150*$)}waitForSocketClosed(Z,$=1){if($===5||!this.conn||this.conn.readyState===a.closed){Z();return}setTimeout(()=>{this.waitForSocketClosed(Z,$+1)},150*$)}onConnClose(Z){let $=Z&&Z.code;if(this.hasLogger())this.log("transport","close",Z);if(this.triggerChanError(),this.clearHeartbeats(),!this.closeWasClean&&$!==1000)this.reconnectTimer.scheduleTimeout();this.stateChangeCallbacks.close.forEach(([,Q])=>Q(Z))}onConnError(Z){if(this.hasLogger())this.log("transport",Z);let $=this.transport,Q=this.establishedConnections;if(this.stateChangeCallbacks.error.forEach(([,z])=>{z(Z,$,Q)}),$===this.transport||Q>0)this.triggerChanError()}triggerChanError(){this.channels.forEach((Z)=>{if(!(Z.isErrored()||Z.isLeaving()||Z.isClosed()))Z.trigger(Z0.error)})}connectionState(){switch(this.conn&&this.conn.readyState){case a.connecting:return"connecting";case a.open:return"open";case a.closing:return"closing";default:return"closed"}}isConnected(){return this.connectionState()==="open"}remove(Z){this.off(Z.stateChangeRefs),this.channels=this.channels.filter(($)=>$!==Z)}off(Z){for(let $ in this.stateChangeCallbacks)this.stateChangeCallbacks[$]=this.stateChangeCallbacks[$].filter(([Q])=>{return Z.indexOf(Q)===-1})}channel(Z,$={}){let Q=new C5(Z,$,this);return this.channels.push(Q),Q}push(Z){if(this.hasLogger()){let{topic:$,event:Q,payload:z,ref:J,join_ref:W}=Z;this.log("push",`${$} ${Q} (${W}, ${J})`,z)}if(this.isConnected())this.encode(Z,($)=>this.conn.send($));else this.sendBuffer.push(()=>this.encode(Z,($)=>this.conn.send($)))}makeRef(){let Z=this.ref+1;if(Z===this.ref)this.ref=0;else this.ref=Z;return this.ref.toString()}sendHeartbeat(){if(this.pendingHeartbeatRef&&!this.isConnected())return;this.pendingHeartbeatRef=this.makeRef(),this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:this.pendingHeartbeatRef}),this.heartbeatTimeoutTimer=setTimeout(()=>this.heartbeatTimeout(),this.heartbeatIntervalMs)}flushSendBuffer(){if(this.isConnected()&&this.sendBuffer.length>0)this.sendBuffer.forEach((Z)=>Z()),this.sendBuffer=[]}onConnMessage(Z){this.decode(Z.data,($)=>{let{topic:Q,event:z,payload:J,ref:W,join_ref:q}=$;if(W&&W===this.pendingHeartbeatRef)this.clearHeartbeats(),this.pendingHeartbeatRef=null,this.heartbeatTimer=setTimeout(()=>this.sendHeartbeat(),this.heartbeatIntervalMs);if(this.hasLogger())this.log("receive",`${J.status||""} ${Q} ${z} ${W&&"("+W+")"||""}`,J);for(let Y=0;YQ.topic===Z&&(Q.isJoined()||Q.isJoining()));if($){if(this.hasLogger())this.log("transport",`leaving duplicate topic "${Z}"`);$.leave()}}};var e5=function(){const Z=new Set,$=document.querySelectorAll("*[id]");for(let Q=0,z=$.length;Q{const z=document.getElementById(Q);if(z&&z.parentElement&&z.parentElement.getAttribute("phx-update")!=="stream")$.add(`The stream container with id "${z.parentElement.id}" is missing the phx-update="stream" attribute. Ensure it is set for streams to work properly.`)}),$.forEach((Q)=>console.error(Q))},K9=function(Z,$){var Q=$.attributes,z,J,W,q,Y;if($.nodeType===r1||Z.nodeType===r1)return;for(var G=Q.length-1;G>=0;G--)if(z=Q[G],J=z.name,W=z.namespaceURI,q=z.value,W){if(J=z.localName||J,Y=Z.getAttributeNS(W,J),Y!==q){if(z.prefix==="xmlns")J=z.name;Z.setAttributeNS(W,J,q)}}else if(Y=Z.getAttribute(J),Y!==q)Z.setAttribute(J,q);var B=Z.attributes;for(var K=B.length-1;K>=0;K--)if(z=B[K],J=z.name,W=z.namespaceURI,W){if(J=z.localName||J,!$.hasAttributeNS(W,J))Z.removeAttributeNS(W,J)}else if(!$.hasAttribute(J))Z.removeAttribute(J)},F9=function(Z){var $=u.createElement("template");return $.innerHTML=Z,$.content.childNodes[0]},X9=function(Z){if(!d0)d0=u.createRange(),d0.selectNode(u.body);var $=d0.createContextualFragment(Z);return $.childNodes[0]},L9=function(Z){var $=u.createElement("body");return $.innerHTML=Z,$.childNodes[0]},D9=function(Z){if(Z=Z.trim(),U9)return F9(Z);else if(V9)return X9(Z);return L9(Z)},i0=function(Z,$){var Q=Z.nodeName,z=$.nodeName,J,W;if(Q===z)return!0;if(J=Q.charCodeAt(0),W=z.charCodeAt(0),J<=90&&W>=97)return Q===z.toUpperCase();else if(W<=90&&J>=97)return z===Q.toUpperCase();else return!1},I9=function(Z,$){return!$||$===M9?u.createElement(Z):u.createElementNS($,Z)},x9=function(Z,$){var Q=Z.firstChild;while(Q){var z=Q.nextSibling;$.appendChild(Q),Q=z}return $},V1=function(Z,$,Q){if(Z[Q]!==$[Q])if(Z[Q]=$[Q],Z[Q])Z.setAttribute(Q,"");else Z.removeAttribute(Q)},Y0=function(){},A9=function(Z){if(Z)return Z.getAttribute&&Z.getAttribute("id")||Z.id},H9=function(Z){return function $(Q,z,J){if(!J)J={};if(typeof z==="string")if(Q.nodeName==="#document"||Q.nodeName==="HTML"||Q.nodeName==="BODY"){var W=z;z=u.createElement("html"),z.innerHTML=W}else z=D9(z);else if(z.nodeType===l1)z=z.firstElementChild;var q=J.getNodeKey||A9,Y=J.onBeforeNodeAdded||Y0,G=J.onNodeAdded||Y0,B=J.onBeforeElUpdated||Y0,K=J.onElUpdated||Y0,M=J.onBeforeNodeDiscarded||Y0,X=J.onNodeDiscarded||Y0,F=J.onBeforeElChildrenUpdated||Y0,V=J.skipFromChildren||Y0,L=J.addChild||function(A,H){return A.appendChild(H)},x=J.childrenOnly===!0,T=Object.create(null),p=[];function I(A){p.push(A)}function S(A,H){if(A.nodeType===k0){var N=A.firstChild;while(N){var w=void 0;if(H&&(w=q(N)))I(w);else if(X(N),N.firstChild)S(N,H);N=N.nextSibling}}}function k(A,H,N){if(M(A)===!1)return;if(H)H.removeChild(A);X(A),S(A,N)}function v(A){if(A.nodeType===k0||A.nodeType===l1){var H=A.firstChild;while(H){var N=q(H);if(N)T[N]=H;v(H),H=H.nextSibling}}}v(Q);function U(A){G(A);var H=A.firstChild;while(H){var N=H.nextSibling,w=q(H);if(w){var P=T[w];if(P&&i0(H,P))H.parentNode.replaceChild(P,H),E(P,H);else U(H)}else U(H);H=N}}function D(A,H,N){while(H){var w=H.nextSibling;if(N=q(H))I(N);else k(H,A,!0);H=w}}function E(A,H,N){var w=q(H);if(w)delete T[w];if(!N){var P=B(A,H);if(P===!1)return;else if(P instanceof HTMLElement)A=P,v(A);if(Z(A,H),K(A),F(A,H)===!1)return}if(A.nodeName!=="TEXTAREA")i(A,H);else o1.TEXTAREA(A,H)}function i(A,H){var N=V(A,H),w=H.firstChild,P=A.firstChild,F0,e,X0,u0,J0;Z:while(w){u0=w.nextSibling,F0=q(w);while(!N&&P){if(X0=P.nextSibling,w.isSameNode&&w.isSameNode(P)){w=u0,P=X0;continue Z}e=q(P);var E0=P.nodeType,W0=void 0;if(E0===w.nodeType){if(E0===k0){if(F0){if(F0!==e)if(J0=T[F0])if(X0===J0)W0=!1;else{if(A.insertBefore(J0,P),e)I(e);else k(P,A,!0);P=J0,e=q(P)}else W0=!1}else if(e)W0=!1;if(W0=W0!==!1&&i0(P,w),W0)E(P,w)}else if(E0===t1||E0==e1){if(W0=!0,P.nodeValue!==w.nodeValue)P.nodeValue=w.nodeValue}}if(W0){w=u0,P=X0;continue Z}if(e)I(e);else k(P,A,!0);P=X0}if(F0&&(J0=T[F0])&&i0(J0,w)){if(!N)L(A,J0);E(J0,w)}else{var q1=Y(w);if(q1!==!1){if(q1)w=q1;if(w.actualize)w=w.actualize(A.ownerDocument||u);L(A,w),U(w)}}w=u0,P=X0}D(A,P,e);var S1=o1[A.nodeName];if(S1)S1(A,H)}var O=Q,t=O.nodeType,c=z.nodeType;if(!x){if(t===k0)if(c===k0){if(!i0(Q,z))X(Q),O=x9(Q,I9(z.nodeName,z.namespaceURI))}else O=z;else if(t===t1||t===e1)if(c===t){if(O.nodeValue!==z.nodeValue)O.nodeValue=z.nodeValue;return O}else O=z}if(O===z)X(Q);else{if(z.isSameNode&&z.isSameNode(O))return;if(E(O,z,x),p)for(var J1=0,D5=p.length;J1this.error(Z)),this.uploadChannel.join().receive("ok",(Z)=>this.readNextChunk()).receive("error",(Z)=>this.error(Z))}isDone(){return this.offset>=this.entry.file.size}readNextChunk(){const Z=new window.FileReader,$=this.entry.file.slice(this.offset,this.chunkSize+this.offset);Z.onload=(Q)=>{if(Q.target.error===null)this.offset+=Q.target.result.byteLength,this.pushChunk(Q.target.result);else return b("Read error: "+Q.target.error)},Z.readAsArrayBuffer($)}pushChunk(Z){if(!this.uploadChannel.isJoined())return;this.uploadChannel.push("chunk",Z,this.chunkTimeout).receive("ok",()=>{if(this.entry.progress(this.offset/this.entry.file.size*100),!this.isDone())this.chunkTimer=setTimeout(()=>this.readNextChunk(),this.liveSocket.getLatencySim()||0)}).receive("error",({reason:$})=>this.error($))}},b=(Z,$)=>console.error&&console.error(Z,$),$0=(Z)=>{const $=typeof Z;return $==="number"||$==="string"&&/^(0|[1-9]\d*)$/.test(Z)},$9=(Z,$,Q,z)=>{if(Z.liveSocket.isDebugEnabled())console.log(`${Z.id} ${$}: ${Q} - `,z)},T0=(Z)=>typeof Z==="function"?Z:function(){return Z},t0=(Z)=>{return JSON.parse(JSON.stringify(Z))},v0=(Z,$,Q)=>{do{if(Z.matches(`[${$}]`)&&!Z.disabled)return Z;Z=Z.parentElement||Z.parentNode}while(Z!==null&&Z.nodeType===1&&!(Q&&Q.isSameNode(Z)||Z.matches(h0)));return null},I0=(Z)=>{return Z!==null&&typeof Z==="object"&&!(Z instanceof Array)},Q9=(Z,$)=>JSON.stringify(Z)===JSON.stringify($),i1=(Z)=>{for(let $ in Z)return!1;return!0},U0=(Z,$)=>Z&&$(Z),z9=function(Z,$,Q,z){Z.forEach((J)=>{new t5(J,Q.config,z).upload()})},J9={canPushState(){return typeof history.pushState!=="undefined"},dropLocal(Z,$,Q){return Z.removeItem(this.localKey($,Q))},updateLocal(Z,$,Q,z,J){const W=this.getLocal(Z,$,Q),q=this.localKey($,Q),Y=W===null?z:J(W);return Z.setItem(q,JSON.stringify(Y)),Y},getLocal(Z,$,Q){return JSON.parse(Z.getItem(this.localKey($,Q)))},updateCurrentState(Z){if(!this.canPushState())return;history.replaceState(Z(history.state||{}),"",window.location.href)},pushState(Z,$,Q){if(this.canPushState()){if(Q!==window.location.href){if($.type=="redirect"&&$.scroll){const z=history.state||{};z.scroll=$.scroll,history.replaceState(z,"",window.location.href)}delete $.scroll,history[Z+"State"]($,"",Q||null),window.requestAnimationFrame(()=>{const z=this.getHashTargetEl(window.location.hash);if(z)z.scrollIntoView();else if($.type==="redirect")window.scroll(0,0)})}}else this.redirect(Q)},setCookie(Z,$,Q){const z=typeof Q==="number"?` max-age=${Q};`:"";document.cookie=`${Z}=${$};${z} path=/`},getCookie(Z){return document.cookie.replace(new RegExp(`(?:(?:^|.*;s*)${Z}s*=s*([^;]*).*\$)|^.*\$`),"$1")},deleteCookie(Z){document.cookie=`${Z}=; max-age=-1; path=/`},redirect(Z,$,Q=(z)=>{window.location.href=z}){if($)this.setCookie("__phoenix_flash__",$,60);Q(Z)},localKey(Z,$){return`${Z}-${$}`},getHashTargetEl(Z){const $=Z.toString().substring(1);if($==="")return;return document.getElementById($)||document.querySelector(`a[name="${$}"]`)}},h=J9,K0={byId(Z){return document.getElementById(Z)||b(`no id found for ${Z}`)},removeClass(Z,$){if(Z.classList.remove($),Z.classList.length===0)Z.removeAttribute("class")},all(Z,$,Q){if(!Z)return[];const z=Array.from(Z.querySelectorAll($));if(Q)z.forEach(Q);return z},childNodeLength(Z){const $=document.createElement("template");return $.innerHTML=Z,$.content.childElementCount},isUploadInput(Z){return Z.type==="file"&&Z.getAttribute(z0)!==null},isAutoUpload(Z){return Z.hasAttribute("data-phx-auto-upload")},findUploadInputs(Z){const $=Z.id,Q=this.all(document,`input[type="file"][${z0}][form="${$}"]`);return this.all(Z,`input[type="file"][${z0}]`).concat(Q)},findComponentNodeList(Z,$,Q=document){return this.all(Q,`[${H0}="${Z}"][${Q0}="${$}"]`)},isPhxDestroyed(Z){return Z.id&&K0.private(Z,"destroyed")?!0:!1},wantsNewTab(Z){const $=Z.ctrlKey||Z.shiftKey||Z.metaKey||Z.button&&Z.button===1,Q=Z.target instanceof HTMLAnchorElement&&Z.target.hasAttribute("download"),z=Z.target.hasAttribute("target")&&Z.target.getAttribute("target").toLowerCase()==="_blank",J=Z.target.hasAttribute("target")&&!Z.target.getAttribute("target").startsWith("_");return $||z||Q||J},isUnloadableFormSubmit(Z){if(Z.target&&Z.target.getAttribute("method")==="dialog"||Z.submitter&&Z.submitter.getAttribute("formmethod")==="dialog")return!1;else return!Z.defaultPrevented&&!this.wantsNewTab(Z)},isNewPageClick(Z,$){const Q=Z.target instanceof HTMLAnchorElement?Z.target.getAttribute("href"):null;let z;if(Z.defaultPrevented||Q===null||this.wantsNewTab(Z))return!1;if(Q.startsWith("mailto:")||Q.startsWith("tel:"))return!1;if(Z.target.isContentEditable)return!1;try{z=new URL(Q)}catch{try{z=new URL(Q,$)}catch{return!0}}if(z.host===$.host&&z.protocol===$.protocol){if(z.pathname===$.pathname&&z.search===$.search)return z.hash===""&&!z.href.endsWith("#")}return z.protocol.startsWith("http")},markPhxChildDestroyed(Z){if(this.isPhxChild(Z))Z.setAttribute(l,"");this.putPrivate(Z,"destroyed",!0)},findPhxChildrenInFragment(Z,$){const Q=document.createElement("template");return Q.innerHTML=Z,this.findPhxChildren(Q.content,$)},isIgnored(Z,$){return(Z.getAttribute($)||Z.getAttribute("data-phx-update"))==="ignore"},isPhxUpdate(Z,$,Q){return Z.getAttribute&&Q.indexOf(Z.getAttribute($))>=0},findPhxSticky(Z){return this.all(Z,`[${I1}]`)},findPhxChildren(Z,$){return this.all(Z,`${h0}[${V0}="${$}"]`)},findExistingParentCIDs(Z,$){const Q=new Set,z=new Set;return $.forEach((J)=>{this.all(document,`[${H0}="${Z}"][${Q0}="${J}"]`).forEach((W)=>{Q.add(J),this.all(W,`[${H0}="${Z}"][${Q0}]`).map((q)=>parseInt(q.getAttribute(Q0))).forEach((q)=>z.add(q))})}),z.forEach((J)=>Q.delete(J)),Q},private(Z,$){return Z[r]&&Z[r][$]},deletePrivate(Z,$){Z[r]&&delete Z[r][$]},putPrivate(Z,$,Q){if(!Z[r])Z[r]={};Z[r][$]=Q},updatePrivate(Z,$,Q,z){const J=this.private(Z,$);if(J===void 0)this.putPrivate(Z,$,z(Q));else this.putPrivate(Z,$,z(J))},syncPendingAttrs(Z,$){if(!Z.hasAttribute(d))return;W5.forEach((Q)=>{Z.classList.contains(Q)&&$.classList.add(Q)}),p1.filter((Q)=>Z.hasAttribute(Q)).forEach((Q)=>{$.setAttribute(Q,Z.getAttribute(Q))})},copyPrivates(Z,$){if($[r])Z[r]=$[r]},putTitle(Z){const $=document.querySelector("title");if($){const{prefix:Q,suffix:z,default:J}=$.dataset,W=typeof Z!=="string"||Z.trim()==="";if(W&&typeof J!=="string")return;const q=W?J:Z;document.title=`${Q||""}${q||""}${z||""}`}else document.title=Z},debounce(Z,$,Q,z,J,W,q,Y){let G=Z.getAttribute(Q),B=Z.getAttribute(J);if(G==="")G=z;if(B==="")B=W;const K=G||B;switch(K){case null:return Y();case"blur":if(this.incCycle(Z,"debounce-blur-cycle",()=>{if(q())Y()}),this.once(Z,"debounce-blur"))Z.addEventListener("blur",()=>this.triggerCycle(Z,"debounce-blur-cycle"));return;default:const M=parseInt(K),X=()=>B?this.deletePrivate(Z,y0):Y(),F=this.incCycle(Z,C0,X);if(isNaN(M))return b(`invalid throttle/debounce value: ${K}`);if(B){let L=!1;if($.type==="keydown"){const x=this.private(Z,m1);this.putPrivate(Z,m1,$.key),L=x!==$.key}if(!L&&this.private(Z,y0))return!1;else{Y();const x=setTimeout(()=>{if(q())this.triggerCycle(Z,C0)},M);this.putPrivate(Z,y0,x)}}else setTimeout(()=>{if(q())this.triggerCycle(Z,C0,F)},M);const V=Z.form;if(V&&this.once(V,"bind-debounce"))V.addEventListener("submit",()=>{Array.from(new FormData(V).entries(),([L])=>{const x=V.querySelector(`[name="${L}"]`);this.incCycle(x,C0),this.deletePrivate(x,y0)})});if(this.once(Z,"bind-debounce"))Z.addEventListener("blur",()=>{clearTimeout(this.private(Z,y0)),this.triggerCycle(Z,C0)})}},triggerCycle(Z,$,Q){const[z,J]=this.private(Z,$);if(!Q)Q=z;if(Q===z)this.incCycle(Z,$),J()},once(Z,$){if(this.private(Z,$)===!0)return!1;return this.putPrivate(Z,$,!0),!0},incCycle(Z,$,Q=function(){}){let[z]=this.private(Z,$)||[0,Q];return z++,this.putPrivate(Z,$,[z,Q]),z},maintainPrivateHooks(Z,$,Q,z){if(Z.hasAttribute&&Z.hasAttribute("data-phx-hook")&&!$.hasAttribute("data-phx-hook"))$.setAttribute("data-phx-hook",Z.getAttribute("data-phx-hook"));if($.hasAttribute&&($.hasAttribute(Q)||$.hasAttribute(z)))$.setAttribute("data-phx-hook","Phoenix.InfiniteScroll")},putCustomElHook(Z,$){if(Z.isConnected)Z.setAttribute("data-phx-hook","");else console.error(` + hook attached to non-connected DOM element + ensure you are calling createHook within your connectedCallback. ${Z.outerHTML} + `);this.putPrivate(Z,"custom-el-hook",$)},getCustomElHook(Z){return this.private(Z,"custom-el-hook")},isUsedInput(Z){return Z.nodeType===Node.ELEMENT_NODE&&(this.private(Z,e0)||this.private(Z,_0))},resetForm(Z){Array.from(Z.elements).forEach(($)=>{this.deletePrivate($,e0),this.deletePrivate($,_0)})},isPhxChild(Z){return Z.getAttribute&&Z.getAttribute(V0)},isPhxSticky(Z){return Z.getAttribute&&Z.getAttribute(I1)!==null},isChildOfAny(Z,$){return!!$.find((Q)=>Q.contains(Z))},firstPhxChild(Z){return this.isPhxChild(Z)?Z:this.all(Z,`[${V0}]`)[0]},isPortalTemplate(Z){return Z.tagName==="TEMPLATE"&&Z.hasAttribute(j5)},closestViewEl(Z){const $=Z.closest(`[${w0}],${h0}`);if(!$)return null;if($.hasAttribute(w0))return this.byId($.getAttribute(w0));else if($.hasAttribute(l))return $;return null},dispatchEvent(Z,$,Q={}){let z=!0;if(Z.nodeName==="INPUT"&&Z.type==="file"&&$==="click")z=!1;const q={bubbles:Q.bubbles===void 0?z:!!Q.bubbles,cancelable:!0,detail:Q.detail||{}},Y=$==="click"?new MouseEvent("click",q):new CustomEvent($,q);Z.dispatchEvent(Y)},cloneNode(Z,$){if(typeof $==="undefined")return Z.cloneNode(!0);else{const Q=Z.cloneNode(!1);return Q.innerHTML=$,Q}},mergeAttrs(Z,$,Q={}){const z=new Set(Q.exclude||[]),J=Q.isIgnored,W=$.attributes;for(let Y=W.length-1;Y>=0;Y--){const G=W[Y].name;if(!z.has(G)){const B=$.getAttribute(G);if(Z.getAttribute(G)!==B&&(!J||J&&G.startsWith("data-")))Z.setAttribute(G,B)}else if(G==="value"){const B=$.value??$.getAttribute(G);if(Z.value===B)Z.setAttribute("value",$.getAttribute(G))}}const q=Z.attributes;for(let Y=q.length-1;Y>=0;Y--){const G=q[Y].name;if(J){if(G.startsWith("data-")&&!$.hasAttribute(G)&&!p1.includes(G))Z.removeAttribute(G)}else if(!$.hasAttribute(G))Z.removeAttribute(G)}},mergeFocusedInput(Z,$){if(!(Z instanceof HTMLSelectElement))K0.mergeAttrs(Z,$,{exclude:["value"]});if($.readOnly)Z.setAttribute("readonly",!0);else Z.removeAttribute("readonly")},hasSelectionRange(Z){return Z.setSelectionRange&&(Z.type==="text"||Z.type==="textarea")},restoreFocus(Z,$,Q){if(Z instanceof HTMLSelectElement)Z.focus();if(!K0.isTextualInput(Z))return;if(!Z.matches(":focus"))Z.focus();if(this.hasSelectionRange(Z))Z.setSelectionRange($,Q)},isFormInput(Z){if(Z.localName&&customElements.get(Z.localName))return customElements.get(Z.localName).formAssociated;return/^(?:input|select|textarea)$/i.test(Z.tagName)&&Z.type!=="button"},syncAttrsToProps(Z){if(Z instanceof HTMLInputElement&&B5.indexOf(Z.type.toLocaleLowerCase())>=0)Z.checked=Z.getAttribute("checked")!==null},isTextualInput(Z){return f5.indexOf(Z.type)>=0},isNowTriggerFormExternal(Z,$){return Z.getAttribute&&Z.getAttribute($)!==null&&document.body.contains(Z)},cleanChildNodes(Z,$){if(K0.isPhxUpdate(Z,$,["append","prepend",o0])){const Q=[];Z.childNodes.forEach((z)=>{if(!z.id){if(!(z.nodeType===Node.TEXT_NODE&&z.nodeValue.trim()==="")&&z.nodeType!==Node.COMMENT_NODE)b(`only HTML element tags with an id are allowed inside containers with phx-update. -removing illegal node: "${(Y.outerHTML||Y.nodeValue).trim()}" +removing illegal node: "${(z.outerHTML||z.nodeValue).trim()}" -`);$.push(Y)}}),$.forEach((Y)=>Y.remove())}},replaceRootContainer(Q,Z,$){let Y=new Set(["id",$0,A0,V1,M0]);if(Q.tagName.toLowerCase()===Z.toLowerCase())return Array.from(Q.attributes).filter((z)=>!Y.has(z.name.toLowerCase())).forEach((z)=>Q.removeAttribute(z.name)),Object.keys($).filter((z)=>!Y.has(z.toLowerCase())).forEach((z)=>Q.setAttribute(z,$[z])),Q;else{let z=document.createElement(Z);return Object.keys($).forEach((J)=>z.setAttribute(J,$[J])),Y.forEach((J)=>z.setAttribute(J,Q.getAttribute(J))),z.innerHTML=Q.innerHTML,Q.replaceWith(z),z}},getSticky(Q,Z,$){let Y=(u.private(Q,"sticky")||[]).find(([z])=>Z===z);if(Y){let[z,J,W]=Y;return W}else return typeof $==="function"?$():$},deleteSticky(Q,Z){this.updatePrivate(Q,"sticky",[],($)=>{return $.filter(([Y,z])=>Y!==Z)})},putSticky(Q,Z,$){let Y=$(Q);this.updatePrivate(Q,"sticky",[],(z)=>{let J=z.findIndex(([W])=>Z===W);if(J>=0)z[J]=[Z,$,Y];else z.push([Z,$,Y]);return z})},applyStickyOperations(Q){let Z=u.private(Q,"sticky");if(!Z)return;Z.forEach(([$,Y,z])=>this.putSticky(Q,$,Y))}},K=u,H0=class{static isActive(Q,Z){let $=Z._phxRef===void 0,z=Q.getAttribute(G1).split(",").indexOf(w.genFileRef(Z))>=0;return Z.size>0&&($||z)}static isPreflighted(Q,Z){return Q.getAttribute(U1).split(",").indexOf(w.genFileRef(Z))>=0&&this.isActive(Q,Z)}static isPreflightInProgress(Q){return Q._preflightInProgress===!0}static markPreflightInProgress(Q){Q._preflightInProgress=!0}constructor(Q,Z,$,Y){this.ref=w.genFileRef(Z),this.fileEl=Q,this.file=Z,this.view=$,this.meta=null,this._isCancelled=!1,this._isDone=!1,this._progress=0,this._lastProgressSent=-1,this._onDone=function(){},this._onElUpdated=this.onElUpdated.bind(this),this.fileEl.addEventListener(f0,this._onElUpdated),this.autoUpload=Y}metadata(){return this.meta}progress(Q){if(this._progress=Math.floor(Q),this._progress>this._lastProgressSent)if(this._progress>=100)this._progress=100,this._lastProgressSent=100,this._isDone=!0,this.view.pushFileProgress(this.fileEl,this.ref,100,()=>{w.untrackFile(this.fileEl,this.file),this._onDone()});else this._lastProgressSent=this._progress,this.view.pushFileProgress(this.fileEl,this.ref,this._progress)}isCancelled(){return this._isCancelled}cancel(){this.file._preflightInProgress=!1,this._isCancelled=!0,this._isDone=!0,this._onDone()}isDone(){return this._isDone}error(Q="failed"){if(this.fileEl.removeEventListener(f0,this._onElUpdated),this.view.pushFileProgress(this.fileEl,this.ref,{error:Q}),!this.isAutoUpload())w.clearFiles(this.fileEl)}isAutoUpload(){return this.autoUpload}onDone(Q){this._onDone=()=>{this.fileEl.removeEventListener(f0,this._onElUpdated),Q()}}onElUpdated(){if(this.fileEl.getAttribute(G1).split(",").indexOf(this.ref)===-1)w.untrackFile(this.fileEl,this.file),this.cancel()}toPreflightPayload(){return{last_modified:this.file.lastModified,name:this.file.name,relative_path:this.file.webkitRelativePath,size:this.file.size,type:this.file.type,ref:this.ref,meta:typeof this.file.meta==="function"?this.file.meta():void 0}}uploader(Q){if(this.meta.uploader){let Z=Q[this.meta.uploader]||h(`no uploader configured for ${this.meta.uploader}`);return{name:this.meta.uploader,callback:Z}}else return{name:"channel",callback:s5}}zipPostFlight(Q){if(this.meta=Q.entries[this.ref],!this.meta)h(`no preflight upload response returned with ref ${this.ref}`,{input:this.fileEl,response:Q})}},n5=0,w=class{static genFileRef(Q){let Z=Q._phxRef;if(Z!==void 0)return Z;else return Q._phxRef=(n5++).toString(),Q._phxRef}static getEntryDataURL(Q,Z,$){let Y=this.activeFiles(Q).find((z)=>this.genFileRef(z)===Z);$(URL.createObjectURL(Y))}static hasUploadsInProgress(Q){let Z=0;return K.findUploadInputs(Q).forEach(($)=>{if($.getAttribute(U1)!==$.getAttribute(S5))Z++}),Z>0}static serializeUploads(Q){let Z=this.activeFiles(Q),$={};return Z.forEach((Y)=>{let z={path:Q.name},J=Q.getAttribute(o);if($[J]=$[J]||[],z.ref=this.genFileRef(Y),z.last_modified=Y.lastModified,z.name=Y.name||z.ref,z.relative_path=Y.webkitRelativePath,z.type=Y.type,z.size=Y.size,typeof Y.meta==="function")z.meta=Y.meta();$[J].push(z)}),$}static clearFiles(Q){Q.value=null,Q.removeAttribute(o),K.putPrivate(Q,"files",[])}static untrackFile(Q,Z){K.putPrivate(Q,"files",K.private(Q,"files").filter(($)=>!Object.is($,Z)))}static trackFiles(Q,Z,$){if(Q.getAttribute("multiple")!==null){let Y=Z.filter((z)=>!this.activeFiles(Q).find((J)=>Object.is(J,z)));K.updatePrivate(Q,"files",[],(z)=>z.concat(Y)),Q.value=null}else{if($&&$.files.length>0)Q.files=$.files;K.putPrivate(Q,"files",Z)}}static activeFileInputs(Q){let Z=K.findUploadInputs(Q);return Array.from(Z).filter(($)=>$.files&&this.activeFiles($).length>0)}static activeFiles(Q){return(K.private(Q,"files")||[]).filter((Z)=>H0.isActive(Q,Z))}static inputsAwaitingPreflight(Q){let Z=K.findUploadInputs(Q);return Array.from(Z).filter(($)=>this.filesAwaitingPreflight($).length>0)}static filesAwaitingPreflight(Q){return this.activeFiles(Q).filter((Z)=>!H0.isPreflighted(Q,Z)&&!H0.isPreflightInProgress(Z))}static markPreflightInProgress(Q){Q.forEach((Z)=>H0.markPreflightInProgress(Z.file))}constructor(Q,Z,$){this.autoUpload=K.isAutoUpload(Q),this.view=Z,this.onComplete=$,this._entries=Array.from(w.filesAwaitingPreflight(Q)||[]).map((Y)=>new H0(Q,Y,Z,this.autoUpload)),w.markPreflightInProgress(this._entries),this.numEntriesInProgress=this._entries.length}isAutoUpload(){return this.autoUpload}entries(){return this._entries}initAdapterUpload(Q,Z,$){this._entries=this._entries.map((z)=>{if(z.isCancelled()){if(this.numEntriesInProgress--,this.numEntriesInProgress===0)this.onComplete()}else z.zipPostFlight(Q),z.onDone(()=>{if(this.numEntriesInProgress--,this.numEntriesInProgress===0)this.onComplete()});return z});let Y=this._entries.reduce((z,J)=>{if(!J.meta)return z;let{name:W,callback:q}=J.uploader($.uploaders);return z[W]=z[W]||{callback:q,entries:[]},z[W].entries.push(J),z},{});for(let z in Y){let{callback:J,entries:W}=Y[z];J(W,Z,Q,$)}}},Q5={LiveFileUpload:{activeRefs(){return this.el.getAttribute(G1)},preflightedRefs(){return this.el.getAttribute(U1)},mounted(){this.preflightedWas=this.preflightedRefs()},updated(){let Q=this.preflightedRefs();if(this.preflightedWas!==Q){if(this.preflightedWas=Q,Q==="")this.__view.cancelSubmit(this.el.form)}if(this.activeRefs()==="")this.el.value=null;this.el.dispatchEvent(new CustomEvent(f0))}},LiveImgPreview:{mounted(){this.ref=this.el.getAttribute("data-phx-entry-ref"),this.inputEl=document.getElementById(this.el.getAttribute(o)),w.getEntryDataURL(this.inputEl,this.ref,(Q)=>{this.url=Q,this.el.src=Q})},destroyed(){URL.revokeObjectURL(this.url)}},FocusWrap:{mounted(){if(this.focusStart=this.el.firstElementChild,this.focusEnd=this.el.lastElementChild,this.focusStart.addEventListener("focus",()=>B0.focusLast(this.el)),this.focusEnd.addEventListener("focus",()=>B0.focusFirst(this.el)),this.el.addEventListener("phx:show-end",()=>this.el.focus()),window.getComputedStyle(this.el).display!=="none")B0.focusFirst(this.el)}}},Z5=(Q)=>{if(["scroll","auto"].indexOf(getComputedStyle(Q).overflowY)>=0)return Q;if(document.documentElement===Q)return null;return Z5(Q.parentElement)},h1=(Q)=>{if(Q)return Q.scrollTop;else return document.documentElement.scrollTop||document.body.scrollTop},X1=(Q)=>{if(Q)return Q.getBoundingClientRect().bottom;else return window.innerHeight||document.documentElement.clientHeight},L1=(Q)=>{if(Q)return Q.getBoundingClientRect().top;else return 0},a5=(Q,Z)=>{let $=Q.getBoundingClientRect();return $.top>=L1(Z)&&$.left>=0&&$.top<=X1(Z)},r5=(Q,Z)=>{let $=Q.getBoundingClientRect();return $.right>=L1(Z)&&$.left>=0&&$.bottom<=X1(Z)},E1=(Q,Z)=>{let $=Q.getBoundingClientRect();return $.top>=L1(Z)&&$.left>=0&&$.top<=X1(Z)};Q5.InfiniteScroll={mounted(){this.scrollContainer=Z5(this.el);let Q=h1(this.scrollContainer),Z=!1,$=500,Y=null,z=this.throttle($,(q,G)=>{Y=()=>!0,this.liveSocket.execJSHookPush(this.el,q,{id:G.id,_overran:!0},()=>{Y=null})}),J=this.throttle($,(q,G)=>{Y=()=>G.scrollIntoView({block:"start"}),this.liveSocket.execJSHookPush(this.el,q,{id:G.id},()=>{Y=null,window.requestAnimationFrame(()=>{if(!E1(G,this.scrollContainer))G.scrollIntoView({block:"start"})})})}),W=this.throttle($,(q,G)=>{Y=()=>G.scrollIntoView({block:"end"}),this.liveSocket.execJSHookPush(this.el,q,{id:G.id},()=>{Y=null,window.requestAnimationFrame(()=>{if(!E1(G,this.scrollContainer))G.scrollIntoView({block:"end"})})})});if(this.onScroll=(q)=>{let G=h1(this.scrollContainer);if(Y)return Q=G,Y();let j=this.el.getBoundingClientRect(),B=this.el.getAttribute(this.liveSocket.binding("viewport-top")),U=this.el.getAttribute(this.liveSocket.binding("viewport-bottom")),V=this.el.lastElementChild,X=this.el.firstElementChild,L=GQ;if(L&&B&&!Z&&j.top>=0)Z=!0,z(B,X);else if(H&&Z&&j.top<=0)Z=!1;if(B&&L&&a5(X,this.scrollContainer))J(B,X);else if(U&&H&&r5(V,this.scrollContainer))W(U,V);Q=G},this.scrollContainer)this.scrollContainer.addEventListener("scroll",this.onScroll);else window.addEventListener("scroll",this.onScroll)},destroyed(){if(this.scrollContainer)this.scrollContainer.removeEventListener("scroll",this.onScroll);else window.removeEventListener("scroll",this.onScroll)},throttle(Q,Z){let $=0,Y;return(...z)=>{let J=Date.now(),W=Q-(J-$);if(W<=0||W>Q){if(Y)clearTimeout(Y),Y=null;$=J,Z(...z)}else if(!Y)Y=setTimeout(()=>{$=Date.now(),Y=null,Z(...z)},W)}}};var o5=Q5,l5=class{constructor(Q,Z,$){let Y=new Set,z=new Set([...Z.children].map((W)=>W.id)),J=[];Array.from(Q.children).forEach((W)=>{if(W.id){if(Y.add(W.id),z.has(W.id)){let q=W.previousElementSibling&&W.previousElementSibling.id;J.push({elementId:W.id,previousElementId:q})}}}),this.containerId=Z.id,this.updateType=$,this.elementsToModify=J,this.elementIdsToAdd=[...z].filter((W)=>!Y.has(W))}perform(){let Q=K.byId(this.containerId);if(this.elementsToModify.forEach((Z)=>{if(Z.previousElementId)Z0(document.getElementById(Z.previousElementId),($)=>{Z0(document.getElementById(Z.elementId),(Y)=>{if(!(Y.previousElementSibling&&Y.previousElementSibling.id==$.id))$.insertAdjacentElement("afterend",Y)})});else Z0(document.getElementById(Z.elementId),($)=>{if($.previousElementSibling!=null)Q.insertAdjacentElement("afterbegin",$)})}),this.updateType=="prepend")this.elementIdsToAdd.reverse().forEach((Z)=>{Z0(document.getElementById(Z),($)=>Q.insertAdjacentElement("afterbegin",$))})}},u1=11,v0,e5="http://www.w3.org/1999/xhtml",N=typeof document==="undefined"?void 0:document,Q9=!!N&&"content"in N.createElement("template"),Z9=!!N&&N.createRange&&"createContextualFragment"in N.createRange(),f1={OPTION:function(Q,Z){var $=Q.parentNode;if($){var Y=$.nodeName.toUpperCase();if(Y==="OPTGROUP")$=$.parentNode,Y=$&&$.nodeName.toUpperCase();if(Y==="SELECT"&&!$.hasAttribute("multiple")){if(Q.hasAttribute("selected")&&!Z.selected)Q.setAttribute("selected","selected"),Q.removeAttribute("selected");$.selectedIndex=-1}}q1(Q,Z,"selected")},INPUT:function(Q,Z){if(q1(Q,Z,"checked"),q1(Q,Z,"disabled"),Q.value!==Z.value)Q.value=Z.value;if(!Z.hasAttribute("value"))Q.removeAttribute("value")},TEXTAREA:function(Q,Z){var $=Z.value;if(Q.value!==$)Q.value=$;var Y=Q.firstChild;if(Y){var z=Y.nodeValue;if(z==$||!$&&z==Q.placeholder)return;Y.nodeValue=$}},SELECT:function(Q,Z){if(!Z.hasAttribute("multiple")){var $=-1,Y=0,z=Q.firstChild,J,W;while(z)if(W=z.nodeName&&z.nodeName.toUpperCase(),W==="OPTGROUP")J=z,z=J.firstChild;else{if(W==="OPTION"){if(z.hasAttribute("selected")){$=Y;break}Y++}if(z=z.nextSibling,!z&&J)z=J.nextSibling,J=null}Q.selectedIndex=$}}},x0=1,p1=11,m1=3,c1=8,K9=j9(t5),s1=K9,E0=class{static patchEl(Q,Z,$){s1(Q,Z,{childrenOnly:!1,onBeforeElUpdated:(Y,z)=>{if($&&$.isSameNode(Y)&&K.isFormInput(Y))return K.mergeFocusedInput(Y,z),!1}})}constructor(Q,Z,$,Y,z,J){this.view=Q,this.liveSocket=Q.liveSocket,this.container=Z,this.id=$,this.rootID=Q.root.id,this.html=Y,this.streams=z,this.streamInserts={},this.streamComponentRestore={},this.targetCID=J,this.cidPatch=a(this.targetCID),this.pendingRemoves=[],this.phxRemove=this.liveSocket.binding("remove"),this.callbacks={beforeadded:[],beforeupdated:[],beforephxChildAdded:[],afteradded:[],afterupdated:[],afterdiscarded:[],afterphxChildAdded:[],aftertransitionsDiscarded:[]}}before(Q,Z){this.callbacks[`before${Q}`].push(Z)}after(Q,Z){this.callbacks[`after${Q}`].push(Z)}trackBefore(Q,...Z){this.callbacks[`before${Q}`].forEach(($)=>$(...Z))}trackAfter(Q,...Z){this.callbacks[`after${Q}`].forEach(($)=>$(...Z))}markPrunableContentForRemoval(){let Q=this.liveSocket.binding(d0);K.all(this.container,`[${Q}=append] > *, [${Q}=prepend] > *`,(Z)=>{Z.setAttribute(A1,"")})}perform(Q){let{view:Z,liveSocket:$,container:Y,html:z}=this,J=this.isCIDPatch()?this.targetCIDContainer(z):Y;if(this.isCIDPatch()&&!J)return;let W=$.getActiveElement(),{selectionStart:q,selectionEnd:G}=W&&K.hasSelectionRange(W)?W:{},j=$.binding(d0),B=$.binding(m0),U=$.binding(c0),V=$.binding(M1),X=$.binding(j1),L=$.binding(K1),H=$.binding(y5),P=[],y=[],g=[],E=[],C=null;function Y0(S,d){s1(S,d,{childrenOnly:S.getAttribute(r)===null,getNodeKey:(M)=>{if(K.isPhxDestroyed(M))return null;if(Q)return M.id;return M.id||M.getAttribute&&M.getAttribute(l1)},skipFromChildren:(M)=>{return M.getAttribute(j)===Z1},addChild:(M,D)=>{let{ref:k,streamAt:O}=this.getStreamInsert(D);if(k===void 0)return M.appendChild(D);if(this.setStreamRef(D,k),O===0)M.insertAdjacentElement("afterbegin",D);else if(O===-1)M.appendChild(D);else if(O>0){let f=Array.from(M.children)[O];M.insertBefore(D,f)}},onBeforeNodeAdded:(M)=>{K.maybeAddPrivateHooks(M,X,L),this.trackBefore("added",M);let D=M;if(!Q&&this.streamComponentRestore[M.id])D=this.streamComponentRestore[M.id],delete this.streamComponentRestore[M.id],Y0.bind(this)(D,M);return D},onNodeAdded:(M)=>{if(M.getAttribute)this.maybeReOrderStream(M,!0);if(K.isFeedbackContainer(M,B))y.push(M);if(M instanceof HTMLImageElement&&M.srcset)M.srcset=M.srcset;else if(M instanceof HTMLVideoElement&&M.autoplay)M.play();if(K.isNowTriggerFormExternal(M,H))C=M;if(K.isPhxChild(M)&&Z.ownsElement(M)||K.isPhxSticky(M)&&Z.ownsElement(M.parentNode))this.trackAfter("phxChildAdded",M);P.push(M)},onNodeDiscarded:(M)=>this.onNodeDiscarded(M),onBeforeNodeDiscarded:(M)=>{if(M.getAttribute&&M.getAttribute(A1)!==null)return!0;if(M.parentElement!==null&&M.id&&K.isPhxUpdate(M.parentElement,j,[Z1,"append","prepend"]))return!1;if(this.maybePendingRemove(M))return!1;if(this.skipCIDSibling(M))return!1;return!0},onElUpdated:(M)=>{if(K.isNowTriggerFormExternal(M,H))C=M;g.push(M),this.maybeReOrderStream(M,!1)},onBeforeElUpdated:(M,D)=>{if(K.maybeAddPrivateHooks(D,X,L),K.isFeedbackContainer(M,B)||K.isFeedbackContainer(D,B))y.push(M),y.push(D);if(K.cleanChildNodes(D,j),this.skipCIDSibling(D))return this.maybeReOrderStream(M),!1;if(K.isPhxSticky(M))return!1;if(K.isIgnored(M,j)||M.form&&M.form.isSameNode(C))return this.trackBefore("updated",M,D),K.mergeAttrs(M,D,{isIgnored:!0}),g.push(M),K.applyStickyOperations(M),!1;if(M.type==="number"&&(M.validity&&M.validity.badInput))return!1;if(!K.syncPendingRef(M,D,V)){if(K.isUploadInput(M))this.trackBefore("updated",M,D),g.push(M);return K.applyStickyOperations(M),!1}if(K.isPhxChild(D)){let f=M.getAttribute($0);if(K.mergeAttrs(M,D,{exclude:[A0]}),f!=="")M.setAttribute($0,f);return M.setAttribute(M0,this.rootID),K.applyStickyOperations(M),!1}K.copyPrivates(D,M);let k=W&&M.isSameNode(W)&&K.isFormInput(M),O=k&&this.isChangedSelect(M,D);if(k&&M.type!=="hidden"&&!O)return this.trackBefore("updated",M,D),K.mergeFocusedInput(M,D),K.syncAttrsToProps(M),g.push(M),K.applyStickyOperations(M),!1;else{if(O)M.blur();if(K.isPhxUpdate(D,j,["append","prepend"]))E.push(new l5(M,D,D.getAttribute(j)));return K.syncAttrsToProps(D),K.applyStickyOperations(D),this.trackBefore("updated",M,D),!0}}})}if(this.trackBefore("added",Y),this.trackBefore("updated",Y,Y),$.time("morphdom",()=>{if(this.streams.forEach(([S,d,M,D])=>{if(d.forEach(([k,O,f])=>{this.streamInserts[k]={ref:S,streamAt:O,limit:f,reset:D}}),D!==void 0)K.all(Y,`[${$1}="${S}"]`,(k)=>{this.removeStreamChildElement(k)});M.forEach((k)=>{let O=Y.querySelector(`[id="${k}"]`);if(O)this.removeStreamChildElement(O)})}),Q)K.all(this.container,`[${j}=${Z1}]`,(S)=>{this.liveSocket.owner(S,(d)=>{if(d===this.view)Array.from(S.children).forEach((M)=>{this.removeStreamChildElement(M)})})});Y0.bind(this)(J,z)}),$.isDebugEnabled())p5();if(E.length>0)$.time("post-morph append/prepend restoration",()=>{E.forEach((S)=>S.perform())});if(K.maybeHideFeedback(J,y,B,U),$.silenceEvents(()=>K.restoreFocus(W,q,G)),K.dispatchEvent(document,"phx:update"),P.forEach((S)=>this.trackAfter("added",S)),g.forEach((S)=>this.trackAfter("updated",S)),this.transitionPendingRemoves(),C)$.unload(),Object.getPrototypeOf(C).submit.call(C);return!0}onNodeDiscarded(Q){if(K.isPhxChild(Q)||K.isPhxSticky(Q))this.liveSocket.destroyViewByEl(Q);this.trackAfter("discarded",Q)}maybePendingRemove(Q){if(Q.getAttribute&&Q.getAttribute(this.phxRemove)!==null)return this.pendingRemoves.push(Q),!0;else return!1}removeStreamChildElement(Q){if(this.streamInserts[Q.id])this.streamComponentRestore[Q.id]=Q,Q.remove();else if(!this.maybePendingRemove(Q))Q.remove(),this.onNodeDiscarded(Q)}getStreamInsert(Q){return(Q.id?this.streamInserts[Q.id]:{})||{}}setStreamRef(Q,Z){K.putSticky(Q,$1,($)=>$.setAttribute($1,Z))}maybeReOrderStream(Q,Z){let{ref:$,streamAt:Y,reset:z}=this.getStreamInsert(Q);if(Y===void 0)return;if(this.setStreamRef(Q,$),!z&&!Z)return;if(!Q.parentElement)return;if(Y===0)Q.parentElement.insertBefore(Q,Q.parentElement.firstElementChild);else if(Y>0){let J=Array.from(Q.parentElement.children),W=J.indexOf(Q);if(Y>=J.length-1)Q.parentElement.appendChild(Q);else{let q=J[Y];if(W>Y)Q.parentElement.insertBefore(Q,q);else Q.parentElement.insertBefore(Q,q.nextElementSibling)}}this.maybeLimitStream(Q)}maybeLimitStream(Q){let{limit:Z}=this.getStreamInsert(Q),$=Z!==null&&Array.from(Q.parentElement.children);if(Z&&Z<0&&$.length>Z*-1)$.slice(0,$.length+Z).forEach((Y)=>this.removeStreamChildElement(Y));else if(Z&&Z>=0&&$.length>Z)$.slice(Z).forEach((Y)=>this.removeStreamChildElement(Y))}transitionPendingRemoves(){let{pendingRemoves:Q,liveSocket:Z}=this;if(Q.length>0)Z.transitionRemoves(Q),Z.requestDOMUpdate(()=>{Q.forEach(($)=>{let Y=K.firstPhxChild($);if(Y)Z.destroyViewByEl(Y);$.remove()}),this.trackAfter("transitionsDiscarded",Q)})}isChangedSelect(Q,Z){if(!(Q instanceof HTMLSelectElement)||Q.multiple)return!1;if(Q.options.length!==Z.options.length)return!0;let $=Q.selectedOptions[0],Y=Z.selectedOptions[0];if($&&$.hasAttribute("selected"))Y.setAttribute("selected",$.getAttribute("selected"));return!Q.isEqualNode(Z)}isCIDPatch(){return this.cidPatch}skipCIDSibling(Q){return Q.nodeType===Node.ELEMENT_NODE&&Q.hasAttribute(o1)}targetCIDContainer(Q){if(!this.isCIDPatch())return;let[Z,...$]=K.findComponentNodeList(this.container,this.targetCID);if($.length===0&&K.childNodeLength(Q)===1)return Z;else return Z&&Z.parentNode}indexOf(Q,Z){return Array.from(Q.children).indexOf(Z)}},B9=new Set(["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),M9=new Set(["'",'"']),d1=(Q,Z,$)=>{let Y=0,z=!1,J,W,q,G,j,B,U=Q.match(/^(\s*(?:\s*)*)<([^\s\/>]+)/);if(U===null)throw new Error(`malformed html ${Q}`);Y=U[0].length,J=U[1],q=U[2],G=Y;for(Y;Y")break;if(Q.charAt(Y)==="="){let L=Q.slice(Y-3,Y)===" id";Y++;let H=Q.charAt(Y);if(M9.has(H)){let P=Y;Y++;for(Y;Y=J.length+q.length){let L=Q.charAt(V);if(z)if(L==="-"&&Q.slice(V-3,V)===""&&Q.slice(V-2,V)==="--")z=!0,V-=3;else if(L===">")break;else V-=1}W=Q.slice(V+1,Q.length);let X=Object.keys(Z).map((L)=>Z[L]===!0?L:`${L}="${Z[L]}"`).join(" ");if($){let L=j?` id="${j}"`:"";if(B9.has(q))B=`<${q}${L}${X===""?"":" "}${X}/>`;else B=`<${q}${L}${X===""?"":" "}${X}>`}else{let L=Q.slice(G,V+1);B=`<${q}${X===""?"":" "}${X}${L}`}return[B,J,W]},i1=class{static extract(Q){let{[C1]:Z,[g1]:$,[N1]:Y}=Q;return delete Q[C1],delete Q[g1],delete Q[N1],{diff:Q,title:Y,reply:Z||null,events:$||[]}}constructor(Q,Z){this.viewId=Q,this.rendered={},this.magicId=0,this.mergeDiff(Z)}parentViewId(){return this.viewId}toString(Q){let[Z,$]=this.recursiveToString(this.rendered,this.rendered[b],Q,!0,{});return[Z,$]}recursiveToString(Q,Z=Q[b],$,Y,z){$=$?new Set($):null;let J={buffer:"",components:Z,onlyCids:$,streams:new Set};return this.toOutputBuffer(Q,null,J,Y,z),[J.buffer,J.streams]}componentCIDs(Q){return Object.keys(Q[b]||{}).map((Z)=>parseInt(Z))}isComponentOnlyDiff(Q){if(!Q[b])return!1;return Object.keys(Q).length===1}getComponent(Q,Z){return Q[b][Z]}resetRender(Q){if(this.rendered[b][Q])this.rendered[b][Q].reset=!0}mergeDiff(Q){let Z=Q[b],$={};if(delete Q[b],this.rendered=this.mutableMerge(this.rendered,Q),this.rendered[b]=this.rendered[b]||{},Z){let Y=this.rendered[b];for(let z in Z)Z[z]=this.cachedFindComponent(z,Z[z],Y,Z,$);for(let z in Z)Y[z]=Z[z];Q[b]=Z}}cachedFindComponent(Q,Z,$,Y,z){if(z[Q])return z[Q];else{let J,W,q=Z[c];if(a(q)){let G;if(q>0)G=this.cachedFindComponent(q,Y[q],$,Y,z);else G=$[-q];W=G[c],J=this.cloneMerge(G,Z,!0),J[c]=W}else J=Z[c]!==void 0||$[Q]===void 0?Z:this.cloneMerge($[Q],Z,!1);return z[Q]=J,J}}mutableMerge(Q,Z){if(Z[c]!==void 0)return Z;else return this.doMutableMerge(Q,Z),Q}doMutableMerge(Q,Z){for(let $ in Z){let Y=Z[$],z=Q[$];if(j0(Y)&&Y[c]===void 0&&j0(z))this.doMutableMerge(z,Y);else Q[$]=Y}if(Q[J1])Q.newRender=!0}cloneMerge(Q,Z,$){let Y={...Q,...Z};for(let z in Y){let J=Z[z],W=Q[z];if(j0(J)&&J[c]===void 0&&j0(W))Y[z]=this.cloneMerge(W,J,$);else if(J===void 0&&j0(W))Y[z]=this.cloneMerge(W,{},$)}if($)delete Y.magicId,delete Y.newRender;else if(Q[J1])Y.newRender=!0;return Y}componentToString(Q){let[Z,$]=this.recursiveCIDToString(this.rendered[b],Q,null),[Y,z,J]=d1(Z,{});return[Y,$]}pruneCIDs(Q){Q.forEach((Z)=>delete this.rendered[b][Z])}get(){return this.rendered}isNewFingerprint(Q={}){return!!Q[c]}templateStatic(Q,Z){if(typeof Q==="number")return Z[Q];else return Q}nextMagicID(){return this.magicId++,`m${this.magicId}-${this.parentViewId()}`}toOutputBuffer(Q,Z,$,Y,z={}){if(Q[k0])return this.comprehensionToBuffer(Q,Z,$);let{[c]:J}=Q;J=this.templateStatic(J,Z);let W=Q[J1],q=$.buffer;if(W)$.buffer="";if(Y&&W&&!Q.magicId)Q.newRender=!0,Q.magicId=this.nextMagicID();$.buffer+=J[0];for(let G=1;G0||G.length>0||j))delete Q[k1],Q[k0]=[],$.streams.add(J)}dynamicToBuffer(Q,Z,$,Y){if(typeof Q==="number"){let[z,J]=this.recursiveCIDToString($.components,Q,$.onlyCids);$.buffer+=z,$.streams=new Set([...$.streams,...J])}else if(j0(Q))this.toOutputBuffer(Q,Z,$,Y,{});else $.buffer+=Q}recursiveCIDToString(Q,Z,$){let Y=Q[Z]||h(`no component for CID ${Z}`,Q),z={[r]:Z},J=$&&!$.has(Z);Y.newRender=!J,Y.magicId=`c${Z}-${this.parentViewId()}`;let W=!Y.reset,[q,G]=this.recursiveToString(Y,Q,$,W,z);return delete Y.reset,[q,G]}},U9=1,O0=class{static makeID(){return U9++}static elementID(Q){return Q.phxHookId}constructor(Q,Z,$){this.__view=Q,this.liveSocket=Q.liveSocket,this.__callbacks=$,this.__listeners=new Set,this.__isDisconnected=!1,this.el=Z,this.el.phxHookId=this.constructor.makeID();for(let Y in this.__callbacks)this[Y]=this.__callbacks[Y]}__mounted(){this.mounted&&this.mounted()}__updated(){this.updated&&this.updated()}__beforeUpdate(){this.beforeUpdate&&this.beforeUpdate()}__destroyed(){this.destroyed&&this.destroyed()}__reconnected(){if(this.__isDisconnected)this.__isDisconnected=!1,this.reconnected&&this.reconnected()}__disconnected(){this.__isDisconnected=!0,this.disconnected&&this.disconnected()}pushEvent(Q,Z={},$=function(){}){return this.__view.pushHookEvent(this.el,null,Q,Z,$)}pushEventTo(Q,Z,$={},Y=function(){}){return this.__view.withinTargets(Q,(z,J)=>{return z.pushHookEvent(this.el,J,Z,$,Y)})}handleEvent(Q,Z){let $=(Y,z)=>z?Q:Z(Y.detail);return window.addEventListener(`phx:${Q}`,$),this.__listeners.add($),$}removeHandleEvent(Q){let Z=Q(null,!0);window.removeEventListener(`phx:${Z}`,Q),this.__listeners.delete(Q)}upload(Q,Z){return this.__view.dispatchUploads(null,Q,Z)}uploadTo(Q,Z,$){return this.__view.withinTargets(Q,(Y,z)=>{Y.dispatchUploads(z,Z,$)})}__cleanup__(){this.__listeners.forEach((Q)=>this.removeHandleEvent(Q))}},u0=(Q,Z,$=[])=>{const{submitter:Y,...z}=Z;let J;if(Y&&Y.name){const j=document.createElement("input");j.type="hidden";const B=Y.getAttribute("form");if(B)j.setAttribute("form",B);j.name=Y.name,j.value=Y.value,Y.parentElement.insertBefore(j,Y),J=j}const W=new FormData(Q),q=[];W.forEach((j,B,U)=>{if(j instanceof File)q.push(B)}),q.forEach((j)=>W.delete(j));const G=new URLSearchParams;for(let[j,B]of W.entries())if($.length===0||$.indexOf(j)>=0)G.append(j,B);if(Y&&J)Y.parentElement.removeChild(J);for(let j in z)G.append(j,z[j]);return G.toString()},$5=class{constructor(Q,Z,$,Y,z){this.isDead=!1,this.liveSocket=Z,this.flash=Y,this.parent=$,this.root=$?$.root:this,this.el=Q,this.id=this.el.id,this.ref=0,this.childJoins=0,this.loaderTimer=null,this.pendingDiffs=[],this.pendingForms=new Set,this.redirect=!1,this.href=null,this.joinCount=this.parent?this.parent.joinCount-1:0,this.joinPending=!0,this.destroyed=!1,this.joinCallback=function(J){J&&J()},this.stopCallback=function(){},this.pendingJoinOps=this.parent?null:[],this.viewHooks={},this.formSubmits=[],this.children=this.parent?null:{},this.root.children[this.id]={},this.channel=this.liveSocket.channel(`lv:${this.id}`,()=>{let J=this.href&&this.expandURL(this.href);return{redirect:this.redirect?J:void 0,url:this.redirect?void 0:J||void 0,params:this.connectParams(z),session:this.getSession(),static:this.getStatic(),flash:this.flash}})}setHref(Q){this.href=Q}setRedirect(Q){this.redirect=!0,this.href=Q}isMain(){return this.el.hasAttribute(V1)}connectParams(Q){let Z=this.liveSocket.params(this.el),$=K.all(document,`[${this.binding(w5)}]`).map((Y)=>Y.src||Y.href).filter((Y)=>typeof Y==="string");if($.length>0)Z._track_static=$;return Z._mounts=this.joinCount,Z._live_referer=Q,Z}isConnected(){return this.channel.canPush()}getSession(){return this.el.getAttribute($0)}getStatic(){let Q=this.el.getAttribute(A0);return Q===""?null:Q}destroy(Q=function(){}){if(this.destroyAllChildren(),this.destroyed=!0,delete this.root.children[this.id],this.parent)delete this.root.children[this.parent.id][this.id];clearTimeout(this.loaderTimer);let Z=()=>{Q();for(let $ in this.viewHooks)this.destroyHook(this.viewHooks[$])};K.markPhxChildDestroyed(this.el),this.log("destroyed",()=>["the child has been removed from the parent"]),this.channel.leave().receive("ok",Z).receive("error",Z).receive("timeout",Z)}setContainerClasses(...Q){this.el.classList.remove(w1,L0,g0,P1,e0),this.el.classList.add(...Q)}showLoader(Q){if(clearTimeout(this.loaderTimer),Q)this.loaderTimer=setTimeout(()=>this.showLoader(),Q);else{for(let Z in this.viewHooks)this.viewHooks[Z].__disconnected();this.setContainerClasses(L0)}}execAll(Q){K.all(this.el,`[${Q}]`,(Z)=>this.liveSocket.execJS(Z,Z.getAttribute(Q)))}hideLoader(){clearTimeout(this.loaderTimer),this.setContainerClasses(w1),this.execAll(this.binding("connected"))}triggerReconnected(){for(let Q in this.viewHooks)this.viewHooks[Q].__reconnected()}log(Q,Z){this.liveSocket.log(this,Q,Z)}transition(Q,Z,$=function(){}){this.liveSocket.transition(Q,Z,$)}withinTargets(Q,Z){if(Q instanceof HTMLElement||Q instanceof SVGElement)return this.liveSocket.owner(Q,($)=>Z($,Q));if(a(Q))if(K.findComponentNodeList(this.el,Q).length===0)h(`no component found matching phx-target of ${Q}`);else Z(this,parseInt(Q));else{let $=Array.from(document.querySelectorAll(Q));if($.length===0)h(`nothing found matching the phx-target selector "${Q}"`);$.forEach((Y)=>this.liveSocket.owner(Y,(z)=>Z(z,Y)))}}applyDiff(Q,Z,$){this.log(Q,()=>["",p0(Z)]);let{diff:Y,reply:z,events:J,title:W}=i1.extract(Z);if($({diff:Y,reply:z,events:J}),W)window.requestAnimationFrame(()=>K.putTitle(W))}onJoin(Q){let{rendered:Z,container:$}=Q;if($){let[Y,z]=$;this.el=K.replaceRootContainer(this.el,Y,z)}this.childJoins=0,this.joinPending=!0,this.flash=null,s.dropLocal(this.liveSocket.localStorage,window.location.pathname,n1),this.applyDiff("mount",Z,({diff:Y,events:z})=>{this.rendered=new i1(this.id,Y);let[J,W]=this.renderContainer(null,"join");this.dropPendingRefs();let q=this.formsForRecovery(J).filter(([G,j,B])=>{return!this.pendingForms.has(G.id)});if(this.joinCount++,q.length>0)q.forEach(([G,j,B],U)=>{this.pendingForms.add(G.id),this.pushFormRecovery(G,B,(V)=>{if(this.pendingForms.delete(G.id),U===q.length-1)this.onJoinComplete(V,J,W,z)})});else this.onJoinComplete(Q,J,W,z)})}dropPendingRefs(){K.all(document,`[${Q0}="${this.id}"][${v}]`,(Q)=>{Q.removeAttribute(v),Q.removeAttribute(Q0)})}onJoinComplete({live_patch:Q},Z,$,Y){if(this.pendingForms.clear(),this.joinCount>1||this.parent&&!this.parent.isJoinPending())return this.applyJoinPatch(Q,Z,$,Y);if(K.findPhxChildrenInFragment(Z,this.id).filter((J)=>{let W=J.id&&this.el.querySelector(`[id="${J.id}"]`),q=W&&W.getAttribute(A0);if(q)J.setAttribute(A0,q);if(W)W.setAttribute(M0,this.root.id);return this.joinChild(J)}).length===0)if(this.parent)this.root.pendingJoinOps.push([this,()=>this.applyJoinPatch(Q,Z,$,Y)]),this.parent.ackJoin(this);else this.onAllChildJoinsComplete(),this.applyJoinPatch(Q,Z,$,Y);else this.root.pendingJoinOps.push([this,()=>this.applyJoinPatch(Q,Z,$,Y)])}attachTrueDocEl(){this.el=K.byId(this.id),this.el.setAttribute(M0,this.root.id)}execNewMounted(){let Q=this.binding(j1),Z=this.binding(K1);K.all(this.el,`[${Q}], [${Z}]`,($)=>{K.maybeAddPrivateHooks($,Q,Z),this.maybeAddNewHook($)}),K.all(this.el,`[${this.binding(F0)}], [data-phx-${F0}]`,($)=>{this.maybeAddNewHook($)}),K.all(this.el,`[${this.binding(T1)}]`,($)=>this.maybeMounted($))}applyJoinPatch(Q,Z,$,Y){this.attachTrueDocEl();let z=new E0(this,this.el,this.id,Z,$,null);if(z.markPrunableContentForRemoval(),this.performPatch(z,!1,!0),this.joinNewChildren(),this.execNewMounted(),this.joinPending=!1,this.liveSocket.dispatchEvents(Y),this.applyPendingUpdates(),Q){let{kind:J,to:W}=Q;this.liveSocket.historyPatch(W,J)}if(this.hideLoader(),this.joinCount>1)this.triggerReconnected();this.stopCallback()}triggerBeforeUpdateHook(Q,Z){this.liveSocket.triggerDOM("onBeforeElUpdated",[Q,Z]);let $=this.getHook(Q),Y=$&&K.isIgnored(Q,this.binding(d0));if($&&!Q.isEqualNode(Z)&&!(Y&&c5(Q.dataset,Z.dataset)))return $.__beforeUpdate(),$}maybeMounted(Q){let Z=Q.getAttribute(this.binding(T1)),$=Z&&K.private(Q,"mounted");if(Z&&!$)this.liveSocket.execJS(Q,Z),K.putPrivate(Q,"mounted",!0)}maybeAddNewHook(Q,Z){let $=this.addHook(Q);if($)$.__mounted()}performPatch(Q,Z,$=!1){let Y=[],z=!1,J=new Set;return Q.after("added",(W)=>{this.liveSocket.triggerDOM("onNodeAdded",[W]);let q=this.binding(j1),G=this.binding(K1);if(K.maybeAddPrivateHooks(W,q,G),this.maybeAddNewHook(W),W.getAttribute)this.maybeMounted(W)}),Q.after("phxChildAdded",(W)=>{if(K.isPhxSticky(W))this.liveSocket.joinRootViews();else z=!0}),Q.before("updated",(W,q)=>{if(this.triggerBeforeUpdateHook(W,q))J.add(W.id)}),Q.after("updated",(W)=>{if(J.has(W.id))this.getHook(W).__updated()}),Q.after("discarded",(W)=>{if(W.nodeType===Node.ELEMENT_NODE)Y.push(W)}),Q.after("transitionsDiscarded",(W)=>this.afterElementsRemoved(W,Z)),Q.perform($),this.afterElementsRemoved(Y,Z),z}afterElementsRemoved(Q,Z){let $=[];if(Q.forEach((Y)=>{let z=K.all(Y,`[${r}]`),J=K.all(Y,`[${this.binding(F0)}]`);z.concat(Y).forEach((W)=>{let q=this.componentID(W);if(a(q)&&$.indexOf(q)===-1)$.push(q)}),J.concat(Y).forEach((W)=>{let q=this.getHook(W);q&&this.destroyHook(q)})}),Z)this.maybePushComponentsDestroyed($)}joinNewChildren(){K.findPhxChildren(this.el,this.id).forEach((Q)=>this.joinChild(Q))}getChildById(Q){return this.root.children[this.id][Q]}getDescendentByEl(Q){if(Q.id===this.id)return this;else return this.children[Q.getAttribute(K0)][Q.id]}destroyDescendent(Q){for(let Z in this.root.children)for(let $ in this.root.children[Z])if($===Q)return this.root.children[Z][$].destroy()}joinChild(Q){if(!this.getChildById(Q.id)){let $=new $5(Q,this.liveSocket,this);return this.root.children[this.id][$.id]=$,$.join(),this.childJoins++,!0}}isJoinPending(){return this.joinPending}ackJoin(Q){if(this.childJoins--,this.childJoins===0)if(this.parent)this.parent.ackJoin(this);else this.onAllChildJoinsComplete()}onAllChildJoinsComplete(){this.joinCallback(()=>{this.pendingJoinOps.forEach(([Q,Z])=>{if(!Q.isDestroyed())Z()}),this.pendingJoinOps=[]})}update(Q,Z){if(this.isJoinPending()||this.liveSocket.hasPendingLink()&&this.root.isMain())return this.pendingDiffs.push({diff:Q,events:Z});this.rendered.mergeDiff(Q);let $=!1;if(this.rendered.isComponentOnlyDiff(Q))this.liveSocket.time("component patch complete",()=>{K.findExistingParentCIDs(this.el,this.rendered.componentCIDs(Q)).forEach((z)=>{if(this.componentPatch(this.rendered.getComponent(Q,z),z))$=!0})});else if(!_1(Q))this.liveSocket.time("full patch complete",()=>{let[Y,z]=this.renderContainer(Q,"update"),J=new E0(this,this.el,this.id,Y,z,null);$=this.performPatch(J,!0)});if(this.liveSocket.dispatchEvents(Z),$)this.joinNewChildren()}renderContainer(Q,Z){return this.liveSocket.time(`toString diff (${Z})`,()=>{let $=this.el.tagName,Y=Q?this.rendered.componentCIDs(Q):null,[z,J]=this.rendered.toString(Y);return[`<${$}>${z}`,J]})}componentPatch(Q,Z){if(_1(Q))return!1;let[$,Y]=this.rendered.componentToString(Z),z=new E0(this,this.el,this.id,$,Y,Z);return this.performPatch(z,!0)}getHook(Q){return this.viewHooks[O0.elementID(Q)]}addHook(Q){if(O0.elementID(Q)||!Q.getAttribute)return;let Z=Q.getAttribute(`data-phx-${F0}`)||Q.getAttribute(this.binding(F0));if(Z&&!this.ownsElement(Q))return;let $=this.liveSocket.getHookCallbacks(Z);if($){if(!Q.id)h(`no DOM ID for hook "${Z}". Hooks require a unique ID on each element.`,Q);let Y=new O0(this,Q,$);return this.viewHooks[O0.elementID(Y.el)]=Y,Y}else if(Z!==null)h(`unknown hook found for "${Z}"`,Q)}destroyHook(Q){Q.__destroyed(),Q.__cleanup__(),delete this.viewHooks[O0.elementID(Q.el)]}applyPendingUpdates(){this.pendingDiffs.forEach(({diff:Q,events:Z})=>this.update(Q,Z)),this.pendingDiffs=[],this.eachChild((Q)=>Q.applyPendingUpdates())}eachChild(Q){let Z=this.root.children[this.id]||{};for(let $ in Z)Q(this.getChildById($))}onChannel(Q,Z){this.liveSocket.onChannel(this.channel,Q,($)=>{if(this.isJoinPending())this.root.pendingJoinOps.push([this,()=>Z($)]);else this.liveSocket.requestDOMUpdate(()=>Z($))})}bindChannel(){this.liveSocket.onChannel(this.channel,"diff",(Q)=>{this.liveSocket.requestDOMUpdate(()=>{this.applyDiff("update",Q,({diff:Z,events:$})=>this.update(Z,$))})}),this.onChannel("redirect",({to:Q,flash:Z})=>this.onRedirect({to:Q,flash:Z})),this.onChannel("live_patch",(Q)=>this.onLivePatch(Q)),this.onChannel("live_redirect",(Q)=>this.onLiveRedirect(Q)),this.channel.onError((Q)=>this.onError(Q)),this.channel.onClose((Q)=>this.onClose(Q))}destroyAllChildren(){this.eachChild((Q)=>Q.destroy())}onLiveRedirect(Q){let{to:Z,kind:$,flash:Y}=Q,z=this.expandURL(Z);this.liveSocket.historyRedirect(z,$,Y)}onLivePatch(Q){let{to:Z,kind:$}=Q;this.href=this.expandURL(Z),this.liveSocket.historyPatch(Z,$)}expandURL(Q){return Q.startsWith("/")?`${window.location.protocol}//${window.location.host}${Q}`:Q}onRedirect({to:Q,flash:Z}){this.liveSocket.redirect(Q,Z)}isDestroyed(){return this.destroyed}joinDead(){this.isDead=!0}join(Q){if(this.showLoader(this.liveSocket.loaderTimeout),this.bindChannel(),this.isMain())this.stopCallback=this.liveSocket.withPageLoading({to:this.href,kind:"initial"});this.joinCallback=(Z)=>{Z=Z||function(){},Q?Q(this.joinCount,Z):Z()},this.liveSocket.wrapPush(this,{timeout:!1},()=>{return this.channel.join().receive("ok",(Z)=>{if(!this.isDestroyed())this.liveSocket.requestDOMUpdate(()=>this.onJoin(Z))}).receive("error",(Z)=>!this.isDestroyed()&&this.onJoinError(Z)).receive("timeout",()=>!this.isDestroyed()&&this.onJoinError({reason:"timeout"}))})}onJoinError(Q){if(Q.reason==="reload"){if(this.log("error",()=>[`failed mount with ${Q.status}. Falling back to page request`,Q]),this.isMain())this.onRedirect({to:this.href});return}else if(Q.reason==="unauthorized"||Q.reason==="stale"){if(this.log("error",()=>["unauthorized live_redirect. Falling back to page request",Q]),this.isMain())this.onRedirect({to:this.href});return}if(Q.redirect||Q.live_redirect)this.joinPending=!1,this.channel.leave();if(Q.redirect)return this.onRedirect(Q.redirect);if(Q.live_redirect)return this.onLiveRedirect(Q.live_redirect);if(this.displayError([L0,g0,e0]),this.log("error",()=>["unable to join",Q]),this.liveSocket.isConnected())this.liveSocket.reloadWithJitter(this)}onClose(Q){if(this.isDestroyed())return;if(this.liveSocket.hasPendingLink()&&Q!=="leave")return this.liveSocket.reloadWithJitter(this);if(this.destroyAllChildren(),this.liveSocket.dropActiveElement(this),document.activeElement)document.activeElement.blur();if(this.liveSocket.isUnloaded())this.showLoader(_5)}onError(Q){if(this.onClose(Q),this.liveSocket.isConnected())this.log("error",()=>["view crashed",Q]);if(!this.liveSocket.isUnloaded())if(this.liveSocket.isConnected())this.displayError([L0,g0,e0]);else this.displayError([L0,g0,P1])}displayError(Q){if(this.isMain())K.dispatchEvent(window,"phx:page-loading-start",{detail:{to:this.href,kind:"error"}});this.showLoader(),this.setContainerClasses(...Q),this.execAll(this.binding("disconnected"))}pushWithReply(Q,Z,$,Y=function(){}){if(!this.isConnected())return;let[z,[J],W]=Q?Q():[null,[],{}],q=function(){};if(W.page_loading||J&&J.getAttribute(this.binding(R1))!==null)q=this.liveSocket.withPageLoading({kind:"element",target:J});if(typeof $.cid!=="number")delete $.cid;return this.liveSocket.wrapPush(this,{timeout:!0},()=>{return this.channel.push(Z,$,h5).receive("ok",(G)=>{let j=(B)=>{if(G.redirect)this.onRedirect(G.redirect);if(G.live_patch)this.onLivePatch(G.live_patch);if(G.live_redirect)this.onLiveRedirect(G.live_redirect);q(),Y(G,B)};if(G.diff)this.liveSocket.requestDOMUpdate(()=>{this.applyDiff("update",G.diff,({diff:B,reply:U,events:V})=>{if(z!==null)this.undoRefs(z);this.update(B,V),j(U)})});else{if(z!==null)this.undoRefs(z);j(null)}})})}undoRefs(Q){if(!this.isConnected())return;K.all(document,`[${Q0}="${this.id}"][${v}="${Q}"]`,(Z)=>{let $=Z.getAttribute(G0),Y=Z.getAttribute(Q1);if(Z.removeAttribute(v),Z.removeAttribute(Q0),Y!==null)Z.readOnly=Y==="true"?!0:!1,Z.removeAttribute(Q1);if($!==null)Z.disabled=$==="true"?!0:!1,Z.removeAttribute(G0);a1.forEach((W)=>K.removeClass(Z,W));let z=Z.getAttribute(C0);if(z!==null)Z.innerText=z,Z.removeAttribute(C0);let J=K.private(Z,v);if(J){let W=this.triggerBeforeUpdateHook(Z,J);if(E0.patchEl(Z,J,this.liveSocket.getActiveElement()),W)W.__updated();K.deletePrivate(Z,v)}})}putRef(Q,Z,$={}){let Y=this.ref++,z=this.binding(M1);if($.loading)Q=Q.concat(K.all(document,$.loading));return Q.forEach((J)=>{J.classList.add(`phx-${Z}-loading`),J.setAttribute(v,Y),J.setAttribute(Q0,this.el.id);let W=J.getAttribute(z);if(W!==null){if(!J.getAttribute(C0))J.setAttribute(C0,J.innerText);if(W!=="")J.innerText=W;J.setAttribute(G0,J.getAttribute(G0)||J.disabled),J.setAttribute("disabled","")}}),[Y,Q,$]}componentID(Q){let Z=Q.getAttribute&&Q.getAttribute(r);return Z?parseInt(Z):null}targetComponentID(Q,Z,$={}){if(a(Z))return Z;let Y=$.target||Q.getAttribute(this.binding("target"));if(a(Y))return parseInt(Y);else if(Z&&(Y!==null||$.target))return this.closestComponentID(Z);else return null}closestComponentID(Q){if(a(Q))return Q;else if(Q)return Z0(Q.closest(`[${r}]`),(Z)=>this.ownsElement(Z)&&this.componentID(Z));else return null}pushHookEvent(Q,Z,$,Y,z){if(!this.isConnected())return this.log("hook",()=>["unable to push hook event. LiveView not connected",$,Y]),!1;let[J,W,q]=this.putRef([Q],"hook");return this.pushWithReply(()=>[J,W,q],"event",{type:"hook",event:$,value:Y,cid:this.closestComponentID(Z)},(G,j)=>z(j,J)),J}extractMeta(Q,Z,$){let Y=this.binding("value-");for(let z=0;z=0&&!Q.checked)delete Z.value}if($){if(!Z)Z={};for(let z in $)Z[z]=$[z]}return Z}pushEvent(Q,Z,$,Y,z,J={},W){this.pushWithReply(()=>this.putRef([Z],Q,J),"event",{type:Q,event:Y,value:this.extractMeta(Z,z,J.value),cid:this.targetComponentID(Z,$,J)},(q,G)=>W&&W(G))}pushFileProgress(Q,Z,$,Y=function(){}){this.liveSocket.withinOwners(Q.form,(z,J)=>{z.pushWithReply(null,"progress",{event:Q.getAttribute(z.binding(N5)),ref:Q.getAttribute(o),entry_ref:Z,progress:$,cid:z.targetComponentID(Q.form,J)},Y)})}pushInput(Q,Z,$,Y,z,J){let W,q=a($)?$:this.targetComponentID(Q.form,Z,z),G=()=>this.putRef([Q,Q.form],"change",z),j,B=this.extractMeta(Q.form);if(Q instanceof HTMLButtonElement)B.submitter=Q;if(Q.getAttribute(this.binding("change")))j=u0(Q.form,{_target:z._target,...B},[Q.name]);else j=u0(Q.form,{_target:z._target,...B});if(K.isUploadInput(Q)&&Q.files&&Q.files.length>0)w.trackFiles(Q,Array.from(Q.files));W=w.serializeUploads(Q);let U={type:"form",event:Y,value:j,uploads:W,cid:q};this.pushWithReply(G,"event",U,(V)=>{if(K.showError(Q,this.liveSocket.binding(m0),this.liveSocket.binding(c0)),K.isUploadInput(Q)&&K.isAutoUpload(Q)){if(w.filesAwaitingPreflight(Q).length>0){let[X,L]=G();this.uploadFiles(Q.form,Z,X,q,(H)=>{J&&J(V),this.triggerAwaitingSubmit(Q.form),this.undoRefs(X)})}}else J&&J(V)})}triggerAwaitingSubmit(Q){let Z=this.getScheduledSubmit(Q);if(Z){let[$,Y,z,J]=Z;this.cancelSubmit(Q),J()}}getScheduledSubmit(Q){return this.formSubmits.find(([Z,$,Y,z])=>Z.isSameNode(Q))}scheduleSubmit(Q,Z,$,Y){if(this.getScheduledSubmit(Q))return!0;this.formSubmits.push([Q,Z,$,Y])}cancelSubmit(Q){this.formSubmits=this.formSubmits.filter(([Z,$,Y])=>{if(Z.isSameNode(Q))return this.undoRefs($),!1;else return!0})}disableForm(Q,Z={}){let $=(B)=>{return!(R0(B,`${this.binding(d0)}=ignore`,B.form)||R0(B,"data-phx-update=ignore",B.form))},Y=(B)=>{return B.hasAttribute(this.binding(M1))},z=(B)=>B.tagName=="BUTTON",J=(B)=>["INPUT","TEXTAREA","SELECT"].includes(B.tagName),W=Array.from(Q.elements),q=W.filter(Y),G=W.filter(z).filter($),j=W.filter(J).filter($);return G.forEach((B)=>{B.setAttribute(G0,B.disabled),B.disabled=!0}),j.forEach((B)=>{if(B.setAttribute(Q1,B.readOnly),B.readOnly=!0,B.files)B.setAttribute(G0,B.disabled),B.disabled=!0}),Q.setAttribute(this.binding(R1),""),this.putRef([Q].concat(q).concat(G).concat(j),"submit",Z)}pushFormSubmit(Q,Z,$,Y,z,J){let W=()=>this.disableForm(Q,z),q=this.targetComponentID(Q,Z);if(w.hasUploadsInProgress(Q)){let[G,j]=W(),B=()=>this.pushFormSubmit(Q,Z,$,Y,z,J);return this.scheduleSubmit(Q,G,z,B)}else if(w.inputsAwaitingPreflight(Q).length>0){let[G,j]=W(),B=()=>[G,j,z];this.uploadFiles(Q,Z,G,q,(U)=>{if(w.inputsAwaitingPreflight(Q).length>0)return this.undoRefs(G);let V=this.extractMeta(Q),X=u0(Q,{submitter:Y,...V});this.pushWithReply(B,"event",{type:"form",event:$,value:X,cid:q},J)})}else if(!(Q.hasAttribute(v)&&Q.classList.contains("phx-submit-loading"))){let G=this.extractMeta(Q),j=u0(Q,{submitter:Y,...G});this.pushWithReply(W,"event",{type:"form",event:$,value:j,cid:q},J)}}uploadFiles(Q,Z,$,Y,z){let J=this.joinCount,W=w.activeFileInputs(Q),q=W.length;W.forEach((G)=>{let j=new w(G,this,()=>{if(q--,q===0)z()}),B=j.entries().map((V)=>V.toPreflightPayload());if(B.length===0){q--;return}let U={ref:G.getAttribute(o),entries:B,cid:this.targetComponentID(G.form,Z)};this.log("upload",()=>["sending preflight request",U]),this.pushWithReply(null,"allow_upload",U,(V)=>{if(this.log("upload",()=>["got preflight response",V]),j.entries().forEach((X)=>{if(V.entries&&!V.entries[X.ref])this.handleFailedEntryPreflight(X.ref,"failed preflight",j)}),V.error||Object.keys(V.entries).length===0)this.undoRefs($),(V.error||[]).map(([L,H])=>{this.handleFailedEntryPreflight(L,H,j)});else{let X=(L)=>{this.channel.onError(()=>{if(this.joinCount===J)L()})};j.initAdapterUpload(V,X,this.liveSocket)}})})}handleFailedEntryPreflight(Q,Z,$){if($.isAutoUpload()){let Y=$.entries().find((z)=>z.ref===Q.toString());if(Y)Y.cancel()}else $.entries().map((Y)=>Y.cancel());this.log("upload",()=>[`error for entry ${Q}`,Z])}dispatchUploads(Q,Z,$){let Y=this.targetCtxElement(Q)||this.el,z=K.findUploadInputs(Y).filter((J)=>J.name===Z);if(z.length===0)h(`no live file inputs found matching the name "${Z}"`);else if(z.length>1)h(`duplicate live file inputs found matching the name "${Z}"`);else K.dispatchEvent(z[0],r1,{detail:{files:$}})}targetCtxElement(Q){if(a(Q)){let[Z]=K.findComponentNodeList(this.el,Q);return Z}else if(Q)return Q;else return null}pushFormRecovery(Q,Z,$){this.liveSocket.withinOwners(Q,(Y,z)=>{let J=this.binding("change"),W=Array.from(Q.elements).filter((j)=>K.isFormInput(j)&&j.name&&!j.hasAttribute(J));if(W.length===0)return;W.forEach((j)=>j.hasAttribute(o)&&w.clearFiles(j));let q=W.find((j)=>j.type!=="hidden")||W[0],G=Q.getAttribute(this.binding(y1))||Q.getAttribute(this.binding("change"));T.exec("change",G,Y,q,["push",{_target:q.name,newCid:Z,callback:$}])})}pushLinkPatch(Q,Z,$){let Y=this.liveSocket.setPendingLink(Q),z=Z?()=>this.putRef([Z],"click"):null,J=()=>this.liveSocket.redirect(window.location.href),W=Q.startsWith("/")?`${location.protocol}//${location.host}${Q}`:Q,q=this.pushWithReply(z,"live_patch",{url:W},(G)=>{this.liveSocket.requestDOMUpdate(()=>{if(G.link_redirect)this.liveSocket.replaceMain(Q,null,$,Y);else{if(this.liveSocket.commitPendingLink(Y))this.href=Q;this.applyPendingUpdates(),$&&$(Y)}})});if(q)q.receive("timeout",J);else J()}formsForRecovery(Q){if(this.joinCount===0)return[];let Z=this.binding("change"),$=document.createElement("template");return $.innerHTML=Q,K.all(this.el,`form[${Z}]`).filter((Y)=>Y.id&&this.ownsElement(Y)).filter((Y)=>Y.elements.length>0).filter((Y)=>Y.getAttribute(this.binding(y1))!=="ignore").map((Y)=>{const z=CSS.escape(Y.getAttribute(Z));let J=$.content.querySelector(`form[id="${Y.id}"][${Z}="${z}"]`);if(J)return[Y,J,this.targetComponentID(J)];else return[Y,Y,this.targetComponentID(Y)]}).filter(([Y,z,J])=>z)}maybePushComponentsDestroyed(Q){let Z=Q.filter(($)=>{return K.findComponentNodeList(this.el,$).length===0});if(Z.length>0)Z.forEach(($)=>this.rendered.resetRender($)),this.pushWithReply(null,"cids_will_destroy",{cids:Z},()=>{let $=Z.filter((Y)=>{return K.findComponentNodeList(this.el,Y).length===0});if($.length>0)this.pushWithReply(null,"cids_destroyed",{cids:$},(Y)=>{this.rendered.pruneCIDs(Y.cids)})})}ownsElement(Q){let Z=Q.closest(U0);return Q.getAttribute(K0)===this.id||Z&&Z.id===this.id||!Z&&this.isDead}submitForm(Q,Z,$,Y,z={}){K.putPrivate(Q,s0,!0);const J=this.liveSocket.binding(m0),W=this.liveSocket.binding(c0),q=Array.from(Q.elements);q.forEach((G)=>K.putPrivate(G,s0,!0)),this.liveSocket.blurActiveElement(this),this.pushFormSubmit(Q,Z,$,Y,z,()=>{q.forEach((G)=>K.showError(G,J,W)),this.liveSocket.restorePreviouslyActiveFocus()})}binding(Q){return this.liveSocket.binding(Q)}},Y5=class{constructor(Q,Z,$={}){if(this.unloaded=!1,!Z||Z.constructor.name==="Object")throw new Error(` +`);Q.push(z)}}),Q.forEach((z)=>z.remove())}},replaceRootContainer(Z,$,Q){const z=new Set(["id",l,M0,w1,G0]);if(Z.tagName.toLowerCase()===$.toLowerCase())return Array.from(Z.attributes).filter((J)=>!z.has(J.name.toLowerCase())).forEach((J)=>Z.removeAttribute(J.name)),Object.keys(Q).filter((J)=>!z.has(J.toLowerCase())).forEach((J)=>Z.setAttribute(J,Q[J])),Z;else{const J=document.createElement($);return Object.keys(Q).forEach((W)=>J.setAttribute(W,Q[W])),z.forEach((W)=>J.setAttribute(W,Z.getAttribute(W))),J.innerHTML=Z.innerHTML,Z.replaceWith(J),J}},getSticky(Z,$,Q){const z=(K0.private(Z,"sticky")||[]).find(([J])=>$===J);if(z){const[J,W,q]=z;return q}else return typeof Q==="function"?Q():Q},deleteSticky(Z,$){this.updatePrivate(Z,"sticky",[],(Q)=>{return Q.filter(([z,J])=>z!==$)})},putSticky(Z,$,Q){const z=Q(Z);this.updatePrivate(Z,"sticky",[],(J)=>{const W=J.findIndex(([q])=>$===q);if(W>=0)J[W]=[$,Q,z];else J.push([$,Q,z]);return J})},applyStickyOperations(Z){const $=K0.private(Z,"sticky");if(!$)return;$.forEach(([Q,z,J])=>this.putSticky(Z,Q,z))},isLocked(Z){return Z.hasAttribute&&Z.hasAttribute(y)}},j=K0,g0=class{static isActive(Z,$){const Q=$._phxRef===void 0,J=Z.getAttribute(X1).split(",").indexOf(g.genFileRef($))>=0;return $.size>0&&(Q||J)}static isPreflighted(Z,$){return Z.getAttribute(O1).split(",").indexOf(g.genFileRef($))>=0&&this.isActive(Z,$)}static isPreflightInProgress(Z){return Z._preflightInProgress===!0}static markPreflightInProgress(Z){Z._preflightInProgress=!0}constructor(Z,$,Q,z){this.ref=g.genFileRef($),this.fileEl=Z,this.file=$,this.view=Q,this.meta=null,this._isCancelled=!1,this._isDone=!1,this._progress=0,this._lastProgressSent=-1,this._onDone=function(){},this._onElUpdated=this.onElUpdated.bind(this),this.fileEl.addEventListener(r0,this._onElUpdated),this.autoUpload=z}metadata(){return this.meta}progress(Z){if(this._progress=Math.floor(Z),this._progress>this._lastProgressSent)if(this._progress>=100)this._progress=100,this._lastProgressSent=100,this._isDone=!0,this.view.pushFileProgress(this.fileEl,this.ref,100,()=>{g.untrackFile(this.fileEl,this.file),this._onDone()});else this._lastProgressSent=this._progress,this.view.pushFileProgress(this.fileEl,this.ref,this._progress)}isCancelled(){return this._isCancelled}cancel(){this.file._preflightInProgress=!1,this._isCancelled=!0,this._isDone=!0,this._onDone()}isDone(){return this._isDone}error(Z="failed"){if(this.fileEl.removeEventListener(r0,this._onElUpdated),this.view.pushFileProgress(this.fileEl,this.ref,{error:Z}),!this.isAutoUpload())g.clearFiles(this.fileEl)}isAutoUpload(){return this.autoUpload}onDone(Z){this._onDone=()=>{this.fileEl.removeEventListener(r0,this._onElUpdated),Z()}}onElUpdated(){if(this.fileEl.getAttribute(X1).split(",").indexOf(this.ref)===-1)g.untrackFile(this.fileEl,this.file),this.cancel()}toPreflightPayload(){return{last_modified:this.file.lastModified,name:this.file.name,relative_path:this.file.webkitRelativePath,size:this.file.size,type:this.file.type,ref:this.ref,meta:typeof this.file.meta==="function"?this.file.meta():void 0}}uploader(Z){if(this.meta.uploader){const $=Z[this.meta.uploader]||b(`no uploader configured for ${this.meta.uploader}`);return{name:this.meta.uploader,callback:$}}else return{name:"channel",callback:z9}}zipPostFlight(Z){if(this.meta=Z.entries[this.ref],!this.meta)b(`no preflight upload response returned with ref ${this.ref}`,{input:this.fileEl,response:Z})}},W9=0,g=class Z{static genFileRef($){const Q=$._phxRef;if(Q!==void 0)return Q;else return $._phxRef=(W9++).toString(),$._phxRef}static getEntryDataURL($,Q,z){const J=this.activeFiles($).find((W)=>this.genFileRef(W)===Q);z(URL.createObjectURL(J))}static hasUploadsInProgress($){let Q=0;return j.findUploadInputs($).forEach((z)=>{if(z.getAttribute(O1)!==z.getAttribute(u5))Q++}),Q>0}static serializeUploads($){const Q=this.activeFiles($),z={};return Q.forEach((J)=>{const W={path:$.name},q=$.getAttribute(z0);if(z[q]=z[q]||[],W.ref=this.genFileRef(J),W.last_modified=J.lastModified,W.name=J.name||W.ref,W.relative_path=J.webkitRelativePath,W.type=J.type,W.size=J.size,typeof J.meta==="function")W.meta=J.meta();z[q].push(W)}),z}static clearFiles($){$.value=null,$.removeAttribute(z0),j.putPrivate($,"files",[])}static untrackFile($,Q){j.putPrivate($,"files",j.private($,"files").filter((z)=>!Object.is(z,Q)))}static trackFiles($,Q,z){if($.getAttribute("multiple")!==null){const J=Q.filter((W)=>!this.activeFiles($).find((q)=>Object.is(q,W)));j.updatePrivate($,"files",[],(W)=>W.concat(J)),$.value=null}else{if(z&&z.files.length>0)$.files=z.files;j.putPrivate($,"files",Q)}}static activeFileInputs($){const Q=j.findUploadInputs($);return Array.from(Q).filter((z)=>z.files&&this.activeFiles(z).length>0)}static activeFiles($){return(j.private($,"files")||[]).filter((Q)=>g0.isActive($,Q))}static inputsAwaitingPreflight($){const Q=j.findUploadInputs($);return Array.from(Q).filter((z)=>this.filesAwaitingPreflight(z).length>0)}static filesAwaitingPreflight($){return this.activeFiles($).filter((Q)=>!g0.isPreflighted($,Q)&&!g0.isPreflightInProgress(Q))}static markPreflightInProgress($){$.forEach((Q)=>g0.markPreflightInProgress(Q.file))}constructor($,Q,z){this.autoUpload=j.isAutoUpload($),this.view=Q,this.onComplete=z,this._entries=Array.from(Z.filesAwaitingPreflight($)||[]).map((J)=>new g0($,J,Q,this.autoUpload)),Z.markPreflightInProgress(this._entries),this.numEntriesInProgress=this._entries.length}isAutoUpload(){return this.autoUpload}entries(){return this._entries}initAdapterUpload($,Q,z){this._entries=this._entries.map((W)=>{if(W.isCancelled()){if(this.numEntriesInProgress--,this.numEntriesInProgress===0)this.onComplete()}else W.zipPostFlight($),W.onDone(()=>{if(this.numEntriesInProgress--,this.numEntriesInProgress===0)this.onComplete()});return W});const J=this._entries.reduce((W,q)=>{if(!q.meta)return W;const{name:Y,callback:G}=q.uploader(z.uploaders);return W[Y]=W[Y]||{callback:G,entries:[]},W[Y].entries.push(q),W},{});for(let W in J){const{callback:q,entries:Y}=J[W];q(Y,Q,$,z)}}},q9={anyOf(Z,$){return $.find((Q)=>Z instanceof Q)},isFocusable(Z,$){return Z instanceof HTMLAnchorElement&&Z.rel!=="ignore"||Z instanceof HTMLAreaElement&&Z.href!==void 0||!Z.disabled&&this.anyOf(Z,[HTMLInputElement,HTMLSelectElement,HTMLTextAreaElement,HTMLButtonElement])||Z instanceof HTMLIFrameElement||Z.tabIndex>=0&&Z.getAttribute("aria-hidden")!=="true"||!$&&Z.getAttribute("tabindex")!==null&&Z.getAttribute("aria-hidden")!=="true"},attemptFocus(Z,$){if(this.isFocusable(Z,$))try{Z.focus()}catch{}return!!document.activeElement&&document.activeElement.isSameNode(Z)},focusFirstInteractive(Z){let $=Z.firstElementChild;while($){if(this.attemptFocus($,!0)||this.focusFirstInteractive($))return!0;$=$.nextElementSibling}},focusFirst(Z){let $=Z.firstElementChild;while($){if(this.attemptFocus($)||this.focusFirst($))return!0;$=$.nextElementSibling}},focusLast(Z){let $=Z.lastElementChild;while($){if(this.attemptFocus($)||this.focusLast($))return!0;$=$.previousElementSibling}}},m=q9,K5={LiveFileUpload:{activeRefs(){return this.el.getAttribute(X1)},preflightedRefs(){return this.el.getAttribute(O1)},mounted(){this.preflightedWas=this.preflightedRefs()},updated(){const Z=this.preflightedRefs();if(this.preflightedWas!==Z){if(this.preflightedWas=Z,Z==="")this.__view().cancelSubmit(this.el.form)}if(this.activeRefs()==="")this.el.value=null;this.el.dispatchEvent(new CustomEvent(r0))}},LiveImgPreview:{mounted(){this.ref=this.el.getAttribute("data-phx-entry-ref"),this.inputEl=document.getElementById(this.el.getAttribute(z0)),g.getEntryDataURL(this.inputEl,this.ref,(Z)=>{this.url=Z,this.el.src=Z})},destroyed(){URL.revokeObjectURL(this.url)}},FocusWrap:{mounted(){if(this.focusStart=this.el.firstElementChild,this.focusEnd=this.el.lastElementChild,this.focusStart.addEventListener("focus",(Z)=>{if(!Z.relatedTarget||!this.el.contains(Z.relatedTarget)){const $=Z.target.nextElementSibling;m.attemptFocus($)||m.focusFirst($)}else m.focusLast(this.el)}),this.focusEnd.addEventListener("focus",(Z)=>{if(!Z.relatedTarget||!this.el.contains(Z.relatedTarget)){const $=Z.target.previousElementSibling;m.attemptFocus($)||m.focusLast($)}else m.focusFirst(this.el)}),!this.el.contains(document.activeElement)){if(this.el.addEventListener("phx:show-end",()=>this.el.focus()),window.getComputedStyle(this.el).display!=="none")m.focusFirst(this.el)}}}},M5=(Z)=>{if(["HTML","BODY"].indexOf(Z.nodeName.toUpperCase())>=0)return null;if(["scroll","auto"].indexOf(getComputedStyle(Z).overflowY)>=0)return Z;return M5(Z.parentElement)},n1=(Z)=>{if(Z)return Z.scrollTop;else return document.documentElement.scrollTop||document.body.scrollTop},R1=(Z)=>{if(Z)return Z.getBoundingClientRect().bottom;else return window.innerHeight||document.documentElement.clientHeight},P1=(Z)=>{if(Z)return Z.getBoundingClientRect().top;else return 0},Y9=(Z,$)=>{const Q=Z.getBoundingClientRect();return Math.ceil(Q.top)>=P1($)&&Math.ceil(Q.left)>=0&&Math.floor(Q.top)<=R1($)},G9=(Z,$)=>{const Q=Z.getBoundingClientRect();return Math.ceil(Q.bottom)>=P1($)&&Math.ceil(Q.left)>=0&&Math.floor(Q.bottom)<=R1($)},a1=(Z,$)=>{const Q=Z.getBoundingClientRect();return Math.ceil(Q.top)>=P1($)&&Math.ceil(Q.left)>=0&&Math.floor(Q.top)<=R1($)};K5.InfiniteScroll={mounted(){this.scrollContainer=M5(this.el);let Z=n1(this.scrollContainer),$=!1;const Q=500;let z=null;const J=this.throttle(Q,(Y,G)=>{z=()=>!0,this.liveSocket.js().push(this.el,Y,{value:{id:G.id,_overran:!0},callback:()=>{z=null}})}),W=this.throttle(Q,(Y,G)=>{z=()=>G.scrollIntoView({block:"start"}),this.liveSocket.js().push(this.el,Y,{value:{id:G.id},callback:()=>{z=null,window.requestAnimationFrame(()=>{if(!a1(G,this.scrollContainer))G.scrollIntoView({block:"start"})})}})}),q=this.throttle(Q,(Y,G)=>{z=()=>G.scrollIntoView({block:"end"}),this.liveSocket.js().push(this.el,Y,{value:{id:G.id},callback:()=>{z=null,window.requestAnimationFrame(()=>{if(!a1(G,this.scrollContainer))G.scrollIntoView({block:"end"})})}})});if(this.onScroll=(Y)=>{const G=n1(this.scrollContainer);if(z)return Z=G,z();const B=this.el.getBoundingClientRect(),K=this.el.getAttribute(this.liveSocket.binding("viewport-top")),M=this.el.getAttribute(this.liveSocket.binding("viewport-bottom")),X=this.el.lastElementChild,F=this.el.firstElementChild,V=GZ;if(V&&K&&!$&&B.top>=0)$=!0,J(K,F);else if(L&&$&&B.top<=0)$=!1;if(K&&V&&Y9(F,this.scrollContainer))W(K,F);else if(M&&L&&G9(X,this.scrollContainer))q(M,X);Z=G},this.scrollContainer)this.scrollContainer.addEventListener("scroll",this.onScroll);else window.addEventListener("scroll",this.onScroll)},destroyed(){if(this.scrollContainer)this.scrollContainer.removeEventListener("scroll",this.onScroll);else window.removeEventListener("scroll",this.onScroll)},throttle(Z,$){let Q=0,z;return(...J)=>{const W=Date.now(),q=Z-(W-Q);if(q<=0||q>Z){if(z)clearTimeout(z),z=null;Q=W,$(...J)}else if(!z)z=setTimeout(()=>{Q=Date.now(),z=null,$(...J)},q)}}};var B9=K5,A1=class{static onUnlock(Z,$){if(!j.isLocked(Z)&&!Z.closest(`[${y}]`))return $();const Q=Z.closest(`[${y}]`),z=Q.closest(`[${y}]`).getAttribute(y);Q.addEventListener(`phx:undo-lock:${z}`,()=>{$()},{once:!0})}constructor(Z){this.el=Z,this.loadingRef=Z.hasAttribute(O0)?parseInt(Z.getAttribute(O0),10):null,this.lockRef=Z.hasAttribute(y)?parseInt(Z.getAttribute(y),10):null}maybeUndo(Z,$,Q){if(!this.isWithin(Z)){j.updatePrivate(this.el,y1,[],(z)=>{return z.push(Z),z});return}if(this.undoLocks(Z,$,Q),this.undoLoading(Z,$),j.updatePrivate(this.el,y1,[],(z)=>{return z.filter((J)=>{let W={detail:{ref:J,event:$},bubbles:!0,cancelable:!1};if(this.loadingRef&&this.loadingRef>J)this.el.dispatchEvent(new CustomEvent(`phx:undo-loading:${J}`,W));if(this.lockRef&&this.lockRef>J)this.el.dispatchEvent(new CustomEvent(`phx:undo-lock:${J}`,W));return J>Z})}),this.isFullyResolvedBy(Z))this.el.removeAttribute(d)}isWithin(Z){return!(this.loadingRef!==null&&this.loadingRef>Z&&this.lockRef!==null&&this.lockRef>Z)}undoLocks(Z,$,Q){if(!this.isLockUndoneBy(Z))return;const z=j.private(this.el,y);if(z)Q(z),j.deletePrivate(this.el,y);this.el.removeAttribute(y);const J={detail:{ref:Z,event:$},bubbles:!0,cancelable:!1};this.el.dispatchEvent(new CustomEvent(`phx:undo-lock:${this.lockRef}`,J))}undoLoading(Z,$){if(!this.isLoadingUndoneBy(Z)){if(this.canUndoLoading(Z)&&this.el.classList.contains("phx-submit-loading"))this.el.classList.remove("phx-change-loading");return}if(this.canUndoLoading(Z)){this.el.removeAttribute(O0);const Q=this.el.getAttribute(A0),z=this.el.getAttribute(x1);if(z!==null)this.el.readOnly=z==="true"?!0:!1,this.el.removeAttribute(x1);if(Q!==null)this.el.disabled=Q==="true"?!0:!1,this.el.removeAttribute(A0);const J=this.el.getAttribute(Z1);if(J!==null)this.el.innerText=J,this.el.removeAttribute(Z1);const W={detail:{ref:Z,event:$},bubbles:!0,cancelable:!1};this.el.dispatchEvent(new CustomEvent(`phx:undo-loading:${this.loadingRef}`,W))}W5.forEach((Q)=>{if(Q!=="phx-submit-loading"||this.canUndoLoading(Z))j.removeClass(this.el,Q)})}isLoadingUndoneBy(Z){return this.loadingRef===null?!1:this.loadingRef<=Z}isLockUndoneBy(Z){return this.lockRef===null?!1:this.lockRef<=Z}isFullyResolvedBy(Z){return(this.loadingRef===null||this.loadingRef<=Z)&&(this.lockRef===null||this.lockRef<=Z)}canUndoLoading(Z){return this.lockRef===null||this.lockRef<=Z}},j9=class{constructor(Z,$,Q){const z=new Set,J=new Set([...$.children].map((q)=>q.id)),W=[];Array.from(Z.children).forEach((q)=>{if(q.id){if(z.add(q.id),J.has(q.id)){const Y=q.previousElementSibling&&q.previousElementSibling.id;W.push({elementId:q.id,previousElementId:Y})}}}),this.containerId=$.id,this.updateType=Q,this.elementsToModify=W,this.elementIdsToAdd=[...J].filter((q)=>!z.has(q))}perform(){const Z=j.byId(this.containerId);if(!Z)return;if(this.elementsToModify.forEach(($)=>{if($.previousElementId)U0(document.getElementById($.previousElementId),(Q)=>{U0(document.getElementById($.elementId),(z)=>{if(!(z.previousElementSibling&&z.previousElementSibling.id==Q.id))Q.insertAdjacentElement("afterend",z)})});else U0(document.getElementById($.elementId),(Q)=>{if(Q.previousElementSibling!=null)Z.insertAdjacentElement("afterbegin",Q)})}),this.updateType=="prepend")this.elementIdsToAdd.reverse().forEach(($)=>{U0(document.getElementById($),(Q)=>Z.insertAdjacentElement("afterbegin",Q))})}},r1=11,d0,M9="http://www.w3.org/1999/xhtml",u=typeof document==="undefined"?void 0:document,U9=!!u&&"content"in u.createElement("template"),V9=!!u&&u.createRange&&"createContextualFragment"in u.createRange(),o1={OPTION:function(Z,$){var Q=Z.parentNode;if(Q){var z=Q.nodeName.toUpperCase();if(z==="OPTGROUP")Q=Q.parentNode,z=Q&&Q.nodeName.toUpperCase();if(z==="SELECT"&&!Q.hasAttribute("multiple")){if(Z.hasAttribute("selected")&&!$.selected)Z.setAttribute("selected","selected"),Z.removeAttribute("selected");Q.selectedIndex=-1}}V1(Z,$,"selected")},INPUT:function(Z,$){if(V1(Z,$,"checked"),V1(Z,$,"disabled"),Z.value!==$.value)Z.value=$.value;if(!$.hasAttribute("value"))Z.removeAttribute("value")},TEXTAREA:function(Z,$){var Q=$.value;if(Z.value!==Q)Z.value=Q;var z=Z.firstChild;if(z){var J=z.nodeValue;if(J==Q||!Q&&J==Z.placeholder)return;z.nodeValue=Q}},SELECT:function(Z,$){if(!$.hasAttribute("multiple")){var Q=-1,z=0,J=Z.firstChild,W,q;while(J)if(q=J.nodeName&&J.nodeName.toUpperCase(),q==="OPTGROUP"){if(W=J,J=W.firstChild,!J)J=W.nextSibling,W=null}else{if(q==="OPTION"){if(J.hasAttribute("selected")){Q=z;break}z++}if(J=J.nextSibling,!J&&W)J=W.nextSibling,W=null}Z.selectedIndex=Q}}},k0=1,l1=11,t1=3,e1=8,O9=H9(K9),H1=O9,n0=class{constructor(Z,$,Q,z,J,W,q={}){this.view=Z,this.liveSocket=Z.liveSocket,this.container=$,this.id=Q,this.rootID=Z.root.id,this.html=z,this.streams=J,this.streamInserts={},this.streamComponentRestore={},this.targetCID=W,this.cidPatch=$0(this.targetCID),this.pendingRemoves=[],this.phxRemove=this.liveSocket.binding("remove"),this.targetContainer=this.isCIDPatch()?this.targetCIDContainer(z):$,this.callbacks={beforeadded:[],beforeupdated:[],beforephxChildAdded:[],afteradded:[],afterupdated:[],afterdiscarded:[],afterphxChildAdded:[],aftertransitionsDiscarded:[]},this.withChildren=q.withChildren||q.undoRef||!1,this.undoRef=q.undoRef}before(Z,$){this.callbacks[`before${Z}`].push($)}after(Z,$){this.callbacks[`after${Z}`].push($)}trackBefore(Z,...$){this.callbacks[`before${Z}`].forEach((Q)=>Q(...$))}trackAfter(Z,...$){this.callbacks[`after${Z}`].forEach((Q)=>Q(...$))}markPrunableContentForRemoval(){const Z=this.liveSocket.binding($1);j.all(this.container,`[${Z}=append] > *, [${Z}=prepend] > *`,($)=>{$.setAttribute(g1,"")})}perform(Z){const{view:$,liveSocket:Q,html:z,container:J}=this;let W=this.targetContainer;if(this.isCIDPatch()&&!this.targetContainer)return;if(this.isCIDPatch()){const I=W.closest(`[${y}]`);if(I){const S=j.private(I,y);if(S)W=S.querySelector(`[data-phx-component="${this.targetCID}"]`)}}const q=Q.getActiveElement(),{selectionStart:Y,selectionEnd:G}=q&&j.hasSelectionRange(q)?q:{},B=Q.binding($1),K=Q.binding(L1),M=Q.binding(D1),X=Q.binding(E5),F=[],V=[],L=[],x=[];let T=null;const p=(I,S,k=this.withChildren)=>{const v={childrenOnly:I.getAttribute(Q0)===null&&!k,getNodeKey:(U)=>{if(j.isPhxDestroyed(U))return null;if(Z)return U.id;return U.id||U.getAttribute&&U.getAttribute(G5)},skipFromChildren:(U)=>{return U.getAttribute(B)===o0},addChild:(U,D)=>{const{ref:E,streamAt:i}=this.getStreamInsert(D);if(E===void 0)return U.appendChild(D);if(this.setStreamRef(D,E),i===0)U.insertAdjacentElement("afterbegin",D);else if(i===-1){const O=U.lastElementChild;if(O&&!O.hasAttribute(N0)){const t=Array.from(U.children).find((c)=>!c.hasAttribute(N0));U.insertBefore(D,t)}else U.appendChild(D)}else if(i>0){const O=Array.from(U.children)[i];U.insertBefore(D,O)}},onBeforeNodeAdded:(U)=>{if(this.getStreamInsert(U)?.updateOnly&&!this.streamComponentRestore[U.id])return!1;j.maintainPrivateHooks(U,U,K,M),this.trackBefore("added",U);let D=U;if(this.streamComponentRestore[U.id])D=this.streamComponentRestore[U.id],delete this.streamComponentRestore[U.id],p(D,U,!0);return D},onNodeAdded:(U)=>{if(U.getAttribute)this.maybeReOrderStream(U,!0);if(j.isPortalTemplate(U))x.push(()=>this.teleport(U,p));if(U instanceof HTMLImageElement&&U.srcset)U.srcset=U.srcset;else if(U instanceof HTMLVideoElement&&U.autoplay)U.play();if(j.isNowTriggerFormExternal(U,X))T=U;if(j.isPhxChild(U)&&$.ownsElement(U)||j.isPhxSticky(U)&&$.ownsElement(U.parentNode))this.trackAfter("phxChildAdded",U);if(U.nodeName==="SCRIPT"&&U.hasAttribute(l0))this.handleRuntimeHook(U,S);F.push(U)},onNodeDiscarded:(U)=>this.onNodeDiscarded(U),onBeforeNodeDiscarded:(U)=>{if(U.getAttribute&&U.getAttribute(g1)!==null)return!0;if(U.parentElement!==null&&U.id&&j.isPhxUpdate(U.parentElement,B,[o0,"append","prepend"]))return!1;if(U.getAttribute&&U.getAttribute(w0))return!1;if(this.maybePendingRemove(U))return!1;if(this.skipCIDSibling(U))return!1;if(j.isPortalTemplate(U)){const D=document.getElementById(U.content.firstElementChild.id);if(D)D.remove(),v.onNodeDiscarded(D),this.view.dropPortalElementId(D.id)}return!0},onElUpdated:(U)=>{if(j.isNowTriggerFormExternal(U,X))T=U;V.push(U),this.maybeReOrderStream(U,!1)},onBeforeElUpdated:(U,D)=>{if(U.id&&U.isSameNode(I)&&U.id!==D.id)return v.onNodeDiscarded(U),U.replaceWith(D),v.onNodeAdded(D);if(j.syncPendingAttrs(U,D),j.maintainPrivateHooks(U,D,K,M),j.cleanChildNodes(D,B),this.skipCIDSibling(D))return this.maybeReOrderStream(U),!1;if(j.isPhxSticky(U))return[l,M0,G0].map((O)=>[O,U.getAttribute(O),D.getAttribute(O)]).forEach(([O,t,c])=>{if(c&&t!==c)U.setAttribute(O,c)}),!1;if(j.isIgnored(U,B)||U.form&&U.form.isSameNode(T))return this.trackBefore("updated",U,D),j.mergeAttrs(U,D,{isIgnored:j.isIgnored(U,B)}),V.push(U),j.applyStickyOperations(U),!1;if(U.type==="number"&&U.validity&&U.validity.badInput)return!1;const E=q&&U.isSameNode(q)&&j.isFormInput(U),i=E&&this.isChangedSelect(U,D);if(U.hasAttribute(d)){const O=new A1(U);if(O.lockRef&&(!this.undoRef||!O.isLockUndoneBy(this.undoRef))){if(j.isUploadInput(U))j.mergeAttrs(U,D,{isIgnored:!0}),this.trackBefore("updated",U,D),V.push(U);j.applyStickyOperations(U);const c=U.hasAttribute(y)?j.private(U,y)||U.cloneNode(!0):null;if(c){if(j.putPrivate(U,y,c),!E)U=c}}}if(j.isPhxChild(D)){const O=U.getAttribute(l);if(j.mergeAttrs(U,D,{exclude:[M0]}),O!=="")U.setAttribute(l,O);return U.setAttribute(G0,this.rootID),j.applyStickyOperations(U),!1}if(this.undoRef&&j.private(D,y))j.putPrivate(U,y,j.private(D,y));if(j.copyPrivates(D,U),j.isPortalTemplate(D))return x.push(()=>this.teleport(D,p)),!1;if(E&&U.type!=="hidden"&&!i)return this.trackBefore("updated",U,D),j.mergeFocusedInput(U,D),j.syncAttrsToProps(U),V.push(U),j.applyStickyOperations(U),!1;else{if(i)U.blur();if(j.isPhxUpdate(D,B,["append","prepend"]))L.push(new j9(U,D,D.getAttribute(B)));return j.syncAttrsToProps(D),j.applyStickyOperations(D),this.trackBefore("updated",U,D),U}}};H1(I,S,v)};if(this.trackBefore("added",J),this.trackBefore("updated",J,J),Q.time("morphdom",()=>{if(this.streams.forEach(([I,S,k,v])=>{if(S.forEach(([U,D,E,i])=>{this.streamInserts[U]={ref:I,streamAt:D,limit:E,reset:v,updateOnly:i}}),v!==void 0)j.all(J,`[${N0}="${I}"]`,(U)=>{this.removeStreamChildElement(U)});k.forEach((U)=>{const D=J.querySelector(`[id="${U}"]`);if(D)this.removeStreamChildElement(D)})}),Z)j.all(this.container,`[${B}=${o0}]`).filter((I)=>this.view.ownsElement(I)).forEach((I)=>{Array.from(I.children).forEach((S)=>{this.removeStreamChildElement(S,!0)})});p(W,z),x.forEach((I)=>I()),this.view.portalElementIds.forEach((I)=>{const S=document.getElementById(I);if(S){if(!document.getElementById(S.getAttribute(j1)))S.remove(),this.onNodeDiscarded(S),this.view.dropPortalElementId(I)}})}),Q.isDebugEnabled())e5(),Z9(this.streamInserts),Array.from(document.querySelectorAll("input[name=id]")).forEach((I)=>{if(I instanceof HTMLInputElement&&I.form)console.error('Detected an input with name="id" inside a form! This will cause problems when patching the DOM.\n',I)});if(L.length>0)Q.time("post-morph append/prepend restoration",()=>{L.forEach((I)=>I.perform())});if(Q.silenceEvents(()=>j.restoreFocus(q,Y,G)),j.dispatchEvent(document,"phx:update"),F.forEach((I)=>this.trackAfter("added",I)),V.forEach((I)=>this.trackAfter("updated",I)),this.transitionPendingRemoves(),T){Q.unload();const I=j.private(T,"submitter");if(I&&I.name&&W.contains(I)){const S=document.createElement("input");S.type="hidden";const k=I.getAttribute("form");if(k)S.setAttribute("form",k);S.name=I.name,S.value=I.value,I.parentElement.insertBefore(S,I)}Object.getPrototypeOf(T).submit.call(T)}return!0}onNodeDiscarded(Z){if(j.isPhxChild(Z)||j.isPhxSticky(Z))this.liveSocket.destroyViewByEl(Z);this.trackAfter("discarded",Z)}maybePendingRemove(Z){if(Z.getAttribute&&Z.getAttribute(this.phxRemove)!==null)return this.pendingRemoves.push(Z),!0;else return!1}removeStreamChildElement(Z,$=!1){if(!$&&!this.view.ownsElement(Z))return;if(this.streamInserts[Z.id])this.streamComponentRestore[Z.id]=Z,Z.remove();else if(!this.maybePendingRemove(Z))Z.remove(),this.onNodeDiscarded(Z)}getStreamInsert(Z){return(Z.id?this.streamInserts[Z.id]:{})||{}}setStreamRef(Z,$){j.putSticky(Z,N0,(Q)=>Q.setAttribute(N0,$))}maybeReOrderStream(Z,$){const{ref:Q,streamAt:z,reset:J}=this.getStreamInsert(Z);if(z===void 0)return;if(this.setStreamRef(Z,Q),!J&&!$)return;if(!Z.parentElement)return;if(z===0)Z.parentElement.insertBefore(Z,Z.parentElement.firstElementChild);else if(z>0){const W=Array.from(Z.parentElement.children),q=W.indexOf(Z);if(z>=W.length-1)Z.parentElement.appendChild(Z);else{const Y=W[z];if(q>z)Z.parentElement.insertBefore(Z,Y);else Z.parentElement.insertBefore(Z,Y.nextElementSibling)}}this.maybeLimitStream(Z)}maybeLimitStream(Z){const{limit:$}=this.getStreamInsert(Z),Q=$!==null&&Array.from(Z.parentElement.children);if($&&$<0&&Q.length>$*-1)Q.slice(0,Q.length+$).forEach((z)=>this.removeStreamChildElement(z));else if($&&$>=0&&Q.length>$)Q.slice($).forEach((z)=>this.removeStreamChildElement(z))}transitionPendingRemoves(){const{pendingRemoves:Z,liveSocket:$}=this;if(Z.length>0)$.transitionRemoves(Z,()=>{Z.forEach((Q)=>{const z=j.firstPhxChild(Q);if(z)$.destroyViewByEl(z);Q.remove()}),this.trackAfter("transitionsDiscarded",Z)})}isChangedSelect(Z,$){if(!(Z instanceof HTMLSelectElement)||Z.multiple)return!1;if(Z.options.length!==$.options.length)return!0;return $.value=Z.value,!Z.isEqualNode($)}isCIDPatch(){return this.cidPatch}skipCIDSibling(Z){return Z.nodeType===Node.ELEMENT_NODE&&Z.hasAttribute(Y5)}targetCIDContainer(Z){if(!this.isCIDPatch())return;const[$,...Q]=j.findComponentNodeList(this.view.id,this.targetCID);if(Q.length===0&&j.childNodeLength(Z)===1)return $;else return $&&$.parentNode}indexOf(Z,$){return Array.from(Z.children).indexOf($)}teleport(Z,$){const Q=Z.getAttribute(j5),z=document.querySelector(Q);if(!z)throw new Error("portal target with selector "+Q+" not found");const J=Z.content.firstElementChild;if(this.skipCIDSibling(J))return;if(!J?.id)throw new Error("phx-portal template must have a single root element with ID!");const W=document.getElementById(J.id);let q;if(W){if(!z.contains(W))z.appendChild(W);q=W}else q=document.createElement(J.tagName),z.appendChild(q);J.setAttribute(w0,this.view.id),J.setAttribute(j1,Z.id),$(q,J,!0),J.removeAttribute(w0),J.removeAttribute(j1),this.view.pushPortalElementId(J.id)}handleRuntimeHook(Z,$){const Q=Z.getAttribute(l0);let z=Z.hasAttribute("nonce")?Z.getAttribute("nonce"):null;if(Z.hasAttribute("nonce")){const W=document.createElement("template");W.innerHTML=$,z=W.content.querySelector(`script[${l0}="${CSS.escape(Q)}"]`).getAttribute("nonce")}const J=document.createElement("script");if(J.textContent=Z.textContent,j.mergeAttrs(J,Z,{isIgnored:!1}),z)J.nonce=z;Z.replaceWith(J),Z=J}},w9=new Set(["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),R9=new Set(["'",'"']),Z5=(Z,$,Q)=>{let z=0,J=!1,W,q,Y,G,B,K;const M=Z.match(/^(\s*(?:\s*)*)<([^\s\/>]+)/);if(M===null)throw new Error(`malformed html ${Z}`);z=M[0].length,W=M[1],Y=M[2],G=z;for(z;z")break;if(Z.charAt(z)==="="){const V=Z.slice(z-3,z)===" id";z++;const L=Z.charAt(z);if(R9.has(L)){const x=z;z++;for(z;z=W.length+Y.length){const V=Z.charAt(X);if(J)if(V==="-"&&Z.slice(X-3,X)===""&&Z.slice(X-2,X)==="--")J=!0,X-=3;else if(V===">")break;else X-=1}q=Z.slice(X+1,Z.length);const F=Object.keys($).map((V)=>$[V]===!0?V:`${V}="${$[V]}"`).join(" ");if(Q){const V=B?` id="${B}"`:"";if(w9.has(Y))K=`<${Y}${V}${F===""?"":" "}${F}/>`;else K=`<${Y}${V}${F===""?"":" "}${F}>`}else{const V=Z.slice(G,X+1);K=`<${Y}${F===""?"":" "}${F}${V}`}return[K,W,q]},$5=class{static extract(Z){const{[s1]:$,[c1]:Q,[d1]:z}=Z;return delete Z[s1],delete Z[c1],delete Z[d1],{diff:Z,title:z,reply:$||null,events:Q||[]}}constructor(Z,$){this.viewId=Z,this.rendered={},this.magicId=0,this.mergeDiff($)}parentViewId(){return this.viewId}toString(Z){const{buffer:$,streams:Q}=this.recursiveToString(this.rendered,this.rendered[_],Z,!0,{});return{buffer:$,streams:Q}}recursiveToString(Z,$=Z[_],Q,z,J){Q=Q?new Set(Q):null;const W={buffer:"",components:$,onlyCids:Q,streams:new Set};return this.toOutputBuffer(Z,null,W,z,J),{buffer:W.buffer,streams:W.streams}}componentCIDs(Z){return Object.keys(Z[_]||{}).map(($)=>parseInt($))}isComponentOnlyDiff(Z){if(!Z[_])return!1;return Object.keys(Z).length===1}getComponent(Z,$){return Z[_][$]}resetRender(Z){if(this.rendered[_][Z])this.rendered[_][Z].reset=!0}mergeDiff(Z){const $=Z[_],Q={};if(delete Z[_],this.rendered=this.mutableMerge(this.rendered,Z),this.rendered[_]=this.rendered[_]||{},$){const z=this.rendered[_];for(let J in $)$[J]=this.cachedFindComponent(J,$[J],z,$,Q);for(let J in $)z[J]=$[J];Z[_]=$}}cachedFindComponent(Z,$,Q,z,J){if(J[Z])return J[Z];else{let W,q,Y=$[s];if($0(Y)){let G;if(Y>0)G=this.cachedFindComponent(Y,z[Y],Q,z,J);else G=Q[-Y];q=G[s],W=this.cloneMerge(G,$,!0),W[s]=q}else W=$[s]!==void 0||Q[Z]===void 0?$:this.cloneMerge(Q[Z],$,!1);return J[Z]=W,W}}mutableMerge(Z,$){if($[s]!==void 0)return $;else return this.doMutableMerge(Z,$),Z}doMutableMerge(Z,$){if($[C])this.mergeKeyed(Z,$);else for(let Q in $){const z=$[Q],J=Z[Q];if(I0(z)&&z[s]===void 0&&I0(J))this.doMutableMerge(J,z);else Z[Q]=z}if(Z[U1])Z.newRender=!0}clone(Z){if("structuredClone"in window)return structuredClone(Z);else return JSON.parse(JSON.stringify(Z))}mergeKeyed(Z,$){const Q=this.clone(Z);if(Object.entries($[C]).forEach(([z,J])=>{if(z===o)return;if(Array.isArray(J)){const[W,q]=J;Z[C][z]=Q[C][W],this.doMutableMerge(Z[C][z],q)}else if(typeof J==="number"){const W=J;Z[C][z]=Q[C][W]}else if(typeof J==="object"){if(!Z[C][z])Z[C][z]={};this.doMutableMerge(Z[C][z],J)}}),$[C][o]delete this.rendered[_][$])}get(){return this.rendered}isNewFingerprint(Z={}){return!!Z[s]}templateStatic(Z,$){if(typeof Z==="number")return $[Z];else return Z}nextMagicID(){return this.magicId++,`m${this.magicId}-${this.parentViewId()}`}toOutputBuffer(Z,$,Q,z,J={}){if(Z[C])return this.comprehensionToBuffer(Z,$,Q,z);if(Z[q0])$=Z[q0],delete Z[q0];let{[s]:W}=Z;W=this.templateStatic(W,$),Z[s]=W;const q=Z[U1],Y=Q.buffer;if(q)Q.buffer="";if(z&&q&&!Z.magicId)Z.newRender=!0,Z.magicId=this.nextMagicID();Q.buffer+=W[0];for(let G=1;G0||B.length>0||K))delete Z[D0],Z[C]={[o]:0},Q.streams.add(q)}}dynamicToBuffer(Z,$,Q,z){if(typeof Z==="number"){const{buffer:J,streams:W}=this.recursiveCIDToString(Q.components,Z,Q.onlyCids);Q.buffer+=J,Q.streams=new Set([...Q.streams,...W])}else if(I0(Z))this.toOutputBuffer(Z,$,Q,z,{});else Q.buffer+=Z}recursiveCIDToString(Z,$,Q){const z=Z[$]||b(`no component for CID ${$}`,Z),J={[Q0]:$,[H0]:this.viewId},W=Q&&!Q.has($);z.newRender=!W,z.magicId=`c${$}-${this.parentViewId()}`;const q=!z.reset,{buffer:Y,streams:G}=this.recursiveToString(z,Z,Q,q,J);return delete z.reset,{buffer:Y,streams:G}}},Q5=[],z5=200,P9={exec(Z,$,Q,z,J,W){const[q,Y]=W||[null,{callback:W&&W.callback}];(Q.charAt(0)==="["?JSON.parse(Q):[[q,Y]]).forEach(([B,K])=>{if(B===q)K={...Y,...K},K.callback=K.callback||Y.callback;this.filterToEls(z.liveSocket,J,K).forEach((M)=>{this[`exec_${B}`](Z,$,Q,z,J,M,K)})})},isVisible(Z){return!!(Z.offsetWidth||Z.offsetHeight||Z.getClientRects().length>0)},isInViewport(Z){const $=Z.getBoundingClientRect(),Q=window.innerHeight||document.documentElement.clientHeight,z=window.innerWidth||document.documentElement.clientWidth;return $.right>0&&$.bottom>0&&$.left{Y.done=M});z.liveSocket.asyncTransition(K)}j.dispatchEvent(W,q,{detail:Y,bubbles:G})},exec_push(Z,$,Q,z,J,W,q){const{event:Y,data:G,target:B,page_loading:K,loading:M,value:X,dispatcher:F,callback:V}=q,L={loading:M,value:X,target:B,page_loading:!!K,originalEvent:Z},x=$==="change"&&F?F:J,T=B||x.getAttribute(z.binding("target"))||x,p=(I,S)=>{if(!I.isConnected())return;if($==="change"){let{newCid:k,_target:v}=q;if(v=v||(j.isFormInput(J)?J.name:void 0),v)L._target=v;I.pushInput(J,S,k,Y||Q,L,V)}else if($==="submit"){const{submitter:k}=q;I.submitForm(J,S,Y||Q,k,L,V)}else I.pushEvent($,J,S,Y||Q,G,L,V)};if(q.targetView&&q.targetCtx)p(q.targetView,q.targetCtx);else z.withinTargets(T,p)},exec_navigate(Z,$,Q,z,J,W,{href:q,replace:Y}){z.liveSocket.historyRedirect(Z,q,Y?"replace":"push",null,J)},exec_patch(Z,$,Q,z,J,W,{href:q,replace:Y}){z.liveSocket.pushHistoryPatch(Z,q,Y?"replace":"push",J)},exec_focus(Z,$,Q,z,J,W){m.attemptFocus(W),window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>m.attemptFocus(W))})},exec_focus_first(Z,$,Q,z,J,W){m.focusFirstInteractive(W)||m.focusFirst(W),window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>m.focusFirstInteractive(W)||m.focusFirst(W))})},exec_push_focus(Z,$,Q,z,J,W){Q5.push(W||J)},exec_pop_focus(Z,$,Q,z,J,W){const q=Q5.pop();if(q)q.focus(),window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>q.focus())})},exec_add_class(Z,$,Q,z,J,W,{names:q,transition:Y,time:G,blocking:B}){this.addOrRemoveClasses(W,q,[],Y,G,z,B)},exec_remove_class(Z,$,Q,z,J,W,{names:q,transition:Y,time:G,blocking:B}){this.addOrRemoveClasses(W,[],q,Y,G,z,B)},exec_toggle_class(Z,$,Q,z,J,W,{names:q,transition:Y,time:G,blocking:B}){this.toggleClasses(W,q,Y,G,z,B)},exec_toggle_attr(Z,$,Q,z,J,W,{attr:[q,Y,G]}){this.toggleAttr(W,q,Y,G)},exec_ignore_attrs(Z,$,Q,z,J,W,{attrs:q}){this.ignoreAttrs(W,q)},exec_transition(Z,$,Q,z,J,W,{time:q,transition:Y,blocking:G}){this.addOrRemoveClasses(W,[],[],Y,q,z,G)},exec_toggle(Z,$,Q,z,J,W,{display:q,ins:Y,outs:G,time:B,blocking:K}){this.toggle($,z,W,q,Y,G,B,K)},exec_show(Z,$,Q,z,J,W,{display:q,transition:Y,time:G,blocking:B}){this.show($,z,W,q,Y,G,B)},exec_hide(Z,$,Q,z,J,W,{display:q,transition:Y,time:G,blocking:B}){this.hide($,z,W,q,Y,G,B)},exec_set_attr(Z,$,Q,z,J,W,{attr:[q,Y]}){this.setOrRemoveAttrs(W,[[q,Y]],[])},exec_remove_attr(Z,$,Q,z,J,W,{attr:q}){this.setOrRemoveAttrs(W,[],[q])},ignoreAttrs(Z,$){j.putPrivate(Z,"JS:ignore_attrs",{apply:(Q,z)=>{Array.from(Q.attributes).forEach((J)=>{if($.some((W)=>J.name==W||W.includes("*")&&J.name.match(W)!=null))z.setAttribute(J.name,J.value)})}})},onBeforeElUpdated(Z,$){const Q=j.private(Z,"JS:ignore_attrs");if(Q)Q.apply(Z,$)},show(Z,$,Q,z,J,W,q){if(!this.isVisible(Q))this.toggle(Z,$,Q,z,J,null,W,q)},hide(Z,$,Q,z,J,W,q){if(this.isVisible(Q))this.toggle(Z,$,Q,z,null,J,W,q)},toggle(Z,$,Q,z,J,W,q,Y){q=q||z5;const[G,B,K]=J||[[],[],[]],[M,X,F]=W||[[],[],[]];if(G.length>0||M.length>0)if(this.isVisible(Q)){const V=()=>{this.addOrRemoveClasses(Q,X,G.concat(B).concat(K)),window.requestAnimationFrame(()=>{this.addOrRemoveClasses(Q,M,[]),window.requestAnimationFrame(()=>this.addOrRemoveClasses(Q,F,X))})},L=()=>{this.addOrRemoveClasses(Q,[],M.concat(F)),j.putSticky(Q,"toggle",(x)=>x.style.display="none"),Q.dispatchEvent(new Event("phx:hide-end"))};if(Q.dispatchEvent(new Event("phx:hide-start")),Y===!1)V(),setTimeout(L,q);else $.transition(q,V,L)}else{if(Z==="remove")return;const V=()=>{this.addOrRemoveClasses(Q,B,M.concat(X).concat(F));const x=z||this.defaultDisplay(Q);window.requestAnimationFrame(()=>{this.addOrRemoveClasses(Q,G,[]),window.requestAnimationFrame(()=>{j.putSticky(Q,"toggle",(T)=>T.style.display=x),this.addOrRemoveClasses(Q,K,B)})})},L=()=>{this.addOrRemoveClasses(Q,[],G.concat(K)),Q.dispatchEvent(new Event("phx:show-end"))};if(Q.dispatchEvent(new Event("phx:show-start")),Y===!1)V(),setTimeout(L,q);else $.transition(q,V,L)}else if(this.isVisible(Q))window.requestAnimationFrame(()=>{Q.dispatchEvent(new Event("phx:hide-start")),j.putSticky(Q,"toggle",(V)=>V.style.display="none"),Q.dispatchEvent(new Event("phx:hide-end"))});else window.requestAnimationFrame(()=>{Q.dispatchEvent(new Event("phx:show-start"));const V=z||this.defaultDisplay(Q);j.putSticky(Q,"toggle",(L)=>L.style.display=V),Q.dispatchEvent(new Event("phx:show-end"))})},toggleClasses(Z,$,Q,z,J,W){window.requestAnimationFrame(()=>{const[q,Y]=j.getSticky(Z,"classes",[[],[]]),G=$.filter((K)=>q.indexOf(K)<0&&!Z.classList.contains(K)),B=$.filter((K)=>Y.indexOf(K)<0&&Z.classList.contains(K));this.addOrRemoveClasses(Z,G,B,Q,z,J,W)})},toggleAttr(Z,$,Q,z){if(Z.hasAttribute($))if(z!==void 0)if(Z.getAttribute($)===Q)this.setOrRemoveAttrs(Z,[[$,z]],[]);else this.setOrRemoveAttrs(Z,[[$,Q]],[]);else this.setOrRemoveAttrs(Z,[],[$]);else this.setOrRemoveAttrs(Z,[[$,Q]],[])},addOrRemoveClasses(Z,$,Q,z,J,W,q){J=J||z5;const[Y,G,B]=z||[[],[],[]];if(Y.length>0){const K=()=>{this.addOrRemoveClasses(Z,G,[].concat(Y).concat(B)),window.requestAnimationFrame(()=>{this.addOrRemoveClasses(Z,Y,[]),window.requestAnimationFrame(()=>this.addOrRemoveClasses(Z,B,G))})},M=()=>this.addOrRemoveClasses(Z,$.concat(B),Q.concat(Y).concat(G));if(q===!1)K(),setTimeout(M,J);else W.transition(J,K,M);return}window.requestAnimationFrame(()=>{const[K,M]=j.getSticky(Z,"classes",[[],[]]),X=$.filter((x)=>K.indexOf(x)<0&&!Z.classList.contains(x)),F=Q.filter((x)=>M.indexOf(x)<0&&Z.classList.contains(x)),V=K.filter((x)=>Q.indexOf(x)<0).concat(X),L=M.filter((x)=>$.indexOf(x)<0).concat(F);j.putSticky(Z,"classes",(x)=>{return x.classList.remove(...L),x.classList.add(...V),[V,L]})})},setOrRemoveAttrs(Z,$,Q){const[z,J]=j.getSticky(Z,"attrs",[[],[]]),W=$.map(([G,B])=>G).concat(Q),q=z.filter(([G,B])=>!W.includes(G)).concat($),Y=J.filter((G)=>!W.includes(G)).concat(Q);j.putSticky(Z,"attrs",(G)=>{return Y.forEach((B)=>G.removeAttribute(B)),q.forEach(([B,K])=>G.setAttribute(B,K)),[q,Y]})},hasAllClasses(Z,$){return $.every((Q)=>Z.classList.contains(Q))},isToggledOut(Z,$){return!this.isVisible(Z)||this.hasAllClasses(Z,$)},filterToEls(Z,$,{to:Q}){const z=()=>{if(typeof Q==="string")return document.querySelectorAll(Q);else if(Q.closest){const J=$.closest(Q.closest);return J?[J]:[]}else if(Q.inner)return $.querySelectorAll(Q.inner)};return Q?Z.jsQuerySelectorAll($,Q,z):[$]},defaultDisplay(Z){return{tr:"table-row",td:"table-cell"}[Z.tagName.toLowerCase()]||"block"},transitionClasses(Z){if(!Z)return null;let[$,Q,z]=Array.isArray(Z)?Z:[Z.split(" "),[],[]];return $=Array.isArray($)?$:$.split(" "),Q=Array.isArray(Q)?Q:Q.split(" "),z=Array.isArray(z)?z:z.split(" "),[$,Q,z]}},R=P9,U5=(Z,$)=>{return{exec(Q,z){Z.execJS(Q,z,$)},show(Q,z={}){const J=Z.owner(Q);R.show($,J,Q,z.display,R.transitionClasses(z.transition),z.time,z.blocking)},hide(Q,z={}){const J=Z.owner(Q);R.hide($,J,Q,null,R.transitionClasses(z.transition),z.time,z.blocking)},toggle(Q,z={}){const J=Z.owner(Q),W=R.transitionClasses(z.in),q=R.transitionClasses(z.out);R.toggle($,J,Q,z.display,W,q,z.time,z.blocking)},addClass(Q,z,J={}){const W=Array.isArray(z)?z:z.split(" "),q=Z.owner(Q);R.addOrRemoveClasses(Q,W,[],R.transitionClasses(J.transition),J.time,q,J.blocking)},removeClass(Q,z,J={}){const W=Array.isArray(z)?z:z.split(" "),q=Z.owner(Q);R.addOrRemoveClasses(Q,[],W,R.transitionClasses(J.transition),J.time,q,J.blocking)},toggleClass(Q,z,J={}){const W=Array.isArray(z)?z:z.split(" "),q=Z.owner(Q);R.toggleClasses(Q,W,R.transitionClasses(J.transition),J.time,q,J.blocking)},transition(Q,z,J={}){const W=Z.owner(Q);R.addOrRemoveClasses(Q,[],[],R.transitionClasses(z),J.time,W,J.blocking)},setAttribute(Q,z,J){R.setOrRemoveAttrs(Q,[[z,J]],[])},removeAttribute(Q,z){R.setOrRemoveAttrs(Q,[],[z])},toggleAttribute(Q,z,J,W){R.toggleAttr(Q,z,J,W)},push(Q,z,J={}){Z.withinOwners(Q,(W)=>{const q=J.value||{};delete J.value;let Y=new CustomEvent("phx:exec",{detail:{sourceElement:Q}});R.exec(Y,$,z,W,Q,["push",{data:q,...J}])})},navigate(Q,z={}){const J=new CustomEvent("phx:exec");Z.historyRedirect(J,Q,z.replace?"replace":"push",null,null)},patch(Q,z={}){const J=new CustomEvent("phx:exec");Z.pushHistoryPatch(J,Q,z.replace?"replace":"push",null)},ignoreAttributes(Q,z){R.ignoreAttrs(Q,Array.isArray(z)?z:[z])}}},F1="hookId",S9=1,x0=class Z{static makeID(){return S9++}static elementID($){return j.private($,F1)}constructor($,Q,z){if(this.el=Q,this.__attachView($),this.__listeners=new Set,this.__isDisconnected=!1,j.putPrivate(this.el,F1,Z.makeID()),z){const J=new Set(["el","liveSocket","__view","__listeners","__isDisconnected","constructor","js","pushEvent","pushEventTo","handleEvent","removeHandleEvent","upload","uploadTo","__mounted","__updated","__beforeUpdate","__destroyed","__reconnected","__disconnected","__cleanup__"]);for(let q in z)if(Object.prototype.hasOwnProperty.call(z,q)){if(this[q]=z[q],J.has(q))console.warn(`Hook object for element #${Q.id} overwrites core property '${q}'!`)}["mounted","beforeUpdate","updated","destroyed","disconnected","reconnected"].forEach((q)=>{if(z[q]&&typeof z[q]==="function")this[q]=z[q]})}}__attachView($){if($)this.__view=()=>$,this.liveSocket=$.liveSocket;else this.__view=()=>{throw new Error(`hook not yet attached to a live view: ${this.el.outerHTML}`)},this.liveSocket=null}mounted(){}beforeUpdate(){}updated(){}destroyed(){}disconnected(){}reconnected(){}__mounted(){this.mounted()}__updated(){this.updated()}__beforeUpdate(){this.beforeUpdate()}__destroyed(){this.destroyed(),j.deletePrivate(this.el,F1)}__reconnected(){if(this.__isDisconnected)this.__isDisconnected=!1,this.reconnected()}__disconnected(){this.__isDisconnected=!0,this.disconnected()}js(){return{...U5(this.__view().liveSocket,"hook"),exec:($)=>{this.__view().liveSocket.execJS(this.el,$,"hook")}}}pushEvent($,Q,z){const J=this.__view().pushHookEvent(this.el,null,$,Q||{});if(z===void 0)return J.then(({reply:W})=>W);J.then(({reply:W,ref:q})=>z(W,q)).catch(()=>{});return}pushEventTo($,Q,z,J){if(J===void 0){const W=[];this.__view().withinTargets($,(Y,G)=>{W.push({view:Y,targetCtx:G})});const q=W.map(({view:Y,targetCtx:G})=>{return Y.pushHookEvent(this.el,G,Q,z||{})});return Promise.allSettled(q)}this.__view().withinTargets($,(W,q)=>{W.pushHookEvent(this.el,q,Q,z||{}).then(({reply:Y,ref:G})=>J(Y,G)).catch(()=>{})});return}handleEvent($,Q){const z={event:$,callback:(J)=>Q(J.detail)};return window.addEventListener(`phx:${$}`,z.callback),this.__listeners.add(z),z}removeHandleEvent($){window.removeEventListener(`phx:${$.event}`,$.callback),this.__listeners.delete($)}upload($,Q){return this.__view().dispatchUploads(null,$,Q)}uploadTo($,Q,z){return this.__view().withinTargets($,(J,W)=>{J.dispatchUploads(W,Q,z)})}__cleanup__(){this.__listeners.forEach(($)=>this.removeHandleEvent($))}},b9=(Z,$)=>{const Q=Z.endsWith("[]");let z=Q?Z.slice(0,-2):Z;if(z=z.replace(/([^\[\]]+)(\]?$)/,`${$}\$1\$2`),Q)z+="[]";return z},a0=(Z,$,Q=[])=>{const{submitter:z}=$;let J;if(z&&z.name){const K=document.createElement("input");K.type="hidden";const M=z.getAttribute("form");if(M)K.setAttribute("form",M);K.name=z.name,K.value=z.value,z.parentElement.insertBefore(K,z),J=K}const W=new FormData(Z),q=[];W.forEach((K,M,X)=>{if(K instanceof File)q.push(M)}),q.forEach((K)=>W.delete(K));const Y=new URLSearchParams,{inputsUnused:G,onlyHiddenInputs:B}=Array.from(Z.elements).reduce((K,M)=>{const{inputsUnused:X,onlyHiddenInputs:F}=K,V=M.name;if(!V)return K;if(X[V]===void 0)X[V]=!0;if(F[V]===void 0)F[V]=!0;const L=j.private(M,e0)||j.private(M,_0),x=M.type==="hidden";return X[V]=X[V]&&!L,F[V]=F[V]&&x,K},{inputsUnused:{},onlyHiddenInputs:{}});for(let[K,M]of W.entries())if(Q.length===0||Q.indexOf(K)>=0){const X=G[K],F=B[K];if(X&&!(z&&z.name==K)&&!F)Y.append(b9(K,"_unused_"),"");if(typeof M==="string")Y.append(K,M)}if(z&&J)z.parentElement.removeChild(J);return Y.toString()},N9=class Z{static closestView($){const Q=$.closest(h0);return Q?j.private(Q,"view"):null}constructor($,Q,z,J,W){this.isDead=!1,this.liveSocket=Q,this.flash=J,this.parent=z,this.root=z?z.root:this,this.el=$;const q=j.private(this.el,"view");if(q!==void 0&&q.isDead!==!0)throw b(`The DOM element for this view has already been bound to a view. + + An element can only ever be associated with a single view! + Please ensure that you are not trying to initialize multiple LiveSockets on the same page. + This could happen if you're accidentally trying to render your root layout more than once. + Ensure that the template set on the LiveView is different than the root layout. + `,{view:q}),new Error("Cannot bind multiple views to the same DOM element.");j.putPrivate(this.el,"view",this),this.id=this.el.id,this.ref=0,this.lastAckRef=null,this.childJoins=0,this.loaderTimer=null,this.disconnectedTimer=null,this.pendingDiffs=[],this.pendingForms=new Set,this.redirect=!1,this.href=null,this.joinCount=this.parent?this.parent.joinCount-1:0,this.joinAttempts=0,this.joinPending=!0,this.destroyed=!1,this.joinCallback=function(Y){Y&&Y()},this.stopCallback=function(){},this.pendingJoinOps=[],this.viewHooks={},this.formSubmits=[],this.children=this.parent?null:{},this.root.children[this.id]={},this.formsForRecovery={},this.channel=this.liveSocket.channel(`lv:${this.id}`,()=>{const Y=this.href&&this.expandURL(this.href);return{redirect:this.redirect?Y:void 0,url:this.redirect?void 0:Y||void 0,params:this.connectParams(W),session:this.getSession(),static:this.getStatic(),flash:this.flash,sticky:this.el.hasAttribute(I1)}}),this.portalElementIds=new Set}setHref($){this.href=$}setRedirect($){this.redirect=!0,this.href=$}isMain(){return this.el.hasAttribute(w1)}connectParams($){const Q=this.liveSocket.params(this.el),z=j.all(document,`[${this.binding(_5)}]`).map((J)=>J.src||J.href).filter((J)=>typeof J==="string");if(z.length>0)Q._track_static=z;return Q._mounts=this.joinCount,Q._mount_attempts=this.joinAttempts,Q._live_referer=$,this.joinAttempts++,Q}isConnected(){return this.channel.canPush()}getSession(){return this.el.getAttribute(l)}getStatic(){const $=this.el.getAttribute(M0);return $===""?null:$}destroy($=function(){}){if(this.destroyAllChildren(),this.destroyPortalElements(),this.destroyed=!0,j.deletePrivate(this.el,"view"),delete this.root.children[this.id],this.parent)delete this.root.children[this.parent.id][this.id];clearTimeout(this.loaderTimer);const Q=()=>{$();for(let z in this.viewHooks)this.destroyHook(this.viewHooks[z])};j.markPhxChildDestroyed(this.el),this.log("destroyed",()=>["the child has been removed from the parent"]),this.channel.leave().receive("ok",Q).receive("error",Q).receive("timeout",Q)}setContainerClasses(...$){this.el.classList.remove(k1,j0,L0,v1,S0),this.el.classList.add(...$)}showLoader($){if(clearTimeout(this.loaderTimer),$)this.loaderTimer=setTimeout(()=>this.showLoader(),$);else{for(let Q in this.viewHooks)this.viewHooks[Q].__disconnected();this.setContainerClasses(j0)}}execAll($){j.all(this.el,`[${$}]`,(Q)=>this.liveSocket.execJS(Q,Q.getAttribute($)))}hideLoader(){clearTimeout(this.loaderTimer),clearTimeout(this.disconnectedTimer),this.setContainerClasses(k1),this.execAll(this.binding("connected"))}triggerReconnected(){for(let $ in this.viewHooks)this.viewHooks[$].__reconnected()}log($,Q){this.liveSocket.log(this,$,Q)}transition($,Q,z=function(){}){this.liveSocket.transition($,Q,z)}withinTargets($,Q,z=document){if($ instanceof HTMLElement||$ instanceof SVGElement)return this.liveSocket.owner($,(J)=>Q(J,$));if($0($))if(j.findComponentNodeList(this.id,$,z).length===0)b(`no component found matching phx-target of ${$}`);else Q(this,parseInt($));else{const J=Array.from(z.querySelectorAll($));if(J.length===0)b(`nothing found matching the phx-target selector "${$}"`);J.forEach((W)=>this.liveSocket.owner(W,(q)=>Q(q,W)))}}applyDiff($,Q,z){this.log($,()=>["",t0(Q)]);const{diff:J,reply:W,events:q,title:Y}=$5.extract(Q);if(z({diff:J,reply:W,events:q}),typeof Y==="string"||$=="mount")window.requestAnimationFrame(()=>j.putTitle(Y))}onJoin($){const{rendered:Q,container:z,liveview_version:J,pid:W}=$;if(z){const[q,Y]=z;this.el=j.replaceRootContainer(this.el,q,Y)}if(this.childJoins=0,this.joinPending=!0,this.flash=null,this.root===this)this.formsForRecovery=this.getFormsForRecovery();if(this.isMain()&&window.history.state===null)h.pushState("replace",{type:"patch",id:this.id,position:this.liveSocket.currentHistoryPosition});if(J!==this.liveSocket.version())console.error(`LiveView asset version mismatch. JavaScript version ${this.liveSocket.version()} vs. server ${J}. To avoid issues, please ensure that your assets use the same version as the server.`);if(W)this.el.setAttribute(c5,W);h.dropLocal(this.liveSocket.localStorage,window.location.pathname,J5),this.applyDiff("mount",Q,({diff:q,events:Y})=>{this.rendered=new $5(this.id,q);const[G,B]=this.renderContainer(null,"join");this.dropPendingRefs(),this.joinCount++,this.joinAttempts=0,this.maybeRecoverForms(G,()=>{this.onJoinComplete($,G,B,Y)})})}dropPendingRefs(){j.all(document,`[${d}="${this.refSrc()}"]`,($)=>{$.removeAttribute(O0),$.removeAttribute(d),$.removeAttribute(y)})}onJoinComplete({live_patch:$},Q,z,J){if(this.joinCount>1||this.parent&&!this.parent.isJoinPending())return this.applyJoinPatch($,Q,z,J);if(j.findPhxChildrenInFragment(Q,this.id).filter((q)=>{const Y=q.id&&this.el.querySelector(`[id="${q.id}"]`),G=Y&&Y.getAttribute(M0);if(G)q.setAttribute(M0,G);if(Y)Y.setAttribute(G0,this.root.id);return this.joinChild(q)}).length===0)if(this.parent)this.root.pendingJoinOps.push([this,()=>this.applyJoinPatch($,Q,z,J)]),this.parent.ackJoin(this);else this.onAllChildJoinsComplete(),this.applyJoinPatch($,Q,z,J);else this.root.pendingJoinOps.push([this,()=>this.applyJoinPatch($,Q,z,J)])}attachTrueDocEl(){this.el=j.byId(this.id),this.el.setAttribute(G0,this.root.id)}execNewMounted($=document){let Q=this.binding(L1),z=this.binding(D1);this.all($,`[${Q}], [${z}]`,(J)=>{j.maintainPrivateHooks(J,J,Q,z),this.maybeAddNewHook(J)}),this.all($,`[${this.binding(b0)}], [data-phx-${b0}]`,(J)=>{this.maybeAddNewHook(J)}),this.all($,`[${this.binding(u1)}]`,(J)=>{this.maybeMounted(J)})}all($,Q,z){j.all($,Q,(J)=>{if(this.ownsElement(J))z(J)})}applyJoinPatch($,Q,z,J){if(this.joinCount>1){if(this.pendingJoinOps.length)this.pendingJoinOps.forEach((q)=>typeof q==="function"&&q()),this.pendingJoinOps=[]}this.attachTrueDocEl();const W=new n0(this,this.el,this.id,Q,z,null);if(W.markPrunableContentForRemoval(),this.performPatch(W,!1,!0),this.joinNewChildren(),this.execNewMounted(),this.joinPending=!1,this.liveSocket.dispatchEvents(J),this.applyPendingUpdates(),$){const{kind:q,to:Y}=$;this.liveSocket.historyPatch(Y,q)}if(this.hideLoader(),this.joinCount>1)this.triggerReconnected();this.stopCallback()}triggerBeforeUpdateHook($,Q){this.liveSocket.triggerDOM("onBeforeElUpdated",[$,Q]);const z=this.getHook($),J=z&&j.isIgnored($,this.binding($1));if(z&&!$.isEqualNode(Q)&&!(J&&Q9($.dataset,Q.dataset)))return z.__beforeUpdate(),z}maybeMounted($){const Q=$.getAttribute(this.binding(u1)),z=Q&&j.private($,"mounted");if(Q&&!z)this.liveSocket.execJS($,Q),j.putPrivate($,"mounted",!0)}maybeAddNewHook($){const Q=this.addHook($);if(Q)Q.__mounted()}performPatch($,Q,z=!1){const J=[];let W=!1;const q=new Set;return this.liveSocket.triggerDOM("onPatchStart",[$.targetContainer]),$.after("added",(Y)=>{this.liveSocket.triggerDOM("onNodeAdded",[Y]);const G=this.binding(L1),B=this.binding(D1);if(j.maintainPrivateHooks(Y,Y,G,B),this.maybeAddNewHook(Y),Y.getAttribute)this.maybeMounted(Y)}),$.after("phxChildAdded",(Y)=>{if(j.isPhxSticky(Y))this.liveSocket.joinRootViews();else W=!0}),$.before("updated",(Y,G)=>{if(this.triggerBeforeUpdateHook(Y,G))q.add(Y.id);R.onBeforeElUpdated(Y,G)}),$.after("updated",(Y)=>{if(q.has(Y.id))this.getHook(Y).__updated()}),$.after("discarded",(Y)=>{if(Y.nodeType===Node.ELEMENT_NODE)J.push(Y)}),$.after("transitionsDiscarded",(Y)=>this.afterElementsRemoved(Y,Q)),$.perform(z),this.afterElementsRemoved(J,Q),this.liveSocket.triggerDOM("onPatchEnd",[$.targetContainer]),W}afterElementsRemoved($,Q){const z=[];if($.forEach((J)=>{const W=j.all(J,`[${H0}="${this.id}"][${Q0}]`),q=j.all(J,`[${this.binding(b0)}], [data-phx-hook]`);W.concat(J).forEach((Y)=>{const G=this.componentID(Y);if($0(G)&&z.indexOf(G)===-1&&Y.getAttribute(H0)===this.id)z.push(G)}),q.concat(J).forEach((Y)=>{const G=this.getHook(Y);G&&this.destroyHook(G)})}),Q)this.maybePushComponentsDestroyed(z)}joinNewChildren(){j.findPhxChildren(document,this.id).forEach(($)=>this.joinChild($))}maybeRecoverForms($,Q){const z=this.binding("change"),J=this.root.formsForRecovery,W=document.createElement("template");W.innerHTML=$;const q=W.content.firstElementChild;q.id=this.id,q.setAttribute(G0,this.root.id),q.setAttribute(l,this.getSession()),q.setAttribute(M0,this.getStatic()),q.setAttribute(V0,this.parent?this.parent.id:null);const Y=j.all(W.content,"form").filter((G)=>G.id&&J[G.id]).filter((G)=>!this.pendingForms.has(G.id)).filter((G)=>J[G.id].getAttribute(z)===G.getAttribute(z)).map((G)=>{return[J[G.id],G]});if(Y.length===0)return Q();Y.forEach(([G,B],K)=>{this.pendingForms.add(B.id),this.pushFormRecovery(G,B,W.content.firstElementChild,()=>{if(this.pendingForms.delete(B.id),K===Y.length-1)Q()})})}getChildById($){return this.root.children[this.id][$]}getDescendentByEl($){if($.id===this.id)return this;else return this.children[$.getAttribute(V0)]?.[$.id]}destroyDescendent($){for(let Q in this.root.children)for(let z in this.root.children[Q])if(z===$)return this.root.children[Q][z].destroy()}joinChild($){if(!this.getChildById($.id)){const z=new Z($,this.liveSocket,this);return this.root.children[this.id][z.id]=z,z.join(),this.childJoins++,!0}}isJoinPending(){return this.joinPending}ackJoin($){if(this.childJoins--,this.childJoins===0)if(this.parent)this.parent.ackJoin(this);else this.onAllChildJoinsComplete()}onAllChildJoinsComplete(){this.pendingForms.clear(),this.formsForRecovery={},this.joinCallback(()=>{this.pendingJoinOps.forEach(([$,Q])=>{if(!$.isDestroyed())Q()}),this.pendingJoinOps=[]})}update($,Q,z=!1){if(this.isJoinPending()||this.liveSocket.hasPendingLink()&&this.root.isMain()){if(!z)this.pendingDiffs.push({diff:$,events:Q});return!1}this.rendered.mergeDiff($);let J=!1;if(this.rendered.isComponentOnlyDiff($))this.liveSocket.time("component patch complete",()=>{j.findExistingParentCIDs(this.id,this.rendered.componentCIDs($)).forEach((q)=>{if(this.componentPatch(this.rendered.getComponent($,q),q))J=!0})});else if(!i1($))this.liveSocket.time("full patch complete",()=>{const[W,q]=this.renderContainer($,"update"),Y=new n0(this,this.el,this.id,W,q,null);J=this.performPatch(Y,!0)});if(this.liveSocket.dispatchEvents(Q),J)this.joinNewChildren();return!0}renderContainer($,Q){return this.liveSocket.time(`toString diff (${Q})`,()=>{const z=this.el.tagName,J=$?this.rendered.componentCIDs($):null,{buffer:W,streams:q}=this.rendered.toString(J);return[`<${z}>${W}`,q]})}componentPatch($,Q){if(i1($))return!1;const{buffer:z,streams:J}=this.rendered.componentToString(Q),W=new n0(this,this.el,this.id,z,J,Q);return this.performPatch(W,!0)}getHook($){return this.viewHooks[x0.elementID($)]}addHook($){const Q=x0.elementID($);if($.getAttribute&&!this.ownsElement($))return;if(Q&&!this.viewHooks[Q]){const z=j.getCustomElHook($)||b(`no hook found for custom element: ${$.id}`);return this.viewHooks[Q]=z,z.__attachView(this),z}else if(Q||!$.getAttribute)return;else{const z=$.getAttribute(`data-phx-${b0}`)||$.getAttribute(this.binding(b0));if(!z)return;const J=this.liveSocket.getHookDefinition(z);if(J){if(!$.id){b(`no DOM ID for hook "${z}". Hooks require a unique ID on each element.`,$);return}let W;try{if(typeof J==="function"&&J.prototype instanceof x0)W=new J(this,$);else if(typeof J==="object"&&J!==null)W=new x0(this,$,J);else{b(`Invalid hook definition for "${z}". Expected a class extending ViewHook or an object definition.`,$);return}}catch(q){const Y=q instanceof Error?q.message:String(q);b(`Failed to create hook "${z}": ${Y}`,$);return}return this.viewHooks[x0.elementID(W.el)]=W,W}else if(z!==null)b(`unknown hook found for "${z}"`,$)}}destroyHook($){const Q=x0.elementID($.el);$.__destroyed(),$.__cleanup__(),delete this.viewHooks[Q]}applyPendingUpdates(){this.pendingDiffs=this.pendingDiffs.filter(({diff:$,events:Q})=>!this.update($,Q,!0)),this.eachChild(($)=>$.applyPendingUpdates())}eachChild($){const Q=this.root.children[this.id]||{};for(let z in Q)$(this.getChildById(z))}onChannel($,Q){this.liveSocket.onChannel(this.channel,$,(z)=>{if(this.isJoinPending())if(this.joinCount>1)this.pendingJoinOps.push(()=>Q(z));else this.root.pendingJoinOps.push([this,()=>Q(z)]);else this.liveSocket.requestDOMUpdate(()=>Q(z))})}bindChannel(){this.liveSocket.onChannel(this.channel,"diff",($)=>{this.liveSocket.requestDOMUpdate(()=>{this.applyDiff("update",$,({diff:Q,events:z})=>this.update(Q,z))})}),this.onChannel("redirect",({to:$,flash:Q})=>this.onRedirect({to:$,flash:Q})),this.onChannel("live_patch",($)=>this.onLivePatch($)),this.onChannel("live_redirect",($)=>this.onLiveRedirect($)),this.channel.onError(($)=>this.onError($)),this.channel.onClose(($)=>this.onClose($))}destroyAllChildren(){this.eachChild(($)=>$.destroy())}onLiveRedirect($){const{to:Q,kind:z,flash:J}=$,W=this.expandURL(Q),q=new CustomEvent("phx:server-navigate",{detail:{to:Q,kind:z,flash:J}});this.liveSocket.historyRedirect(q,W,z,J)}onLivePatch($){const{to:Q,kind:z}=$;this.href=this.expandURL(Q),this.liveSocket.historyPatch(Q,z)}expandURL($){return $.startsWith("/")?`${window.location.protocol}//${window.location.host}${$}`:$}onRedirect({to:$,flash:Q,reloadToken:z}){this.liveSocket.redirect($,Q,z)}isDestroyed(){return this.destroyed}joinDead(){this.isDead=!0}joinPush(){return this.joinPush=this.joinPush||this.channel.join(),this.joinPush}join($){if(this.showLoader(this.liveSocket.loaderTimeout),this.bindChannel(),this.isMain())this.stopCallback=this.liveSocket.withPageLoading({to:this.href,kind:"initial"});this.joinCallback=(Q)=>{Q=Q||function(){},$?$(this.joinCount,Q):Q()},this.wrapPush(()=>this.channel.join(),{ok:(Q)=>this.liveSocket.requestDOMUpdate(()=>this.onJoin(Q)),error:(Q)=>this.onJoinError(Q),timeout:()=>this.onJoinError({reason:"timeout"})})}onJoinError($){if($.reason==="reload"){this.log("error",()=>[`failed mount with ${$.status}. Falling back to page reload`,$]),this.onRedirect({to:this.root.href,reloadToken:$.token});return}else if($.reason==="unauthorized"||$.reason==="stale"){this.log("error",()=>["unauthorized live_redirect. Falling back to page request",$]),this.onRedirect({to:this.root.href,flash:this.flash});return}if($.redirect||$.live_redirect)this.joinPending=!1,this.channel.leave();if($.redirect)return this.onRedirect($.redirect);if($.live_redirect)return this.onLiveRedirect($.live_redirect);if(this.log("error",()=>["unable to join",$]),this.isMain()){if(this.displayError([j0,L0,S0],{unstructuredError:$,errorKind:"server"}),this.liveSocket.isConnected())this.liveSocket.reloadWithJitter(this)}else{if(this.joinAttempts>=f1)this.root.displayError([j0,L0,S0],{unstructuredError:$,errorKind:"server"}),this.log("error",()=>[`giving up trying to mount after ${f1} tries`,$]),this.destroy();const Q=j.byId(this.el.id);if(Q)j.mergeAttrs(Q,this.el),this.displayError([j0,L0,S0],{unstructuredError:$,errorKind:"server"}),this.el=Q;else this.destroy()}}onClose($){if(this.isDestroyed())return;if(this.isMain()&&this.liveSocket.hasPendingLink()&&$!=="leave")return this.liveSocket.reloadWithJitter(this);if(this.destroyAllChildren(),this.liveSocket.dropActiveElement(this),this.liveSocket.isUnloaded())this.showLoader(n5)}onError($){if(this.onClose($),this.liveSocket.isConnected())this.log("error",()=>["view crashed",$]);if(!this.liveSocket.isUnloaded())if(this.liveSocket.isConnected())this.displayError([j0,L0,S0],{unstructuredError:$,errorKind:"server"});else this.displayError([j0,L0,v1],{unstructuredError:$,errorKind:"client"})}displayError($,Q={}){if(this.isMain())j.dispatchEvent(window,"phx:page-loading-start",{detail:{to:this.href,kind:"error",...Q}});this.showLoader(),this.setContainerClasses(...$),this.delayedDisconnected()}delayedDisconnected(){this.disconnectedTimer=setTimeout(()=>{this.execAll(this.binding("disconnected"))},this.liveSocket.disconnectedTimeout)}wrapPush($,Q){const z=this.liveSocket.getLatencySim(),J=z?(W)=>setTimeout(()=>!this.isDestroyed()&&W(),z):(W)=>!this.isDestroyed()&&W();J(()=>{$().receive("ok",(W)=>J(()=>Q.ok&&Q.ok(W))).receive("error",(W)=>J(()=>Q.error&&Q.error(W))).receive("timeout",()=>J(()=>Q.timeout&&Q.timeout()))})}pushWithReply($,Q,z){if(!this.isConnected())return Promise.reject(new Error("no connection"));const[J,[W],q]=$?$({payload:z}):[null,[],{}],Y=this.joinCount;let G=function(){};if(q.page_loading)G=this.liveSocket.withPageLoading({kind:"element",target:W});if(typeof z.cid!=="number")delete z.cid;return new Promise((B,K)=>{this.wrapPush(()=>this.channel.push(Q,z,o5),{ok:(M)=>{if(J!==null)this.lastAckRef=J;const X=(F)=>{if(M.redirect)this.onRedirect(M.redirect);if(M.live_patch)this.onLivePatch(M.live_patch);if(M.live_redirect)this.onLiveRedirect(M.live_redirect);G(),B({resp:M,reply:F,ref:J})};if(M.diff)this.liveSocket.requestDOMUpdate(()=>{this.applyDiff("update",M.diff,({diff:F,reply:V,events:L})=>{if(J!==null)this.undoRefs(J,z.event);this.update(F,L),X(V)})});else{if(J!==null)this.undoRefs(J,z.event);X(null)}},error:(M)=>K(new Error(`failed with reason: ${M}`)),timeout:()=>{if(K(new Error("timeout")),this.joinCount===Y)this.liveSocket.reloadWithJitter(this,()=>{this.log("timeout",()=>["received timeout while communicating with server. Falling back to hard refresh for recovery"])})}})})}undoRefs($,Q,z){if(!this.isConnected())return;const J=`[${d}="${this.refSrc()}"]`;if(z)z=new Set(z),j.all(document,J,(W)=>{if(z&&!z.has(W))return;j.all(W,J,(q)=>this.undoElRef(q,$,Q)),this.undoElRef(W,$,Q)});else j.all(document,J,(W)=>this.undoElRef(W,$,Q))}undoElRef($,Q,z){new A1($).maybeUndo(Q,z,(W)=>{const q=new n0(this,$,this.id,W,[],null,{undoRef:Q}),Y=this.performPatch(q,!0);if(j.all($,`[${d}="${this.refSrc()}"]`,(G)=>this.undoElRef(G,Q,z)),Y)this.joinNewChildren()})}refSrc(){return this.el.id}putRef($,Q,z,J={}){const W=this.ref++,q=this.binding(_1);if(J.loading){const Y=j.all(document,J.loading).map((G)=>{return{el:G,lock:!0,loading:!0}});$=$.concat(Y)}for(let{el:Y,lock:G,loading:B}of $){if(!G&&!B)throw new Error("putRef requires lock or loading");if(Y.setAttribute(d,this.refSrc()),B)Y.setAttribute(O0,W);if(G)Y.setAttribute(y,W);if(!B||J.submitter&&!(Y===J.submitter||Y===J.form))continue;const K=new Promise((V)=>{Y.addEventListener(`phx:undo-lock:${W}`,()=>V(F),{once:!0})}),M=new Promise((V)=>{Y.addEventListener(`phx:undo-loading:${W}`,()=>V(F),{once:!0})});Y.classList.add(`phx-${z}-loading`);const X=Y.getAttribute(q);if(X!==null){if(!Y.getAttribute(Z1))Y.setAttribute(Z1,Y.innerText);if(X!=="")Y.innerText=X;Y.setAttribute(A0,Y.getAttribute(A0)||Y.disabled),Y.setAttribute("disabled","")}const F={event:Q,eventType:z,ref:W,isLoading:B,isLocked:G,lockElements:$.filter(({lock:V})=>V).map(({el:V})=>V),loadingElements:$.filter(({loading:V})=>V).map(({el:V})=>V),unlock:(V)=>{V=Array.isArray(V)?V:[V],this.undoRefs(W,Q,V)},lockComplete:K,loadingComplete:M,lock:(V)=>{return new Promise((L)=>{if(this.isAcked(W))return L(F);V.setAttribute(y,W),V.setAttribute(d,this.refSrc()),V.addEventListener(`phx:lock-stop:${W}`,()=>L(F),{once:!0})})}};if(J.payload)F.payload=J.payload;if(J.target)F.target=J.target;if(J.originalEvent)F.originalEvent=J.originalEvent;if(Y.dispatchEvent(new CustomEvent("phx:push",{detail:F,bubbles:!0,cancelable:!1})),Q)Y.dispatchEvent(new CustomEvent(`phx:push:${Q}`,{detail:F,bubbles:!0,cancelable:!1}))}return[W,$.map(({el:Y})=>Y),J]}isAcked($){return this.lastAckRef!==null&&this.lastAckRef>=$}componentID($){const Q=$.getAttribute&&$.getAttribute(Q0);return Q?parseInt(Q):null}targetComponentID($,Q,z={}){if($0(Q))return Q;const J=z.target||$.getAttribute(this.binding("target"));if($0(J))return parseInt(J);else if(Q&&(J!==null||z.target))return this.closestComponentID(Q);else return null}closestComponentID($){if($0($))return $;else if($)return U0($.closest(`[${Q0}]`),(Q)=>this.ownsElement(Q)&&this.componentID(Q));else return null}pushHookEvent($,Q,z,J){if(!this.isConnected())return this.log("hook",()=>["unable to push hook event. LiveView not connected",z,J]),Promise.reject(new Error("unable to push hook event. LiveView not connected"));const W=()=>this.putRef([{el:$,loading:!0,lock:!0}],z,"hook",{payload:J,target:Q});return this.pushWithReply(W,"event",{type:"hook",event:z,value:J,cid:this.closestComponentID(Q)}).then(({resp:q,reply:Y,ref:G})=>({reply:Y,ref:G}))}extractMeta($,Q,z){const J=this.binding("value-");for(let W=0;W<$.attributes.length;W++){if(!Q)Q={};const q=$.attributes[W].name;if(q.startsWith(J))Q[q.replace(J,"")]=$.getAttribute(q)}if($.value!==void 0&&!($ instanceof HTMLFormElement)){if(!Q)Q={};if(Q.value=$.value,$.tagName==="INPUT"&&B5.indexOf($.type)>=0&&!$.checked)delete Q.value}if(z){if(!Q)Q={};for(let W in z)Q[W]=z[W]}return Q}pushEvent($,Q,z,J,W,q={},Y){this.pushWithReply((G)=>this.putRef([{el:Q,loading:!0,lock:!0}],J,$,{...q,payload:G?.payload}),"event",{type:$,event:J,value:this.extractMeta(Q,W,q.value),cid:this.targetComponentID(Q,z,q)}).then(({reply:G})=>Y&&Y(G)).catch((G)=>b("Failed to push event",G))}pushFileProgress($,Q,z,J=function(){}){this.liveSocket.withinOwners($.form,(W,q)=>{W.pushWithReply(null,"progress",{event:$.getAttribute(W.binding(d5)),ref:$.getAttribute(z0),entry_ref:Q,progress:z,cid:W.targetComponentID($.form,q)}).then(()=>J()).catch((Y)=>b("Failed to push file progress",Y))})}pushInput($,Q,z,J,W,q){if(!$.form)throw new Error("form events require the input to be inside a form");let Y;const G=$0(z)?z:this.targetComponentID($.form,Q,W),B=(V)=>{return this.putRef([{el:$,loading:!0,lock:!0},{el:$.form,loading:!0,lock:!0}],J,"change",{...W,payload:V?.payload})};let K;const M=this.extractMeta($.form,{},W.value),X={};if($ instanceof HTMLButtonElement)X.submitter=$;if($.getAttribute(this.binding("change")))K=a0($.form,X,[$.name]);else K=a0($.form,X);if(j.isUploadInput($)&&$.files&&$.files.length>0)g.trackFiles($,Array.from($.files));Y=g.serializeUploads($);const F={type:"form",event:J,value:K,meta:{_target:W._target||"undefined",...M},uploads:Y,cid:G};this.pushWithReply(B,"event",F).then(({resp:V})=>{if(j.isUploadInput($)&&j.isAutoUpload($))A1.onUnlock($,()=>{if(g.filesAwaitingPreflight($).length>0){const[L,x]=B();this.undoRefs(L,J,[$.form]),this.uploadFiles($.form,J,Q,L,G,(T)=>{q&&q(V),this.triggerAwaitingSubmit($.form,J),this.undoRefs(L,J)})}});else q&&q(V)}).catch((V)=>b("Failed to push input event",V))}triggerAwaitingSubmit($,Q){const z=this.getScheduledSubmit($);if(z){const[J,W,q,Y]=z;this.cancelSubmit($,Q),Y()}}getScheduledSubmit($){return this.formSubmits.find(([Q,z,J,W])=>Q.isSameNode($))}scheduleSubmit($,Q,z,J){if(this.getScheduledSubmit($))return!0;this.formSubmits.push([$,Q,z,J])}cancelSubmit($,Q){this.formSubmits=this.formSubmits.filter(([z,J,W,q])=>{if(z.isSameNode($))return this.undoRefs(J,Q),!1;else return!0})}disableForm($,Q,z={}){const J=(V)=>{return!(v0(V,`${this.binding($1)}=ignore`,V.form)||v0(V,"data-phx-update=ignore",V.form))},W=(V)=>{return V.hasAttribute(this.binding(_1))},q=(V)=>V.tagName=="BUTTON",Y=(V)=>["INPUT","TEXTAREA","SELECT"].includes(V.tagName),G=Array.from($.elements),B=G.filter(W),K=G.filter(q).filter(J),M=G.filter(Y).filter(J);K.forEach((V)=>{V.setAttribute(A0,V.disabled),V.disabled=!0}),M.forEach((V)=>{if(V.setAttribute(x1,V.readOnly),V.readOnly=!0,V.files)V.setAttribute(A0,V.disabled),V.disabled=!0});const X=B.concat(K).concat(M).map((V)=>{return{el:V,loading:!0,lock:!0}}),F=[{el:$,loading:!0,lock:!1}].concat(X).reverse();return this.putRef(F,Q,"submit",z)}pushFormSubmit($,Q,z,J,W,q){const Y=(B)=>this.disableForm($,z,{...W,form:$,payload:B?.payload,submitter:J});j.putPrivate($,"submitter",J);const G=this.targetComponentID($,Q);if(g.hasUploadsInProgress($)){const[B,K]=Y(),M=()=>this.pushFormSubmit($,Q,z,J,W,q);return this.scheduleSubmit($,B,W,M)}else if(g.inputsAwaitingPreflight($).length>0){const[B,K]=Y(),M=()=>[B,K,W];this.uploadFiles($,z,Q,B,G,(X)=>{if(g.inputsAwaitingPreflight($).length>0)return this.undoRefs(B,z);const F=this.extractMeta($,{},W.value),V=a0($,{submitter:J});this.pushWithReply(M,"event",{type:"form",event:z,value:V,meta:F,cid:G}).then(({resp:L})=>q(L)).catch((L)=>b("Failed to push form submit",L))})}else if(!($.hasAttribute(d)&&$.classList.contains("phx-submit-loading"))){const B=this.extractMeta($,{},W.value),K=a0($,{submitter:J});this.pushWithReply(Y,"event",{type:"form",event:z,value:K,meta:B,cid:G}).then(({resp:M})=>q(M)).catch((M)=>b("Failed to push form submit",M))}}uploadFiles($,Q,z,J,W,q){const Y=this.joinCount,G=g.activeFileInputs($);let B=G.length;G.forEach((K)=>{const M=new g(K,this,()=>{if(B--,B===0)q()}),X=M.entries().map((V)=>V.toPreflightPayload());if(X.length===0){B--;return}const F={ref:K.getAttribute(z0),entries:X,cid:this.targetComponentID(K.form,z)};this.log("upload",()=>["sending preflight request",F]),this.pushWithReply(null,"allow_upload",F).then(({resp:V})=>{if(this.log("upload",()=>["got preflight response",V]),M.entries().forEach((L)=>{if(V.entries&&!V.entries[L.ref])this.handleFailedEntryPreflight(L.ref,"failed preflight",M)}),V.error||Object.keys(V.entries).length===0)this.undoRefs(J,Q),(V.error||[]).map(([x,T])=>{this.handleFailedEntryPreflight(x,T,M)});else{const L=(x)=>{this.channel.onError(()=>{if(this.joinCount===Y)x()})};M.initAdapterUpload(V,L,this.liveSocket)}}).catch((V)=>b("Failed to push upload",V))})}handleFailedEntryPreflight($,Q,z){if(z.isAutoUpload()){const J=z.entries().find((W)=>W.ref===$.toString());if(J)J.cancel()}else z.entries().map((J)=>J.cancel());this.log("upload",()=>[`error for entry ${$}`,Q])}dispatchUploads($,Q,z){const J=this.targetCtxElement($)||this.el,W=j.findUploadInputs(J).filter((q)=>q.name===Q);if(W.length===0)b(`no live file inputs found matching the name "${Q}"`);else if(W.length>1)b(`duplicate live file inputs found matching the name "${Q}"`);else j.dispatchEvent(W[0],q5,{detail:{files:z}})}targetCtxElement($){if($0($)){const[Q]=j.findComponentNodeList(this.id,$);return Q}else if($)return $;else return null}pushFormRecovery($,Q,z,J){const W=this.binding("change"),q=Q.getAttribute(this.binding("target"))||Q,Y=Q.getAttribute(this.binding(h1))||Q.getAttribute(this.binding("change")),G=Array.from($.elements).filter((M)=>j.isFormInput(M)&&M.name&&!M.hasAttribute(W));if(G.length===0){J();return}G.forEach((M)=>M.hasAttribute(z0)&&g.clearFiles(M));const B=G.find((M)=>M.type!=="hidden")||G[0];let K=0;this.withinTargets(q,(M,X)=>{const F=this.targetComponentID(Q,X);K++;let V=new CustomEvent("phx:form-recovery",{detail:{sourceElement:$}});R.exec(V,"change",Y,this,B,["push",{_target:B.name,targetView:M,targetCtx:X,newCid:F,callback:()=>{if(K--,K===0)J()}}])},z)}pushLinkPatch($,Q,z,J){const W=this.liveSocket.setPendingLink(Q),q=$.isTrusted&&$.type!=="popstate",Y=z?()=>this.putRef([{el:z,loading:q,lock:!0}],null,"click"):null,G=()=>this.liveSocket.redirect(window.location.href),B=Q.startsWith("/")?`${location.protocol}//${location.host}${Q}`:Q;this.pushWithReply(Y,"live_patch",{url:B}).then(({resp:K})=>{this.liveSocket.requestDOMUpdate(()=>{if(K.link_redirect)this.liveSocket.replaceMain(Q,null,J,W);else{if(this.liveSocket.commitPendingLink(W))this.href=Q;this.applyPendingUpdates(),J&&J(W)}})},({error:K,timeout:M})=>G())}getFormsForRecovery(){if(this.joinCount===0)return{};const $=this.binding("change");return j.all(this.el,`form[${$}]`).filter((Q)=>Q.id).filter((Q)=>Q.elements.length>0).filter((Q)=>Q.getAttribute(this.binding(h1))!=="ignore").map((Q)=>{const z=Q.cloneNode(!0);H1(z,Q,{onBeforeElUpdated:(W,q)=>{return j.copyPrivates(W,q),!0}});const J=document.querySelectorAll(`[form="${Q.id}"]`);return Array.from(J).forEach((W)=>{if(Q.contains(W))return;const q=W.cloneNode(!0);H1(q,W),j.copyPrivates(q,W),z.appendChild(q)}),z}).reduce((Q,z)=>{return Q[z.id]=z,Q},{})}maybePushComponentsDestroyed($){let Q=$.filter((J)=>{return j.findComponentNodeList(this.id,J).length===0});const z=(J)=>{if(!this.isDestroyed())b("Failed to push components destroyed",J)};if(Q.length>0)Q.forEach((J)=>this.rendered.resetRender(J)),this.pushWithReply(null,"cids_will_destroy",{cids:Q}).then(()=>{this.liveSocket.requestDOMUpdate(()=>{let J=Q.filter((W)=>{return j.findComponentNodeList(this.id,W).length===0});if(J.length>0)this.pushWithReply(null,"cids_destroyed",{cids:J}).then(({resp:W})=>{this.rendered.pruneCIDs(W.cids)}).catch(z)})}).catch(z)}ownsElement($){let Q=j.closestViewEl($);return $.getAttribute(V0)===this.id||Q&&Q.id===this.id||!Q&&this.isDead}submitForm($,Q,z,J,W={}){j.putPrivate($,_0,!0),Array.from($.elements).forEach((Y)=>j.putPrivate(Y,_0,!0)),this.liveSocket.blurActiveElement(this),this.pushFormSubmit($,Q,z,J,W,()=>{this.liveSocket.restorePreviouslyActiveFocus()})}binding($){return this.liveSocket.binding($)}pushPortalElementId($){this.portalElementIds.add($)}dropPortalElementId($){this.portalElementIds.delete($)}destroyPortalElements(){this.portalElementIds.forEach(($)=>{const Q=document.getElementById($);if(Q)Q.remove()})}};var C9=class{constructor(Z,$,Q={}){if(this.unloaded=!1,!$||$.constructor.name==="Object")throw new Error(` a phoenix Socket must be provided as the second argument to the LiveSocket constructor. For example: import {Socket} from "phoenix" import {LiveSocket} from "phoenix_live_view" let liveSocket = new LiveSocket("/live", Socket, {...}) - `);this.socket=new Z(Q,$),this.bindingPrefix=$.bindingPrefix||v5,this.opts=$,this.params=W1($.params||{}),this.viewLogger=$.viewLogger,this.metadataCallbacks=$.metadata||{},this.defaults=Object.assign(p0(E5),$.defaults||{}),this.activeElement=null,this.prevActive=null,this.silenced=!1,this.main=null,this.outgoingMainEl=null,this.clickStartedAtTarget=null,this.linkRef=1,this.roots={},this.href=window.location.href,this.pendingLink=null,this.currentLocation=p0(window.location),this.hooks=$.hooks||{},this.uploaders=$.uploaders||{},this.loaderTimeout=$.loaderTimeout||k5,this.reloadWithJitterTimer=null,this.maxReloads=$.maxReloads||x5,this.reloadJitterMin=$.reloadJitterMin||O5,this.reloadJitterMax=$.reloadJitterMax||A5,this.failsafeJitter=$.failsafeJitter||R5,this.localStorage=$.localStorage||window.localStorage,this.sessionStorage=$.sessionStorage||window.sessionStorage,this.boundTopLevelEvents=!1,this.domCallbacks=Object.assign({onNodeAdded:W1(),onBeforeElUpdated:W1()},$.dom||{}),this.transitions=new V9,window.addEventListener("pagehide",(Y)=>{this.unloaded=!0}),this.socket.onOpen(()=>{if(this.isUnloaded())window.location.reload()})}isProfileEnabled(){return this.sessionStorage.getItem(Y1)==="true"}isDebugEnabled(){return this.sessionStorage.getItem(N0)==="true"}isDebugDisabled(){return this.sessionStorage.getItem(N0)==="false"}enableDebug(){this.sessionStorage.setItem(N0,"true")}enableProfiling(){this.sessionStorage.setItem(Y1,"true")}disableDebug(){this.sessionStorage.setItem(N0,"false")}disableProfiling(){this.sessionStorage.removeItem(Y1)}enableLatencySim(Q){this.enableDebug(),console.log("latency simulator enabled for the duration of this browser session. Call disableLatencySim() to disable"),this.sessionStorage.setItem(z1,Q)}disableLatencySim(){this.sessionStorage.removeItem(z1)}getLatencySim(){let Q=this.sessionStorage.getItem(z1);return Q?parseInt(Q):null}getSocket(){return this.socket}connect(){if(window.location.hostname==="localhost"&&!this.isDebugDisabled())this.enableDebug();let Q=()=>{if(this.joinRootViews())this.bindTopLevelEvents(),this.socket.connect();else if(this.main)this.socket.connect();else this.bindTopLevelEvents({dead:!0});this.joinDeadView()};if(["complete","loaded","interactive"].indexOf(document.readyState)>=0)Q();else document.addEventListener("DOMContentLoaded",()=>Q())}disconnect(Q){clearTimeout(this.reloadWithJitterTimer),this.socket.disconnect(Q)}replaceTransport(Q){clearTimeout(this.reloadWithJitterTimer),this.socket.replaceTransport(Q),this.connect()}execJS(Q,Z,$=null){this.owner(Q,(Y)=>T.exec($,Z,Y,Q))}execJSHookPush(Q,Z,$,Y){this.withinOwners(Q,(z)=>{T.exec("hook",Z,z,Q,["push",{data:$,callback:Y}])})}unload(){if(this.unloaded)return;if(this.main&&this.isConnected())this.log(this.main,"socket",()=>["disconnect for page nav"]);this.unloaded=!0,this.destroyAllViews(),this.disconnect()}triggerDOM(Q,Z){this.domCallbacks[Q](...Z)}time(Q,Z){if(!this.isProfileEnabled()||!console.time)return Z();console.time(Q);let $=Z();return console.timeEnd(Q),$}log(Q,Z,$){if(this.viewLogger){let[Y,z]=$();this.viewLogger(Q,Z,Y,z)}else if(this.isDebugEnabled()){let[Y,z]=$();m5(Q,Z,Y,z)}}requestDOMUpdate(Q){this.transitions.after(Q)}transition(Q,Z,$=function(){}){this.transitions.addTransition(Q,Z,$)}onChannel(Q,Z,$){Q.on(Z,(Y)=>{let z=this.getLatencySim();if(!z)$(Y);else setTimeout(()=>$(Y),z)})}wrapPush(Q,Z,$){let Y=this.getLatencySim(),z=Q.joinCount;if(!Y)if(this.isConnected()&&Z.timeout)return $().receive("timeout",()=>{if(Q.joinCount===z&&!Q.isDestroyed())this.reloadWithJitter(Q,()=>{this.log(Q,"timeout",()=>["received timeout while communicating with server. Falling back to hard refresh for recovery"])})});else return $();let J={receives:[],receive(W,q){this.receives.push([W,q])}};return setTimeout(()=>{if(Q.isDestroyed())return;J.receives.reduce((W,[q,G])=>W.receive(q,G),$())},Y),J}reloadWithJitter(Q,Z){clearTimeout(this.reloadWithJitterTimer),this.disconnect();let $=this.reloadJitterMin,Y=this.reloadJitterMax,z=Math.floor(Math.random()*(Y-$+1))+$,J=s.updateLocal(this.localStorage,window.location.pathname,n1,0,(W)=>W+1);if(J>this.maxReloads)z=this.failsafeJitter;this.reloadWithJitterTimer=setTimeout(()=>{if(Q.isDestroyed()||Q.isConnected())return;if(Q.destroy(),Z?Z():this.log(Q,"join",()=>[`encountered ${J} consecutive reloads`]),J>this.maxReloads)this.log(Q,"join",()=>[`exceeded ${this.maxReloads} consecutive reloads. Entering failsafe mode`]);if(this.hasPendingLink())window.location=this.pendingLink;else window.location.reload()},z)}getHookCallbacks(Q){return Q&&Q.startsWith("Phoenix.")?o5[Q.split(".")[1]]:this.hooks[Q]}isUnloaded(){return this.unloaded}isConnected(){return this.socket.isConnected()}getBindingPrefix(){return this.bindingPrefix}binding(Q){return`${this.getBindingPrefix()}${Q}`}channel(Q,Z){return this.socket.channel(Q,Z)}joinDeadView(){let Q=document.body;if(Q&&!this.isPhxView(Q)&&!this.isPhxView(document.firstElementChild)){let Z=this.newRootView(Q);if(Z.setHref(this.getHref()),Z.joinDead(),!this.main)this.main=Z;window.requestAnimationFrame(()=>Z.execNewMounted())}}joinRootViews(){let Q=!1;return K.all(document,`${U0}:not([${K0}])`,(Z)=>{if(!this.getRootById(Z.id)){let $=this.newRootView(Z);if($.setHref(this.getHref()),$.join(),Z.hasAttribute(V1))this.main=$}Q=!0}),Q}redirect(Q,Z){this.unload(),s.redirect(Q,Z)}replaceMain(Q,Z,$=null,Y=this.setPendingLink(Q)){let z=this.currentLocation.href;this.outgoingMainEl=this.outgoingMainEl||this.main.el;let J=K.cloneNode(this.outgoingMainEl,"");this.main.showLoader(this.loaderTimeout),this.main.destroy(),this.main=this.newRootView(J,Z,z),this.main.setRedirect(Q),this.transitionRemoves(null,!0),this.main.join((W,q)=>{if(W===1&&this.commitPendingLink(Y))this.requestDOMUpdate(()=>{K.findPhxSticky(document).forEach((G)=>J.appendChild(G)),this.outgoingMainEl.replaceWith(J),this.outgoingMainEl=null,$&&$(Y),q()})})}transitionRemoves(Q,Z){let $=this.binding("remove");if(Q=Q||K.all(document,`[${$}]`),Z){const Y=K.findPhxSticky(document)||[];Q=Q.filter((z)=>!K.isChildOfAny(z,Y))}Q.forEach((Y)=>{this.execJS(Y,Y.getAttribute($),"remove")})}isPhxView(Q){return Q.getAttribute&&Q.getAttribute($0)!==null}newRootView(Q,Z,$){let Y=new $5(Q,this,null,Z,$);return this.roots[Y.id]=Y,Y}owner(Q,Z){let $=Z0(Q.closest(U0),(Y)=>this.getViewByEl(Y))||this.main;if($)Z($)}withinOwners(Q,Z){this.owner(Q,($)=>Z($,Q))}getViewByEl(Q){let Z=Q.getAttribute(M0);return Z0(this.getRootById(Z),($)=>$.getDescendentByEl(Q))}getRootById(Q){return this.roots[Q]}destroyAllViews(){for(let Q in this.roots)this.roots[Q].destroy(),delete this.roots[Q];this.main=null}destroyViewByEl(Q){let Z=this.getRootById(Q.getAttribute(M0));if(Z&&Z.id===Q.id)Z.destroy(),delete this.roots[Z.id];else if(Z)Z.destroyDescendent(Q.id)}setActiveElement(Q){if(this.activeElement===Q)return;this.activeElement=Q;let Z=()=>{if(Q===this.activeElement)this.activeElement=null;Q.removeEventListener("mouseup",this),Q.removeEventListener("touchend",this)};Q.addEventListener("mouseup",Z),Q.addEventListener("touchend",Z)}getActiveElement(){if(document.activeElement===document.body)return this.activeElement||document.activeElement;else return document.activeElement||document.body}dropActiveElement(Q){if(this.prevActive&&Q.ownsElement(this.prevActive))this.prevActive=null}restorePreviouslyActiveFocus(){if(this.prevActive&&this.prevActive!==document.body)this.prevActive.focus()}blurActiveElement(){if(this.prevActive=this.getActiveElement(),this.prevActive!==document.body)this.prevActive.blur()}bindTopLevelEvents({dead:Q}={}){if(this.boundTopLevelEvents)return;if(this.boundTopLevelEvents=!0,this.socket.onClose((Z)=>{if(Z&&Z.code===1000&&this.main)return this.reloadWithJitter(this.main)}),document.body.addEventListener("click",function(){}),window.addEventListener("pageshow",(Z)=>{if(Z.persisted)this.getSocket().disconnect(),this.withPageLoading({to:window.location.href,kind:"redirect"}),window.location.reload()},!0),!Q)this.bindNav();if(this.bindClicks(),!Q)this.bindForms();this.bind({keyup:"keyup",keydown:"keydown"},(Z,$,Y,z,J,W)=>{let q=z.getAttribute(this.binding(C5)),G=Z.key&&Z.key.toLowerCase();if(q&&q.toLowerCase()!==G)return;let j={key:Z.key,...this.eventMeta($,Z,z)};T.exec($,J,Y,z,["push",{data:j}])}),this.bind({blur:"focusout",focus:"focusin"},(Z,$,Y,z,J,W)=>{if(!W){let q={key:Z.key,...this.eventMeta($,Z,z)};T.exec($,J,Y,z,["push",{data:q}])}}),this.bind({blur:"blur",focus:"focus"},(Z,$,Y,z,J,W)=>{if(W==="window"){let q=this.eventMeta($,Z,z);T.exec($,J,Y,z,["push",{data:q}])}}),window.addEventListener("dragover",(Z)=>Z.preventDefault()),window.addEventListener("drop",(Z)=>{Z.preventDefault();let $=Z0(R0(Z.target,this.binding(O1)),(J)=>{return J.getAttribute(this.binding(O1))}),Y=$&&document.getElementById($),z=Array.from(Z.dataTransfer.files||[]);if(!Y||Y.disabled||z.length===0||!(Y.files instanceof FileList))return;w.trackFiles(Y,z,Z.dataTransfer),Y.dispatchEvent(new Event("input",{bubbles:!0}))}),this.on(r1,(Z)=>{let $=Z.target;if(!K.isUploadInput($))return;let Y=Array.from(Z.detail.files||[]).filter((z)=>z instanceof File||z instanceof Blob);w.trackFiles($,Y),$.dispatchEvent(new Event("input",{bubbles:!0}))})}eventMeta(Q,Z,$){let Y=this.metadataCallbacks[Q];return Y?Y(Z,$):{}}setPendingLink(Q){return this.linkRef++,this.pendingLink=Q,this.linkRef}commitPendingLink(Q){if(this.linkRef!==Q)return!1;else return this.href=this.pendingLink,this.pendingLink=null,!0}getHref(){return this.href}hasPendingLink(){return!!this.pendingLink}bind(Q,Z){for(let $ in Q){let Y=Q[$];this.on(Y,(z)=>{let J=this.binding($),W=this.binding(`window-${$}`),q=z.target.getAttribute&&z.target.getAttribute(J);if(q)this.debounce(z.target,z,Y,()=>{this.withinOwners(z.target,(G)=>{Z(z,$,G,z.target,q,null)})});else K.all(document,`[${W}]`,(G)=>{let j=G.getAttribute(W);this.debounce(G,z,Y,()=>{this.withinOwners(G,(B)=>{Z(z,$,B,G,j,"window")})})})})}}bindClicks(){window.addEventListener("mousedown",(Q)=>this.clickStartedAtTarget=Q.target),this.bindClick("click","click",!1),this.bindClick("mousedown","capture-click",!0)}bindClick(Q,Z,$){let Y=this.binding(Z);window.addEventListener(Q,(z)=>{let J=null;if($)J=z.target.matches(`[${Y}]`)?z.target:z.target.querySelector(`[${Y}]`);else{if(z.detail===0)this.clickStartedAtTarget=z.target;let q=this.clickStartedAtTarget||z.target;J=R0(q,Y),this.dispatchClickAway(z,q),this.clickStartedAtTarget=null}let W=J&&J.getAttribute(Y);if(!W){if(!$&&K.isNewPageClick(z,window.location))this.unload();return}if(J.getAttribute("href")==="#")z.preventDefault();if(J.hasAttribute(v))return;this.debounce(J,z,"click",()=>{this.withinOwners(J,(q)=>{T.exec("click",W,q,J,["push",{data:this.eventMeta("click",z,J)}])})})},$)}dispatchClickAway(Q,Z){let $=this.binding("click-away");K.all(document,`[${$}]`,(Y)=>{if(!(Y.isSameNode(Z)||Y.contains(Z)))this.withinOwners(Y,(z)=>{let J=Y.getAttribute($);if(T.isVisible(Y)&&T.isInViewport(Y))T.exec("click",J,z,Y,["push",{data:this.eventMeta("click",Q,Q.target)}])})})}bindNav(){if(!s.canPushState())return;if(history.scrollRestoration)history.scrollRestoration="manual";let Q=null;window.addEventListener("scroll",(Z)=>{clearTimeout(Q),Q=setTimeout(()=>{s.updateCurrentState(($)=>Object.assign($,{scroll:window.scrollY}))},100)}),window.addEventListener("popstate",(Z)=>{if(!this.registerNewLocation(window.location))return;let{type:$,id:Y,root:z,scroll:J}=Z.state||{},W=window.location.href;K.dispatchEvent(window,"phx:navigate",{detail:{href:W,patch:$==="patch",pop:!0}}),this.requestDOMUpdate(()=>{if(this.main.isConnected()&&($==="patch"&&Y===this.main.id))this.main.pushLinkPatch(W,null,()=>{this.maybeScroll(J)});else this.replaceMain(W,null,()=>{if(z)this.replaceRootHistory();this.maybeScroll(J)})})},!1),window.addEventListener("click",(Z)=>{let $=R0(Z.target,t0),Y=$&&$.getAttribute(t0);if(!Y||!this.isConnected()||!this.main||K.wantsNewTab(Z))return;let z=$.href instanceof SVGAnimatedString?$.href.baseVal:$.href,J=$.getAttribute(P5);if(Z.preventDefault(),Z.stopImmediatePropagation(),this.pendingLink===z)return;this.requestDOMUpdate(()=>{if(Y==="patch")this.pushHistoryPatch(z,J,$);else if(Y==="redirect")this.historyRedirect(z,J);else throw new Error(`expected ${t0} to be "patch" or "redirect", got: ${Y}`);let W=$.getAttribute(this.binding("click"));if(W)this.requestDOMUpdate(()=>this.execJS($,W,"click"))})},!1)}maybeScroll(Q){if(typeof Q==="number")requestAnimationFrame(()=>{window.scrollTo(0,Q)})}dispatchEvent(Q,Z={}){K.dispatchEvent(window,`phx:${Q}`,{detail:Z})}dispatchEvents(Q){Q.forEach(([Z,$])=>this.dispatchEvent(Z,$))}withPageLoading(Q,Z){K.dispatchEvent(window,"phx:page-loading-start",{detail:Q});let $=()=>K.dispatchEvent(window,"phx:page-loading-stop",{detail:Q});return Z?Z($):$}pushHistoryPatch(Q,Z,$){if(!this.isConnected()||!this.main.isMain())return s.redirect(Q);this.withPageLoading({to:Q,kind:"patch"},(Y)=>{this.main.pushLinkPatch(Q,$,(z)=>{this.historyPatch(Q,Z,z),Y()})})}historyPatch(Q,Z,$=this.setPendingLink(Q)){if(!this.commitPendingLink($))return;s.pushState(Z,{type:"patch",id:this.main.id},Q),K.dispatchEvent(window,"phx:navigate",{detail:{patch:!0,href:Q,pop:!1}}),this.registerNewLocation(window.location)}historyRedirect(Q,Z,$){if(!this.isConnected()||!this.main.isMain())return s.redirect(Q,$);if(/^\/$|^\/[^\/]+.*$/.test(Q)){let{protocol:z,host:J}=window.location;Q=`${z}//${J}${Q}`}let Y=window.scrollY;this.withPageLoading({to:Q,kind:"redirect"},(z)=>{this.replaceMain(Q,$,(J)=>{if(J===this.linkRef)s.pushState(Z,{type:"redirect",id:this.main.id,scroll:Y},Q),K.dispatchEvent(window,"phx:navigate",{detail:{href:Q,patch:!1,pop:!1}}),this.registerNewLocation(window.location);z()})})}replaceRootHistory(){s.pushState("replace",{root:!0,type:"patch",id:this.main.id})}registerNewLocation(Q){let{pathname:Z,search:$}=this.currentLocation;if(Z+$===Q.pathname+Q.search)return!1;else return this.currentLocation=p0(Q),!0}bindForms(){let Q=0,Z=!1;this.on("submit",($)=>{let Y=$.target.getAttribute(this.binding("submit")),z=$.target.getAttribute(this.binding("change"));if(!Z&&z&&!Y)Z=!0,$.preventDefault(),this.withinOwners($.target,(J)=>{J.disableForm($.target),window.requestAnimationFrame(()=>{if(K.isUnloadableFormSubmit($))this.unload();$.target.submit()})})},!0),this.on("submit",($)=>{let Y=$.target.getAttribute(this.binding("submit"));if(!Y){if(K.isUnloadableFormSubmit($))this.unload();return}$.preventDefault(),$.target.disabled=!0,this.withinOwners($.target,(z)=>{T.exec("submit",Y,z,$.target,["push",{submitter:$.submitter}])})},!1);for(let $ of["change","input"])this.on($,(Y)=>{let z=this.binding("change"),J=Y.target,W=J.getAttribute(z),q=J.form&&J.form.getAttribute(z),G=W||q;if(!G)return;if(J.type==="number"&&J.validity&&J.validity.badInput)return;let j=W?J:J.form,B=Q;Q++;let{at:U,type:V}=K.private(J,"prev-iteration")||{};if(U===B-1&&$==="change"&&V==="input")return;K.putPrivate(J,"prev-iteration",{at:B,type:$}),this.debounce(J,Y,$,()=>{this.withinOwners(j,(X)=>{if(K.putPrivate(J,B1,!0),!K.isTextualInput(J))this.setActiveElement(J);T.exec("change",G,X,J,["push",{_target:Y.target.name,dispatcher:j}])})})},!1);this.on("reset",($)=>{let Y=$.target;K.resetForm(Y,this.binding(m0),this.binding(c0));let z=Array.from(Y.elements).find((J)=>J.type==="reset");if(z)window.requestAnimationFrame(()=>{z.dispatchEvent(new Event("input",{bubbles:!0,cancelable:!1}))})})}debounce(Q,Z,$,Y){if($==="blur"||$==="focusout")return Y();let z=this.binding(b5),J=this.binding(g5),W=this.defaults.debounce.toString(),q=this.defaults.throttle.toString();this.withinOwners(Q,(G)=>{let j=()=>!G.isDestroyed()&&document.body.contains(Q);K.debounce(Q,Z,z,W,J,q,j,()=>{Y()})})}silenceEvents(Q){this.silenced=!0,Q(),this.silenced=!1}on(Q,Z){window.addEventListener(Q,($)=>{if(!this.silenced)Z($)})}},V9=class{constructor(){this.transitions=new Set,this.pendingOps=[]}reset(){this.transitions.forEach((Q)=>{clearTimeout(Q),this.transitions.delete(Q)}),this.flushPendingOps()}after(Q){if(this.size()===0)Q();else this.pushPendingOp(Q)}addTransition(Q,Z,$){Z();let Y=setTimeout(()=>{this.transitions.delete(Y),$(),this.flushPendingOps()},Q);this.transitions.add(Y)}pushPendingOp(Q){this.pendingOps.push(Q)}size(){return this.transitions.size}flushPendingOps(){if(this.size()>0)return;let Q=this.pendingOps.shift();if(Q)Q(),this.flushPendingOps()}};var n0=M5(J5(),1),X9=document.querySelector("meta[name='csrf-token']").getAttribute("content"),L9=document.querySelector("meta[name='socket-path']").getAttribute("content"),F9=document.querySelector("meta[name='socket-transport']").getAttribute("content"),D9=F9=="longpoll"?z0:WebSocket,W5=new Y5(L9,x1,{transport:D9,params:{_csrf_token:X9}});n0.default.config({barColors:{0:"#29d"},shadowColor:"rgba(0, 0, 0, .3)"});window.addEventListener("phx:page-loading-start",(Q)=>n0.default.show(300));window.addEventListener("phx:page-loading-stop",(Q)=>n0.default.hide());W5.connect();window.liveSocket=W5; + `);this.socket=new $(Z,Q),this.bindingPrefix=Q.bindingPrefix||r5,this.opts=Q,this.params=T0(Q.params||{}),this.viewLogger=Q.viewLogger,this.metadataCallbacks=Q.metadata||{},this.defaults=Object.assign(t0(l5),Q.defaults||{}),this.prevActive=null,this.silenced=!1,this.main=null,this.outgoingMainEl=null,this.clickStartedAtTarget=null,this.linkRef=1,this.roots={},this.href=window.location.href,this.pendingLink=null,this.currentLocation=t0(window.location),this.hooks=Q.hooks||{},this.uploaders=Q.uploaders||{},this.loaderTimeout=Q.loaderTimeout||i5,this.disconnectedTimeout=Q.disconnectedTimeout||a5,this.reloadWithJitterTimer=null,this.maxReloads=Q.maxReloads||T5,this.reloadJitterMin=Q.reloadJitterMin||g5,this.reloadJitterMax=Q.reloadJitterMax||k5,this.failsafeJitter=Q.failsafeJitter||v5,this.localStorage=Q.localStorage||window.localStorage,this.sessionStorage=Q.sessionStorage||window.sessionStorage,this.boundTopLevelEvents=!1,this.boundEventNames=new Set,this.blockPhxChangeWhileComposing=Q.blockPhxChangeWhileComposing||!1,this.serverCloseRef=null,this.domCallbacks=Object.assign({jsQuerySelectorAll:null,onPatchStart:T0(),onPatchEnd:T0(),onNodeAdded:T0(),onBeforeElUpdated:T0()},Q.dom||{}),this.transitions=new y9,this.currentHistoryPosition=parseInt(this.sessionStorage.getItem(s0))||0,window.addEventListener("pagehide",(z)=>{this.unloaded=!0}),this.socket.onOpen(()=>{if(this.isUnloaded())window.location.reload()})}version(){return"1.1.11"}isProfileEnabled(){return this.sessionStorage.getItem(K1)==="true"}isDebugEnabled(){return this.sessionStorage.getItem(c0)==="true"}isDebugDisabled(){return this.sessionStorage.getItem(c0)==="false"}enableDebug(){this.sessionStorage.setItem(c0,"true")}enableProfiling(){this.sessionStorage.setItem(K1,"true")}disableDebug(){this.sessionStorage.setItem(c0,"false")}disableProfiling(){this.sessionStorage.removeItem(K1)}enableLatencySim(Z){this.enableDebug(),console.log("latency simulator enabled for the duration of this browser session. Call disableLatencySim() to disable"),this.sessionStorage.setItem(M1,Z)}disableLatencySim(){this.sessionStorage.removeItem(M1)}getLatencySim(){const Z=this.sessionStorage.getItem(M1);return Z?parseInt(Z):null}getSocket(){return this.socket}connect(){if(window.location.hostname==="localhost"&&!this.isDebugDisabled())this.enableDebug();const Z=()=>{if(this.resetReloadStatus(),this.joinRootViews())this.bindTopLevelEvents(),this.socket.connect();else if(this.main)this.socket.connect();else this.bindTopLevelEvents({dead:!0});this.joinDeadView()};if(["complete","loaded","interactive"].indexOf(document.readyState)>=0)Z();else document.addEventListener("DOMContentLoaded",()=>Z())}disconnect(Z){if(clearTimeout(this.reloadWithJitterTimer),this.serverCloseRef)this.socket.off(this.serverCloseRef),this.serverCloseRef=null;this.socket.disconnect(Z)}replaceTransport(Z){clearTimeout(this.reloadWithJitterTimer),this.socket.replaceTransport(Z),this.connect()}execJS(Z,$,Q=null){const z=new CustomEvent("phx:exec",{detail:{sourceElement:Z}});this.owner(Z,(J)=>R.exec(z,Q,$,J,Z))}js(){return U5(this,"js")}unload(){if(this.unloaded)return;if(this.main&&this.isConnected())this.log(this.main,"socket",()=>["disconnect for page nav"]);this.unloaded=!0,this.destroyAllViews(),this.disconnect()}triggerDOM(Z,$){this.domCallbacks[Z](...$)}time(Z,$){if(!this.isProfileEnabled()||!console.time)return $();console.time(Z);const Q=$();return console.timeEnd(Z),Q}log(Z,$,Q){if(this.viewLogger){const[z,J]=Q();this.viewLogger(Z,$,z,J)}else if(this.isDebugEnabled()){const[z,J]=Q();$9(Z,$,z,J)}}requestDOMUpdate(Z){this.transitions.after(Z)}asyncTransition(Z){this.transitions.addAsyncTransition(Z)}transition(Z,$,Q=function(){}){this.transitions.addTransition(Z,$,Q)}onChannel(Z,$,Q){Z.on($,(z)=>{const J=this.getLatencySim();if(!J)Q(z);else setTimeout(()=>Q(z),J)})}reloadWithJitter(Z,$){clearTimeout(this.reloadWithJitterTimer),this.disconnect();const Q=this.reloadJitterMin,z=this.reloadJitterMax;let J=Math.floor(Math.random()*(z-Q+1))+Q;const W=h.updateLocal(this.localStorage,window.location.pathname,J5,0,(q)=>q+1);if(W>=this.maxReloads)J=this.failsafeJitter;this.reloadWithJitterTimer=setTimeout(()=>{if(Z.isDestroyed()||Z.isConnected())return;if(Z.destroy(),$?$():this.log(Z,"join",()=>[`encountered ${W} consecutive reloads`]),W>=this.maxReloads)this.log(Z,"join",()=>[`exceeded ${this.maxReloads} consecutive reloads. Entering failsafe mode`]);if(this.hasPendingLink())window.location=this.pendingLink;else window.location.reload()},J)}getHookDefinition(Z){if(!Z)return;return this.maybeInternalHook(Z)||this.hooks[Z]||this.maybeRuntimeHook(Z)}maybeInternalHook(Z){return Z&&Z.startsWith("Phoenix.")&&B9[Z.split(".")[1]]}maybeRuntimeHook(Z){const $=document.querySelector(`script[${l0}="${CSS.escape(Z)}"]`);if(!$)return;let Q=window[`phx_hook_${Z}`];if(!Q||typeof Q!=="function"){b("a runtime hook must be a function",$);return}const z=Q();if(z&&(typeof z==="object"||typeof z==="function"))return z;b("runtime hook must return an object with hook callbacks or an instance of ViewHook",$)}isUnloaded(){return this.unloaded}isConnected(){return this.socket.isConnected()}getBindingPrefix(){return this.bindingPrefix}binding(Z){return`${this.getBindingPrefix()}${Z}`}channel(Z,$){return this.socket.channel(Z,$)}joinDeadView(){const Z=document.body;if(Z&&!this.isPhxView(Z)&&!this.isPhxView(document.firstElementChild)){const $=this.newRootView(Z);if($.setHref(this.getHref()),$.joinDead(),!this.main)this.main=$;window.requestAnimationFrame(()=>{$.execNewMounted(),this.maybeScroll(history.state?.scroll)})}}joinRootViews(){let Z=!1;return j.all(document,`${h0}:not([${V0}])`,($)=>{if(!this.getRootById($.id)){const Q=this.newRootView($);if(!j.isPhxSticky($))Q.setHref(this.getHref());if(Q.join(),$.hasAttribute(w1))this.main=Q}Z=!0}),Z}redirect(Z,$,Q){if(Q)h.setCookie(E1,Q,60);this.unload(),h.redirect(Z,$)}replaceMain(Z,$,Q=null,z=this.setPendingLink(Z)){const J=this.currentLocation.href;this.outgoingMainEl=this.outgoingMainEl||this.main.el;const W=j.findPhxSticky(document)||[],q=j.all(this.outgoingMainEl,`[${this.binding("remove")}]`).filter((G)=>!j.isChildOfAny(G,W)),Y=j.cloneNode(this.outgoingMainEl,"");this.main.showLoader(this.loaderTimeout),this.main.destroy(),this.main=this.newRootView(Y,$,J),this.main.setRedirect(Z),this.transitionRemoves(q),this.main.join((G,B)=>{if(G===1&&this.commitPendingLink(z))this.requestDOMUpdate(()=>{q.forEach((K)=>K.remove()),W.forEach((K)=>Y.appendChild(K)),this.outgoingMainEl.replaceWith(Y),this.outgoingMainEl=null,Q&&Q(z),B()})})}transitionRemoves(Z,$){const Q=this.binding("remove"),z=(J)=>{J.preventDefault(),J.stopImmediatePropagation()};Z.forEach((J)=>{for(let W of this.boundEventNames)J.addEventListener(W,z,!0);this.execJS(J,J.getAttribute(Q),"remove")}),this.requestDOMUpdate(()=>{Z.forEach((J)=>{for(let W of this.boundEventNames)J.removeEventListener(W,z,!0)}),$&&$()})}isPhxView(Z){return Z.getAttribute&&Z.getAttribute(l)!==null}newRootView(Z,$,Q){const z=new N9(Z,this,null,$,Q);return this.roots[z.id]=z,z}owner(Z,$){let Q;const z=j.closestViewEl(Z);if(z)Q=this.getViewByEl(z);else Q=this.main;return Q&&$?$(Q):Q}withinOwners(Z,$){this.owner(Z,(Q)=>$(Q,Z))}getViewByEl(Z){const $=Z.getAttribute(G0);return U0(this.getRootById($),(Q)=>Q.getDescendentByEl(Z))}getRootById(Z){return this.roots[Z]}destroyAllViews(){for(let Z in this.roots)this.roots[Z].destroy(),delete this.roots[Z];this.main=null}destroyViewByEl(Z){const $=this.getRootById(Z.getAttribute(G0));if($&&$.id===Z.id)$.destroy(),delete this.roots[$.id];else if($)$.destroyDescendent(Z.id)}getActiveElement(){return document.activeElement}dropActiveElement(Z){if(this.prevActive&&Z.ownsElement(this.prevActive))this.prevActive=null}restorePreviouslyActiveFocus(){if(this.prevActive&&this.prevActive!==document.body&&this.prevActive instanceof HTMLElement)this.prevActive.focus()}blurActiveElement(){if(this.prevActive=this.getActiveElement(),this.prevActive!==document.body&&this.prevActive instanceof HTMLElement)this.prevActive.blur()}bindTopLevelEvents({dead:Z}={}){if(this.boundTopLevelEvents)return;if(this.boundTopLevelEvents=!0,this.serverCloseRef=this.socket.onClose(($)=>{if($&&$.code===1000&&this.main)return this.reloadWithJitter(this.main)}),document.body.addEventListener("click",function(){}),window.addEventListener("pageshow",($)=>{if($.persisted)this.getSocket().disconnect(),this.withPageLoading({to:window.location.href,kind:"redirect"}),window.location.reload()},!0),!Z)this.bindNav();if(this.bindClicks(),!Z)this.bindForms();this.bind({keyup:"keyup",keydown:"keydown"},($,Q,z,J,W,q)=>{const Y=J.getAttribute(this.binding(s5)),G=$.key&&$.key.toLowerCase();if(Y&&Y.toLowerCase()!==G)return;const B={key:$.key,...this.eventMeta(Q,$,J)};R.exec($,Q,W,z,J,["push",{data:B}])}),this.bind({blur:"focusout",focus:"focusin"},($,Q,z,J,W,q)=>{if(!q){const Y={key:$.key,...this.eventMeta(Q,$,J)};R.exec($,Q,W,z,J,["push",{data:Y}])}}),this.bind({blur:"blur",focus:"focus"},($,Q,z,J,W,q)=>{if(q==="window"){const Y=this.eventMeta(Q,$,J);R.exec($,Q,W,z,J,["push",{data:Y}])}}),this.on("dragover",($)=>$.preventDefault()),this.on("drop",($)=>{$.preventDefault();const Q=U0(v0($.target,this.binding(T1)),(W)=>{return W.getAttribute(this.binding(T1))}),z=Q&&document.getElementById(Q),J=Array.from($.dataTransfer.files||[]);if(!z||!(z instanceof HTMLInputElement)||z.disabled||J.length===0||!(z.files instanceof FileList))return;g.trackFiles(z,J,$.dataTransfer),z.dispatchEvent(new Event("input",{bubbles:!0}))}),this.on(q5,($)=>{const Q=$.target;if(!j.isUploadInput(Q))return;const z=Array.from($.detail.files||[]).filter((J)=>J instanceof File||J instanceof Blob);g.trackFiles(Q,z),Q.dispatchEvent(new Event("input",{bubbles:!0}))})}eventMeta(Z,$,Q){const z=this.metadataCallbacks[Z];return z?z($,Q):{}}setPendingLink(Z){return this.linkRef++,this.pendingLink=Z,this.resetReloadStatus(),this.linkRef}resetReloadStatus(){h.deleteCookie(E1)}commitPendingLink(Z){if(this.linkRef!==Z)return!1;else return this.href=this.pendingLink,this.pendingLink=null,!0}getHref(){return this.href}hasPendingLink(){return!!this.pendingLink}bind(Z,$){for(let Q in Z){const z=Z[Q];this.on(z,(J)=>{const W=this.binding(Q),q=this.binding(`window-${Q}`),Y=J.target.getAttribute&&J.target.getAttribute(W);if(Y)this.debounce(J.target,J,z,()=>{this.withinOwners(J.target,(G)=>{$(J,Q,G,J.target,Y,null)})});else j.all(document,`[${q}]`,(G)=>{const B=G.getAttribute(q);this.debounce(G,J,z,()=>{this.withinOwners(G,(K)=>{$(J,Q,K,G,B,"window")})})})})}}bindClicks(){this.on("mousedown",(Z)=>this.clickStartedAtTarget=Z.target),this.bindClick("click","click")}bindClick(Z,$){const Q=this.binding($);window.addEventListener(Z,(z)=>{let J=null;if(z.detail===0)this.clickStartedAtTarget=z.target;const W=this.clickStartedAtTarget||z.target;J=v0(z.target,Q),this.dispatchClickAway(z,W),this.clickStartedAtTarget=null;const q=J&&J.getAttribute(Q);if(!q){if(j.isNewPageClick(z,window.location))this.unload();return}if(J.getAttribute("href")==="#")z.preventDefault();if(J.hasAttribute(d))return;this.debounce(J,z,"click",()=>{this.withinOwners(J,(Y)=>{R.exec(z,"click",q,Y,J,["push",{data:this.eventMeta("click",z,J)}])})})},!1)}dispatchClickAway(Z,$){const Q=this.binding("click-away");j.all(document,`[${Q}]`,(z)=>{if(!(z.isSameNode($)||z.contains($)))this.withinOwners(z,(J)=>{const W=z.getAttribute(Q);if(R.isVisible(z)&&R.isInViewport(z))R.exec(Z,"click",W,J,z,["push",{data:this.eventMeta("click",Z,Z.target)}])})})}bindNav(){if(!h.canPushState())return;if(history.scrollRestoration)history.scrollRestoration="manual";let Z=null;window.addEventListener("scroll",($)=>{clearTimeout(Z),Z=setTimeout(()=>{h.updateCurrentState((Q)=>Object.assign(Q,{scroll:window.scrollY}))},100)}),window.addEventListener("popstate",($)=>{if(!this.registerNewLocation(window.location))return;const{type:Q,backType:z,id:J,scroll:W,position:q}=$.state||{},Y=window.location.href,G=q>this.currentHistoryPosition,B=G?Q:z||Q;this.currentHistoryPosition=q||0,this.sessionStorage.setItem(s0,this.currentHistoryPosition.toString()),j.dispatchEvent(window,"phx:navigate",{detail:{href:Y,patch:B==="patch",pop:!0,direction:G?"forward":"backward"}}),this.requestDOMUpdate(()=>{const K=()=>{this.maybeScroll(W)};if(this.main.isConnected()&&B==="patch"&&J===this.main.id)this.main.pushLinkPatch($,Y,null,K);else this.replaceMain(Y,null,K)})},!1),window.addEventListener("click",($)=>{const Q=v0($.target,B1),z=Q&&Q.getAttribute(B1);if(!z||!this.isConnected()||!this.main||j.wantsNewTab($))return;const J=Q.href instanceof SVGAnimatedString?Q.href.baseVal:Q.href,W=Q.getAttribute(h5);if($.preventDefault(),$.stopImmediatePropagation(),this.pendingLink===J)return;this.requestDOMUpdate(()=>{if(z==="patch")this.pushHistoryPatch($,J,W,Q);else if(z==="redirect")this.historyRedirect($,J,W,null,Q);else throw new Error(`expected ${B1} to be "patch" or "redirect", got: ${z}`);const q=Q.getAttribute(this.binding("click"));if(q)this.requestDOMUpdate(()=>this.execJS(Q,q,"click"))})},!1)}maybeScroll(Z){if(typeof Z==="number")requestAnimationFrame(()=>{window.scrollTo(0,Z)})}dispatchEvent(Z,$={}){j.dispatchEvent(window,`phx:${Z}`,{detail:$})}dispatchEvents(Z){Z.forEach(([$,Q])=>this.dispatchEvent($,Q))}withPageLoading(Z,$){j.dispatchEvent(window,"phx:page-loading-start",{detail:Z});const Q=()=>j.dispatchEvent(window,"phx:page-loading-stop",{detail:Z});return $?$(Q):Q}pushHistoryPatch(Z,$,Q,z){if(!this.isConnected()||!this.main.isMain())return h.redirect($);this.withPageLoading({to:$,kind:"patch"},(J)=>{this.main.pushLinkPatch(Z,$,z,(W)=>{this.historyPatch($,Q,W),J()})})}historyPatch(Z,$,Q=this.setPendingLink(Z)){if(!this.commitPendingLink(Q))return;this.currentHistoryPosition++,this.sessionStorage.setItem(s0,this.currentHistoryPosition.toString()),h.updateCurrentState((z)=>({...z,backType:"patch"})),h.pushState($,{type:"patch",id:this.main.id,position:this.currentHistoryPosition},Z),j.dispatchEvent(window,"phx:navigate",{detail:{patch:!0,href:Z,pop:!1,direction:"forward"}}),this.registerNewLocation(window.location)}historyRedirect(Z,$,Q,z,J){const W=J&&Z.isTrusted&&Z.type!=="popstate";if(W)J.classList.add("phx-click-loading");if(!this.isConnected()||!this.main.isMain())return h.redirect($,z);if(/^\/$|^\/[^\/]+.*$/.test($)){const{protocol:Y,host:G}=window.location;$=`${Y}//${G}${$}`}const q=window.scrollY;this.withPageLoading({to:$,kind:"redirect"},(Y)=>{this.replaceMain($,z,(G)=>{if(G===this.linkRef)this.currentHistoryPosition++,this.sessionStorage.setItem(s0,this.currentHistoryPosition.toString()),h.updateCurrentState((B)=>({...B,backType:"redirect"})),h.pushState(Q,{type:"redirect",id:this.main.id,scroll:q,position:this.currentHistoryPosition},$),j.dispatchEvent(window,"phx:navigate",{detail:{href:$,patch:!1,pop:!1,direction:"forward"}}),this.registerNewLocation(window.location);if(W)J.classList.remove("phx-click-loading");Y()})})}registerNewLocation(Z){const{pathname:$,search:Q}=this.currentLocation;if($+Q===Z.pathname+Z.search)return!1;else return this.currentLocation=t0(Z),!0}bindForms(){let Z=0,$=!1;this.on("submit",(Q)=>{const z=Q.target.getAttribute(this.binding("submit")),J=Q.target.getAttribute(this.binding("change"));if(!$&&J&&!z)$=!0,Q.preventDefault(),this.withinOwners(Q.target,(W)=>{W.disableForm(Q.target),window.requestAnimationFrame(()=>{if(j.isUnloadableFormSubmit(Q))this.unload();Q.target.submit()})})}),this.on("submit",(Q)=>{const z=Q.target.getAttribute(this.binding("submit"));if(!z){if(j.isUnloadableFormSubmit(Q))this.unload();return}Q.preventDefault(),Q.target.disabled=!0,this.withinOwners(Q.target,(J)=>{R.exec(Q,"submit",z,J,Q.target,["push",{submitter:Q.submitter}])})});for(let Q of["change","input"])this.on(Q,(z)=>{if(z instanceof CustomEvent&&(z.target instanceof HTMLInputElement||z.target instanceof HTMLSelectElement||z.target instanceof HTMLTextAreaElement)&&z.target.form===void 0){if(z.detail&&z.detail.dispatcher)throw new Error(`dispatching a custom ${Q} event is only supported on input elements inside a form`);return}const J=this.binding("change"),W=z.target;if(this.blockPhxChangeWhileComposing&&z.isComposing){const F=`composition-listener-${Q}`;if(!j.private(W,F))j.putPrivate(W,F,!0),W.addEventListener("compositionend",()=>{W.dispatchEvent(new Event(Q,{bubbles:!0})),j.deletePrivate(W,F)},{once:!0});return}const q=W.getAttribute(J),Y=W.form&&W.form.getAttribute(J),G=q||Y;if(!G)return;if(W.type==="number"&&W.validity&&W.validity.badInput)return;const B=q?W:W.form,K=Z;Z++;const{at:M,type:X}=j.private(W,"prev-iteration")||{};if(M===K-1&&Q==="change"&&X==="input")return;j.putPrivate(W,"prev-iteration",{at:K,type:Q}),this.debounce(W,z,Q,()=>{this.withinOwners(B,(F)=>{j.putPrivate(W,e0,!0),R.exec(z,"change",G,F,W,["push",{_target:z.target.name,dispatcher:B}])})})});this.on("reset",(Q)=>{const z=Q.target;j.resetForm(z);const J=Array.from(z.elements).find((W)=>W.type==="reset");if(J)window.requestAnimationFrame(()=>{J.dispatchEvent(new Event("input",{bubbles:!0,cancelable:!1}))})})}debounce(Z,$,Q,z){if(Q==="blur"||Q==="focusout")return z();const J=this.binding(m5),W=this.binding(p5),q=this.defaults.debounce.toString(),Y=this.defaults.throttle.toString();this.withinOwners(Z,(G)=>{const B=()=>!G.isDestroyed()&&document.body.contains(Z);j.debounce(Z,$,J,q,W,Y,B,()=>{z()})})}silenceEvents(Z){this.silenced=!0,Z(),this.silenced=!1}on(Z,$){this.boundEventNames.add(Z),window.addEventListener(Z,(Q)=>{if(!this.silenced)$(Q)})}jsQuerySelectorAll(Z,$,Q){const z=this.domCallbacks.jsQuerySelectorAll;return z?z(Z,$,Q):Q()}},y9=class{constructor(){this.transitions=new Set,this.promises=new Set,this.pendingOps=[]}reset(){this.transitions.forEach((Z)=>{clearTimeout(Z),this.transitions.delete(Z)}),this.promises.clear(),this.flushPendingOps()}after(Z){if(this.size()===0)Z();else this.pushPendingOp(Z)}addTransition(Z,$,Q){$();const z=setTimeout(()=>{this.transitions.delete(z),Q(),this.flushPendingOps()},Z);this.transitions.add(z)}addAsyncTransition(Z){this.promises.add(Z),Z.then(()=>{this.promises.delete(Z),this.flushPendingOps()})}pushPendingOp(Z){this.pendingOps.push(Z)}size(){return this.transitions.size+this.promises.size}flushPendingOps(){if(this.size()>0)return;const Z=this.pendingOps.shift();if(Z)Z(),this.flushPendingOps()}},V5=C9;var z1=O5(X5(),1),T9=document.querySelector("meta[name='csrf-token']").getAttribute("content"),g9=document.querySelector("meta[name='socket-path']").getAttribute("content"),k9=document.querySelector("meta[name='socket-transport']").getAttribute("content"),v9=k9=="longpoll"?B0:WebSocket,L5=new V5(g9,C1,{transport:v9,params:{_csrf_token:T9}});z1.default.config({barColors:{0:"#29d"},shadowColor:"rgba(0, 0, 0, .3)"});window.addEventListener("phx:page-loading-start",(Z)=>z1.default.show(300));window.addEventListener("phx:page-loading-stop",(Z)=>z1.default.hide());L5.connect();window.liveSocket=L5; From 48116dd72e17e7967278ec4a3a9499fcc16f8485 Mon Sep 17 00:00:00 2001 From: crbelaus Date: Sun, 14 Sep 2025 12:15:01 +0200 Subject: [PATCH 3/3] Update formatter --- lib/error_tracker/web/components/core_components.ex | 10 +++++----- lib/error_tracker/web/components/layouts.ex | 2 +- .../web/components/layouts/live.html.heex | 2 +- .../web/components/layouts/root.html.heex | 4 ++-- lib/error_tracker/web/live/dashboard.html.heex | 12 ++++++------ lib/error_tracker/web/live/show.html.heex | 12 ++++++------ 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/lib/error_tracker/web/components/core_components.ex b/lib/error_tracker/web/components/core_components.ex index 12eb26d..4c413b4 100644 --- a/lib/error_tracker/web/components/core_components.ex +++ b/lib/error_tracker/web/components/core_components.ex @@ -26,7 +26,7 @@ defmodule ErrorTracker.Web.CoreComponents do ]} {@rest} > - <%= render_slot(@inner_block) %> + {render_slot(@inner_block)} """ end @@ -42,7 +42,7 @@ defmodule ErrorTracker.Web.CoreComponents do ]} {@rest} > - <%= render_slot(@inner_block) %> + {render_slot(@inner_block)} """ end @@ -80,7 +80,7 @@ defmodule ErrorTracker.Web.CoreComponents do class={["text-sm font-medium me-2 py-1 px-2 rounded-lg ring-1 ring-inset", @color_class]} {@rest} > - <%= render_slot(@inner_block) %> + {render_slot(@inner_block)} """ end @@ -124,9 +124,9 @@ defmodule ErrorTracker.Web.CoreComponents do :if={assigns[:title]} class={["text-sm font-semibold mb-2 uppercase text-gray-400", @title_class]} > - <%= @title %> + {@title} - <%= render_slot(@inner_block) %> + {render_slot(@inner_block)} """ end diff --git a/lib/error_tracker/web/components/layouts.ex b/lib/error_tracker/web/components/layouts.ex index 2ad77a4..c958cc9 100644 --- a/lib/error_tracker/web/components/layouts.ex +++ b/lib/error_tracker/web/components/layouts.ex @@ -97,7 +97,7 @@ defmodule ErrorTracker.Web.Layouts do class="whitespace-nowrap flex-0 block py-2 px-3 rounded-lg text-white hover:text-white hover:bg-gray-700 md:hover:bg-transparent md:border-0 md:hover:text-sky-500" {@rest} > - <%= render_slot(@inner_block) %> + {render_slot(@inner_block)} """ diff --git a/lib/error_tracker/web/components/layouts/live.html.heex b/lib/error_tracker/web/components/layouts/live.html.heex index b6b6845..a495577 100644 --- a/lib/error_tracker/web/components/layouts/live.html.heex +++ b/lib/error_tracker/web/components/layouts/live.html.heex @@ -1,4 +1,4 @@ <.navbar id="navbar" {assigns} />
- <%= @inner_content %> + {@inner_content}
diff --git a/lib/error_tracker/web/components/layouts/root.html.heex b/lib/error_tracker/web/components/layouts/root.html.heex index e1b694a..46ac51d 100644 --- a/lib/error_tracker/web/components/layouts/root.html.heex +++ b/lib/error_tracker/web/components/layouts/root.html.heex @@ -8,7 +8,7 @@ - <%= assigns[:page_title] || "🐛 ErrorTracker" %> + {assigns[:page_title] || "🐛 ErrorTracker"}