From acc8cf15648c617f2abd5d67040e01756794c4cc Mon Sep 17 00:00:00 2001
From: martintomas
<%= @publication.short_description %>
diff --git a/db/migrate/20231023101859_add_is_insight_to_news_articles.rb b/db/migrate/20231023101859_add_is_insight_to_news_articles.rb new file mode 100644 index 000000000..ba04d5af6 --- /dev/null +++ b/db/migrate/20231023101859_add_is_insight_to_news_articles.rb @@ -0,0 +1,5 @@ +class AddIsInsightToNewsArticles < ActiveRecord::Migration[6.1] + def change + add_column :news_articles, :is_insight, :boolean, default: false + end +end diff --git a/db/structure.sql b/db/structure.sql index 7ab6ee9dc..fd027feaa 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -310,6 +310,229 @@ CREATE TABLE public.ar_internal_metadata ( ); +-- +-- Name: ascor_assessment_indicators; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.ascor_assessment_indicators ( + id bigint NOT NULL, + indicator_type character varying, + code character varying, + text text, + created_at timestamp(6) without time zone NOT NULL, + updated_at timestamp(6) without time zone NOT NULL, + units_or_response_type character varying +); + + +-- +-- Name: ascor_assessment_indicators_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.ascor_assessment_indicators_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ascor_assessment_indicators_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.ascor_assessment_indicators_id_seq OWNED BY public.ascor_assessment_indicators.id; + + +-- +-- Name: ascor_assessment_results; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.ascor_assessment_results ( + id bigint NOT NULL, + assessment_id bigint NOT NULL, + indicator_id bigint NOT NULL, + answer character varying, + created_at timestamp(6) without time zone NOT NULL, + updated_at timestamp(6) without time zone NOT NULL, + source character varying, + year integer +); + + +-- +-- Name: ascor_assessment_results_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.ascor_assessment_results_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ascor_assessment_results_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.ascor_assessment_results_id_seq OWNED BY public.ascor_assessment_results.id; + + +-- +-- Name: ascor_assessments; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.ascor_assessments ( + id bigint NOT NULL, + country_id bigint NOT NULL, + assessment_date date, + publication_date date, + created_at timestamp(6) without time zone NOT NULL, + updated_at timestamp(6) without time zone NOT NULL, + notes text +); + + +-- +-- Name: ascor_assessments_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.ascor_assessments_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ascor_assessments_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.ascor_assessments_id_seq OWNED BY public.ascor_assessments.id; + + +-- +-- Name: ascor_benchmarks; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.ascor_benchmarks ( + id bigint NOT NULL, + country_id bigint NOT NULL, + publication_date date, + emissions_metric character varying, + emissions_boundary character varying, + units character varying, + benchmark_type character varying, + emissions jsonb DEFAULT '{}'::jsonb, + created_at timestamp(6) without time zone NOT NULL, + updated_at timestamp(6) without time zone NOT NULL +); + + +-- +-- Name: ascor_benchmarks_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.ascor_benchmarks_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ascor_benchmarks_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.ascor_benchmarks_id_seq OWNED BY public.ascor_benchmarks.id; + + +-- +-- Name: ascor_countries; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.ascor_countries ( + id bigint NOT NULL, + name character varying, + slug character varying, + iso character varying, + region character varying, + wb_lending_group character varying, + fiscal_monitor_category character varying, + created_at timestamp(6) without time zone NOT NULL, + updated_at timestamp(6) without time zone NOT NULL, + type_of_party character varying +); + + +-- +-- Name: ascor_countries_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.ascor_countries_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ascor_countries_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.ascor_countries_id_seq OWNED BY public.ascor_countries.id; + + +-- +-- Name: ascor_pathways; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.ascor_pathways ( + id bigint NOT NULL, + country_id bigint NOT NULL, + emissions_metric character varying, + emissions_boundary character varying, + units character varying, + assessment_date date, + publication_date date, + last_historical_year integer, + trend_1_year character varying, + trend_3_year character varying, + trend_5_year character varying, + emissions jsonb DEFAULT '{}'::jsonb, + created_at timestamp(6) without time zone NOT NULL, + updated_at timestamp(6) without time zone NOT NULL, + trend_source character varying, + trend_year integer, + recent_emission_level double precision, + recent_emission_source character varying, + recent_emission_year integer +); + + +-- +-- Name: ascor_pathways_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.ascor_pathways_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ascor_pathways_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.ascor_pathways_id_seq OWNED BY public.ascor_pathways.id; + + -- -- Name: bank_assessment_indicators; Type: TABLE; Schema: public; Owner: - -- @@ -1325,7 +1548,8 @@ CREATE TABLE public.news_articles ( created_by_id bigint, updated_by_id bigint, created_at timestamp(6) without time zone NOT NULL, - updated_at timestamp(6) without time zone NOT NULL + updated_at timestamp(6) without time zone NOT NULL, + is_insight boolean DEFAULT false ); @@ -1767,6 +1991,48 @@ ALTER TABLE ONLY public.activities ALTER COLUMN id SET DEFAULT nextval('public.a ALTER TABLE ONLY public.admin_users ALTER COLUMN id SET DEFAULT nextval('public.admin_users_id_seq'::regclass); +-- +-- Name: ascor_assessment_indicators id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.ascor_assessment_indicators ALTER COLUMN id SET DEFAULT nextval('public.ascor_assessment_indicators_id_seq'::regclass); + + +-- +-- Name: ascor_assessment_results id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.ascor_assessment_results ALTER COLUMN id SET DEFAULT nextval('public.ascor_assessment_results_id_seq'::regclass); + + +-- +-- Name: ascor_assessments id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.ascor_assessments ALTER COLUMN id SET DEFAULT nextval('public.ascor_assessments_id_seq'::regclass); + + +-- +-- Name: ascor_benchmarks id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.ascor_benchmarks ALTER COLUMN id SET DEFAULT nextval('public.ascor_benchmarks_id_seq'::regclass); + + +-- +-- Name: ascor_countries id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.ascor_countries ALTER COLUMN id SET DEFAULT nextval('public.ascor_countries_id_seq'::regclass); + + +-- +-- Name: ascor_pathways id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.ascor_pathways ALTER COLUMN id SET DEFAULT nextval('public.ascor_pathways_id_seq'::regclass); + + -- -- Name: bank_assessment_indicators id; Type: DEFAULT; Schema: public; Owner: - -- @@ -2082,6 +2348,54 @@ ALTER TABLE ONLY public.ar_internal_metadata ADD CONSTRAINT ar_internal_metadata_pkey PRIMARY KEY (key); +-- +-- Name: ascor_assessment_indicators ascor_assessment_indicators_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.ascor_assessment_indicators + ADD CONSTRAINT ascor_assessment_indicators_pkey PRIMARY KEY (id); + + +-- +-- Name: ascor_assessment_results ascor_assessment_results_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.ascor_assessment_results + ADD CONSTRAINT ascor_assessment_results_pkey PRIMARY KEY (id); + + +-- +-- Name: ascor_assessments ascor_assessments_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.ascor_assessments + ADD CONSTRAINT ascor_assessments_pkey PRIMARY KEY (id); + + +-- +-- Name: ascor_benchmarks ascor_benchmarks_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.ascor_benchmarks + ADD CONSTRAINT ascor_benchmarks_pkey PRIMARY KEY (id); + + +-- +-- Name: ascor_countries ascor_countries_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.ascor_countries + ADD CONSTRAINT ascor_countries_pkey PRIMARY KEY (id); + + +-- +-- Name: ascor_pathways ascor_pathways_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.ascor_pathways + ADD CONSTRAINT ascor_pathways_pkey PRIMARY KEY (id); + + -- -- Name: bank_assessment_indicators bank_assessment_indicators_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- @@ -2386,6 +2700,13 @@ ALTER TABLE ONLY public.tpi_sectors ADD CONSTRAINT tpi_sectors_pkey PRIMARY KEY (id); +-- +-- Name: assessment_results_on_assessment_id_and_indicator_id; Type: INDEX; Schema: public; Owner: - +-- + +CREATE UNIQUE INDEX assessment_results_on_assessment_id_and_indicator_id ON public.ascor_assessment_results USING btree (assessment_id, indicator_id); + + -- -- Name: index_active_admin_comments_on_author_type_and_author_id; Type: INDEX; Schema: public; Owner: - -- @@ -2491,6 +2812,62 @@ CREATE UNIQUE INDEX index_admin_users_on_email ON public.admin_users USING btree CREATE UNIQUE INDEX index_admin_users_on_reset_password_token ON public.admin_users USING btree (reset_password_token); +-- +-- Name: index_ascor_assessment_results_on_assessment_id; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX index_ascor_assessment_results_on_assessment_id ON public.ascor_assessment_results USING btree (assessment_id); + + +-- +-- Name: index_ascor_assessment_results_on_indicator_id; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX index_ascor_assessment_results_on_indicator_id ON public.ascor_assessment_results USING btree (indicator_id); + + +-- +-- Name: index_ascor_assessments_on_country_id; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX index_ascor_assessments_on_country_id ON public.ascor_assessments USING btree (country_id); + + +-- +-- Name: index_ascor_benchmarks_on_country_id; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX index_ascor_benchmarks_on_country_id ON public.ascor_benchmarks USING btree (country_id); + + +-- +-- Name: index_ascor_countries_on_iso; Type: INDEX; Schema: public; Owner: - +-- + +CREATE UNIQUE INDEX index_ascor_countries_on_iso ON public.ascor_countries USING btree (iso); + + +-- +-- Name: index_ascor_countries_on_name; Type: INDEX; Schema: public; Owner: - +-- + +CREATE UNIQUE INDEX index_ascor_countries_on_name ON public.ascor_countries USING btree (name); + + +-- +-- Name: index_ascor_countries_on_slug; Type: INDEX; Schema: public; Owner: - +-- + +CREATE UNIQUE INDEX index_ascor_countries_on_slug ON public.ascor_countries USING btree (slug); + + +-- +-- Name: index_ascor_pathways_on_country_id; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX index_ascor_pathways_on_country_id ON public.ascor_pathways USING btree (country_id); + + -- -- Name: index_bank_assessment_indicators_on_indicator_type_and_number; Type: INDEX; Schema: public; Owner: - -- @@ -3273,6 +3650,14 @@ ALTER TABLE ONLY public.companies ADD CONSTRAINT fk_rails_1b3e78a93d FOREIGN KEY (sector_id) REFERENCES public.tpi_sectors(id); +-- +-- Name: ascor_benchmarks fk_rails_1b5ff247ca; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.ascor_benchmarks + ADD CONSTRAINT fk_rails_1b5ff247ca FOREIGN KEY (country_id) REFERENCES public.ascor_countries(id); + + -- -- Name: targets fk_rails_1bc68932f6; Type: FK CONSTRAINT; Schema: public; Owner: - -- @@ -3337,6 +3722,14 @@ ALTER TABLE ONLY public.litigations ADD CONSTRAINT fk_rails_3ad3738b8b FOREIGN KEY (geography_id) REFERENCES public.geographies(id) ON DELETE CASCADE; +-- +-- Name: ascor_pathways fk_rails_3d14118f90; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.ascor_pathways + ADD CONSTRAINT fk_rails_3d14118f90 FOREIGN KEY (country_id) REFERENCES public.ascor_countries(id); + + -- -- Name: images fk_rails_3ddaef631e; Type: FK CONSTRAINT; Schema: public; Owner: - -- @@ -3417,6 +3810,14 @@ ALTER TABLE ONLY public.litigation_sides ADD CONSTRAINT fk_rails_5ff60f0b08 FOREIGN KEY (litigation_id) REFERENCES public.litigations(id) ON DELETE CASCADE; +-- +-- Name: ascor_assessment_results fk_rails_636219043a; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.ascor_assessment_results + ADD CONSTRAINT fk_rails_636219043a FOREIGN KEY (assessment_id) REFERENCES public.ascor_assessments(id); + + -- -- Name: bank_assessments fk_rails_68427d4c57; Type: FK CONSTRAINT; Schema: public; Owner: - -- @@ -3521,6 +3922,14 @@ ALTER TABLE ONLY public.taggings ADD CONSTRAINT fk_rails_9fcd2e236b FOREIGN KEY (tag_id) REFERENCES public.tags(id) ON DELETE CASCADE; +-- +-- Name: ascor_assessments fk_rails_a3a5356523; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.ascor_assessments + ADD CONSTRAINT fk_rails_a3a5356523 FOREIGN KEY (country_id) REFERENCES public.ascor_countries(id); + + -- -- Name: publications fk_rails_a957b2faea; Type: FK CONSTRAINT; Schema: public; Owner: - -- @@ -3577,6 +3986,14 @@ ALTER TABLE ONLY public.data_uploads ADD CONSTRAINT fk_rails_e965439ee4 FOREIGN KEY (uploaded_by_id) REFERENCES public.admin_users(id); +-- +-- Name: ascor_assessment_results fk_rails_fee6a2c7af; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.ascor_assessment_results + ADD CONSTRAINT fk_rails_fee6a2c7af FOREIGN KEY (indicator_id) REFERENCES public.ascor_assessment_indicators(id); + + -- -- PostgreSQL database dump complete -- @@ -3734,7 +4151,15 @@ INSERT INTO "schema_migrations" (version) VALUES ('20230622093001'), ('20230712074753'), ('20230713121501'), +('20230912074824'), +('20230912103652'), +('20230914065509'), +('20230914100201'), +('20230915063557'), +('20230915064402'), +('20230920083300'), ('20230926075145'), -('20230927112905'); +('20230927112905'), +('20231023101859'); diff --git a/db/test-dump.psql b/db/test-dump.psql index eb6ba7d62dab7843c40edf37ec359ebf8b58a1ae..386bbb706ee2e6265d3ea2ee301a3fa52022a64f 100644 GIT binary patch delta 644003 zcmb5X2Ut|Q^8iW?y|YX2MFd2Y?FB)KB1J*4AXb_ns1#|UB8we6c+^-Bu`4!o)wO|& zh#jztiVYRJ*em*S%Calo-~YYm_g&>AlbOk6GMUUwxN~2#Pc7oQLN#oInNvFEKQG7%e^$Xz z8ylCMh(Fqpfj{h~p_7)LotWj2otT%6M^w@x!26dC!kxL)`g4Q|x#Ru0E_l;KIao0_ z36DvYFW=t&1MnCg0|q1!Mk!T|Uc*1@J#n`*EBfm$&zb%yqdW|c;CG{>EK)J*n2Al8 zH9ou4f(DBWbJt8r|9c|hb*A{*AVbZV)Wqz}lmz^}uZ2-!YD!jC3R3HscmzE*4&M-N zLTmvf1Elr@h<1EpT0(MaT;>F%__kW|0XP`JNBbiRkFZzA4|C+Z>27!=zEntwfXgEd zIi_ijuNVc+k~JgoyHhRyX@4}*AHF^b7{Gxv{@TQmAjf2kmql3PRXnSI zMmY|Zi}gpu0DOwLn+IV4xO^2u`S2J@Dk+IsD(a|hh=0I CKWF^E+j7d#L0z_5= zUmI? E|OO1frG$w-VzPm0Ni%gmnQkdPdg8JCcqnCXxkmpKIuCv8d>!lvjeGm(Oy zni7mh_Oh@f=E7r<=j2}iiMZoPYak&umL6eP ntot1r*2895bL3>q%3eN~O@y<+4NKDI)k?#wn3%Q9C9mb~T z#7|6g$Uwa*#Qvgq>I_TRQ^QV;cxb3wCmHRt3c?%wEG$S#BhR6;q>1InpO;y88b)lb z3G3x+C>J=fv3i_C8_S7Ye#XDp(CXto%dI+LLtCp;%M8Z=Xb=V%_~QTz {I#Q^Yu1PyYfXc(PTgG>7Z6a0ktRw#@_ zqxr*WXt8v;PcK#c;|S_oB!qDT&>4U{CR`R{jkEmE!0>AblN*J}Cg3167=#d5jHU;O z_V;N7_@o%>Q_PjV?W+!O7|Q_N$RTiP1W?EA`|XAgiE*>zXh5FyXTOW8_|OFUTZ}s* zZ}Cs)FSuY9qUTNxRtpDK$c?Oky9T4dQHdllo5hlvhM8ly?Kt{d03Q&51lQV|tnsFB zef(jBCcb*jV0_^w%Z_jHSTCqI2N;3w6!wSVNTOvC+wpNJ v-04ASDUJ+E0(o=stC~>r@tKkhpWU#k0(8L>4b?}7~>49A7!J%0IuTP`DMfjv> zQ{;QJ;Z _OP$B|@M*)k2>@z~!iDAOwlIxZh|KX;s`RfcML%aC3z!`eYZfJdwj} z@WMK4{NY%A{A9v@_+=Pkj78yGJ$4t~UBbZsOec2~n=3+>jit#J(j|#Y0d7}FF~j5H zi<6!3^$VDIrGYiRU|ch@ik%wg@ngbaYRTgq32JaD?OfK1MufF z=`NuP1Am`tBGsE90l5Ag3O}ENze}|v^`dEF8~$rH18^wZZK;=G(?^6mY%UGTmA+0p zri#y>M|}&}uxu!>z?(C_z~0}`#JKc8wB*0DWYBI28l1d<2IfegWKRS5;zjhg5TBm= z2hU%`06cOS%#H#~JVj!SH%^v7gI{Ru`Nb6H0^~qJ#(ZEb#q)BJaalq&quZ7_*^Eo3 zY2kZon8 |@#kk`1AgVAypFwxGLi2m&lPv|0g0>#XuBr@D^ zB?G^{oEj=(Nxcj00M3B)H&>cBBLm>hYv^wgd>@TAnf CK}?y=X}D~l~L_t4y^7D?C`1-Lp-I> z0 J(`qA!O7*}h?Bj^ z6en+&>f`pGHI}6?aL+|yuwe{h=;dY-Ifum|{b@MK2~9~(y=_qw?!J{K!iT^U86vRc z2d=-JZWF-`BY-1u@4yEv{Q}nsk*(;tLkEZ{4pNG5!c{SdidF?ZKrBrw(E<4IUDP*W zgqHQj@Pa)Q7i=MUn!raRfw|OR1pqKD7U`!Ki4HCpNoz&wN*uoJhB5G?duco(sVDr5 z;Wd?{Ys}&BRG4ThPfW>98HblFaKMShKe0jwH(aZQ6hH=xy?`dXunOpaUKFdy+`+U_ z=!Q!OtFghV1KMs8+Q2Kd@wT-Au&@^z)xH` ez@Q^YCyuOUG)DzZ^gT8TSCf*da@9S$}gf~Jq8X#n^4pPXtZ2Wb(6P7|c%6Rw| zeJOVXQb2Sca!ARFK`NdyE;-vFK0SS6VqBU--@tzULkA3TNQ#?CT$(qg;SXgr9-*{( zqY1zpWDMX#i4GkHYPikjDj2~*VpBav1B&1SKGMPkGYBoTKqT+sI#pC3k1Y+}dIsP} ztLbk6-hKNo{KW|d=uO~s!DDu;!s}0xrwfNCl)6-KF?>o51&yrJp52ys@vd+11RtrS zFEww%rb~Ap!ROYx6J7y_&y|+$K~wapqlXFLdoeJ_-|fAI_dZ9p3E0wyl~VwI o_aJv&1&|q<=!F}Yyt1{-YS)DqC z3Opid`^kI&L>(>2Wq~#Nh+{Up)2O}_O5%`jJS}6gIi32&1P;Q%tM_XkGP^m5|V?b<8_~D3LF)a4*q|Ccf{LX(|B;l z7Fz- a Xxk714s~N!fVtjA5IUKba7%2Kg()-VK zfR%tvjTLk@+sz8j#kl>;- v)!ry6G%fpB855m-4dpx zB3BX3i{e-)g`ZGI(l1LW+D(a;ny?7n9tJJ}7Si9J(JcwKTf*`^N}}h9rIBA zuN&!%*6*DFb8cNobox+0Y9x! z2XchtfjQisro=5DohQG3!0W2O61p8yM#q!Zx0?cJqmEK2;WFhOzSR1UI)Fztffe{f zkTD>XkuM-~WZ7}!h;6?j7u YkF$ s1CSt^jO;78e(|Hq|qz_CG36xHxGk)-?Ik1P5v_ZX&&kZu}tfI0-0VYrMQD7T% zzz&@ea FRCI^VwvW5D<5a?*#rAO>m zj1UWD)drv&(CI4g+$--yIW|82*2M~TH3EB7>+WIjkqB6m*@sSPHFIdr0CuKxkbL_L zj2P~afdZf@2|YVbdKkk1W@-uPV-w*t6xBETC$APmgva4~d*Fw+b=OqGf}1h8)=N&T za~cbJF@e45jQ^rWo#=&3pwWdog;R+DZOT{=l(nLhTjW< ~Ik*vY=}Ziw3O{jC^wF0O zwBU4WV5Cmwk;q9ydlR6gIup?w=`E+Hl;44d)+jLdiv^4vsKdM?h4L>AKM^nqkO!o* z=yZ>VgQA7X^<+-*a3EK~!=VEixd=2UwBrFA_|O#iGpN%6Ti;A8&tXzO$bj^JC0C%M zD{!=1^`F9#=U?C>e_$*?$rKNV%*1g-h}=PuNr@SknVys3;m|3Wf)bO7G;I1*uXZ(vP@%l{)W0VB16!-!CHC-_HE BJH0-Cy5lYDuPlgmq(Mny~?nlZpVB7Bdw<`*R5rGCJggpdd9i5>YI-m?N) zI=LTdJvphcBPghcqVrc!{2fu+&ZBQ*HA( La}hDWer|3`83DO6*QuHB^V*JvjM;4VQeh3f`(~Sz@X!(pDn0H;c3Ki zehm$9RS7^0S$5ze5q?Gx;#wNwx&neDkh$8UXc3AnBZw$D#7zYRmjg#TfV)fq&1~r> z8p~}GhFHpuNHHvM1V>Of7@-;{BuZn@pF0Y$zhc4AvnM*xwmX5 s{j%AMbr=UqmeyOfCxCSrwcg1q#ZwOL>3M6 zNI|e8unW7mg1toO79pD~2W(Lw6Y}71S5Qv`TM *f$2;Uy^w)1G;o^&n9Y%$V*xWVK#JxN zF9-RcU=O)XM0pQv><-*zVh(TwMA%bHXGSiK?vnx?2L-4~P2gJ#MEfuoJSC!)2yIaS zfdT#bq5$Qx;dvflgQd_`fX**-J{YBoj(&N75&~Ux(QS|sf-R;;e^VMwh8*jdV%h z`-6u0u7KgO;S~Y6#1zx>7yqPTek#ETW#@%JA0<5bgl0v_LE04{$R|g^Md%;~o8e+F zOiLF_|3xGEtpr7e9LsQza|mFO9N>=v02$WfUf?vG;19HQWq)W4sAT4p1u!PADjb0j z?&<|L5dlRlJxpT^S!0I+VoD%Ft}NdhgaH$|Z;l >fr&Wqiw`)Cps4#9_PmCM z(o}{*GVBeGn8?F=nEGiNN}GZrQf2bM9pR>v{sMgG3sxA@!8*)IK15f6n2x?3H>SgE zn6Dg2Ul~XMSNVf`@>m&mL=F^8#mX8C9id$~Dn`3K0=Z&e1HfbuLiWgu=bAt$`Aw9+ zT><^6pHb!7Q!s$SpzCM`)BAyKAdLDZV)Ll_>?jB)zyGb-f;;-43z>H?=t@U)=(rYq z9tcA5KOPJ)kQ(`Kfs-9Vda4iTs)$DsrBs^aNO(L1h3q3}Cgi0<@Kp%%6pxRT6N9}& z(PUo*f*@2l!~l^LrN8QFU_~DUVj2p%cCM&_4+Fs u}KZ?+6h|jw~ub7>J@zv?iCy`T#JL{6<;-E^y>% z#BGldw8M$~KZv4w=JIUdpAb-rQu+)qjA*ljb)le)%-Mrz3W!d}?;=z2U^vxi6JQEo zC4gS|sD})AdH`B-BF_#+kiGIGx* _=H` z1{h6YrxMl1uyG(*)sd|RV>*y;CsWTLhJvQD$|g`}IO0d|xe0s`h}4tFF@snNqB_=; z(%;xYppZ-+gE*>Z^;jmwB&w#HPNaZAJk_xz*^ydeogrWmnb!pgR8L!~Exa=X35iI^ zg0XZXnP)YoWKxvHgsM?!OAuLCkVrxhDb>wnDitJA4JaWh!+lE_V4MO)l*E`~bnyVR z(bA*AC?bCek|_u}54nrXJAxENBT5PGA#;CVJk^*|>_9C!+OP}Bd>xoT_7DlTBV?it zOr${REZHtaCJdxfJ>S<`5!zt}dEqFX5?pQycaBC2-I3%1X%tF25oHQT4nx3(0}=4~ zpQdp5aI^|UZVIFma59uwVt@<^H8GRZF`xovjhJ8(g$5;jc92OPkVzzP4wA{6EUFKs zVYdB83MN~Q&4OHf7?A)*{YO3}hXSKABjg&vf72tm6eX15*!*ucV={%o`=ULu^u1tx zB1rf*JCWBxhsZ2cpu&LXIlzr@6S)GO3X8}f$OeuBAplxV22_L=)!KLw*#p^)WE6pd zUZ;TpygwDi9LPZ;m7b{P*g}>*9`pgw{4Cu`2GfKrS>pt-8o+f^=+LN;Bb%2>xCE~G z@)n+~E)BQ>Ska)2S13Su+g!|L&KV#Oz^Vd3Me2nj6>sDibi^MtsCzS!bb!8@Kpoy$ zh{8-$6}bVjr%O68?Z`0@aF!sc6UdTGpj2o};i}FAp{P>v%2Yt5IYcZKft)xQj-aVi zp@|V$C{LaBQz-%AN}UT-cb^ R&+! zQV8&JHmYRGp9AD{+oCZCn(pgmXot2cx;$}UOLv9i=!hZ;RI_IS3rCU+PsOE!Oh@D( zi;^!Kk&jRfoZmrZT|Tg 1cbA<(}P1A$B9_2vnRq=*Ytc zG#Pn`V |@WvwGN;a}tvbzNY5meX(wKSCB(fz}qkYJiD*@{&VVe@3eXHYj~2DH|v$Cwa2 zqnIyIm4OO4)3UQ15_4hPICR~po(V2d^;O9o0_LH+3ya8o$ga%-B2@HL$bjjlG%jKV zcqq~7Mx;Gt5p#euAj_X7DVX4JWSiy^w tyjvMMY7BV1QMcB2%2?Qo<5f)lPyHkCn|rS(^`52mm|X#6G9=&aMmfva(S|_ zC13!uzw!#1ElQmN*}0_zd7{<@UMj%ItQ(Ijl65a3$amDLz(LdLJ|0V!v5Z(^qNoH0 z=g6Bmva>i^V50H^7LJy;@}R{E@PR1ZfIfrdjRKi?CBZ6Do&nW@ #MEtAHw1a{>Fs%bPi{>l*NiETn+rQ{}BZ=(iTMtD>6@)a;Gf!-rFW7O75r zfh@HYS(E=Lak#Az2VW#Rybc{5|53Hjtbh`*V0#((_HXgQ0}_VR5dlZVgGf8byvsq) z|0o`KqJ)koTfKo$f3^@lk^ozHzZ&QemwX<|yYZ0H;w3C&lk_wtvyY<9F>z^Qq0eyy z?x~Gg5FqUT0zsuainzGL!0^9f_ta@~;W#ir2A;@i|7SFvcn%W`<1V5c=>KG-cNGYR z1=;8()L2a`q(C6MzY!Dw`0)hgL-0_Z#0@^&h^mugw*YO~w#`5f!1j}Jc#-VN7O(`M z3(%EnK-MPk1Y-DbJ386kZ38;8-P_R0px}B(FY+u@RzwYiS%pwydxM?Mc}C98D9Y z5 %?`bKOw(YA3n}!|3yJa4xLggDxvRdjLZ=cQ?v~0j3gqo(%Pd0@yf}FmY&6 zNKF#*;hue{%z0fUFqMs|1RMafF31rIWT-IT^}egf<2c+DKQGC?<_`a2Q;69as<#LwF*t zO4q+RQkpz^^p!@t88FTYGl6b;n7Jo)-Ya&364Vs5 !lf;T6rm<=eo5nyv7EFaXP+q638@|JQ6EJq2ce&-Tw#6tEzu zb#_`MU9kYt6}^5JSP-5uPei$*%1S|djGa`XJFN}>_Wq|X$ie VdG(7DJwsU0@=jN4%ibd zIB7q{Y*>F7SVPoh1O2Lit}OI8@S=c9p2;zAP!Sr!U;z!QfgWtC0?&xo9k8(#kj1V% zF?>@EK2zT8yXPH^Mki4si+I=pd%u*^<3q+tU;;f)fwNTC>o!1^{G!Y~`IHe}sX>Q8 z>P?gYSacd)W2V=DU6j+?kDM!c7K?=)u*NXsG DMitX<9l zA4#2Y2`!F8J kT!{(+7Sk~he_ z0zQ*2e7Yt^3Z2gqlU5JDzlua1a}~TJ-FWD^gq{>RkS)u FCO zj0|k>QQe3qEV%>hWqM7>OU4A~t?F!ZSh4hPc9z@$eCjT+$E<^$_jf@!z+*pYqXPUp z=9nwt`Jrb4D&COw0C_pTn}MxN)=XR?5R5im%7r5KzbxdO%X&NjX>t_5i)rVN7QvN= zC@M!@BVdd*O_U=udQ7Aqh|2{mv!N$}iX$!HKD2pYQVY02-8^zg%_Lbu#SPX}_et~| z9WHnRu2V3%N-$g%OA2P&Q_w`=e`?!7bq{(%LsQ*>D~pB$-?W1F jmPj&df2Dt6HD1)AfumnfS|cAC0&3@LeqVm!+r11@r-myjb?VG)|0_8JM3^$EE& zx GIu;4Xv)li!OEdGRYb_ po2Ust=zhjLU{)X@C*z*>fengc5#T^%Rv zTu!urlrFiLT-l-zgzLH3289_HlI?^s g7v%dAs6+!T3T)HG%!t=QwiM53S zz*1#YsEp9F0~kpeF#{1ZZYzJIAJBNZso*R6tkl5tV7(LiDdQ)?QTY`;=W=LA@oy5Z z<{BC=DNdejZ#!W?iMuYW>OqT%$5C;jsD=LlhLk~f|AUm71bf|+)(YN1Hd+L#(VQi3 zlw|-6Rm72?0c<%&KJv%O$^OPLP58nY>k0p~Beq?;VusL26 q>_hG|K69B+o8XaM+vJ;nfVRw`?W)3njff(33@a97N`+H%7*U_ lh%tS9cEQRsX$hwDv{I-s^nrJ)n@{u;_gia`#2>WuCiem zNyCymMj-RCBDB6k9H?}HxV_Px`PM`y5z#?5k7%dn%U5xR5^KyFF11DTB|RkK9s>1j zv2#@X$1sMbLJCzNfT8wCUF_|!U*r>@1Ik1~>@iC!K4dxPZ{CU>ut Y{0H6tnkC-^-kz8fBtMUzMyGK(3o9lu_Xwad zlWHb{F>I`j>=1?i-BG~7Zlcf}RdhiYFCp1ADrSK0^YjdQ^Uw@*)zOlp88|`mbD%m} zcSP0{-Y1TPw4TV{Lmh!6u}Qwl^FzNN#}T$6vkDFQa-}9V@k%~ctx6Oe-}3vLw>Nz3 z<9`GMn-p>vK|>+-{oi=t9VHN%K!l8-6>>|7>7g>^PA`V;D#5}MG1mSsx`#?2vg2Op zxRMt_C?xhs0V9U*dSRdb1$nFt!tlX9_57!}*_8O*Bjg{VJc%Pf5pVjJC-G5
K{O>wGa5x+U;o)hb|aYyN-2s`{hD&<5!RB{Y8LXI6$rki7(j zl?Yc#4DTnS^D`p=a|5{1MU5^(@;5(mMJT07@W$bEeodgN7>%wIjzO67p}xeg&oTO` z;Y9g#1Z6@3JQiImsF>s*GJs1^7NGl3AQncB>q5U=5Qr(_Vt(g!R#PI%mLZ}N&;=#; zNDf7OdX%{Hla02HaIt{Rhcm)3OWF5e%oVs%+{vF_@Z^>4oj1};a=a(OEm})O>P-O*|)J^0cCD9Oh=H=y&Kha8O`KP`E??z~LQH zr5X8{rODsX7*r^Y!gkPqg*@{}qz9o<2Bxi}K!!WEik;CDc~TNw7QJ|)&hj%-k{^d! z@@b)14*=hc!L+UDwf@(Vv?~ON@+Z&xV?zKmoQkP;5u?mDNfMRkQ~!2$ m?);!nhngdCqzZU^SzQD+ z6hPK=Ov?tnh$L2=Q0h+h1HE=9wgNc@MGHy-F>6`wAPhaUBGg%~V4VM@U_TU-L|e0L zG&&*24?%vW!4RxFaF$Q^fA1v?CGu!9b Y9_L6(a8LeYN;!x-_vk-0`e`;2L%lgEF|`S#0U%p7FhWjPV{3VwD~ET z|Ja;2 mUaYaNJ5ByY+63f<s&k2zZURc-TS0G!XpOl zEj{8HDZveoB@p5Eugp=bj;Np@goM&ICu6a(Kvx+gF4-K@r9?u*B*bG;)UL(^Jo4ES zhTLtrjtkk8j>BnVk(SzxB`kpTAdF%B&&E(!!pfE{NW>;7bP`=QC?@}T7Tij*OFV`V zB7;f9^+=s0vkfK+g%ofF9JZLn2)j_KSikls^7A0gC{*U!q1A z+B6_fg5r iMhoFO5e&lsNC`^=wqL8IlI#SCnZ2DYR zs9xt`zZI |KMO-uRMhFjr%xqhJ*iFD+3tT;@QXH9QVu#Qy2#yu4%u{85-o~d za;FKQdnUR_O`S~aqshe80#Vj*lCP!QeE;J;JyWoct^^$N$+&D+9+rT@nLg_B&CL~| z!)WnNq;m#JA` zYx;K3~=0!LQXseSekB$`bU%E0~A+2}H zqh1uCQvn*?L=WWtUtLjjgOZz55u0`yW)vcJ@y5Fv@a-5(OYTqo>*GJ|SbY)NQ$5Mj zK=YZ%y}{6WPo0I?V@xIN92P`2#!Pm37P YHL#9GPGa+D{!^q4R)v z^^9W3@}fKu@)!T7jZR8T6vS~7gmFoff^1b Ji@|v_ERX(Z&py#K z1-w^Dt8)x>aDQHOOE&B98lBHk>h>$1Ojo=1A-7=Nwt3%MU;X}gbkxl$0d?0efT@+4 znm()7?XnwvV|Njw_E3Z~Z 3c8S)M-KJPlz{=Z`PW74A+Yxu{|N6O+`kDvD-x1iN;K(Z7RmQ{P&n|d$Wnp1T zN!P;`8_vkS#wU%{e%tSPVGjG*+!qfVO(gvW7quUI|E>LaPxvwCd)|Wr{ZWgz>s;=( zcFfApb05X` c>giUM26bYhyjKmN#i1zB9Yvd8zx)vnL-G zIjY?s{qoc0c}vru-Uy5LZ9KB${?VN;94%^DzLkAX*6!Hx{lf9a4b~e*Y!iR6eXrN> zWIq2?QNIr-CH~+|w$og}3~uYDE0f?s-TtZjYuK+hXeW)b(T_j*@kq+N(5)Ij?)8}4 z=Ki#+WzO;e M8Av-bH;_J|k*R zUA=wN>(s=D8x{=M`D)FXbsyHfZdsSCHuiC07eB#>o@Oq0Q;J4PM!5SXCh;6MrQPtG zv*CsP Q|*_|vP?3${_b5&LAS?CZ@u5O=k0yo>06(h_ZqeY2b>3*{w(#k zrl~qBCZ9iU5xv^+#l@U;+o~naXWgyX`3J^d^cyg|d_m6ehgBD!4BGB=UUs+d?Y!J8 z^ZcEb qf&cW&mKL3)ozWsH2htc z;b!ishX(b%wFUb&}J`wXB`<&nDjLb|ZS*#gH7SPSeq$uX=lzmS!$-^P82{V}&F# z#k$tYZmh4_nG0*<2OP7##1uJg8_PBd9lRySNvFAT?4h}{V;v(sMoiqdRK(QId;KJ} z$J$|mJ|5fMJ_a`C$2#iHay%H?ecvq6vQ0hiYg&L0lRizq7Hj$X(E4!|gEbd#8I@Kg z?SDz#IpT4brD}5p8cC@=PtU$nn=m_rzj%;`B!2lo&n1OU0YMge{(-z1=jNF7ZyDWt za@{ayL#S3-S#Av@I3w@1^&-E;EgKt)f}(SB`AeQuEehtuCrr*vS?fQrq{iZU+=#7P zJd=Ic69>GR+VJ=S*KF(K2Mg<~LJB`rXOGa|v%~YZ__yyR!-gTdFC?}b+RUCf@^JNu z`V)t5RZALweE9Ks=Uq5?^7k`+zTffg@+-RcDwV?<3v4o~*5t%RS_VcQNt Y3H z=Z}@E?Zc;Baan0{t#I_vt4W_{ho4{h^`7AH>vKY*g@dx)y9@y7VXz|fllPgUkE$Kr zuB9!?y8O*x%H7{-;p=at@{BX=MqJ#Mw03n%NK{yW`}hPC+g*Rm?k;Ev+o^ibzIEKV zaT3+(UsLwe7Gwu$qQOqeQtu}0NeOAG=QLhStB9~rf5`R@)C|}CS+{$WnaT1BH-VjF zSh$~GrGv@sLhtFGW%z-x8)FB4IkA74r!Hqqao2f2D?jdc(m#?~##VizuVNV+zjWsQ z_oqzymaNl7bN`e*%qUV{r=b39=Gzlryc|dFesjrf@0WqchCQ3|Tk_7au&sxhOzVMP z#=J(` ==2)$>YyecaPz w-@@($x~nGFzDQt=dNFx z>zFQj%e;JjUtMYYb*OPhAFI_%kAH{_Ob)!U+SzmY6+8dZrlD^P)Xz6Ad3n3gdd1N@ z{BHf8lz!rR<(xPd{pioTOXc-g$rcl}t8<^TKG_ab<<7a|l@|5u^_h&V{^N6}yRMdW zn>&GB=4n*9Xu<#xpWW?8-LL46s}qKQ(U02vvV>l-y~G-2qW|(rr(Zs$f7(IM?+UkU zqpov}0R7fCr=fm}ulCtKB;wg#FTc!!tAFm)fBkyRAoaA~o72Tz%NoOL4G(m`vVfD& z*KBg1#*2G`rhf6+u)*l%V~bf&tQ?RL$(