From 8e43ea9dbdd356a586140c013458803879dced14 Mon Sep 17 00:00:00 2001 From: "pierre.geeraert" Date: Wed, 26 Aug 2026 20:33:58 +0100 Subject: [PATCH] maybe finished --- django_code/apps/cloudmanager/apps.py | 2 +- .../apps/cloudmanager/db_interaction.py | 2 +- django_code/apps/streaming/utils.py | 1 + django_code/apps/streaming/views.py | 27 ++--- .../static/djangoql/css/completion.css | 85 +++++++++++++ .../static/djangoql/css/completion.css.map | 1 + .../static/djangoql/css/completion_admin.css | 31 +++++ .../static/djangoql/css/syntax_help.css | 14 +++ .../djangoql/img/completion_example.png | Bin 0 -> 91020 bytes .../img/completion_example_scaled.png | Bin 0 -> 66780 bytes .../static/djangoql/js/completion.js | 2 + .../static/djangoql/js/completion.js.map | 1 + .../static/djangoql/js/completion_admin.js | 113 ++++++++++++++++++ .../djangoql/js/completion_admin_toggle.js | 6 + .../js/completion_admin_toggle_off.js | 5 + requirements.txt | 3 +- 16 files changed, 273 insertions(+), 20 deletions(-) create mode 100644 django_code/templates/static/djangoql/css/completion.css create mode 100644 django_code/templates/static/djangoql/css/completion.css.map create mode 100644 django_code/templates/static/djangoql/css/completion_admin.css create mode 100644 django_code/templates/static/djangoql/css/syntax_help.css create mode 100644 django_code/templates/static/djangoql/img/completion_example.png create mode 100644 django_code/templates/static/djangoql/img/completion_example_scaled.png create mode 100644 django_code/templates/static/djangoql/js/completion.js create mode 100644 django_code/templates/static/djangoql/js/completion.js.map create mode 100644 django_code/templates/static/djangoql/js/completion_admin.js create mode 100644 django_code/templates/static/djangoql/js/completion_admin_toggle.js create mode 100644 django_code/templates/static/djangoql/js/completion_admin_toggle_off.js diff --git a/django_code/apps/cloudmanager/apps.py b/django_code/apps/cloudmanager/apps.py index 1010f1c..3256025 100644 --- a/django_code/apps/cloudmanager/apps.py +++ b/django_code/apps/cloudmanager/apps.py @@ -3,7 +3,7 @@ from django.http import HttpResponse from django.http import HttpResponseRedirect from django.shortcuts import render import os -import psycopg2 +#import psycopg2 from apps.cloudmanager.db_interaction import DB_generation,Check_server_supposed_XXX,Give_current_weekday,Give_current_hour diff --git a/django_code/apps/cloudmanager/db_interaction.py b/django_code/apps/cloudmanager/db_interaction.py index 2d018e7..309f9b8 100644 --- a/django_code/apps/cloudmanager/db_interaction.py +++ b/django_code/apps/cloudmanager/db_interaction.py @@ -1,4 +1,4 @@ -import psycopg2 +#import psycopg2 from django.http import HttpResponse from django.views.decorators.http import require_POST from apps.kubernetes_connection import apps as kubernetes_connection diff --git a/django_code/apps/streaming/utils.py b/django_code/apps/streaming/utils.py index 0e7b537..065284b 100644 --- a/django_code/apps/streaming/utils.py +++ b/django_code/apps/streaming/utils.py @@ -1,6 +1,7 @@ import requests from django.conf import settings from apps.betaserie.utils import betaserieUtils +import random def full_testing(url_website): status = "unknown" diff --git a/django_code/apps/streaming/views.py b/django_code/apps/streaming/views.py index 487bc70..e54197e 100644 --- a/django_code/apps/streaming/views.py +++ b/django_code/apps/streaming/views.py @@ -5,6 +5,7 @@ from .models import StreamingRedirectData from .utils import randomEpisode,followingEpisode from apps.betaserie.utils import betaserieUtils + betaserie = betaserieUtils() @@ -28,24 +29,18 @@ def streamingRedirect(request,alias): betaserieShowId = streaming_object.values('betaserieShowId')[0]['betaserieShowId'] - print(url_prefix) - - print(season) - print(episode) + print("Last episode seen:") + print("Season: "+str(season)) + print("Episode: "+str(episode)) print(seasonInformation) + - value = str(streaming_object.values('url_example')) - print(value) + randomViewing = streaming_object.values('randomViewing')[0]['randomViewing'] + print("randomViewing: "+str(randomViewing)) - url_example = str(streaming_object.values('url_example')[0]['url_example']) - print(url_example) - - randomViewing =str(streaming_object.values('randomViewing')[0]['randomViewing']) - print(randomViewing) - - if (randomViewing == False): + if (randomViewing == True): print('show set to random') boolean_restart = True; while (boolean_restart): @@ -53,15 +48,13 @@ def streamingRedirect(request,alias): episode_number = "S"+str(season)+"E"+str(episode) episode_id,episode_seen = betaserie.identify_episode(betaserieShowId,episode_number) - + print("episode_seen: "+str(episode_seen)) + if not(episode_seen): boolean_restart = False else: print("episode "+str(episode)+" from season "+str(season)+" already seen") - -#tests - else: print('show set to following episode') season,episode,lastEpisode = followingEpisode(season,episode,seasonInformation,maximumNumberSeason) diff --git a/django_code/templates/static/djangoql/css/completion.css b/django_code/templates/static/djangoql/css/completion.css new file mode 100644 index 0000000..58fc1c7 --- /dev/null +++ b/django_code/templates/static/djangoql/css/completion.css @@ -0,0 +1,85 @@ +.djangoql-completion { + position: absolute; + display: none; + border: solid 1px #ccc; + border-radius: 4px; + background: white; + background: var(--body-bg, white); + min-width: 183px; + font-size: 13px; +} + +.djangoql-completion .active { + background-color: #79aec8; + color: white; +} + +.djangoql-completion ul { + padding: 2px 0; + margin: 0; + max-height: 295px; + overflow: auto; +} + +.djangoql-completion li { + list-style: none; + padding: 4px 10px; + cursor: pointer; +} + +.djangoql-completion li:hover { + background-color: #c4e9fa; + color: black; +} + +.djangoql-completion li i { + font-size: 0.9em; + color: #ccc; + float: right; + font-style: normal; +} + +.djangoql-completion .syntax-help { + padding: 4px 10px 6px 10px; + margin: 0; + border-top: solid 1px #ccc; + font-size: inherit; +} + +/* +Pure CSS loading icon. Credit: https://loading.io/css/ +*/ +.djangoql-loading { + display: block; + position: relative; +} + +.djangoql-loading:after { + -moz-animation: djangoql-loading 1.2s linear infinite; + -ms-animation: djangoql-loading 1.2s linear infinite; + -webkit-animation: djangoql-loading 1.2s linear infinite; + animation: djangoql-loading 1.2s linear infinite; + border: 2px solid #aaa; + border-color: #aaa transparent #aaa transparent; + border-radius: 50%; + content: " "; + display: block; + height: 12px; + left: 50%; + margin: -8px; + position: absolute; + top: 50%; + width: 12px; +} + +@keyframes djangoql-loading { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} + + +/*# sourceMappingURL=completion.css.map*/ \ No newline at end of file diff --git a/django_code/templates/static/djangoql/css/completion.css.map b/django_code/templates/static/djangoql/css/completion.css.map new file mode 100644 index 0000000..194c015 --- /dev/null +++ b/django_code/templates/static/djangoql/css/completion.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./node_modules/djangoql-completion/dist/completion.css"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB,aAAa;EACb,sBAAsB;EACtB,kBAAkB;EAClB,iBAAiB;EACjB,iCAAiC;EACjC,gBAAgB;EAChB,eAAe;AACjB;;AAEA;EACE,yBAAyB;EACzB,YAAY;AACd;;AAEA;EACE,cAAc;EACd,SAAS;EACT,iBAAiB;EACjB,cAAc;AAChB;;AAEA;EACE,gBAAgB;EAChB,iBAAiB;EACjB,eAAe;AACjB;;AAEA;EACE,yBAAyB;EACzB,YAAY;AACd;;AAEA;EACE,gBAAgB;EAChB,WAAW;EACX,YAAY;EACZ,kBAAkB;AACpB;;AAEA;EACE,0BAA0B;EAC1B,SAAS;EACT,0BAA0B;EAC1B,kBAAkB;AACpB;;AAEA;;CAEC;AACD;EACE,cAAc;EACd,kBAAkB;AACpB;;AAEA;EACE,qDAAqD;EACrD,oDAAoD;EACpD,wDAAwD;EACxD,gDAAgD;EAChD,sBAAsB;EACtB,+CAA+C;EAC/C,kBAAkB;EAClB,YAAY;EACZ,cAAc;EACd,YAAY;EACZ,SAAS;EACT,YAAY;EACZ,kBAAkB;EAClB,QAAQ;EACR,WAAW;AACb;;AAEA;EACE;IACE,uBAAuB;EACzB;EACA;IACE,yBAAyB;EAC3B;AACF","file":"css/completion.css","sourcesContent":[".djangoql-completion {\n position: absolute;\n display: none;\n border: solid 1px #ccc;\n border-radius: 4px;\n background: white;\n background: var(--body-bg, white);\n min-width: 183px;\n font-size: 13px;\n}\n\n.djangoql-completion .active {\n background-color: #79aec8;\n color: white;\n}\n\n.djangoql-completion ul {\n padding: 2px 0;\n margin: 0;\n max-height: 295px;\n overflow: auto;\n}\n\n.djangoql-completion li {\n list-style: none;\n padding: 4px 10px;\n cursor: pointer;\n}\n\n.djangoql-completion li:hover {\n background-color: #c4e9fa;\n color: black;\n}\n\n.djangoql-completion li i {\n font-size: 0.9em;\n color: #ccc;\n float: right;\n font-style: normal;\n}\n\n.djangoql-completion .syntax-help {\n padding: 4px 10px 6px 10px;\n margin: 0;\n border-top: solid 1px #ccc;\n font-size: inherit;\n}\n\n/*\nPure CSS loading icon. Credit: https://loading.io/css/\n*/\n.djangoql-loading {\n display: block;\n position: relative;\n}\n\n.djangoql-loading:after {\n -moz-animation: djangoql-loading 1.2s linear infinite;\n -ms-animation: djangoql-loading 1.2s linear infinite;\n -webkit-animation: djangoql-loading 1.2s linear infinite;\n animation: djangoql-loading 1.2s linear infinite;\n border: 2px solid #aaa;\n border-color: #aaa transparent #aaa transparent;\n border-radius: 50%;\n content: \" \";\n display: block;\n height: 12px;\n left: 50%;\n margin: -8px;\n position: absolute;\n top: 50%;\n width: 12px;\n}\n\n@keyframes djangoql-loading {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/django_code/templates/static/djangoql/css/completion_admin.css b/django_code/templates/static/djangoql/css/completion_admin.css new file mode 100644 index 0000000..053349f --- /dev/null +++ b/django_code/templates/static/djangoql/css/completion_admin.css @@ -0,0 +1,31 @@ +#changelist #toolbar form textarea#searchbar { + width: 80%; +} + +.djangoql-toggle { + margin-right: 10px; +} + +.djangoql-help { + display: inline-block; + float: right; + margin-right: 30px; +} + +@media (max-width: 1024px) { + .djangoql-help { + margin-right: 20px; + } +} + +@media (max-width: 767px) { + .djangoql-help { + margin-right: 5px; + } +} + +.clearfix::after { + content: ""; + clear: both; + display: table; +} diff --git a/django_code/templates/static/djangoql/css/syntax_help.css b/django_code/templates/static/djangoql/css/syntax_help.css new file mode 100644 index 0000000..43ad5e7 --- /dev/null +++ b/django_code/templates/static/djangoql/css/syntax_help.css @@ -0,0 +1,14 @@ +code { + background-color: rgba(27, 31, 35, 0.05); + padding: 0.2em; +} + +pre { + background-color: rgba(27, 31, 35, 0.05); + padding: 5px 40px; + margin: 0 0 10px 0; +} + +table { + margin: 10px 0; +} diff --git a/django_code/templates/static/djangoql/img/completion_example.png b/django_code/templates/static/djangoql/img/completion_example.png new file mode 100644 index 0000000000000000000000000000000000000000..b36422964237df52c0359d6bb466dc6f0db1b85f GIT binary patch literal 91020 zcmeFYWmr^Q+b|3&A}FE)qLPx*4bmt`Gjw-%w{%E%cXu;%4V^SY|IELA?*FM);XRNb#una&11N|L35)u-In5d8(64JvxUbNt8Y_J})W*-e{o7D!Pag5)_rJ3a5|N9vfGZSr+TdO{#$%}B|w92Q8d zgd^aK^um@2kf`U#1c=v@2$r&_CF)s1iYlf}ASOUUVX`(t<|gQqePLhw%ihI3sFe7^ zz_{w;i{-$d%#_CLJs}1`Qu6Jgv9}FL#cNEeWoNduBVR}iyfPR$QrV8~G$QWkIA?RJ zInQ)+jh^`C_HuSRmJX&6Q1>YWsb3bqjDArn;2zx{{WJ7r@tLem+OTI7-I<^H<8~GS z?%u=Nj~cCde$Dqgy-`?ZFu&@YJ;h7 zhe=?#0IPxm=ylwHS14bQYNyvL2QW0CwtFu{`~l4IgixG8|4u(fsIeRB+F(r@!MbB#?L-H^7`C^(q+r9J@^3^Ti_56IuvC6MXT%~}c)Gdyq;8o7JKP>tpTIv#X>{Yk$K2-I z{7kzeiNA`#8nO;e$r9gLT+VF&_^NyEU)4zA@$jR^vV*Bk_3ByTKf6YCC^SxeU5NaT6u23|h?&T1*A_=Y#y!rIP-~amyt{k6j65${e zy}(A|3{j+40Yao=qUbRZ$1h(3kyHcXNbsW24RGZ`;UQ@Pqr{0(R_o8l1D_FBMoWJP zkdswZz+)4p%%(5Gd>7J}!}8sM6_ZXVG1vUNUF|zwZ}u$X?=;&|wYVNW&-IaF``;uH z8hvZh@l+v82+P-fVDVDPH(qy2g?IW{`>A6YE?y7cs!&=4i!F^xYNreSXy57amrJwO z2bG<8$4+prr9jMI+Gwo4uRDELgrB@8do_+`|D@NSxl60dwu|#}`3!66Ww6lWAO73V z?!aVv6t;Y}Y_@nOFRJ5zO1VqoQ$<BYPTyN)^*XvJo31rY?pmS|~OndXtA~;0mOl zjldTLP@E2aS!afLLZ~2Y5Ee*KT1;AWTB=4KzKB)Ef?5-=-H4s?#`T8qhaqgN5LEJn z7%^3Gs=`V6QQ1TJr2#N_58N^&9ltfm5Y3RtPwOQMlD;KX{ALC?&jl2Q6qy&nipnRs zCplQ(jU;VKNfc~MOn)~sH8#aGCBoiDpGJR=j{mI}JsuqceFj^LdWh;B)%Ax_1zH7K zd7cs%MOzs$z@W;YbZ~yHXtCUmzg*;a6|?575~m!eh-)3hb3l(z7)Aiv0wGI>c#Q9zMVNkR#s!hr&ToV={POsH~dsZz0%TzR4o zQ`p=0VHSOAeJ}gy`U=tJu-qwZD9ci0_0_;HdlnEf)BA~u_P!6lUp?eHcZ;x{Fum|wVf8TjH*Fm3OaMkL z-31f)g3uyaPu};u(RC2j$RwC`tak1!;O&p$URtn4s%j#q*`Y~>u9m6i)Pp)3;EJk6 z&2~MRO0yb-u9VKLtVoGZ2}Q|K$z%H29^)R#p735`>@!MoX*K?xuDnY22=-ZaH;cpB zlAnNTI-q5}ho!Mqe|>3fi>`DHX05ixvccU@XP3`j)#9&u(nY2P+i&`*Yq*rgls@up z6W%r1_96E1_K~3_5^-R&#L$XI%Gxu%6?7Fui)jmx#fZk64Xcfe4bbwT``qAbfy?39{`vT+o~xo8FNFPg)8**gb5nmacE`SBE59`)eHpwf>E7;4}TUr7sEKiXArmx zPOEZqXEHbQvhf$A1Ms^MzyM#I;HcOjXQ%QnjL0ux%Tl}kS(WSmdpmTrJAmeF73^=)7jJc z*V}X|%~{sjV_lk|QD2Hf=U(H{YJnQP#Ja7E?ICkf-a6OhpufycSA}Y zqoHE{x``xr)hOS3Bb&OsL{agm!M0v={;;jhGw>o}oFLN);b=!;1Ek5P|McB zL3B5A-QYp@l`fug3Q)oOg|iMmxxLdh(OuqD?q@tc#$%N_<#c4RI*WH8KhHh(Eu+PS z?-)M&ln)o6eb)HXZt!3{7)+mtSNT!XblYbC<88~@Q9pM&7hVOIw&kwff!Sfkg2!&k zOdZS2O=V{LOS`q9k)YJYhE=P@!{nt2w^V!BRr)@6<>BiEf~JObzF(e$5A#tCG3yAG z?z;Dh0>7qzmA<%wI`V|LIvg>AfX1fLF{3jTtdA9p0s z-T|GH%potOHdYVUeTJiUu7Fp8*V<@W;UKLW;k6M^!*lETfZPBg5ZILi0$TU$3rvZm zCt`3HzdW-r7&RW>f-o3qr?dxnw(+O1aHW7>RgsAxKVxU5!|9--9S@SO$kVw`v#P;QM z;XV7+y}gZRi6lCLGjD&=oVXC0wpduy7rEhIXuWMkfXGrg2X@htg z35myr3vp>_=%7pNVrgMz&*j2P^7{!c#P$7c1`^`mk2sj~lBh_@5DQw{84|P6v(ht? z@SzhE6Z6;^7;(u73I72{{Ng1sad5EVVqkD~cBXe`p|`d(W?q2K`Px{X!f9DZ0wAZ&YwQ(@Dwj#ctS69#4(SetQ3-W%OhYe1D^7akV>nHv%UWqcVPCU^ER}Dny z3gY(%xQtL#uZ7G)>}XV}>)xwNl*nBuwJkO5&M7u|Y8oC9oe))n6;GxE7R6m-TPzM^ zG`z@E@%wwK34ndoy6@fJ=tfluJRuVh-A;uj+m8-Aj3p8@j-hik9HbA0OwFzaXHBPbc8a z?R}J#g)SV{!*lKbs*xgo6m9OVLTq}*sr^%Dd;MPG_@{rgR|N$!HoSFvo}$_H%gCd{ zqw)kl5%Z0chQe^-=FK|}vz*LXy?Li&rCA6C#Wg9CSX?!QjTH6$W>qP!XNH`Ds;#n= zIc`LV<_amUADX@&Wk`fI=;wGjn)@&O(PuNy@0Zve*Xjh*m@(RT)$PL%NL&w1jz7VV zFfiJHjBVAbY7r%0kVcbNeNN7HUo=wSxJOHwH;>;~4;h%wYE#UM7)Hw%mAs89&pe1u zE?yU3uWOJnw9bwp)a6Q@b`leut?C1j5FBhk7C`2qti{G%_@9@POy60AKsv#_xN-lX8%bJo+?Ap=C z$mmNuZ8?Y-qt23<%{+`-74;jYR#og8?xT?44z`jNTzMP~UR6s8)Fvh6B04bI zOWKkOtx!_qzjEgO;KLB>OQA2uh+_UVP;i7qZS@WlHbz(oaF9t` za*>7COo)&*%{FX%URzgZF7d#lA+(S$(3V2 z{JV{u-!jQI`*7yRhf6@cdb_*O;fzPx;Z_R4lNOY9SS-T2-Nnk!sFK$$$Ik4#jhL+^ zZ5y*awEDXV8^tFGM7}K|5K-#Hl{Hpa{;q$-L*$kZ8D&r&n4pBbqCV;f4~4C>oL=Xf zU00o9N-1r5T`zj2*Ve@kg^I+&utigoyywW8dokQfJNTe!QO;A?IOnK=$g=Rc zjb%;x0gJ&*C)N16lEARD{-U?Lk!)qXbInb>87$QZj33*l!ea;MX`D5!DVApns09@a z?AWucvz>p;%+o-LEw=bD;q>^Reu7Eyf?$e09V$j};Z`1n4(hg0bj$?R)P_U%#2!-? zmgY`)%f~V@>i^&`W9Pd?_iVf9<$ir3X8C0fuU&rs7EErpzg7$pH-A8(o3?t`^o(Zw z=nd5mchmw=3G?LJ#W#NNRfAt||9U+CxHJB|A8LIohgMVAU3cXv+lH^_trEidX-+-o zal0YIn>Tj$#m~zqFeRML{Vcw^1`v>K&P=<_8Qfr$%N3w|tQ(sIJWs(LxX?}jR}2XB z`IQjP-r}O>4|7tAJEV4c(Vo`7wP-5UWT)k(G9;J1iWgPi!+a#wzo>!CxRjhkPd&QiSy^Un;1agHUDb;h8TK=*aktK}G7v>fgiG|bbp`$e> zxhlkC@G2#ze7h+phh?g!T)@0+9Dr4WUMdiGXXhQ-yo_Rlh1Yge9EQ1XYse`awmRs?W%ZJ}up4;Wx zvU}xf#+yB^k;`RACq>R6qW(6!rP94!X)!~Cmgy+LjcdY8O8zP6C4fUO;)o7P5RZ!c z(X#V)Uaq}S8B}+Xx4;AYY=D0Ab$^fh$dr3*QrSR&@b8&s+(c-w)6W_%D9ft7UP{U* zdy9(j_XMJM0yz0HO~Uoe(~Y~nJQsx`iq)7>tg8joi(W;E{iN7$802K4VT0(d!e0&N zm7j~2t5Y!8^z?q$n7umf_388!`Z;{ir?|D@ot5uc76pmdCK{*H*Y1J3vNI`+d zV4BKlyt2Uc4TlKu~^)@HbDKBMsYn%I}K&5xvrcmI?l?NnN>RD>QlM{ zyVJm(8ccT8X}xw9w{|3;{b?Ap3eBKx+2Y4;NKaobu$fD%+F7t=dGP?ezC(aB8%s6K z-GPz5$1OR^2#U!-qQ;OdU<=(w`_To(ECtx(jCoWz-la`@R6QqJa*<(IfaZNB_rM%n zwVHJr%U(a4QrKlV;|1|R-88!ST2H)(;tp9VB-Pnj!G0XIE%}32i%t-uS%?{AFeDA_ z)!$&or}f^hd>dBkTYG$YMb=^}7;6FQbZo?BKX#O_Idw+WJ)EerwkBsfu4?zHuXP-a zJM(I!TFdkU!$(H(_d9$Il zOF`4(M!<6q&J?P*E2Bmw4DH1FyXDy`=Tx_9lyMCMT2H_F@p!P(Tz{~B29{5Sim!!v zkF#h{r{mJ(t&Ow3{jS&ugwPuj=&Y)@MHM%1TQn$1&TnsX0{HaI+!B%B20T8i9_ zU7yj*nfsf$eVJ43yn9+le4KE=cF^J5rb08HQc~laxuGz*xu+spJ9U)EP3;Th3NAc- zQt4N{Lqw|HIdeVX)I@{Ctc}tR`qkQ!eRW{3Q&?Wx*qYL#p4ZFY$O1IC zz2#ps8_Y{EnCBiH+?BD zo@VnRVGwC-#_Mp|2nM#=&4_6AY&#sl?Wv0*uHb?ZSFLwD?NtI=H=5-ZPiME58_U$| zJ(c2V%W_Za7OaVnOf{^4v%A+T5^5!@ej5?m^TJ&f+oqr=Prh&!9-TE$~62j83@5+Y8;0i0 z5EXO~fbmRw=bWOhdEPpTprzEHCB4lkXA`E)N58jg5x^Pwz4ltC)wf-h5{tvtJPtAD*&|#o`N>>n13s& z-;XPdKgkb)U%x%oNkZ>FjN?;rCFKsMZ9+BW*>J$jDE~}{>s}&eNusCMxBSx{^jSFA zC4V#;Cd)>onaD)s=m~9LE7C@?7n^KKy?XSx>F}UFm&O3R#|att*>fUjyvBO50U2ti zPsGikz+ycq>vYSR+D3N0sAPe)Y9gO=CunB@(oBMf^2F!lwRy8>^7_1$m3fI~6vx_x zmq3y=3z_UQzwZVJ$S};7Fmy!!5D_%IZMGXKgIREJ@i|p@j)~5Mc8A4$yRF^~Rm5xsn zVf~+K4*0bhyxKjSrh5YVY3!>vo>H!N_8Q#GiJ9qe41+;^8gH3UjuUxP^* zMn^b5NP-Du9x=NGIe){UW*l(zJ!{wtnT$xnp(0Jk*h}5`wE=o-Qb--0N*X_)HGA8D z8iwYBp8i7RHTU}!<0%@3-6601Y6wyP(T~9A1I^T4D75@F6Z@ZBE2dbqM=xp24OI@Z zFmDdoT^+RD@u536(6p#>FdW&-fg7wO0~=$A4WFl3$kS_=5((JxwiP$dN;mWObWE$a zbpu|U#-*$oTPn)XyDhg$5%RyGG1}FQ5=*_t{0R|`qpG1Z=YyvWuXdr5dss~HHR;!L zi^b*gC=rF}68xkg(pFN>fz@SNv0auU@zB{8(uy$D{Pm?1eMU%rr`IJbh*UhikrT?QXo1r+?R4lcY)p45E zbzFDFV+V*yCckUmdA;Ty-B%zjEym%WV4PUy2_jN-m90gsxO(<;t)_b7z*<@Qnj7wD z$!|rhQD$10GI$$K*qQj&ui>CwvA#9kvg@$WQrq&jOLn&QW6ca_m#hM{uuc?BOn2V$ zC`H|By{2;B;&>mXlk~3633C%W~DkH8)nxUa{^LKapm;cHH$JF!t?GJ&~Hb^`#lMy;)XbRs2wXCo&mA zY68g6%sET{dfs(cw)TzxG#Cul5{uY0rU@-+-JyoFa4H!s!oN6-A6Yw|^9S?zaE0$1 zd#)zaz-~4d!pw73f1LN-Q+~2H$Pp=Mn@+g?SGJe=V8Eg>|wJKx^z zGNWeaW`(QKoLd9OV^}fBrhXNhMdj%;yHf&eE>-^Qp_Sb*<~I#;7M0V&mQ{*jP3E9EY|brSwa`BAn}Yh`Q2?_&ts3nQ|YG*Tmu|lTc)uan7na3NS+ZOJuYuXI#v>%m8K~&nDCp;B+FDg^h ztEX)uYMP~mbEu6E)?&eVQj*IQAq?!lPicvDgX**9JY|3MB^ zo?lxFp3mi~n0Js&kV?;c4yhRUfoT=h5B;i^OVy|~pJvxq2p@3bd0UZydutlqx{5mB z%0_?F9pAN@vFz5RP(XV1$h~G=|LsP|w!8IrvChDe;2%$DaO5eBbJ&|46(|}E37R*0 zdC7AWq>n6xG$?&i^nO`qFL4!Y%J0K9$j{IsNh*teaDnStrrJ!n z-@0m02OAqu(i&M~(T9DNn^yWrCp&{N7g&Nm-y>H%o2F;jU`J%iLlZ3vA7Hsd8f(0G zfjwklFYCS^-1kHB#ax6~F2%lNvH_Wrgimm%yUU}irji zN>sUw=XuzhwfyWNrjE!qoQKm!JlaWB2JL$q=DtY6sJwmeJnGC;x2;l@^Uq%@s>P;s zap&;Cad=}}+1J9DN0)^NffR@Q5lGpY29EI|T%V@_3%5_3+dT>o69E<_MAQ~5Mub3h zCXshz;s)6Kkl|$nhlP@^Mnk_csLX3TCRqwalYmuSW6!Q!V+a4VGaMqTz9A-=kUb6( zjh_EoEeZ3!=jiu+WF1+W%jTUn+Z21ynE@{cAJV6`pB&rK#_DY>QTo`m51#G5!k{gm zdhbZz&>~AX0$!h`%GLDBez?~m)Mc{w(=LHMMzLC8YW-SOo1K!H(u#``@L`CI*q~PY!t^rx=NcjuWKR<`0T1O|iIH|kF#3C;qa*m&tD zF0`}?zE*PBPF{$x%RIx%&BD=D5rhIWaQ#X~WrGn)bP$vCij{N})M z(VL5KKPteLKu&#^C^(61w&+6sMKWCk(*dOnCFzcQL947`$eJ$IT6IYHq9;ON$I}E5 zc_7{HIj7mVpZi30CS7mo;|~v$?V9!L@p+i!wdB9?6PX7&$gvl$J2H>E7$HBH(f`ih zieJXA<$}V0@)|=rYde(e;K#m5*@{TbI@&*$UMJ^XUP}Y^|D4K)FmUcf-KjK}&62xv z%R+mr>JX&P1d9GLH!EB(YL6llfmUjG|G*l>yX$msZ5(|MJg-&xu%9Eq8|er5rsTYa~#{Kuf!L1 z8^<(CQ!Q>`&C{wD znX^Fk^VXx6V_`ox537gtlUjd4>n%(YP_0ccJ$^20zfb2iT|S>hzRq`Y+T0fOcr)c$ zzngIeV{seLjkFjBEH>-^Lkt5lk0A?wSwo<~Q#c|=`;$wYzBJxQ;|^_L^{)0bgicv+ z+H-eFaW;wvUYI^!^qM$+L-SYZb#jMgIU+He2sW(5<=iE~oGm94MhLS|U$d7>lj_3S z(!AEQBNFFS#n*i=T|ZnBa?$^_a|53c6hS41Rr4Yd1T*UuCf?TlqUY@^>f~MK9aRUW zd+lc}GkLH-4zdE>;GQj?zP7VBObR699r z<_;(;EWe6vaQ5V)mUW=90-K;w799jyNXfXCH=HZJ<>@f15(Xf3qBFsBXax z7Icz`itanbdK-EBYs1Kvq1D&Ae8rhIF`Se%S$ulGIUUOEK!;*K*V1VufRKE=gxe z2^NuwMsQ^2*hVR5OnK#1su%7!=MNUoYNwSP*v z5z$<8n11GbMB)k$oMN&Z-HdAmAQ*~c?S37Yn(86f^X9|l^5n#O=03r}w_nFqaWBa1 zT)bFevXerk@g~QCQ(LENFC{~k|JBH8_ZoSBA9-6eF1l?0!RD3Sr!nWdhN9EO19&c~ z2iNzTO}^rDTCl`Mx^_iWp|rsUp(|;%ublTM%^aWnjW61HJD3f{JMO?i^!6yR%k#nd z_F0CyF;9>~Q-yCV`;T*?csXX*de4oZlx<@rYY{Fg-MUblZzOd2bQ7Z2 zakHKf`3zdc}j6v*<k1%#dr&n(BLN=%ID zZJx~s5M@(fuBgEbjksE!mD-L<88>14HPef8#Hm^tzYH_aNKC!zFM9zF zU)Fih313p#{p(}Byf?>BQxKXg+*fX zpaGFe$Bk!2qB9mra8&;4v1nLc~O@O_| zsaH}-0+pTZnTdzUcv@EK!)y;&xDPKcA{}n)D`Va3SCWPtG&niRtP=tgVIq1LrI88Y z(R^yaVvFhEdZ{HLbvXA}92#O~a_2uLulMu450HZJ0bFS;4Ie@#6Zv9<38K_9D|#W9 zkz0L9n=RS*N->}fvbszdCC-teFhJ7`IsLr(iE>8UQPAYrG0ud;D_L)6 z42iMI6SwLc(GB)gP2G^m0>AN(+-u*5frumw#?8X0gmT86ta3)WzaGD994A@2?Ez6S{2|T0tIBoKQR`37qMPp8RvX}f zl{$T@XTm&*-f4i5;^EC8@=IQi^^M1_6fngo>ToJ7bWe1&yFVqJkeGYzI%R|@V2@$9 zn8(3-Hn7N1C!t?%4&3MaffIjv4!N_;Oc!W!Uj2F1kMYdX-YJ|*w4e0 z#zy5^NPWG`)p(3B4Mx2k6EJ?a^>G3Q0c1#%D8F|IKEG(|*LwLizV(%!Q*(B;1iQy> z(Intp`B0ObKO!^stiWw@*gaX(I33{t^=c=AN23N~zMiw+Zf{`@ejdZ07Ry(-Xsrl2 zk=^Ma zdnK%H;CTl7Y*pD*>i$Vh2qJD|Pp_4}GM&c~Y8o==v#;cTOL46>=Z*Qe5PqY%D*$OX zTmP0jdxWy(x(2kGy-uc3H33|c+Z;D;fN~)#4`x24)!4O4-riE;yg%q0?7boLYHwmH zJF-0_0uZ^GooX$=FGQcPGx+AdhoS#?{MGk6UC^mr-E7r?#*OCF^{EDP!_@XK%hC(U zqM*AX0Q0VY!HFq%j*_Ug5cd_U;pa|{4qLQ;609GX?=u*RNxVo>UkKPoBhV$x?HcVi zXh|E~CyAHmlHC}$Db2TtxEX2prg&FS;k+wWBsVzYrYwo)T0xJx1+z|5HLH2bb1vj zTo;~wMK_^sm&{Q=GLM1bUOtD8H&9AA&){=<=mt1k#EIUmBde;+(?10tAlK!-I9hCD zwl+4ha_s{7g~U>heKX@+EKhZm2rw|3B`;2YS@r6Nci@?SfM2M>$@tXOB<0pim*(<>IIbwZcWS4te$(k=G-!wp zUJcZNl`o{2gk}?vJ)jP8rg#U5bIE?dy}N1D3*RkSBfJEtxjQTn;H^>^p4Yp5RGg4- zO3thZ`*N_3?t0ii1q8=3dgxM5h%E_*o6k+17}^u#q<`E=r?Vue$tyQ5Im5&hJ6He| zSE7R|CuKK-ae!BeCtl`~$uh?^GWLHOD`Z&jE2t$U-eN{twl^J%TeyRx%Szz-*2i!F z9R9dNmxdpN{Y&}2C~@|@?!%L3-(kP&^%I@0$5@OTgtO>nuEI5h5`|k)#+9P;Z>>RF zc@}EZM$2I^Hdf{OyCW3fH3R=KK7jnK3b&YWa$~>YmWt&5SMy|^Sa2RMdvsOcF2+rE zx1ETh4fA_ii_ImQrv0lMW>>vsgK9eN$ydK9n@NcDu2u@!$;RBzy%#Jlv5qspX*-t6 z*GX{?g<(BijRUkuhnL+HoqjQfee;Z&E~awjqq!`YsQIW`&Z^(=At@$lhCT78-A48b zHz#XFGjZh2jx5#F4c)~|6oCM~L8XHB1)o>(E8SsBZ*RH`Je>3sHPpi~pbU2zV`hg`EH~IbnxANcO{v<_37Nqvg1a z$Fy4UXpFh&UXyD^YgG-;ulmq3>{pA8UQ&S;x3Q6v*CZ5;6+`UlD#Um2>u1uh-Flfk zr7Myl3Fl^>+RG*4*}5-vAAjGwT{4?J?R0nLs=??vb$ihQojH_`P9X7V9nRd$`@(D- zZ?xY*ZBf?lzYd%e(V<8dtv0k9ZkH;IipH`4uu62!a49nEjP(HKK1Qd};T!;O11`B7 zKZn%s6h!Vj#WiQHWR5^FiBHZbwcIhy)=$f>J=Wz4tJz>=isp z-*x5D_pWD8ErCX#)Gf3f$^z%+a0f;;6@k3Q>Y@^smV<8xi-~+<1yd$>_o5j~D=kD9 zeExLJWqBi*^Yn@Rek}TjMO(nCZ&w_~V1hcs;5fw7gPH2aK_{g)J)OFplS}F%!e#t@ z(htQ;&3r@k3W}?m$9X-oud-vQ7uzQC^6M0|YA;?#`ew?O-8Y<-G)q%UOu5e{W4;9e zC~XSF!Gos28zIkFJYgVdvx9-E<_xK#8TxV}uwWYKEFD`AJE8d68E7OV7AUONAPLr* zp{&anyk3yKsN2Vt*pRU=ZjEX9B5v|}0pIw+Uc$L)`o(U2glBTWQ2Fh~6G$ro!D6q{Z<5DjSd0>HS;B`Emb+Yu!yxNwHBez^#GZQA>u{crW> z_X1Ift}oA5;#d@tnHI3ro84qiI++W?X*AMpf9#&Qy~J8b z_Knyiz4 zB6v>ebn|As*!6Y>D(11PVY}s2+)kNL z%9(J-T^;f*Jb88D(&)-Ve@x?_V~%~_--o8^(G9FH1Mb^Ja>!xMj4j#A>>9rjiF2F+ z-|%PfzRxEz&t^wdbul?=3nPxqI2B3V)Q8r;55CG&7WNiCzqnn=%!r$++p>%fFgp)3 z=KVYb0yF&0ZT~_3ixd)y*8`>H1O}pL)T#Gr&*H_~Glbb4&8!86Ud^6fQ@gI3tXxp8 zZ{=bVd`F8S#-fAU1VhFRuW6bqJ;f^}F}Q0yT$Eb~L>r_<&9jsK^7`HnyIe;E zKAGN*H`~IBI;DcxKjX^sfzHqo$fZ{IlKX=MUD_{S_p?duMB)M7>sLF6ji2go@QK;V=Ai6eq#eJO}`LlrCvkN<Nsh__p9_hiF0D>#{#Ib+k=f9mUh$(c+ z5T)rzHr?^S|4j4;F6<#fW^BDBU;iJQBS!M6rttRVpY|6c`d>7?hhuz>klub|X4Suq zQ2%*#;J--yRS^H>)L+s3|3LgGZrbO)+PT*-^;1aXGAF=^ZS&a&HpX(1_-&1wI#v+FVKGp@mqR*{{JEouds@= zn?8d)*CeCgNACr+7{X{^hSsY;vG}u;K{RTh&Q# zRGNx_{C-!X=+)4=k2FKf?jGxLo-U^&yb2CCaPR4h2OFI44|_vbRj+=4E)Xw@ z5WMu6Dz%F1Qw8(}X>grZTkzZ23hiJs%dJ_K8cf9O?2rZ0gCi0z1~Wbz*~Cv!Z$d0v zjl;__*f_t~RPCj?Zz+pZGLM*(!hG$@i{dM9#Ny+2$-8dVhc*cO*@%g?MCp$ z+D!utk6Mm~F7Uk`R)h@nk{G`LR1Xo*itx1?D-BuN7Y-T}rfa{A>mD)Qkh6dn+f8&) zi?x9$G^6c}=hs!-{eMonJo#;VXXp|3QOJ>7$gmjpqzT79(#kgZ8x@(24Qa12b)7`-JYO5n9_=k6=0sWI5|;26v) z-Wg0?ijaq_Tc=>W6$(-B9Mj}0PG(58N{Ut+!QXGEonOv;Bau8h?L#*@{lxf-f=W^&2a1fA~b--a_a z4$V4+eCbT&1lmf)OG>w81Q^^MMM`-O_C7j_L!*MeVPz#9WIbE77QPx%HrnLV$r;;VF)-6?ip7LaiExv=X2dL zCK@>G30@~+G@h?s&#~MPX>?hpx{7CM|Ni0f>V$;#w}l|1M5LgDaL_$TB-h@VfZ#XE zuSE^}G=6};uEg-%4I!JJTVY@8C8*i6x=iEy;W|2=IJ!Chkb50sh3R<+!AUX69xv6d zldGRhG>pN+G>`Z!rUl=@7Vp%CC97}v>=ha!o8BB}@w9vG!_C(%xIbK~I>x|-PeAf9 ziA;Aft2KK^GT_qp((i8s`jI8(r#gm=lxS|n8ZyoxHQ*VpSRd;JhO|L(>*n#7@1 z(}?t?Ec~xWjVU^#vXtIzK+%aLK3CwgXPDw!O{b8Q6o6ZZl~lQfnik!ukw)T>v5tvA zin^MCh!7!P0&^4e0tJ|3*Btjzl?#GV%4S=rvDgM{?49XGX1CCSDG^PbN8HuHnjMsU)_&cDnxSTWv`(21 z=k~i>glh#Ult)#KlWvMV?X#msBU#I&!;F(gLaTd@rRiE1#KDa~2J6Oy2(@&n85$JySms({eC5!w|!bd)aE>qS8zc9Y7^AN}NY)`Fi0f$JHWkm9oKQ@PgC+ zI*k=t`oTjJsP8pbLW)yQE#IK2*6u6)0Uo`P+r3 zmGU;;UZI1ieYK|tYo6KhD|<}zatg7|t#x=$pMw~mW~ka#PD?9_3wc-*PC++OqI)bU zi&pN`()YzS7Z1)xByTc)T;J&WUTZF90aUiG9Fqa&~1tvx45N%tcHME?K<=Jkgu4@2ZGC6qxJZOOCwNlhfXGI zCj4XPvY>j(5BNJ86tB55@uqyU=3(*hm-uLvqT1H&tPOP%=GM=HC5(oKn(dP1Q#>QN z*cJ-cqSp$$R}+TDT{oD!lMUL(8DP?yQOSz-hK5tD$?W88QPI$dy7`EQY&QXW#zPA` zGlK?{8J>?HKVEm}N8xnhOSIWJhCltS_?zy#d5!Yk_X&4ud(5M|>I@Et8E;yAdfY-k zd<}5JCzJ~8Vl{l z5&9ujy&_U}FdE`j^Tjh-6t80-t7aPQIoCEC>};3sn5gwu_e1yP1ru#KW$MP2vy@>U z{r|(>TSdjyHSMCo14$qOf(1z+xI^$@A%WoT(m26gyJ;*yf(Ca9?(Xi^K;y2#wehB* zfzA7V`+vXxobOzmt9`Toiyos#ud(KuJ*#TYs;BCy1yDT~C`_hO_R$R5?4ZIMiqzXN zL&UQC#k4kU@eT3WD=Y3MiR)Dyw(9R}J>2g*WZGI6gdnP1ZPQqWrffOV&zq}T_1kXa zSItXra6%3FQER#+`P-K~;H6c9S#7DC&{P51Rbcb{=-_5P-4;+6)3i71N1N~%Yx$j9 zd&_SebCHau8?&=o-5L=I!ZjDc?ujWEy*dnqLk`H2=XR<~0sQ#pX`6*YdMvE<4KE5O z;Qsg?LuF%hD$yT6s-f;wrI%26pk=lcM%-fHl>O0DH*Tk}ZBH&^YPJDZisHGE@AGTc z-|?b;D;8Q{&0L@@dSeJ{Zddf|jG%1?TK_N186)cl2b?wg*|l5^k&#!f}dWH?iD`%&7o{9s9&Rh8b3a&3ausnvR7< z&4Glhg&G2dxJ}`QJHJEz^q+*kXq{(ooK}2{##Iv)pLcY&ppNC4Qa6>%A^^`>! z9_}g|8d>$#==ny{$)eh-E5@0r$VFKF_Rr5ZaQ=?m@gL(I#qUKYIQL#WUt0Nk2zg}5 zg)Kn+klS#R85`}YE-d@qHC?*Ehe5Z1pkv+g+0H8__ll#S;d=#<#M$}#eNr#p>ic)F z<6rUP*O(LBh3)4E9eb7R%U@?nlW+0VEF{4aUc9%mMi$V;!>m-=pyW5YXh<8}(KPN6 zscFO?0UwN2$19@WYsrk?<-eBP)hG;2k)nBU`#X9|D!N>!yJrRHi_mEGTD?Qtl7=P2&W!3q@K$4cjSephyR7c{wRlVM`idQ*H>!sFPgCHt4|fAe((Dn> zuZHaJJr)cu;TcXCe{Xw#6Sz^$m=!D{sHXhPTRd;j9O;U+16=hzg;to_m8v0o&xi(y z-|R^1_sKTXtQcCPfGlQD!*c3a3U~GgkpU*QRq&fbR>Voc&=kFW*M7XT`eK~K`Apt~B6Pvw#&VVSmOHJm@c__B}`F?hjgomX|h_yw2#PU~o>ku!%m8q4L4 z?Bt_6RRo)!u5^+Ru(qA>Uccpn`MoqVSCYSh*VI5zjuJw*X9sp%LW3;Ff0cd}N(%Ck zYou^K=C+DP&P1seiH-h(@(d?PPW}775T&X&hcTTTY!IeUhS4dOs)&@z9;-m%v7d)pI?8+x)!avvQWG7Xmyhb4= z51#xa;~7fM>87>)at_7d=e>NEi@@;_;Geq1JaZ-|oP4Qg@i87?{oMLvN@) z5?aLvuMia4fn zBhE&>l{!L!SCA`VAf%4Jy{Cn;%sT-BrVcdLFD$;gwU-98#vUcJhN5GhD_qxRXh^BM z=3!^`@nMB(8y)&(noSfK>87Y*FItqPP8S6<)22sTD~j>sfA@(m@}FJ1kDE=p0qn_n z13bnOo4vwjyuHFSg2Kz?=JXCxic(T3=tMC@KZbXPHbocHrET|9D&fjHPa1i4s-ttG z90^t-7DGCIQQp<}i`RN({C|>?TdF;&N4D2Hh*pV->D>@~O=3m#-1iRZY~Yg-p$jH&*f5JcjedAOZMR1l*U#jSB}DaE85H%(_wK!aq%Vz%=c1m zRuEN`G%3mxRR^nJ_P|!vKbv*?n%vK;`EMuEGNOfAX?BL)jWfN!ArIYEPVCLO>=fpu z&iNim_V=lRX>%C|MeE&87lzg3ln(EQLFNEhjKR+@N9saR-P(8u!PcX?S`0~V$G7+Bv6QNQ1*vbjGD zk|!l8t4Ur2f8c50(Y#mVM%+7G737$Pnw@%K-7L5HaV+QP7Z)6NtBAR zn&e-rTi^Fd({-$#;~z6bJ@y)zz|N+!{*}=dcjFH6&bXozKyuXC{I-=aA+7@@wYD=B zRxL&}MsJ6-dySM@`9&r9a$R-u&9MLKwW1U)XqLfbD~uV~Kw&1eomI4IRycSyAK;+- zY5;t^Nu_?(v{j^6dQ$)Tb7ggF%NtLv%R;yW9kIV{|BAu-1okbPYQBe+=Wk|MKogGJ zwoCOPww&J79yaQ#o8rr-42>E|5(?f9PBn8$IAHI9kF7&%Tv;Ln8g#cSdBB;k*+PhX z7{SB)=iY##q_#z>7U4z7i_F8q*4@7IDYFXj%Jd+WNp!c2gaGWt$NF1qm%C)CZ#T^I ze(>BF@VDES*a|fsX4nH%mOQVYCa6ceO~3&*$8e);D$+Ik?F_UQPZj0~s=K69tvoo+ z+_KCVvvvw`hnDvPRv7_P*!r4$;Y;Axi7vc!)1^%>E?(4sA4dS+QL{NJ5bD4g~{!G}V{GG5YgCH9GNs*P=T@w86f=BWL*&9;o!nmM(I z?=3zn0~4*!8Lo+;br5^q5p3!-25o-Dve_dHg=aAS?yx*AFn)v7VW24Kj&lzcr1E1=$sNI|+xk;XJe7y39sT?EZDCH*eW znk*-C`*`3VUZVQsT;*6-1WMO$4=yY?l|D#w71)ro|A{-_hFG~{aA)>>j+-B*3rXwkRlY}!7qcUi zK6B_c_rZ$2p4m8CUaj}+lKX1L&8bIm$3)j4>C#$z zYnSLp{}lZ59DTHV7LunoXI&);8eIzK8=!Vy*MuQv#Ed3#AN>`z;_4bpr!=y#oW%^L zZxCV+nFj4+moW4r5f!`Jw8zGRPh&=nZR7-XT~i9YH%;`jF?VT@DH>lNyD6BpD{9W) zL0>nz6l&^>x#ckv2!2^lI9-@<=1@G-rovPvePJT$ACJUQr1;D6MOilVJS<61n?kp^Y}rY)J`m>U?V$TP<*%r|{ z;n{ukIeh!}s{Xm6dYk!)z=09otct?L@O>=9yJ#67V^$^yF>rNT_x_}GUy-UrXYDc8 z1W&bMbTH{ki``TyaY|SzG0?>o7;N<0km_gB2yaxFz<$3>H$ywUMZ~pTL-;<>%yq!g zk0|4pt*{*k7(KyY-Gw|?K4HxdV)C`e-jp`cUjhOHO3GxZAQr+;kpp%n*bCmKi0F3J z5?jRujpd)R#dg^X6>&aboHkWt6!I@$s+?=7#wCg+#nNgU-243b{&*uX&~$YW7pR-c zwAW@&E(%&wzkeiz`%jI=G+U3@27qz9tw^2rCd>qoj?Jl@^{=nR8~p!vi9SA}G4!bB zcuLU>Y%{*2dKfczMT-02X$Ec+)l`S-{!A95TMsD$$qlkwMtM)_@@!1`SFecJ3>b=+ z?z+hGRG~ZG`K+BxZFagII`DK|s#)%;^CJ+~_Cw)8N!;9;A!pd~w8qKERTR^gQ6D6V zYqVEAMDrWQs*OjR7K8)5Jp)2GOLaGh!lg(vuF#cM}T-6pQIJB)T}C z>TE1u9W{Vkx7be6_Km=$2Sy^AC%#B!Gv1h=#ukjLel8=|(q|mqDYJlC8g_f91gtbH zy9`_d3u@OwvjI_(_;>M#%3Rw8RLtQObulzx$(n(y*SXitr!BC8c0BBJ#iF&@Qnd^$ zJ~D6CwZzdFdRI=Vx|Mo4B1Dkp)ka78p<7z!vQ)g{2ANOfpB2WL&%efTOPY9&b&Yiq zJLPMUoAwK-o~~7O3xQ z7A`10Vfkw3T(t|lD`=P>ZVtjyp@o&XpVSCyL-vkTQ`7ge92?0b=aEjcmo_NN z_|m93SO)^-j4A*?;E%Mg$Ngm)6?GerU5(Im74_I}fUa+sehU##t*KiPvBg~;SEisK zvWIN8jp9}fEtc_eto#19!)9Fm-Sgvqee~FIhTc&bYN%bg-);-<-p_>7&d(7#*Uh*O5L_@Q~%Ks(tS+ zn}Bb74(z^FpyQY#1#$xJMSHgEq zc1@uxw;xMzB5mo8rH!a1>yVoL?o;%~u(g#fE8$au{`sn=Rh+Ein81rz{|C7Y6~k%UtgEOD zf6+hfmM9nk6Vhp+jvC=0$HB0$Dm$Ut6ankJ9ftCqs^i9bxn+py)`X0eS)2OY41Pin~`cKvXGp<)7-3#-}m5UXM3+PVr?xxMY3(V^VfH6l%AIr zl~VnzqW>ae{YreyyHTrMJ)xCx`LnoH8jl7t*W3JWQ_eQA?u`)r%hw ztW4EO3XrSzrD;gl5LUdmNw>zyltSz}ehelMoU4?VdC|-CIifZL5i98EJo`56d?Elx zqemurZ*ZYZh`zeRcQUnQa3K1d80oLxa;e8w6c_vRtL+0Kw?a8{jPq@_WtsFR9+Y`& zx-wqrTh-+HmW!U!(3lm9moqB+Tm}~b%n3knDUMr*$|M&to^lt<@jEC5C-tqFp>b~g zor&ieYxjs(-t#=_jgs%41SnBBA=)0z0P}iQ?h+sGa!QoC73WN1FjIhbnPFNoH0vzP zm^jtrbg_^c_(V7}Kb{<0M|hq{a`dyWJIE-Y2kr#OL7E`*qZ&IBQF`-1af6){XDMU5qF>R2d zxtmd1v|nhq$dT+5^CE)g#&m+_wr6Q)#RPr{`N{Bd0MBd+I?0UsHGtfWW#>@!Ne;k_ zpO7_xR`nA``+8q*m5Y}-ER{0ywumzF4RR^Z;AYu`Xlux~<#v_o858&ye*0hk_rDUL zal#ytWShy-NdeJonO=7mc5y&`XPxjV&+S+c{K#DN232_5F5G80joZ+j0uw_MrQ1xJ z+TJB`EfZXE+tN~T?yy$S!Zq&!4|h5U6G8m;`aUX%Im#}-Jw*96ap%Mw<3*zpV?>k` ztr<0DEKf|7Hv1^P)5+I@%M1fr_zVK`w6jU}ln<-=-H==sidl|76$j5WwQKslR_i!c z>_~{te3e_&luP}fXv$c=HH=g_7QsGgfn7dmn_04nSK^Z&~I&c2q7iVG601_mE`o8c8WeBf%Mt)THXjB2I{=W3GV+?qc94wqx)C(-Ro3&+>zTd-rDw>;^y zlGTrMa;l?Xjy$}!Ys}JKBp}RUUbny7M$4vjbrP$8TgqGaR=b~pZdg=78TU%w!U^G- zriV-Ew;xY?XIrnm%tr$~xLpa2@x+@>5g~NR+D1Hlcre%m=l2Y<`el=00ojJ|9ww0~ zs;sMR_Jvc8i}SUxzF6c#@6g|qyfE+4|e$`j9 zB^oC6JlP%g0sCYjZbL2r?N*h!W!&)Lfl6p`#Kp*W9B{axg1+jOTN|^}wpvQdq8&E9 zdr2a*!6eiox-&i+@OK&4uXm3b@B+rU0CH8Mun>R!~rkol1O z^du|ZA2+bHDXA?9aGFkCQkX1rFD&`~g<{mu*`5lYY^3y%+)##qr(PS}E<*cZf(fzo zhqTb?ay-5>3T8lCdPZWI{rM(XBEY1vIB8goEjrCJ@WFM&iP%9P3XCex6q;bgY0 zS;Y3;=p;wrK#4BBoMr+gO~H0I*2*fq=&V`rXS5*_3_yeffACd-Kurecz)KOWQ?mi?7~s^K}$dXjWE7!?+k4Yvcl6 z%}u!`9#v{1scgCFo^|K%?<#KtSDrneP?dV_h6izNr8sLHMo-qRD``?czono4nJq-< z>a^G5pqwm-l~ZL^HwEPitcZIm1na1-X}BrZ7u7}p*AJgP_WMbHQLLA+b+&nsW1hE) zcc@-o_dwrM^b1xB7#99*LW9$0v1>29{I=F>+GGm=CSDV5X#q#8MT;`PtTHp}63I4|)xRnQGOn zx>_1B%w`$ri0MPugt&F==xcshs>e00BZURMmD%Le>13@fJf(sJq5d%;8jEZ>{-QJJ9=S{3tERrvrj!>*+>sX)z~ z{Cvfc_23-S{SV%XdKQP>n&)8Q#%*u=<0=(RICIOiH~p0up#8>;^w+y(Vs2IVsis`Y zANv;$8+2+XX|_+cH~ka9^~W@cD%8&A@~_?Px;%+?bUQppvHo_Oo&M@hF!EJmjxI<$ zQ&=H8?$QPvI*+1sswRDcZMtEMt<6#l7IS={|k(-;ocdi$M<432&-9m9TW`@k2WylS5`A*AY*e4sk0$L;dIbrpG=7fqr|d9af9)V(<#lQO)Ge_*RBI2u1To%HpA{ zEY-0~1Dh_c_n&1`4n^%@ChlG3dUaok-V`I1EuUZLMW;zYbt3ae%A%TyM=I#aN?zVa zK4yxx^wVtW;4nZ`ya~N2;JbZGa+6@1?};1>vd3RDU_W6eQu^);{lD7G={@2UY(MAh zDUhV*kbCg;?$^A2_u1zHLN&?S5A&Z2+407|yTol)+;<|^?=yovb%`_!YbHlU7#>Z`N$S9Vk1y*YrWxce82CmA*guWM-QoAtXNbm=&{zDDQEg4@n2Gx(^- z)`Ps#rxF5d@Z|IBn{}^{j_pWfPD(*q9&_aF)E)1lIU%%XE7XOASGMg6VOEvZrKc_< z%TZ8lkA+JWb0pP5n-lg;hrQ`2o3mrua}Idgg514SJ^Qjj_`#nvatHni@PX&~z;#u(b;MXbQ+isM4=EG?q43GFHl&0bi8jKvb;eowpJ$>c-lh;EC_Urd}-*w116U4z(5? zqT5a*Wvr)7tm_my*qZST)O}=D<0Y4pj7ENjnOGc*S$K<>KMcw^$l1jX7Ufo(wUx~% z;#L;?V%FUJ(`)DX(4+lx?6<1Q^hmRTU6Lx(KELQ~wyW#Sp{HlLeA+>vw+z$N^Y%|x zpJ?(mFC)QAO#ON&C6j1Q8K@k#S9*xaCa$EdHA`Yo*~em^ndp~`YQ7n z=P?#mK2JDf5)l>#miZ)NsW}2m2el~3AuR;C!m=~G1=xkS5fso%v^%SX`58K3t9Qpw z{3H)Qrm2+Mt`Be&3M9GpomS*6L_)59<->7O*?HBD>6oPkrDZS1$mWIzrh~$lW)Pw( z8CtiKzWGCzd$9UbY`Jj+7u&4Keb81_S%GjEZJ!bFLwJPyHU&KMCOrs&b~VZlRMNT(dBW6nh|}OjEP^7F9W{` zNuN2NO9xZLN9rnUFOSA-st$03U!KR6a<3QI)Y`X3!Bz`DwWzve*|gpZ%lup?i8v@i zVqx_+QW4@8#m%S{CJF1C$2Y_@X{v0Wu@)`uoF@qs>%De$ce)I@C_)pp(EXC7xF@Hr zBf@hRG5!<{?QX);pniuoBvokagS<~$9t@m%q5HvGBDVgReI$;cW&D3JmLAKY%g7#UVT*&(!~Tf^^>-5J|8bcx;xTqy*NVpfk8=C9qE}*_?N+;kB>%xZ`JX@aUu2vA`y}Nj z-P+o!xwJ$tpS)=h^4R`-Snsp&vt}wc_QdpCp^OSU@^fI#=}1k(|A(#-JnF7-5v%FH z-&OEmTKf4Bvy6PwZTp|5!1<_!?0E~HH2(7v`r~jP5~ zqFny}P=>pQ`R3cPhEbs6+G@O9NdBj;&m_%8a*0Tz*Rc-t+ePmtl{|m8d^Vu2j$@Bv z#OV#?&Q;lc-@sKVL&y|d(3MWB^23K1yQPRn;`0_SI`^#T@s(X1mNjGq>x5a;xB&(Y`SKm$fG6dWaARKmA(N>_vMN>bdoju+zI3VV>dDJmRmcfde}XMEO-hfzr3|&M)u})ZZL}Z zMPo!))BM1d%ZJ+k=y7=8qi8so_%Z6=Q|?grMQLM>f}qr^Xdx#xwRD<7tP2T2P7PNN z$+yQ6Ykq=L8jY##QO(m&+L^-cRgVf*1`arFag;jV8a_X{rR~_EAA8cn_urP~fT`n2 zyV_`+Kv>$F{;93+=oh0t_Y{}k5ZZ6Z;8TKBHOfFa6tEmBsE*2xkasfI_pcdDf7kur ztNPbSyb8W3;PE;}xpp8K4KeTMhFZsxgb41m}HRH<}yM zj>-Ar(^uqgCM+gq6u$9$;Y(eu_;Dhhp9sg{;Vtk#-n7qh6Q|i(>8MDgn)lCI5mpcw z`r79kSF_SW^j%Hkn?Gfe1}wAgk)GS))-DtJ9FPRD?divP0~a{1LD@%+2Thg3sK{5A zof+oO?wdrY-=vYCfiSP%+=X#^|F^|xd4h&)`O>NR6Yez*k6IBH^~ijtuZZ!C(th4k zIKqVe`8$d~nmhy1u2L=R+VykY zA?Yr*7uVHEY&W&LppEzYu+8s*+Q>yDA1wjKc8F6e-7}U;ghOM3i$N|K1QrvV`T3yH zU2&j-s5KPa;H=cQmcTon-YE~6OiQm|KVRB+{&=%~zPrBgm=W)DVFq?HwVaO~ zw-5*n^Q@JHRLKKpYFs5;ez+zba^0p?ta!E_K*KO1-~6Mx9evL@I^f?*>NLDC+`m9l}_z{BI@Y)d`BellQAvT(!n6&6{zM_FkbCjrElb3j41aqpW+{c zESixSK2k5kvGB6Z%Ikk)dl|$e-kGAtWPl?YFMH99Ca;IRuR`20R zNRz>~ZZPkPXJ-r+X@CD)R4F)MdD1zwZqF{ zVQqf>b6eI?1tTQ#y*U9S-b~1Q5$)Uc&&|t0B|pTc3qoQM($0C=P!-eMy<3UKe?j%BU`8Y~X@`+f zVE!RP@KsZ}VO2+|y4*v3wa0`12)C*_Gj8cO;LvjC7SodaKL-VG=@T?iJj4_SbPn zFY=xYyu*H2d1@>b%1YpB4sMrQB0lGL%y2U393s%9%=@tj0u| zs`~6WH1og`&u&yY@#<@1>vV9GEM>YL;EAn1G@H{9u%3^3y+`>R4$Xq`NpP_A7&Up_ z99_N4VwYOdT>52U)L{RT8=z|?W}{Ln>1;u)v!5o*1&GpSZ8g1dT+Q#^6(|;^;ln@rcL*sFE;c_!IHV*!LC8+uS{SN)f#GYeo zf*P9zFMH1LLUZ%WxL=q$z>E@}pssVbwV#TV%&ey(vJ{spzNJOXa6V^tRS1#blkfY{)_SLjjY zf4J6f>ySPwW#3qT=v;hT-wPI&UH#Ttq$R7j4lK|mvBC|lHj+ZTXSAaz%SJk@CJ7OD zUexs?%?i4uEloaYkwwy2lKgWoTeK^{PyZyhY<&oskcgmOWfm8jtv&ljkr9dHK9cC} zqbdWlO**Z3 zK;==MHaVlSOMuDYGn2+?nD={CJ4oW~A7@KO&2roiL-@Y7ys}S<`i%A*t3B+V&+n(Z zSYNJA8)=p%vH&`VEw~XYxH@?`#<@~V8stT=9GmSixE@P_!3|-lMdzyM_vL2fSN)h4 zgZP$Yox!xTqO^<*?svZ10nHqzV3CIMIN0woJojwLw&3_$*l)-ek><1aVQ@)KqXNFu z?Bj7vboZGjvqYS5sAF!w3J)0^);A?ptuupD)>Xl<`noUV=~hzI0hs5u@gh^1{ZK+y z^Z7_;_}*RAD93};KL&m5|7g(A-Df1byS+Ab>xD(QQN-ED`jW!=>{tc~kHz2v&?!8? z%c$d>S6uZUmUVix9$*|v1DNkbYFfE|NIJvSBT?>4!eS@~!eVBsifey}u(M`uXS9V* z6x|5rs!zi!hJae)*x1R9aNMs@FUVWGkpD*g4eIt#f3ahaK{OWx9DKWN zySLA1uZiSncF{}VPniW{qQCUce&d=aCf)SP@Xlgf6ZO&+_hfqJcA;O$@yuf8tukxL z;G}Zc$iZt~h3*$Kw}=Y#j526yvWb29wC^~h7$nzJCuE{MAEO=EHm}1NErjwF#P8b% zKYxuHsFNQzc?d`@1Gs;U?_%LE@1_ni*cJasusM4i`Dat{;JKx4_?s~r0-J^4!<)jQ zq#4NXhiP7GD7x!}!u;aBjA&Op&Iej%mAx6}IJ^0iCh_f80><2tKh_tVypA?rdAdD& z;iDA?-KrekClWLCA#U=qnoJpR@t$?Dr+o=5Q}lN%m63ahsP+L9<^HLq*F4={U8GwL z2pl?d$vd_iVd~>lb%SQvQ%eEkcCLvf9xFe`t zCBRXFI*%_muQ1hO(I4>1>^r)RvbNcyOS%|-u6HsQ6JV%wUK%dr}p%dvc~@{_ahBzX#N zas2(P9go^ql5k;gnS3X3Q?1?1?x|}TTE?&_=dRKH&)!IrU4eXfeBm;EoPwe*bK2CI ze?O6(D;R$cOqnD5(2J7lA*A|h!&Mo8ie1)KkhHK{L@sLw4#a!Aq%9}+DKK3%7@t8cFuUEy- zj5J4ekv+)O^=+q?g;PLTmg%zx76DPmwShV))x_!nBNX93?&?_iFuhMr_KdyR&Ls?V zs7xkqzTr++4;DNWp@c5ud6r_d*PNd1s}GmU%Bu=Mc{7!-tjjQ(Sa+Oj!YU^ve$boQ zGy&*1W8PBM1|fSYdSK&rvwXSmI<@ z%i?5$2sgtWpGIs|n~Hpd8|YM+xrXf>REehtf|DY}DfE7m0Uz{=Uw`IW4OUwUlv}0I zslOe^Ymeo8&Nzjv(AKD9n4%Yh+E}@vQ=m=m@hLb97i_5m3_Zk-uWE^l9^8^*{-__M z5)yb*G_FW?1}yJ-Rf(~`qjkKz9l1fWm|S0D50~uHd)S9->fYHhNyZ(V)BYDCKsaah zhzZzd_h=9}rV6A>kb4s`M z#VbH*RBTGdlj$(HS?&8sRpfcM9>X=$TzA1Dn5un(P=jhm|E6X)3kvbD5ztW71ZFk3 zmufje^`$J8CYSxtjV|7;0_FQhS?LSa} zp))o|2O#pSp)G8l-TY)e*Qe_c>0fx;2KHNPb8``);H??jX1BEwo{A5)il*w|yZD`t z=$0!#KDFPHerR8wLK6ycqjG_DLR-I&(Zju?2QkK)!inR#RbY@_0=ITzadxOQcSE56I>z>QQysl1om{~sl}IU zmQVX1m(8k!IG%IO3mo(LBKh)hr`m_!g!hQA^I~(@M)@!`Y0;dC+qlY#ihfvfSEB` zO092XJRQ3D19tw( zRD{hAJeLgU3eiVs;QxG}>`yoc7@ZbTo^4-QvV%mHe!+4Z<=oxqH;}HO2qaSmRx>p3 zM)`fHKg7@Db8);vZd(5uU8Q(>@CB4n85aK6;LiA0w7z zjPuZHYRBGCE(UM=P`MfWGzv(MR0&X=WF-U@iY1**>1VWv3mNNW=jV!8Ot2v2Au3QVJT} z>8I;R5WvVv62MqGp7m^}ic;l-ybl`fcgFj-D3=~Z2@^xG7*O^Oa;r9$-Nv(Z1aTHs z;Wm~C9Eq64b8Zas7{c)+o)(zsPG>%js2NbSAf-EYk|LI<)HXRru3K6nem2|`(EHYqh138YYAZ3XxeQz5brmd z)Jsn$Q(^CaErB&=T0J4o*i`k@&qFaK{==v8c1M_atQfLs25Gk0d z*M!8bSzf=hFeggCU`b6m~odi$&z6#ruC&azdpT*T)l#az+`}_kG zRa`!zr>noYbldpfLq41Ngr$H#7W*{}e-vflh5}QJp|s~#O@9krU`c?1z<2prUG_zy z{xMB!v%|}ET8snET#c^`o|TTZ2K^1RwN+u|_a7p!d!HrVbWH_{zSU1`me)_5cGBzL z$(~x9^xz9zEre?QCbDsT4i=kG)X03ge^oe615Clp!}L?muJiE2oN71 z&$k(9spR#T5jp7NW{Xq5K3PCH=ASpy{s5aMbNjaZe?YV?>W(L?veIS4#@B}!Il6;z z(SUd_*LN)J*x&lUp4@&?11QK!W|Glma@UB+B*0bY*@gRY#6r@5D@nPBB6uwrrHy68T`ztc5|-b8 zg?Z89gx;*D^Lx65U)^{U0#U=ZY+~Qg-8wg%^vAmdehYTgmNyZcaYrDvbWdLBKg?DR zmo%;s{ab3Tk5U6NFkc2cN^`qdl&vF8)E_%QxGuZkk!t#AEuvos-7YY5M^e@9Q68^z z?Z4X>)_Hs%EZ&Fqwz#f+9&I#(`{TmGpjG^m0?A%fSgx=yaOt^5RU%-=dbvPz=fZ&jkB8m; zLx<+huL@mB=)3lX?N7Kmz2e};(LX~a9kh+1|At&GAJJ3F5XC$3qsQ3DI+@RtAL2D& z3c%{azjp+<`Ee|~EWf3+%eFP7s`q8h_g6yGc8RSzM}o|nUuIME z&mIAG*9`BBIjSx{*&WE58`#l;bblsaMyg0F^9fOC8yq|dAJ165?e#I4XvGMimo-i#`u5H+N`!`NPNMg^O|;hxSHU^Rf$+gdJ?~yGYvvL`Ows}= zXiC}_#Ttvo*9lLk@D;*a-s*dE6WC8v?2BLgG|q=}>#N(ARv(mE3x2$HJKZ4h8r>7T z>fG)_zjnqK>*4AqL{b7dS$w#B2`nrwOCD9uN?QXKn)R^PbZAR-%@;VnL6Ioq-pq@2 z&2{~b?e$v;FN^^%VX9or3=F%jDhNqI-+Qrh-H1WEM6hs36#E73N=PBOP8-A4saxJh z(AhjG%TaYU+nYVYCl=?)5ANbj#9o&}7@kDKF}HD6HZI(lbymHpu=OA4*9KlIB+TNe z$Lv1(2i%G67U#@x==KFE<08as-iyk=^2cvtua{7e=)5<3ftj07T=}-pAK<@jNgdu;9PSHy* zg)d9Y)@2IobD`NuM2Ef~0n2$i)^{0yovdHFFU>>@(GP*<4ALY+pCWwnu%i0)m{Q9W zLKnaG$>01Yk6mF`B+|W&9}HN(0bBM)HrD+qmOx`EHu+kWOIB>R-N768i}c}^?o!S^ z0T!*fSeoG-s16kH-cCfHLwHgaQ6+d{g3U`w1_18fXrS6zzq&5T6cF@769`(++3bdA zj%E8sBk!fK2orbeuFs3JVRA>Hd5y#@5r?ZlU|+voJyd183mN=xOUC~@dGbjoPqBsL zy^+UNIazpcWacHkYoJ97AgOyGiH|dF;2z!e`Zv=c-9}Z}`IyTUD*k5upRH{9AiK-P zw1sD^N3&R*tf3`XxC6r*ib*;l!syp~8X(s$HpJ=j!X;O-|0rvzGZmi6$x;}4uQ>MS zW;wrt&4VKJ5q9$c^S5t1KiA81M71RxIFsy$ze`W!U>OVRJSKXh>e>gCJ{L<^f_WkN zHJNeWO9^%DB5a$z#n|*=!8cfEp3`<6bREHJ>KDQ(N72u({pEKBW3J?xlHt6%)Q&k$YWkIq{VjLNoI-|Tyxu+Q@4i<3zL2g(F& z{^|_pB%`dOEy@qaA4at^x8CXhFZSLtD$4fl7nbgjmJaC_6p&O>NkIf8h7M^Eh8~9Q zkQSs=Q0eZW8wpWqh7Rc-dSBx$-v9S`_S$=`cdhr!yPmb?!-!`b=Mlf7&g&YR(`_4k z!{LI9L;DAWX>@zw7?ZV8pJn+q4N7KpQHV(4p!z};RIq1^?QOm3y`7K)u;KCKMasXj zBnM&|GXJc@7w)b{zV^p2~=` zls0Q6-zoq%{@MiIyf=wqu`Ud{^)-};`NE0#q?pxN$PEoIoPX~$e>99ev2qJlRUHLp zF3-j9^>P1k9T%#1y7O+YK!ElMv*!kz0}uaPKVmiYiYLb6)Fk85Hf$W+V1)3v)wFtV zCa)^625aPE$xlL)q2+;RdVO_JT4X{h;`vT;Nj^L8TK)%&rl%0AtLDjQ(3DP1GhNX< zBTP?aPT{L8Hbzks&VbE$lL*$}y;#Y&nKrVbpA_9i?p_Y@sTrR|7S>QCniFqMTa-L( zukll5_(kvdco8lgAX9|xb7J)2MX~V;sbK8~YSAO(VJ*EOWaOhY6yAN!uR1r8(&dV! zvt!d1FKgl>T^GbXW=lM4OW2Vtc$Q9@mPB

H{U7B&2VVCF)t_26{}zhOLL8W(#>z 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®6Hi zeJYi&AckprLS276>03ZhlEl=GH%hNJZETq1eZsLO7KoiU=)tN_^po+a^)@D()*Ko()&K<&Jb~eNB*6Dw{A%&y_A)H7lagd442Vs-o5Um=UUXa zc{(DOQ|J-b!+NW^x!PqkM)4NZ+6J@Dd7PNT8vXSs?I=!a%hR&Ns<|O}nl`&A^4E>TO9_~!u>YnPD$b&vFO<)doDP|5XSjUGJrFUwUV4M!r)ZEfC zGd=JV4>ZivE-UKl08O(owduEecyT?1@sW-Dd55HbgM%}!Jh|7KtsJ~?--pccKyD&? zbVBd;^EVE1dhqKtUcYwky7`as@f6kL`sX=_XPmnqj*pK$PZvD)k$Zkp_)ljwwilHB z9me4|BciGq(e7{057tn+{@sQelB%AyGlDn3gq?upuqPsqcs(&&%=REal8qwsxrca# zV`2PT&~DXK)U#ntrFhiatutZ0U%@aYMFiCAiNgI6_duoI!YX=ht!fgMGR>V&EL%U! zq^@{OrJ5fSrRaZrvmog{y~eeK`nnyG^f158W5W$ntI9cI-xSz5)WNl4HdcD67_ZXO zSq2mvN5Fn~)gEf90j4=^gGt_Q9(Z|LG03br@~66~Yu3Evx7Cmxca?r~CPnhJn0mV_PlazXv&O;NiF%}b~DfQ*fsQST0$-xF-6SYNt)@xNZ@kr2!p5x6M zr}LJvK5J;KWWk8(=6&(ATdItKW~`c}01iS})~?5^px-J=ud1?+gIAt3xTy zN#W~Hn9y@Vottqe)#!4v(b2Gp-AhuALErKA%6{ZKo%Sql&NJ2a9SUdb_*3c6-9hst z<@r*EQGa+-dG;77sD?WdnjisQWpnKl7om<&SWUj3aBqzojD=^tYB$mJH1jHoRZt>e zZ84^j6?}%2?qSwxXEG%)ui7g$y}ZJ%N_lhghgu>8nb+I0ZZ9Q47eU!Hn7$5f;uNoM zg)z{$X!(6@oD@peA0k@^i+MI~z@y`GN1#c6=Iy^`%+Lh}=}f}ro`d3s3!USuTrNT9 znuu4Rkk8W<_D>h*ALvmGw(7}!ij(ksh#Fo9fIA%%yG>|cUTjSl+BTGj8;oKH$oKuh zyA9U)FNzpK=ifdWR%5qn!q~EWFk^ZH02aw=yE#qjvm^s|9bDz~ewfc8k)Xfd?!4%) zU%$T8)>2Iwg1JAfiDX%|s`$h5)v~NK2O9sT)l5{FXL&C8g@nzHM?vkxGY_A{K7Wmw zzh&)o5Xs1gVK?`!<1^#W)3PcNujPlTmzdmN?0Q{2OGAIU4}A$10O}9$Pv}7=CVjcw zh?@1y&CM?*t2Q9bR^*Pu*5!W9#Fe7qY++079%_IW`bz?{I^nWfaBVPAk;CR8FE)h5 zG5H3!f`^`b<&P7R_pgW%iPqV-=m`AFo)%1i0oq7|FInPVZ$V+i#^EeFdgp4dUQMv! zJ_E9g#|hvnete(LSTJ-t>x&!Ue>)hg$lZXd&?Vh_=uq@^WI`M9sBOnXbvWDL>;K4S z(Uk$&`sBYj)el%a_<)Gs501mk>Rk=;lufe{B1dz%= z`u_vuzz-lMnK03VZvM|+6Hpm(*0!QR`@!h+e>^%cYNj{?-pNS%=;n^RK;v-wjI-bT z4Ury_sH0becnb#xc>RBVK{yZL-R&__-C+cuJiYKM%l5**emM680Flh-8D^$(iN`>R z61}(2mw|00<`)8z$5dz3%_48r1IY7-FXi*>1R4!8!lK`W+|T@VtDpL3Cug0TYf>Fv zY`dHC!AiO&b7XUA4upyB#CX0+&+&ztRlp}Uwg+_qAf83EzkeS%WttB2iT@5K_6u6D z2nn$v%~%kL+S0jDuf2)QoL>@L4Z>zC8y>{ZE%AMYQ<<~WOuKmp%D2BJra#04zsSYB z{Dq35X=&CiE1HX{Tl&Ui{%7hHYH1zYfU6)Ci(i52Q7*AER4oJe(3f}QnTolym6YFLb3c_r;P)}#A z+eQ(1ttKTtJH70$n_xWz@Xz6z)tuoh?@it2a;v|Wwbl^AOv1i)4;%xu{;s+unzsK1 zzhMJl3+A*K&(xbv()CIN4XQ8uyQ!1;QoypC3&bj>Ezr%MlJ|{x?HYi$O9|p^+KJ2Li4#@;!)X}5B()a;4d`oa8taq4LPEjVS-^#5OQ5B+ z5IuT`+;fAIz&693<%LgACnUtw^mZ@J@StVivFNvs-W}27nXe{PbaXs~_rg%d^l!JO zDH-`teBPU<_ZZLzE!%RbLGX=eXZz|XxKV`WwbJYs9Czb-&gA4cw(Da8g*4)7m~)(U|5LA2082% zR$b;TLk07?DSm(4e7gnRcI4hEvRcX@o@DC@^YiyZq)koW#vMk#@8Oas= z#W|##PBWv_!ZWu`KOG7nIXa52pTvE(BCXiC->)%&m`^C#-$=D(`;jZ6kxsL~H`}Js z>~Ryo;{(EVfi#I}|7wHrKEByhaF2lfm^f*9N#km}X6T6IWMh<*gVB=^U2%W!5R=d! zxww;7>zK<#4m(s2)k24Q&~VDm`D@L9WxeA%Mg!(Co0<3qUqy|FH)u31ij?vF_*R_I zXRW=MxR8r(KL50Ql5Jq2_xY&WNYCX_lm4$`P*GvU<5FJsOk{QWlvH2+JjkE#s_nX& z(PaaKxO8WQ4h{H-OHXcYHFF0>(EgHy_enpP&+&xh{g#Bof_R3GdN?fY3aaq)AMNom zbZ(|jEO&Q4##ltDe0zewr%A_j5r~IA=MxST#{8KkW&bGr zaf#(EkrqYFMY4t|>_DGZ8{R+NEe!I8+M5lXCWsI{Md;sPeB?swLmz!DoQ1!;UbV4m zou+S1Y`*T;B55D&A++UXxdM@@JwZyNM+s;~*$Lis`PgDyYfc`~hZM5Zu76VA_gw5=gw~Ti@Gx$0X^>1CB6jDwiFgn z1f^jylZ4cg&0NknrLyy+3w!3vuNM$M=DAvOQgq>he!dfj-XI@!E4BZTfIFozon=^usDm6__sQosyGnm;jT(0lgBz|Pd6(aLi5$b>j zHWL%6Nil|i#GaF_76RnRkNo^3s_8AFN(krn4=`F=F49^ggYF=~q-sd8h|g(G5{*Xy zr&~GXdrY5*W!=w*b(|Au|HvWkdzj$d*&@+EscoCLyRJ+isAJcMxZdc%)CHf5qRS6~ z`|knYVT@UIeZg44-mmlzfR*hIAMkwa-=9~Rjq0OTK;CA z+)yU~Rf;<#ami6n2Sv7UGbf-Z7mM4*UM~eZSdD{+Pcph ze&=%V^1{phxYu3@%FFcDq3BELWHqGigl0jwp5h5M%*Q~2MfMIU-SlM$p&#iFUliqc zUzAD^oyFG*gc++Tv8p;BZb4kA(ZutXFvI0!wGgy1hpe_P$QLNN-ys1vpf5>!?yTKV z%l~;r(gO~z;gfUr?QSGdJ~ikHj(gWBS;ig1OxdTw{K@w@b3z|84&6s`b4QagnJ^g3 zuB(IoyP~@OC%L)i?&`{kQUY`K&bMiZ+fu(Ef zRemFnTkOjG5|Un@FzF>sH@}F>w-qszMeCGq?_h4un@?&y4P7OCYesqckeg+gEUa2r zPJ(!imI;?CfgcA3e+PC>6eq}6&&M`r_~E($fCF6bM8e@NN;T*|W#t>^JRAae0i!#C z4tCj=##=Q%Q2ht4qGk@<6sv7^Tv~_fIcO!M(ZX&qHoih+AbA zn0O}g;A)=N(>$RF32>iD|B&&{`Te-#q?QWDeT{61IEwG}SSe8+!X_$pEnwv6>65_{W+4e?P52uKy2ls+a;UWIe)g!8@Ieuyrkpt# z#N@)05`a?LE~5x~jDb4g7uf>XdK$HHU>=a5JUKujL%`j)F6T3$e?){rUPuM#Y$<6k zZ7pdS5ZtZL3|w|{e`NUtOl|UgkCni93ES`liDD<276JyeL;}Kh=&-tmM5V5!UBM!4I}Oy2>O?OP=V>4IUH66-HH* z&x9nYyl8nELE5fK-%iAKhZVhbVkg)arT9T(6Nf_Gc6d-qkP} zptUnk!QHX>3n>b)INev;IFn%c_LQnp%OUMKW-1$a>gp24mQ+3ZZ$!BVtXqn}NW+Qt zsX*Dc6(Lci!l$%S?*CX*dUHtE zJ~-hGa|Z98uAU5?sh>?OELB=2bkN9x5Zx|&vhv`YSZR3y{-x$aSCMW_;3UBWT_;Fy zgotnIAGGXEx@8SG80e$xcP^3>W_M5(HTrMBRuY#}2E@ItNMT54wOK{If~TmM;ST%c z$Qu$1CoM|Z^ICjueKwG8Ew0zKUU!udqVLLQ)z}YusmaDEuDa^T{XC?tQ}78G-J#@JP1)#DZJu-U0B|T|LrJv#$YmP3_(;)D2&985~5v zwK88xoH))9yPU|({hFp}=En)tPIW9hD|R~okEDlYuB5fJrS+`XbF!!<7GQVp0 zEdx(7$cpsKqxm?^&UW{{_InSmCUY=6N-!2{iAk^DVt#+?2ExLIyEyCn8A{-WG%r3~ z!Y~LEw^$WCTarS~d6~20HU4M=5i>P&-PV}&Z*M_ze~I>Nr1)40n~AU~Lu}#tRM{)i zuDwbol@$-Y`zS+zWSZ_EJirGr&GUT&Z}4Os|E%N9!F=jD8?U?%iZIqRPzJJ|5h&laIwxs?=-w=ZAQYF=#Mi6*4F%kkgFJ3WdrffFv&A$p zA}OHM@fOFWF3a5ky(+aUYAQSLmhhh4znmZUG0${SoTHZEeR&_L3gV326t}e)_&m!X zfa_|-`Hc5+SiDDSZ^5&hp+_O~S{d_=#*U%2w>q=Md!)^M?z3i*rF78}MkT6@<2iSE z5hfVuR#W;Rm#G**-joD^4B3^o4CN{GXoFzr3d^T2(%yU`b)oU83KNaZq%Fr@HW0ly zV(wpDFxD&g{}rMDeBYhdH@h9~+)SxU6klYK22*Dg?r3T&&#%#^p9;7b=rNjX$GIOo zK7sbIANa{LlH}OQ{DO){#<>&cI6$P2-jW?ukLSIPApTqwJ`(lpJe5Xy-EHYqE9*V$ z{;(bg4=g3*sP-=Vpo|^2E;tAoK*3+7Pp*+&mMlOm9prYQx#`0$USvXCCRbxlLLSKu z{&;%9*mqU=uiOp`_zy5Zu<5f$Z3bWDZBRG6e{)q+8IDcn1MoEO#wXRO!BR{(nH9eU z&ld}}VR3@mj5c^V1z-8UaH@ZhX78UoV@CtgnSIuqC(+f{&19uK)F{WY+?Ck=oF@wQ z1UOQ;fa@d$zXO6hW@5+x+T$fC;*)BvxcTjmPS5vt?jvmSVSXDg-VggMjS_j+`L=SpP3d854j4Xd*h4u}8@- zfJJ-KQbV0P0b)lOk-N8fQ&d>E)+_ip($#fv%ic}Ml3?|nVUZN1V4UwDpywG-0M5ph zfb9g1bOm+%f!_Rye3AgzZ^F9?_Ow*9JA56owy8jF50tdf7XezttWWTXYg^7sE?nIN!nBS) zHQfORoVLhX#?&fzcuq?u-gUdZ&-cQJM`RMpo4KsHLGHZY;;%Vx6y_&8ELDzI-SmA8 zw8pNMX2Jm^(J;WV@r$V?FWX$8bO(JO3YyU3q)UpYcvMHH#g{pQ*f%JLQ! z)9AwixsA2QD{qG@D9*;|oHVR*sB@kE8Ei4@$vZ2c+Nt0lZE-}0JTr=1z$X6 zW#u0q@Rw#l{}ZqfLJf@H4llU09#4FQtQ->M$7f346oB%^$q;blE%}K`(y-8;0&UeM zJ?yLK-}vY{Qj+#8NyEZFLn&o?EPF;_1INNsb)Zyqse<}EZ7p)xlm;5H-n-jSf%0q+ zxDfZzHVkchcj8!Ek&0@6NK7LNw|%=S*M?-L+(2GD9RX%^@dRR}WeF>KQRgw#p!d#< zF7;_fLmS#1E{jOQ_aE3MqUQa5-;Clkf`suG>VTA9!p$!}NE6IHYWCRs9ed&G5#L4s25U@pEXBNhQTljP7QNl zd7X|V1m1n*ki2_+3<(-<#etz(k;1bR9JK9ne;qIx#qgEO@KvD0b&p+8+gUU_xQnu{ z1GLlqa9WRFx}%=br&JUX@!BSTg1^Pwi|b4L4}wi=tsrv>oA^u{HC!M5paEuqT5iR_ zJvUP6FidHGy?$lPs2hctLDp)&<2QDt+xo_CVY?a3acjc*mk`)FVTN~mn!xLPtwP-% zfB@w)Fn0^EG&J>qQ`(9CWQE{&?0LRk0f6TFxx&G1(YeG*uljcub>q5EiiPJmup~ni zaVJrM`uUq_+ZPi@mY}G3c(Y65^Cb=N^~|95(UX@ky`<7Ix^YyY#?iK>5nxf<4esId z+glM`BgIz?wzXfc?Dbhkld)Z#Qntn55zFK$W`;@$Wei6HgS9FOep+TVq_bXuECJ3C z7oz_D%@~;E%gV)ljI_pArR7Nt7-Vj)hI&DE%w7QxIH{iJT?v}9)PeYMpEaJV+$G^U z>Q+iL5A)FHBXUuMeIoS0P3Sf(&(H{a5Ok=8{gfVHwxoNbbsQ#fZ;6LRuRtj{nX1h8 z`FEbWm!wfxd8@i+0OgUi%qonIR(@xkiPoeh(Ia_?NOqvuWO7nxv4Q__uCj~CZ7Cl( zwYLm+Cf87V+ySw{OKMYJnAeX(UGAaO52_pKp|YZQ;;kKlFzx2(Y;D;Au!&T&Rm?i= z2HaDWR6!#c9_oq{XrMOF=)7IC05v&nj+MP&i)tMHjm**3dN=fDJB?ceC{+BJV#w+M z6h^ihE>C8Yva-sQ+7g}}8VX&F7HKYP2Axyv!Y+1i(1&h&2wC(p^L2ZQzG*S@Ph0kz z$*P-1hy{V2QYDk5-(C3Gp!aaO5%gW1;BL5bA|RS!1*v*)p5m}pQ0b#9Gg|#@=-c77 z6d{udI{j4^X3%D=>}kM0xdY`)e<8s}V<~l%o$gp3`MC6!ZOq;SJ&WGMdXFYu5tLTT ziT^!61)3I@Np3-b4d3g4?VLGqdyZ3h92h5Xg@M>%XwtGX=!#fy^7n^w-c#Op9V!+q z6vVreUzQ})j0(!<@!X)P=HC`P-p^6_1zRee%{cw&%gjd=xw_#n?W~tbV`gr8^K~RD zsg!U2op1VB8}1Fk&doH(&P_JPA?g)ys+25zaj}SdS3S#KO~+uIhWb@neFHYm!ZN-w2 z!C#mlfoi*P>m+f@ZqwG=gsOMKA`9WZD2v|UeW}#lTS*;I9;O7YzN~LL$<7(uwWi_2 z)nVaWdzbEpirX<@a_gWZMr*UWp254P54}GsJZ83rEa47X&zJib0^;)ehPk0;r$p#4 zZi!TEkro@5X9fq#dlR)E8cU&1_17Il7T3`BexI`PAAgANtL9FmJYVe=tg1AoP1O)f zGZZ4ik>A$cGI{KkTw6u|2w!%a{@{v&d%QD4{NQp;cHfgD%)Uz=W zMz5EsuDv+3^hZsLWn}A%y9U;K(u=F2!K`<~cnEy?#hZ}lb{OTVOdX#q2%5qJV*r$JYTxo(pt-iobC zYY$;m``69zOJ0-X0*y4vn^us_TYS5vtC}IHQB8xz&4629N)T>}xR6wjwurR#K-G~& zMb-TeWY%pqsE2C)RxtLXY|9@!R8}co9RQft%%kTd|IML$ERUfjtze4}_r+}ieZAV_a6HYu#Yz{#*;t4yojalz`Z+y&j!A$>=&xL+n6Ncq1f|+iKPvJtB_r5dJvg!*_L6k!I|8vajmBvFT~rX+o9mS5|6 z0)`(78|OfRI@@!Y ze73CAa%f`M{TOh~_RqGwUVlBaE9qGg+jcsCV)U$uZ`13Z%M{xM%3;n}LfX2)MHRf| zJ;Xp%9{okSRKRL?mtHzqhUg|*6+D`FuqUi=fkO8DOg^troHsEeBLC_nXy=^R{$$zK ztcO~kDZTKs9XI#M@R{XZ z8t|ef{VwmMX$0m?rL=Pr9`hUDm9to2>x?rt>2Se~@GJI+e8q|Ia*BYev~Yf>%NHY3 z75(_hCBxvYse-?BZlt%nH-QaV0DE%8{naTwiN`h>uz_zK+QsW5)|3ynd3u|RMWSBS zJxyhCsop4&CWJV(kn-KG;iT93RP5n-40-F3F8njEXwvz;6ZWY8{Rsh%%|nXzX4#EY z)1kU0t;%ml4~CKEM#@ZI%8t}At$rTrQth45J)mHY$rAa5d#JSXI%P2_@wi5t%Rwy- zo8ol9e6wca+IAJ$HM@e-IolMBI@>pa|$T<>qVZ{>e&pOZ&slf z?itvXeVef~q9m%uY&9|7GohPX+%0py{bGlJ#j*Bd>4aLxlqGycrX$3&8a``aDLilh zN>v7f*yUgrMWBQRzUDVI_xCb8I!2V9S2oXIb?nyvl)B(LmjYQAzM4Bc?2=#yyX=lEhqQ`Sj~#WpZL79|kk^#u(R&Km9xB3q*(+oGJBT582sqm=YpDyY%#gx(^=Y1bEMr}hK8 z%CLMc_sloRkb7qvk=rf{x-F#rMit&Xa-h`+cf!sQzo&|NFlt`G?5lAYE-g_r+nB9P zHnu>`6tQ)v96xCi%TQ`TLbNT|kn=-hMPW$i$OpzDSNNWxy#sN4i0iZi+3X`ObkU|(tnrFZF6mG1pkd`U^uiVpTP8yxP) z$R(9mx`^MFo{hlEnGXq_Xl45#A%-#O57X+^Gx8ph?UgG2kizGd91TUh!C{I=LE^e|r*Vt$j^c zcqM>}?R2`B6q}kk3pK{EWMJcVxk<^}6_r>b+r1-cJ;Ua4WG;WX5ETz&4rsOA|9GGB z)GL#>b1dQD+UC40n~JXkJHB%eU+k-+jz@?|CU>1MxiOC!X@$rg$j?nr()kNn z4z4bvZ|h1^&5&e(yW#hdfxzzsCzfr39crXRDo@8>%@Ex z;IS!_P>o5B)R=#t|{=0_gK;PlHKwa4^T7 z3&f8i+3O)UwwF7iwBDr3MlZ*MoZVGp;iftQj!6i9$Z_}6PPr*J#?0F3IsF%dO8rrJ zBB2Nxt(mx}cJJ+Jy|B;XSzsq;l86#fTg&a2QunrLjf0h3Ufy3URqs2dJ#*Rmj@J6| zUh;Gzy0TaD#}oVUuSuKPBd5Zt=giTn0p)ek^E#Q19)*LJ#iLVtd2nyVLFmE59Gtb* zvKGv_bZf`r$X|qk3YIlw@n7QNZTT6%@GiId84ojjXgYaj2WkZyWI7+VA{M!ie1rp& z_E@l&{F6ZH-93$NziwbCFq8Zods77WBW^NrhKp0O3~B!yJ(G#l^*Yn!S>Qh1r96@C zJlsDj&n_FpHt9%xA*;cMgQ!xbNP@qb?wYLBKXBBSpk*7<9^vjA0hF(TW&Mnn}|UphUe_rRSIL}CVF zoUkcps|_~{nH^$=i)%=@?sh=+OG0DA=Ce8#;oF(-w|!s?Ly^4#KMo6hRc4r&$<74X^S-~m>yc*38KFUf_}hV*TH|99>ME*RjpZ*?IFM>z)4 z){&l471vf_jZTQa?To?cOSQI7%z9Ku_09}))wraNIwn{C)}wGE9@JKuf8s=RkQ4^= z^FwHC-^<&k(V(D5H=Q6?E;4)$pA{IR)ll8~?9$6nG12u-2{s1e!3ib)3-_rQ`E$q^;pZYk z`)=oQl~?ze`Lxh=ohLQ`=Yp2xs*kuZxj(kZ29=0T^d65;z4-G7^&?nSPI0Xf3%&|D zRK!{mG|>TD!(RTltsHPtF+%4S2ArblBK2EcCI~!&C4)9llv+Pc5zYg-g$~}S%jfCm z&l>{8b0=kzIcJbR)d)fwRgDB2l`(m#RNK34BuW?6dS49{3Mqq;bdLkod~P0iru&5c ziikd#yR=rUNSZ-ngg~n}VqUa&zaLKnb!Y_3jad3*VtpOhSB3zQy7YXm)=WC$d1WHa z$-Sg+Z86e%`IaomHO9zM)y(C0+|nYs3!*(D4RtQnL)gOc{aEspoEkAI+SfI{5dShy z@*|X(A$UXjH<*>#@%v{{9Zfvt?K%1_PUU6{y%V4xq{mMq5Bl6O`ywG!7jJK7Ex-q5 z747pp*2Cv{*V+ExIB&QbTj8!6*{8fdA;ns|XT?f!vRyXa$Sm*)gVK=wH=81SgZYt% zM}&_2Rb$3rv8*&mVsfoM6h5l+e~v?<`wLq?#c9p#?inLts~LvS4pX_=c-q(6?#glRnulV zP+8nSlb5UObiM8emJ0SY$INE}871t?4v#8OhpXfJm$$y8@1DE6G|vfEm4*yUa$&gK zR$(5{AI#EEj|dDLYhoqO+&tvHN4j2dR)Ebd#6zXC#3X&aTXiDfOOcxI=x(N*$mZ#; zaA{)y_+_!+kHa@T7Q=@1t@yQ?Gpd*KFD363SB0E9_? zwaWlQoMPc|jqT8;)(%kmVz(_@Q!E^`)B9!c;;D-+&NEmU_KZWVMFRfVNRx~c7Z`5W ze861nVI)(KoumNt+pa%X1f0gD1{fQkB87}kQRqd=qRc>6MZDY0_hxawy?SZ?nVjPW zLL%e9o=3=}TWfczRp9QB>p@iY_B^}6P{DuoTr91zpSoT{l}@*Xq~@T%t?(0$;ft!V zG)Y7G1MRTzht4f{Y|iZsVlcH`*qD?2LM0bWaPpV|O8^z7lytl!_;qfNe9d5Fu1-PM zvA2iABQXlgTSi>0`RZrYtLN{}_LlLus}`Xil_wPT^64^F(_d!^*s7a+RLg$#Cr=g- znRXh8) z5FB%4I<9G?2~5VTL+T^+halSDBM5OD;@Te zcYw`zzzjM&so7ZHqbSvo1Np-5bmW`z{M>`>Jxojto45z9&m@y@V!AzBsSt?j7nlSX z+GmsRst4-5{$Y&ullm`l$`jIdpa^|aAN}O9J~)hhwVKLJKbUFW7e+*#M}P(fY7qeW zrp)!#W#$W2#~2}wy}FO2&aXI~*UoJ^o)Ig5A5EAKm8Cs*S2o~2C4GK3!29TO?b(Qn z4kG4Q$*VQ$0{+$hGxMAG_xD!oQF|J5*R!N4!69!K4Q932CeomQncN3FoCV1|Ugc7!+$4?zj((*he;cHb*v6dNEDUXXk`S z3|CDZjU>okexzN%!k8U(ewegRIZ~#PwQa=3eZYS5Sp`ud@uR7p>Y`Q|Ylo8mmgzf@ zYzjV7v9R_JA6_lNOi%Lqd1?5H5~;l?3xAAw$zbDG+kV^+(odKnx}e^EV(MyX?y5C2*RlwXgm$*>wp_{4XB+RRI*X^W1s1Lpg4{ zTEExi2>i>#Uq(oG@#*h&O(b6(n^Hl=Jyir-&r9;q4eQ{#j>k*#1oC4ElnM-<&C*5%l@k;Gdw)LE=9>j&Lf$AB~T>Sp1z1OR=caD4frj zchEZe!H{ZqkY|2!*Z>*jU6IaLw|QbRKd_YK!LQn@ay6)%CguyP3!2y1Hy>lY4#(pl zj#&J}r|izQ5bDmBBO<$m?`n`xC-~hwUZERmx}>{517UjSz3dn(deWR}Ul9Fq>8D%3 zt+@T9>s{@Neue1lyLmVldJQ7e?DyNM)9aK}!Z{sh@4Ij*5FGo8 zhSKDq@?pDAYL$$>-d|SHR2Y)aqbeBCVV)I-BXdsXd{!C>)~!7z-JxsnX;;5K3AQ^o zY!|K~0;*zeOW3t3{sW5Fv+%2W*g-}4n$p29y`3#~gP*BpfyK?g9k@{&8yiVFWXmlF z(z`h7S$fOqwxX7$)g@T~n#tgdwJEB{=a#`=&feh6U~>EUR>)L#O7609d*gcG1UDs3 z3S-XKn4*;O3LafV^T`Ob2{vpF~v=A;nnu{i^ zZLD}87!xqYoMGB#?qzZuz1LRxnV6I$=~jU3!>`ghp(jfOv{9mRi6y)X03#bUa;n;v zZ5ST_hdo2^7jIyrLq=ZdDzl+&*~nqX>C`t?zv*GhW0IrGT-y!WE)lzSTLQJgx)I7U zF}nO(mXzBy2ezLOwm39t0gR8?uVSHBPfDcbBg(ge5^h%yweE!xO85!tpYs^+66qo` zdCzwx(7;FpP>%yxV}6GV35ehQZS4JaFK=bhf8~o}C;ZOH}JM>V(IC?0XLYYkO-pwD43RfYhH2R&% zzad0P>9WB2bo2};pEOJX%~P{&);aCVr@r`^Ud-R3JgTY9^0(e@%`ifZHKFK_bR_kE zI9*bCG5AWnoV#I$5SHh1Hb~fy4VCody&?Hfh9D>k%fAvzHy$B{!XfyO=c?~LAcrd3 za(#__io7T_oA{$sem=KIHps=$qK z;W}{q4;Tt)vi$qXe-3orqWNF_8H2kq`G0%W-UW>I@&1t4Kj8a+|L0GW=6`?i|Cd`T z-;M@2apYIb|BRvkcWVIeYyXfYzP_2+x$}qQ`M+BP5OuwwtH=M$EI%Qb@v#$Q@O`b2XG&6e=3je27bPwp2 zaCY$z^VM=I}!*G3;k^w{@?c@{bw{|6e$R@(po literal 0 HcmV?d00001 diff --git a/django_code/templates/static/djangoql/img/completion_example_scaled.png b/django_code/templates/static/djangoql/img/completion_example_scaled.png new file mode 100644 index 0000000000000000000000000000000000000000..1c0dc8f90406ccf82a9d7ce9f584de0650b39a15 GIT binary patch literal 66780 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%0A5r& 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[0]){var h=a.pattern;h.lastIndex=o;var p=h.exec(s);if(p&&p.index===o){var d=t.push({result:p,action:a.action,length:p[0].length});for(a.global&&(e=d);--d>e;){var f=d-1;if(t[d].length>t[f].length){var m=t[d];t[d]=t[f],t[f]=m}}}}}return t}this.state=0,this.index=0,this.input="",this.addRule=function(t,e,i){var o=t.global;if(!o){var s="g";t.multiline&&(s+="m"),t.ignoreCase&&(s+="i"),t=new RegExp(t.source,s)}return"[object Array]"!==Object.prototype.toString.call(i)&&(i=[0]),n.push({pattern:t,global:o,action:e,start:i}),this},this.setInput=function(t){return i=0,this.state=0,this.index=0,e.length=0,this.input=t,this},this.lex=function(){if(e.length)return e.shift();for(this.reject=!0;this.index<=this.input.length;){for(var n=s.call(this).splice(i),o=this.index;n.length&&this.reject;){var r=n.shift(),l=r.result,a=r.length;this.index+=a,this.reject=!1,i++;var c=r.action.apply(this,l);if(this.reject)this.index=l.index;else if(void 0!==c)switch(Object.prototype.toString.call(c)){case"[object Array]":e=c.slice(1),c=c[0];default:return a&&(i=0),c}}var u=this.input;if(o=e||n<0||g&&t-f>=u}function w(){var t=o();if(x(t))return S(t);p=setTimeout(w,function(t){var n=e-(t-d);return g?l(n,u-(t-f)):n}(t))}function S(t){return p=void 0,y&&a?v(t):(a=c=void 0,h)}function E(){var t=o(),n=x(t);if(a=arguments,c=this,d=t,n){if(void 0===p)return b(d);if(g)return clearTimeout(p),p=setTimeout(w,e),v(d)}return void 0===p&&(p=setTimeout(w,e)),h}return e=s(e)||0,i(n)&&(m=!!n.leading,u=(g="maxWait"in n)?r(s(n.maxWait)||0,e):u,y="trailing"in n?!!n.trailing:y),E.cancel=function(){void 0!==p&&clearTimeout(p),f=0,a=d=c=p=void 0},E.flush=function(){return void 0===p?h:S(o())},E}},716:function(t){function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}t.exports=function(t){var n=e(t);return null!=t&&("object"==n||"function"==n)}},667:function(t){function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}t.exports=function(t){return null!=t&&"object"==e(t)}},570:function(t,e,n){function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var o=n(807),s=n(667);t.exports=function(t){return"symbol"==i(t)||s(t)&&"[object Symbol]"==o(t)}},244:function(t,e,n){var i=n(366);t.exports=function(){return i.Date.now()}},167:function(t,e,n){var i=n(645),o=n(716);t.exports=function(t,e,n){var s=!0,r=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return o(n)&&(s="leading"in n?!!n.leading:s,r="trailing"in n?!!n.trailing:r),i(t,e,{leading:s,maxWait:e,trailing:r})}},666:function(t,e,n){var i=n(182),o=n(716),s=n(570),r=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,a=/^0o[0-7]+$/i,c=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(s(t))return NaN;if(o(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=o(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=i(t);var n=l.test(t);return n||a.test(t)?c(t.slice(2),n?2:8):r.test(t)?NaN:+t}}},e={};function n(i){var o=e[i];if(void 0!==o)return o.exports;var s=e[i]={id:i,loaded:!1,exports:{}};return t[i](s,s.exports,n),s.loaded=!0,s.exports}n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,{a:e}),e},n.d=function(t,e){for(var i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.nmd=function(t){return t.paths=[],t.children||(t.children=[]),t},function(){"use strict";var t=n(57),e=n.n(t),i=n(645),o=n.n(i),s=n(716),r=n.n(s),l=n(167),a=n.n(l);function c(t){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function u(t){this.size=0,this.limit=t,this.oldest=this.newest=void 0,this._keymap={}}u.prototype._markEntryAsUsed=function(t){t!==this.newest&&(t.newer&&(t===this.oldest&&(this.oldest=t.newer),t.newer.older=t.older),t.older&&(t.older.newer=t.newer),t.newer=void 0,t.older=this.newest,this.newest&&(this.newest.newer=t),this.newest=t)},u.prototype.put=function(t,e){var n=this._keymap[t];return n?(n.value=e,void this._markEntryAsUsed(n)):(this._keymap[t]=n={key:t,value:e,older:void 0,newer:void 0},this.newest?(this.newest.newer=n,n.older=this.newest):this.oldest=n,this.newest=n,this.size++,this.size>this.limit?this.shift():void 0)},u.prototype.shift=function(){var t=this.oldest;return t&&(this.oldest.newer?(this.oldest=this.oldest.newer,this.oldest.older=void 0):(this.oldest=void 0,this.newest=void 0),t.newer=t.older=void 0,delete this._keymap[t.key],this.size--),t},u.prototype.get=function(t,e){var n=this._keymap[t];if(void 0!==n)return this._markEntryAsUsed(n),e?n:n.value},u.prototype.find=function(t){return this._keymap[t]},u.prototype.set=function(t,e){var n,i=this.get(t,!0);return i?(n=i.value,i.value=e):(n=this.put(t,e))&&(n=n.value),n},u.prototype.remove=function(t){var e=this._keymap[t];if(e)return delete this._keymap[e.key],e.newer&&e.older?(e.older.newer=e.newer,e.newer.older=e.older):e.newer?(e.newer.older=void 0,this.oldest=e.newer):e.older?(e.older.newer=void 0,this.newest=e.older):this.oldest=this.newest=void 0,this.size--,e.value},u.prototype.removeAll=function(){this.oldest=this.newest=void 0,this.size=0,this._keymap={}},"function"==typeof Object.keys?u.prototype.keys=function(){return Object.keys(this._keymap)}:u.prototype.keys=function(){var t=[];for(var e in this._keymap)t.push(e);return t},u.prototype.forEach=function(t,e,n){var i;if(!0===e?(n=!0,e=void 0):"object"!==c(e)&&(e=this),n)for(i=this.newest;i;)t.call(e,i.key,i.value,this),i=i.older;else for(i=this.oldest;i;)t.call(e,i.key,i.value,this),i=i.newer},u.prototype.toJSON=function(){for(var t=new Array(this.size),e=0,n=this.oldest;n;)t[e++]={key:n.key,value:n.value},n=n.newer;return t},u.prototype.toString=function(){for(var t="",e=this.oldest;e;)t+=String(e.key)+":"+e.value,(e=e.newer)&&(t+=" < ");return t};var h=u;function p(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function d(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,i=new Array(e);n".concat(i,"")),{text:t,snippetBefore:e||"",snippetAfter:n||"",suggestionText:o}}T.addRule(k,(function(){})),T.addRule(/\./,(function(t){return N("DOT",t)})),T.addRule(/,/,(function(t){return N("COMMA",t)})),T.addRule(new RegExp("or".concat(L)),(function(t){return N("OR",t)})),T.addRule(new RegExp("and".concat(L)),(function(t){return N("AND",t)})),T.addRule(new RegExp("not".concat(L)),(function(t){return N("NOT",t)})),T.addRule(new RegExp("in".concat(L)),(function(t){return N("IN",t)})),T.addRule(new RegExp("startswith".concat(L)),(function(t){return N("STARTSWITH",t)})),T.addRule(new RegExp("endswith".concat(L)),(function(t){return N("ENDSWITH",t)})),T.addRule(new RegExp("True".concat(L)),(function(t){return N("TRUE",t)})),T.addRule(new RegExp("False".concat(L)),(function(t){return N("FALSE",t)})),T.addRule(new RegExp("None".concat(L)),(function(t){return N("NONE",t)})),T.addRule(/[_A-Za-z][_0-9A-Za-z]*(\.[_A-Za-z][_0-9A-Za-z]*)*/,(function(t){return N("NAME",t)})),T.addRule(j,(function(t){return N("STRING_VALUE",t.slice(1,t.length-1))})),T.addRule(b,(function(t){return N("INT_VALUE",t)})),T.addRule(x,(function(t){return N("FLOAT_VALUE",t)})),T.addRule(/\(/,(function(t){return N("PAREN_L",t)})),T.addRule(/\)/,(function(t){return N("PAREN_R",t)})),T.addRule(/=/,(function(t){return N("EQUALS",t)})),T.addRule(/!=/,(function(t){return N("NOT_EQUALS",t)})),T.addRule(/>/,(function(t){return N("GREATER",t)})),T.addRule(/>=/,(function(t){return N("GREATER_EQUAL",t)})),T.addRule(/ element, "+"but ".concat(this.textarea.tagName," was found")):this.logError("Element not found by selector: ".concat(t.selector))):this.logError("Please pass an object with initialization parameters")};_.init=function(t){return new _(t)},_.DOMReady=function(t){"loading"!==document.readyState?t():document.addEventListener("DOMContentLoaded",t)},_.prototype={createCompletionElement:function(){var t,e=this.options;this.completion||(this.completion=document.createElement("div"),this.completion.className="djangoql-completion",document.querySelector("body").appendChild(this.completion),this.completionUL=document.createElement("ul"),this.completionUL.onscroll=a()(this.onCompletionScroll.bind(this),50),this.completion.appendChild(this.completionUL),"string"==typeof e.syntaxHelp&&((t=document.createElement("p")).className="syntax-help",t.innerHTML='Syntax Help',t.addEventListener("mousedown",(function(t){t.preventDefault()})),this.completion.appendChild(t)),this.completionEnabled=!e.hasOwnProperty("completionEnabled")||e.completionEnabled)},destroyCompletionElement:function(){this.completion&&(this.completion.parentNode.removeChild(this.completion),this.completion=null,this.completionEnabled=!1)},enableCompletion:function(){this.completionEnabled=!0},disableCompletion:function(){this.completionEnabled=!1,this.hideCompletion()},getJson:function(t,e){this.loading=!0;var n=function(){this.loading=!1,this.request=null,this.logError("failed to fetch from ".concat(t))}.bind(this);this.request&&this.request.abort(),this.request=new XMLHttpRequest,this.request.open("GET",t,!0),this.request.onload=function(){this.loading=!1,200===this.request.status?"function"==typeof e.success&&e.success(JSON.parse(this.request.responseText)):n(),this.request=null}.bind(this),this.request.ontimeout=n,this.request.onerror=n,this.request.onprogress=function(){},window.setTimeout(this.request.send.bind(this.request))},loadIntrospections:function(t){var e=function(t){this.currentModel=t.current_model,this.models=t.models,this.suggestionsAPIUrl=t.suggestions_api_url}.bind(this);"string"==typeof t?this.getJson(t,{success:e}):r()(t)?e(t):this.logError("introspections parameter is expected to be either URL or "+"object with definitions, but ".concat(t," was found"))},logError:function(t){console.error("DjangoQL: ".concat(t))},onCompletionMouseClick:function(t){this.selectCompletion(parseInt(t.currentTarget.getAttribute("data-index"),10))},onCompletionMouseDown:function(t){t.preventDefault()},onKeydown:function(t){switch(t.keyCode){case 38:this.suggestions.length&&(null===this.selected?this.selected=this.suggestions.length-1:0===this.selected?this.selected=null:this.selected-=1,this.renderCompletion(),t.preventDefault());break;case 40:this.suggestions.length&&(null===this.selected?this.selected=0:this.selected1&&(p=d.join(""),!h&&!u.text)){var f=(c=2,function(t){if(Array.isArray(t))return t}(a=d)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var i,o,s=[],r=!0,l=!1;try{for(n=n.call(t);!(r=(i=n.next()).done)&&(s.push(i.value),!e||s.length!==e);r=!0);}catch(t){l=!0,o=t}finally{try{r||null==n.return||n.return()}finally{if(l)throw o}}return s}}(a,c)||function(t,e){if(t){if("string"==typeof t)return m(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(t,e):void 0}}(a,c)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}());h=f[0],p=f[1]}r.endsWith(h)&&(h=""),l.startsWith(p)&&(p="");var g=h+u.text+p,y=r.length+g.length;d.length>1&&(y-=d[1].length),this.textarea.value=r+g+l,this.textarea.focus(),this.textarea.setSelectionRange(y,y),this.selected=null,this.textareaResize&&this.textareaResize(),this.generateSuggestions(this.textarea),this.renderCompletion()},hideCompletion:function(){this.selected=null,this.completion&&(this.completion.style.display="none")},highlight:function(t,e){return e&&t?this.highlightCaseSensitive?t.split(e).join("".concat(e,"")):t.replace(new RegExp("(".concat(e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),")"),"ig"),"$1"):t},renderCompletion:function(t){var e,n,i,o,s,r;if(this.completionEnabled){if(!t||"none"!==this.completion.style.display)if(this.suggestions.length||this.loading){var l=this.suggestions.length,a=[].slice.call(this.completionUL.querySelectorAll("li[data-index]"));for(s=a.length,n=0;ni.bottom?this.completionUL.scrollTop=this.completionUL.scrollTop+2+(o.bottom-i.bottom):o.topl;)a[--s].removeEventListener("click",this.onCompletionMouseClick),a[s].removeEventListener("mousedown",this.onCompletionMouseDown),this.completionUL.removeChild(a[s]);r=this.completionUL.querySelector("li.djangoql-loading"),this.loading?r||((r=document.createElement("li")).className="djangoql-loading",r.innerHTML=" ",this.completionUL.appendChild(r)):r&&this.completionUL.removeChild(r);var c=this.textarea.getBoundingClientRect(),u=window.pageYOffset+c.top+c.height;this.completion.style.top="".concat(u,"px"),this.completion.style.left="".concat(c.left,"px"),this.completion.style.display="block"}else this.hideCompletion()}else this.hideCompletion()},resolveName:function(t){var e,n,i,o=t.split("."),s=this.currentModel,r=null,l=[];if(s)for(l.push(s),n=0,i=o.length;n=e&&(d=p[h.length-1],h.pop()),h.length&&(c=h[h.length-1],h.length>1&&(u=h[h.length-2]));var f=(n=t.slice(c?c.end:0,e)).match(k);f&&(n=n.slice(f[0].length)),"("===n&&(n="");var m=["AND","OR"];if(")"!==n||f)if(!c||m.indexOf(c.name)>=0&&f||"."===n&&c&&!f||"PAREN_L"===c.name&&(!u||m.indexOf(u.name)>=0))s="field",r=this.currentModel,"."===n&&(n=t.slice(c.start,e)),(i=n.split(".")).length>1&&(n=i.pop(),(o=this.resolveName(i.join("."))).model&&!o.field?(r=o.model,a=o.modelStack):(s=null,r=null));else if(c&&f&&u&&"NAME"===u.name&&["EQUALS","NOT_EQUALS","CONTAINS","NOT_CONTAINS","GREATER_EQUAL","GREATER","LESS_EQUAL","LESS"].indexOf(c.name)>=0){if((o=this.resolveName(u.value)).model){s="value",r=o.model,l=o.field,a=o.modelStack;var g=this.models[r][l];'"'!==n[0]&&"'"!==n[0]||"str"!==g.type&&!g.options||(n=n.slice(1))}}else c&&f&&"NAME"===c.name?(o=this.resolveName(c.value)).model&&(s="comparison",r=o.model,l=o.field,a=o.modelStack):c&&f&&["PAREN_R","INT_VALUE","FLOAT_VALUE","STRING_VALUE"].indexOf(c.name)>=0&&(s="logical");return{prefix:n,scope:s,model:r,field:l,currentFullToken:d,modelStack:a}},getCurrentFieldOptions:function(){var t=this.textarea,e=this.getContext(t.value,t.selectionStart),n=this.models[e.model],i=e.field&&n[e.field],o={cacheKey:null,context:e,field:i,model:n,options:null};if("value"!==e.scope||!i||!i.options)return null;if(Array.isArray(i.options))o.options=i.options;else if(!0===i.options){if(!this.suggestionsAPIUrl)return null;o.cacheKey="".concat(e.model,".").concat(e.field,"|").concat(e.prefix)}return o},loadFieldOptions:function(t){var e=this.getCurrentFieldOptions()||{},n=e.context;if(e.cacheKey){var i={field:"".concat(n.model,".").concat(n.field),search:n.prefix},o=this.suggestionsCache.get(e.cacheKey)||{};if(t&&o.has_next)i.page=o.page?o.page+1:1;else if(o.page)return;o.loading=!0,this.suggestionsCache.set(e.cacheKey,o);var s,r,l,a,c,u,h,p,f,m,g=(s=this.suggestionsAPIUrl,r=i,p=(h=s.split("?"))[0],f=h.slice(1).join("?"),m=f.split("&"),Object.keys(r).forEach((function(t){for(a=encodeURI(t),c=encodeURI(r[a]),u=m.length;u--;)if((l=m[u].split("="))[0]===a){l[1]=c,m[u]=l.join("=");break}u<0&&m.push("".concat(a,"=").concat(c))})),(f=m.join("&"))?[p,f].join("?"):p);this.getJson(g,{success:function(t){var n=this.suggestionsCache.get(e.cacheKey)||{};if(t.page-1===(n.page||0)){var i=d(d({},t),{},{items:(n.items||[]).concat(t.items)});this.suggestionsCache.set(e.cacheKey,i),this.loading=!1,this.populateFieldOptions(),this.renderCompletion()}}.bind(this)}),this.populateFieldOptions(),this.renderCompletion()}},populateFieldOptions:function(t){var e=this.getCurrentFieldOptions();if(null!==e){var n,i=e.options,o=e.context&&e.context.prefix;if(i)i=this.valuesCaseSensitive?i.filter((function(t){return t.indexOf(o)>=0})):i.filter((function(t){return t.toLowerCase().indexOf(o.toLowerCase())>=0}));else{if(this.suggestions=[],!e.cacheKey)return;if(i=(n=this.suggestionsCache.get(e.cacheKey)||{}).items||[],!n.loading&&(!n.page||t&&n.has_next)&&this.debouncedLoadFieldOptions(t),!i.length)return}this.highlightCaseSensitive=this.valuesCaseSensitive,this.suggestions=i.map((function(t){return U(t,'"','"')}))}},onCompletionScroll:function(){var t=this.completionUL.getBoundingClientRect().height,e=this.completionUL.scrollTop+t;e>t&&e>this.completionUL.scrollHeight-t&&this.populateFieldOptions(!0)},generateSuggestions:function(){var t,e,n,i=this.textarea;if(!this.completionEnabled)return this.prefix="",void(this.suggestions=[]);if(this.currentModel){if(i.selectionStart!==i.selectionEnd)return this.prefix="",void(this.suggestions=[]);n=function(t){return t.text.indexOf(this.prefix)>=0}.bind(this),this.highlightCaseSensitive=!0;var o=this.getContext(i.value,i.selectionStart),s=o.modelStack;this.prefix=o.prefix;var r=this.models[o.model],l=o.field&&r[o.field];switch(o.scope){case"field":this.suggestions=Object.keys(r).filter((function(t){var e=r[t].relation;return"relation"!==r[t].type||!s.includes(e)||s.slice(-1)[0]===e})).map((function(t){return U(t,"","relation"===r[t].type?".":" ")}));break;case"comparison":t=["=",["!=","is not equal to"]],e=" ",l&&"bool"!==l.type&&(["date","datetime"].indexOf(l.type)>=0?(t.push(["~","contains"],["!~","does not contain"]),e=' "|"'):"str"===l.type?(t.push(["~","contains"],["!~","does not contain"],"startswith","not startswith","endswith","not endswith"),e=' "|"'):l.options&&(e=' "|"'),"str"!==l.type&&t.push(">",">=","<","<=")),this.suggestions=t.map((function(t){return"string"==typeof t?U(t,"",e):U(t[0],"",e,t[1])})),l&&"bool"!==l.type&&(e=["str","date","datetime"].indexOf(l.type)>=0||l.options?' ("|")':" (|)",this.suggestions.push(U("in","",e)),this.suggestions.push(U("not in","",e))),n=function(t){return 0===t.text.lastIndexOf(this.prefix,0)}.bind(this);break;case"value":l?l.options?(this.prefix=o.prefix,this.populateFieldOptions()):"bool"===l.type?(this.suggestions=[U("True",""," "),U("False",""," ")],l.nullable&&this.suggestions.push(U("None",""," "))):"unknown"===l.type&&(this.prefix="",this.suggestions=[]):this.suggestions=[U("None",""," ")];break;case"logical":this.suggestions=[U("and",""," "),U("or",""," ")];break;default:this.prefix="",this.suggestions=[]}this.suggestions=this.suggestions.filter(n),1===this.suggestions.length?this.selected=0:this.selected=null}}};var M=_;window.DjangoQL=M}()}(); +//# sourceMappingURL=completion.js.map \ No newline at end of file diff --git a/django_code/templates/static/djangoql/js/completion.js.map b/django_code/templates/static/djangoql/js/completion.js.map new file mode 100644 index 0000000..2356f9d --- /dev/null +++ b/django_code/templates/static/djangoql/js/completion.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./node_modules/lex/lexer.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_baseTrim.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/_trimmedEndIndex.js","webpack:///./node_modules/lodash/debounce.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/lodash/now.js","webpack:///./node_modules/lodash/throttle.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/node module decorator","webpack:///./node_modules/djangoql-completion/src/lru-cache.js","webpack:///./node_modules/djangoql-completion/src/index.js","webpack:///./node_modules/djangoql-completion/src/utils.js","webpack:///./completion-widget/index.js"],"names":["Lexer","defunct","tokens","rules","remove","scan","matches","index","state","this","lastIndex","input","i","length","rule","start","states","indexOf","pattern","result","exec","j","push","action","global","k","temple","addRule","flags","multiline","ignoreCase","RegExp","source","Object","prototype","toString","call","setInput","lex","shift","reject","splice","match","token","apply","slice","charAt","module","exports","chr","Error","Symbol","require","getRawTag","objectToString","symToStringTag","toStringTag","undefined","value","trimmedEndIndex","reTrimStart","string","replace","freeGlobal","objectProto","hasOwnProperty","nativeObjectToString","isOwn","tag","unmasked","e","freeSelf","self","root","Function","reWhitespace","test","isObject","now","toNumber","nativeMax","Math","max","nativeMin","min","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","arguments","clearTimeout","cancel","flush","type","baseGetTag","isObjectLike","Date","debounce","baseTrim","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","other","valueOf","isBinary","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","id","loaded","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","defineProperty","enumerable","get","g","globalThis","window","obj","prop","nmd","paths","children","LRUCache","limit","size","oldest","newest","_keymap","_markEntryAsUsed","entry","newer","older","put","returnEntry","find","set","oldvalue","removeAll","keys","forEach","fun","context","desc","toJSON","s","Array","String","reIntValue","reFractionPart","reExponentPart","intRegex","floatRegex","reLineTerminators","reEscapedChar","reEscapedUnicode","reDoubleQuotedStringChar","reDoubleQuotedString","reSingleQuotedStringChar","reSingleQuotedString","stringRegex","reNotFollowedByName","whitespaceRegex","lexer","name","suggestion","text","snippetBefore","snippetAfter","explanation","suggestionText","l","lexAll","end","DjangoQL","cacheSize","currentModel","models","suggestionsAPIUrl","prefix","suggestions","selected","valuesCaseSensitive","highlightCaseSensitive","textarea","completion","completionUL","completionEnabled","loadIntrospections","introspections","selector","document","querySelector","tagName","logError","suggestionsCache","debouncedLoadFieldOptions","loadFieldOptions","bind","loading","enableCompletion","disableCompletion","onCompletionMouseClick","onCompletionMouseDown","popupCompletion","debouncedRenderCompletion","renderCompletion","setAttribute","addEventListener","onKeydown","hideCompletion","autoResize","textareaResize","style","resize","overflow","createCompletionElement","init","DOMReady","callback","readyState","syntaxHelp","createElement","className","appendChild","onscroll","throttle","onCompletionScroll","innerHTML","preventDefault","destroyCompletionElement","parentNode","removeChild","getJson","url","settings","onLoadError","request","abort","XMLHttpRequest","open","onload","status","success","JSON","parse","responseText","ontimeout","onerror","onprogress","send","initIntrospections","data","current_model","suggestions_api_url","message","console","error","selectCompletion","currentTarget","getAttribute","keyCode","onSubmit","form","submit","getComputedStyle","heightOffset","parseFloat","paddingTop","paddingBottom","height","scrollHeight","generateSuggestions","getContext","selectionStart","currentFullToken","textValue","startPos","tokenEndPos","textBefore","textAfter","trim","snippetAfterParts","split","join","endsWith","startsWith","textToPaste","cursorPosAfter","focus","setSelectionRange","display","highlight","dontForceDisplay","currentLi","completionRect","currentLiRect","liLen","loadingElement","suggestionsLen","li","querySelectorAll","getBoundingClientRect","bottom","scrollTop","top","removeEventListener","inputRect","pageYOffset","left","resolveName","f","nameParts","model","field","modelStack","relation","cursorPos","resolvedName","scope","lastToken","nextToLastToken","allTokens","pop","whitespace","logicalTokens","modelField","getCurrentFieldOptions","ctx","fieldOptions","cacheKey","isArray","loadMore","requestParams","search","cached","has_next","page","params","pair","parts","path","queryString","pairs","requestUrl","encodeURI","cache","cachedData","items","concat","populateFieldOptions","filter","item","toLowerCase","map","rectHeight","scrollBottom","searchFilter","selectionEnd","includes","lastIndexOf","nullable"],"mappings":"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","file":"js/completion.js","sourcesContent":["if (typeof module === \"object\" && typeof module.exports === \"object\") module.exports = Lexer;\n\nLexer.defunct = function (chr) {\n throw new Error(\"Unexpected character at index \" + (this.index - 1) + \": \" + chr);\n};\n\nfunction Lexer(defunct) {\n if (typeof defunct !== \"function\") defunct = Lexer.defunct;\n\n var tokens = [];\n var rules = [];\n var remove = 0;\n this.state = 0;\n this.index = 0;\n this.input = \"\";\n\n this.addRule = function (pattern, action, start) {\n var global = pattern.global;\n\n if (!global) {\n var flags = \"g\";\n if (pattern.multiline) flags += \"m\";\n if (pattern.ignoreCase) flags += \"i\";\n pattern = new RegExp(pattern.source, flags);\n }\n\n if (Object.prototype.toString.call(start) !== \"[object Array]\") start = [0];\n\n rules.push({\n pattern: pattern,\n global: global,\n action: action,\n start: start\n });\n\n return this;\n };\n\n this.setInput = function (input) {\n remove = 0;\n this.state = 0;\n this.index = 0;\n tokens.length = 0;\n this.input = input;\n return this;\n };\n\n this.lex = function () {\n if (tokens.length) return tokens.shift();\n\n this.reject = true;\n\n while (this.index <= this.input.length) {\n var matches = scan.call(this).splice(remove);\n var index = this.index;\n\n while (matches.length) {\n if (this.reject) {\n var match = matches.shift();\n var result = match.result;\n var length = match.length;\n this.index += length;\n this.reject = false;\n remove++;\n\n var token = match.action.apply(this, result);\n if (this.reject) this.index = result.index;\n else if (typeof token !== \"undefined\") {\n switch (Object.prototype.toString.call(token)) {\n case \"[object Array]\":\n tokens = token.slice(1);\n token = token[0];\n default:\n if (length) remove = 0;\n return token;\n }\n }\n } else break;\n }\n\n var input = this.input;\n\n if (index < input.length) {\n if (this.reject) {\n remove = 0;\n var token = defunct.call(this, input.charAt(this.index++));\n if (typeof token !== \"undefined\") {\n if (Object.prototype.toString.call(token) === \"[object Array]\") {\n tokens = token.slice(1);\n return token[0];\n } else return token;\n }\n } else {\n if (this.index !== index) remove = 0;\n this.reject = true;\n }\n } else if (matches.length)\n this.reject = true;\n else break;\n }\n };\n\n function scan() {\n var matches = [];\n var index = 0;\n\n var state = this.state;\n var lastIndex = this.index;\n var input = this.input;\n\n for (var i = 0, length = rules.length; i < length; i++) {\n var rule = rules[i];\n var start = rule.start;\n var states = start.length;\n\n if ((!states || start.indexOf(state) >= 0) ||\n (state % 2 && states === 1 && !start[0])) {\n var pattern = rule.pattern;\n pattern.lastIndex = lastIndex;\n var result = pattern.exec(input);\n\n if (result && result.index === lastIndex) {\n var j = matches.push({\n result: result,\n action: rule.action,\n length: result[0].length\n });\n\n if (rule.global) index = j;\n\n while (--j > index) {\n var k = j - 1;\n\n if (matches[j].length > matches[k].length) {\n var temple = matches[j];\n matches[j] = matches[k];\n matches[k] = temple;\n }\n }\n }\n }\n }\n\n return matches;\n }\n}\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","/**\n * https://github.com/rsms/js-lru/blob/v2/lru.js\n *\n * A doubly linked list-based Least Recently Used (LRU) cache. Will keep most\n * recently used items while discarding least recently used items when its limit\n * is reached.\n *\n * Licensed under MIT. Copyright (c) 2010 Rasmus Andersson \n * See README.md for details.\n *\n * Illustration of the design:\n *\n * entry entry entry entry\n * ______ ______ ______ ______\n * | head |.newer => | |.newer => | |.newer => | tail |\n * | A | | B | | C | | D |\n * |______| <= older.|______| <= older.|______| <= older.|______|\n *\n * removed <-- <-- <-- <-- <-- <-- <-- <-- <-- <-- <-- added\n */\nfunction LRUCache (limit) {\n // Current size of the cache. (Read-only).\n this.size = 0;\n // Maximum number of items this cache can hold.\n this.limit = limit;\n this.oldest = this.newest = undefined;\n this._keymap = {};\n}\n\n\nLRUCache.prototype._markEntryAsUsed = function(entry) {\n if (entry === this.newest) {\n // Already the most recenlty used entry, so no need to update the list\n return;\n }\n // HEAD--------------TAIL\n // <.older .newer>\n // <--- add direction --\n // A B C E\n if (entry.newer) {\n if (entry === this.oldest) {\n this.oldest = entry.newer;\n }\n entry.newer.older = entry.older; // C <-- E.\n }\n if (entry.older) {\n entry.older.newer = entry.newer; // C. --> E\n }\n entry.newer = undefined; // D --x\n entry.older = this.newest; // D. --> E\n if (this.newest) {\n this.newest.newer = entry; // E. <-- D\n }\n this.newest = entry;\n};\n\n/**\n * Put into the cache associated with . Returns the entry which was\n * removed to make room for the new entry. Otherwise undefined is returned\n * (i.e. if there was enough room already).\n */\nLRUCache.prototype.put = function(key, value) {\n var entry = this._keymap[key];\n\n if (entry) {\n // update existing\n entry.value = value;\n this._markEntryAsUsed(entry);\n return;\n }\n\n // new entry\n this._keymap[key] = entry = {key:key, value:value, older:undefined, newer:undefined};\n\n if (this.newest) {\n // link previous tail to the new tail (entry)\n this.newest.newer = entry;\n entry.older = this.newest;\n } else {\n // we're first in -- yay\n this.oldest = entry;\n }\n\n // add new entry to the end of the linked list -- it's now the freshest entry.\n this.newest = entry;\n this.size++;\n if (this.size > this.limit) {\n // we hit the limit -- remove the head\n return this.shift();\n }\n};\n\n/**\n * Purge the least recently used (oldest) entry from the cache. Returns the\n * removed entry or undefined if the cache was empty.\n *\n * If you need to perform any form of finalization of purged items, this is a\n * good place to do it. Simply override/replace this function:\n *\n * var c = new LRUCache(123);\n * c.shift = function() {\n * var entry = LRUCache.prototype.shift.call(this);\n * doSomethingWith(entry);\n * return entry;\n * }\n */\nLRUCache.prototype.shift = function() {\n // todo: handle special case when limit == 1\n var entry = this.oldest;\n if (entry) {\n if (this.oldest.newer) {\n // advance the list\n this.oldest = this.oldest.newer;\n this.oldest.older = undefined;\n } else {\n // the cache is exhausted\n this.oldest = undefined;\n this.newest = undefined;\n }\n // Remove last strong reference to and remove links from the purged\n // entry being returned:\n entry.newer = entry.older = undefined;\n // delete is slow, but we need to do this to avoid uncontrollable growth:\n delete this._keymap[entry.key];\n this.size--;\n }\n return entry;\n};\n\n/**\n * Get and register recent use of . Returns the value associated with \n * or undefined if not in cache.\n */\nLRUCache.prototype.get = function(key, returnEntry) {\n // First, find our cache entry\n var entry = this._keymap[key];\n if (entry === undefined) return; // Not cached. Sorry.\n // As was found in the cache, register it as being requested recently\n this._markEntryAsUsed(entry);\n return returnEntry ? entry : entry.value;\n};\n\n// ----------------------------------------------------------------------------\n// Following code is optional and can be removed without breaking the core\n// functionality.\n\n/**\n * Check if is in the cache without registering recent use. Feasible if\n * you do not want to chage the state of the cache, but only \"peek\" at it.\n * Returns the entry associated with if found, or undefined if not found.\n */\nLRUCache.prototype.find = function(key) {\n return this._keymap[key];\n};\n\n/**\n * Update the value of entry with . Returns the old value, or undefined if\n * entry was not in the cache.\n */\nLRUCache.prototype.set = function(key, value) {\n var oldvalue, entry = this.get(key, true);\n if (entry) {\n oldvalue = entry.value;\n entry.value = value;\n } else {\n oldvalue = this.put(key, value);\n if (oldvalue) oldvalue = oldvalue.value;\n }\n return oldvalue;\n};\n\n/**\n * Remove entry from cache and return its value. Returns undefined if not\n * found.\n */\nLRUCache.prototype.remove = function(key) {\n var entry = this._keymap[key];\n if (!entry) return;\n delete this._keymap[entry.key]; // need to do delete unfortunately\n if (entry.newer && entry.older) {\n // relink the older entry with the newer entry\n entry.older.newer = entry.newer;\n entry.newer.older = entry.older;\n } else if (entry.newer) {\n // remove the link to us\n entry.newer.older = undefined;\n // link the newer entry to head\n this.oldest = entry.newer;\n } else if (entry.older) {\n // remove the link to us\n entry.older.newer = undefined;\n // link the newer entry to head\n this.newest = entry.older;\n } else {// if(entry.older === undefined && entry.newer === undefined) {\n this.oldest = this.newest = undefined;\n }\n\n this.size--;\n return entry.value;\n};\n\n/** Removes all entries */\nLRUCache.prototype.removeAll = function() {\n // This should be safe, as we never expose strong refrences to the outside\n this.oldest = this.newest = undefined;\n this.size = 0;\n this._keymap = {};\n};\n\n/**\n * Return an array containing all keys of entries stored in the cache object, in\n * arbitrary order.\n */\nif (typeof Object.keys === 'function') {\n LRUCache.prototype.keys = function() {\n return Object.keys(this._keymap);\n };\n} else {\n LRUCache.prototype.keys = function() {\n var keys = [];\n for (var k in this._keymap) {\n keys.push(k);\n }\n return keys;\n };\n}\n\n/**\n * Call `fun` for each entry. Starting with the newest entry if `desc` is a true\n * value, otherwise starts with the oldest (head) enrty and moves towards the\n * tail.\n *\n * `fun` is called with 3 arguments in the context `context`:\n * `fun.call(context, Object key, Object value, LRUCache self)`\n */\nLRUCache.prototype.forEach = function(fun, context, desc) {\n var entry;\n if (context === true) {\n desc = true;\n context = undefined;\n } else if (typeof context !== 'object') {\n context = this;\n }\n if (desc) {\n entry = this.newest;\n while (entry) {\n fun.call(context, entry.key, entry.value, this);\n entry = entry.older;\n }\n } else {\n entry = this.oldest;\n while (entry) {\n fun.call(context, entry.key, entry.value, this);\n entry = entry.newer;\n }\n }\n};\n\n/** Returns a JSON (array) representation */\nLRUCache.prototype.toJSON = function() {\n var s = new Array(this.size), i = 0, entry = this.oldest;\n while (entry) {\n s[i++] = { key: entry.key, value: entry.value };\n entry = entry.newer;\n }\n return s;\n};\n\n/** Returns a String representation */\nLRUCache.prototype.toString = function() {\n var s = '', entry = this.oldest;\n while (entry) {\n s += String(entry.key)+':'+entry.value;\n entry = entry.newer;\n if (entry) {\n s += ' < ';\n }\n }\n return s;\n};\n\n// Export ourselves\nexport default LRUCache;\n","import Lexer from 'lex';\nimport debounce from 'lodash/debounce';\nimport isObject from 'lodash/isObject';\nimport throttle from 'lodash/throttle';\n\nimport LRUCache from './lru-cache';\nimport { DOMReady, escapeRegExp, setUrlParams } from './utils';\n\nconst reIntValue = '(-?0|-?[1-9][0-9]*)';\nconst reFractionPart = '\\\\.[0-9]+';\nconst reExponentPart = '[eE][+-]?[0-9]+';\nconst intRegex = new RegExp(reIntValue);\nconst floatRegex = new RegExp(\n `${reIntValue}${reFractionPart}${reExponentPart}`\n + `|${reIntValue}${reFractionPart}|${reIntValue}${reExponentPart}`,\n);\nconst reLineTerminators = '\\\\n\\\\r\\\\u2028\\\\u2029';\nconst reEscapedChar = '\\\\\\\\[\\\\\\\\\"\\\\\\\\\\'/bfnrt]';\nconst reEscapedUnicode = '\\\\\\\\u[0-9A-Fa-f]{4}';\nconst reDoubleQuotedStringChar = `[^\\\\\\\\\"\\\\\\\\\\\\\\\\${reLineTerminators}]`;\nconst reDoubleQuotedString = (\n `\\\\\"(${reEscapedChar}|${reEscapedUnicode}|${reDoubleQuotedStringChar})*\\\\\"`\n);\nconst reSingleQuotedStringChar = `[^\\\\\\\\'\\\\\\\\\\\\\\\\${reLineTerminators}]`;\nconst reSingleQuotedString = (\n `\\\\'(${reEscapedChar}|${reEscapedUnicode}|${reSingleQuotedStringChar})*\\\\'`\n);\nconst stringRegex = new RegExp(\n `${reDoubleQuotedString}|${reSingleQuotedString}`,\n);\nconst nameRegex = /[_A-Za-z][_0-9A-Za-z]*(\\.[_A-Za-z][_0-9A-Za-z]*)*/;\nconst reNotFollowedByName = '(?![_0-9A-Za-z])';\nconst whitespaceRegex = /[ \\t\\v\\f\\u00A0]+/;\n\nconst lexer = new Lexer(() => {\n // Silently swallow any lexer errors\n});\n\nfunction token(name, value) {\n return { name, value };\n}\n\nlexer.addRule(whitespaceRegex, () => { /* ignore whitespace */ });\nlexer.addRule(/\\./, (l) => token('DOT', l));\nlexer.addRule(/,/, (l) => token('COMMA', l));\nlexer.addRule(new RegExp(`or${reNotFollowedByName}`), (l) => token('OR', l));\nlexer.addRule(new RegExp(`and${reNotFollowedByName}`), (l) => token('AND', l));\nlexer.addRule(new RegExp(`not${reNotFollowedByName}`), (l) => token('NOT', l));\nlexer.addRule(new RegExp(`in${reNotFollowedByName}`), (l) => token('IN', l));\nlexer.addRule(\n new RegExp(`startswith${reNotFollowedByName}`),\n (l) => token('STARTSWITH', l),\n);\nlexer.addRule(\n new RegExp(`endswith${reNotFollowedByName}`),\n (l) => token('ENDSWITH', l),\n);\nlexer.addRule(\n new RegExp(`True${reNotFollowedByName}`),\n (l) => token('TRUE', l),\n);\nlexer.addRule(\n new RegExp(`False${reNotFollowedByName}`),\n (l) => token('FALSE', l),\n);\nlexer.addRule(\n new RegExp(`None${reNotFollowedByName}`),\n (l) => token('NONE', l),\n);\nlexer.addRule(nameRegex, (l) => token('NAME', l));\nlexer.addRule(\n stringRegex,\n // Trim leading and trailing quotes:\n (l) => token('STRING_VALUE', l.slice(1, l.length - 1)),\n);\nlexer.addRule(intRegex, (l) => token('INT_VALUE', l));\nlexer.addRule(floatRegex, (l) => token('FLOAT_VALUE', l));\nlexer.addRule(/\\(/, (l) => token('PAREN_L', l));\nlexer.addRule(/\\)/, (l) => token('PAREN_R', l));\nlexer.addRule(/=/, (l) => token('EQUALS', l));\nlexer.addRule(/!=/, (l) => token('NOT_EQUALS', l));\nlexer.addRule(/>/, (l) => token('GREATER', l));\nlexer.addRule(/>=/, (l) => token('GREATER_EQUAL', l));\nlexer.addRule(/ token('LESS', l));\nlexer.addRule(/<=/, (l) => token('LESS_EQUAL', l));\nlexer.addRule(/~/, (l) => token('CONTAINS', l));\nlexer.addRule(/!~/, (l) => token('NOT_CONTAINS', l));\nlexer.lexAll = function () {\n let match;\n const result = [];\n while (match = this.lex()) { // eslint-disable-line no-cond-assign\n match.start = this.index - match.value.length;\n match.end = this.index;\n result.push(match);\n }\n return result;\n};\n\nfunction suggestion(text, snippetBefore, snippetAfter, explanation) {\n // text is being displayed in completion box and pasted when you hit Enter.\n // snippetBefore is an optional extra text to be pasted before main text.\n // snippetAfter is an optional text to be pasted after. It may also include\n // \"|\" symbol to designate desired cursor position after paste.\n let suggestionText = text;\n if (typeof explanation !== 'undefined') {\n suggestionText += `${explanation}`;\n }\n\n return {\n text,\n snippetBefore: snippetBefore || '',\n snippetAfter: snippetAfter || '',\n suggestionText,\n };\n}\n\n// Main DjangoQL object\nconst DjangoQL = function (options) {\n let cacheSize = 100;\n\n this.options = options;\n this.currentModel = null;\n this.models = {};\n this.suggestionsAPIUrl = null;\n\n this.token = token;\n this.lexer = lexer;\n\n this.prefix = '';\n this.suggestions = [];\n this.selected = null;\n this.valuesCaseSensitive = false;\n this.highlightCaseSensitive = true;\n\n this.textarea = null;\n this.completion = null;\n this.completionUL = null;\n this.completionEnabled = false;\n\n // Initialization\n if (!isObject(options)) {\n this.logError('Please pass an object with initialization parameters');\n return;\n }\n this.loadIntrospections(options.introspections);\n if (typeof options.selector === 'string') {\n this.textarea = document.querySelector(options.selector);\n } else {\n this.textarea = options.selector;\n }\n if (!this.textarea) {\n this.logError(`Element not found by selector: ${options.selector}`);\n return;\n }\n if (this.textarea.tagName !== 'TEXTAREA') {\n this.logError(\n 'selector must be pointing to