From 09f508f5fa422635a4de4a0410ce68a41639ad45 Mon Sep 17 00:00:00 2001 From: Mahesh Kommareddi Date: Tue, 16 Jul 2024 20:08:17 -0400 Subject: [PATCH] Working code! --- pom.xml | 21 +++--- src/main/java/com/ioa/Main.java | 65 ------------------ src/main/java/com/ioa/tool/CommonTools.java | 2 +- target/classes/com/ioa/IoASystem.class | Bin 0 -> 5378 bytes target/classes/com/ioa/agent/AgentInfo.class | Bin 0 -> 3640 bytes .../classes/com/ioa/agent/AgentRegistry.class | Bin 0 -> 3829 bytes .../com/ioa/config/WebSocketConfig.class | Bin 0 -> 1911 bytes .../ioa/conversation/ConversationFSM$1.class | Bin 0 -> 890 bytes ...versationFSM$ConversationStateUpdate.class | Bin 0 -> 688 bytes .../ioa/conversation/ConversationFSM.class | Bin 0 -> 3488 bytes .../ioa/conversation/ConversationState.class | Bin 0 -> 1273 bytes .../com/ioa/conversation/Message.class | Bin 0 -> 2209 bytes .../com/ioa/model/BedrockLanguageModel.class | Bin 0 -> 4371 bytes .../com/ioa/service/WebSocketService.class | Bin 0 -> 1353 bytes target/classes/com/ioa/task/Task.class | Bin 0 -> 4771 bytes .../ioa/task/TaskManager$TaskProgress.class | Bin 0 -> 696 bytes target/classes/com/ioa/task/TaskManager.class | Bin 0 -> 4468 bytes .../classes/com/ioa/team/TeamFormation.class | Bin 0 -> 4864 bytes target/classes/com/ioa/tool/CommonTools.class | Bin 0 -> 5011 bytes target/classes/com/ioa/tool/Tool.class | Bin 0 -> 405 bytes .../classes/com/ioa/tool/ToolRegistry.class | Bin 0 -> 1219 bytes .../classes/com/ioa/util/TreeOfThought.class | Bin 0 -> 2424 bytes .../compile/default-compile/createdFiles.lst | 19 +++++ .../compile/default-compile/inputFiles.lst | 16 +++++ 24 files changed, 48 insertions(+), 75 deletions(-) delete mode 100644 src/main/java/com/ioa/Main.java create mode 100644 target/classes/com/ioa/IoASystem.class create mode 100644 target/classes/com/ioa/agent/AgentInfo.class create mode 100644 target/classes/com/ioa/agent/AgentRegistry.class create mode 100644 target/classes/com/ioa/config/WebSocketConfig.class create mode 100644 target/classes/com/ioa/conversation/ConversationFSM$1.class create mode 100644 target/classes/com/ioa/conversation/ConversationFSM$ConversationStateUpdate.class create mode 100644 target/classes/com/ioa/conversation/ConversationFSM.class create mode 100644 target/classes/com/ioa/conversation/ConversationState.class create mode 100644 target/classes/com/ioa/conversation/Message.class create mode 100644 target/classes/com/ioa/model/BedrockLanguageModel.class create mode 100644 target/classes/com/ioa/service/WebSocketService.class create mode 100644 target/classes/com/ioa/task/Task.class create mode 100644 target/classes/com/ioa/task/TaskManager$TaskProgress.class create mode 100644 target/classes/com/ioa/task/TaskManager.class create mode 100644 target/classes/com/ioa/team/TeamFormation.class create mode 100644 target/classes/com/ioa/tool/CommonTools.class create mode 100644 target/classes/com/ioa/tool/Tool.class create mode 100644 target/classes/com/ioa/tool/ToolRegistry.class create mode 100644 target/classes/com/ioa/util/TreeOfThought.class create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst diff --git a/pom.xml b/pom.xml index 6f5cbfc..bb7f8fe 100644 --- a/pom.xml +++ b/pom.xml @@ -9,9 +9,10 @@ 1.0-SNAPSHOT - 11 - 2.5.5 + 21 + 3.2.4 2.26.9 + 1.18.30 @@ -54,7 +55,8 @@ org.projectlombok lombok - true + ${lombok.version} + provided org.springframework.boot @@ -71,12 +73,6 @@ ${spring-boot.version} com.ioa.IoASystem - - - org.projectlombok - lombok - - @@ -93,6 +89,13 @@ ${java.version} ${java.version} + + + org.projectlombok + lombok + ${lombok.version} + + diff --git a/src/main/java/com/ioa/Main.java b/src/main/java/com/ioa/Main.java deleted file mode 100644 index 34f4695..0000000 --- a/src/main/java/com/ioa/Main.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.ioa; - -import com.ioa.agent.AgentInfo; -import com.ioa.agent.AgentRegistry; -import com.ioa.task.Task; -import com.ioa.task.TaskManager; -import com.ioa.team.TeamFormation; -import com.ioa.tool.CommonTools; -import com.ioa.tool.ToolRegistry; -import com.ioa.model.BedrockLanguageModel; - -import java.lang.reflect.Method; -import java.util.Arrays; -import java.util.List; - -public class Main { - public static void main(String[] args) { - // Initialize the system - ToolRegistry toolRegistry = new ToolRegistry(); - CommonTools commonTools = new CommonTools(); - - // Register all tools from CommonTools - for (Method method : CommonTools.class.getMethods()) { - if (method.isAnnotationPresent(dev.langchain4j.agent.tool.Tool.class)) { - toolRegistry.registerTool(method.getName(), method); - } - } - - AgentRegistry agentRegistry = new AgentRegistry(toolRegistry); - BedrockLanguageModel model = new BedrockLanguageModel("anthropic.claude-v2"); // or another model ID - - TeamFormation teamFormation = new TeamFormation(agentRegistry, model); - TaskManager taskManager = new TaskManager(agentRegistry, model, toolRegistry); - - // Register some example agents - AgentInfo agent1 = new AgentInfo("agent1", "General Assistant", - Arrays.asList("general", "search"), - Arrays.asList("webSearch", "getWeather", "setReminder")); - AgentInfo agent2 = new AgentInfo("agent2", "Travel Expert", - Arrays.asList("travel", "booking"), - Arrays.asList("bookTravel", "calculateDistance", "findRestaurants")); - - agentRegistry.registerAgent(agent1.getId(), agent1); - agentRegistry.registerAgent(agent2.getId(), agent2); - - // Create a sample task - Task task = new Task("task1", "Plan a weekend trip to Paris", - Arrays.asList("travel", "booking"), - Arrays.asList("bookTravel", "findRestaurants", "getWeather")); - - // Form a team for the task - List team = teamFormation.formTeam(task); - System.out.println("Formed team: " + team); - - // Assign the task to the first agent in the team (simplified) - task.setAssignedAgent(team.get(0)); - - // Execute the task - taskManager.addTask(task); - taskManager.executeTask(task.getId()); - - // Print the result - System.out.println("Task result: " + task.getResult()); - } -} diff --git a/src/main/java/com/ioa/tool/CommonTools.java b/src/main/java/com/ioa/tool/CommonTools.java index 6ecd50c..0608c70 100644 --- a/src/main/java/com/ioa/tool/CommonTools.java +++ b/src/main/java/com/ioa/tool/CommonTools.java @@ -1,6 +1,6 @@ package com.ioa.tool; -import dev.langchain4j.agent.tool.Tool; +import com.ioa.tool.Tool; public class CommonTools { diff --git a/target/classes/com/ioa/IoASystem.class b/target/classes/com/ioa/IoASystem.class new file mode 100644 index 0000000000000000000000000000000000000000..a9a54ae6a19bb57ac3c31f8712169ae490ef207e GIT binary patch literal 5378 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 ODV~w^Z#^gZ0{92oF-YbB literal 0 HcmV?d00001 diff --git a/target/classes/com/ioa/conversation/ConversationFSM$1.class b/target/classes/com/ioa/conversation/ConversationFSM$1.class new file mode 100644 index 0000000000000000000000000000000000000000..7cc4f34213f638326ffe252d6e47dc85e54db388 GIT binary patch literal 890 zcma)5U2oGc6g^(ErVSY_qikh-4HiaAVbPG_1%y;(EmUjMhqPnT9*~<_Yep8MBrX4k z7oGtLA%yk=_)&=KXi|rSP^HMn=la^`*!Skw?;mFXny?KlA*Vw#v5Y*!wl7cZKyurc z(M-e%PXig*&IRJ7JQWQ284sr-VQAFqN8QDCJujkwq7K8vC76qdwY{FT%dl&CAA;1M z^!R&=q%1N>I5%kh!{E|Ur$~3ZY@&oRgR$4~oT2A+`YuClQN!wWR!v+*g+Z6`IEZ-2 zkgL@@I@TCAPWX)5A&-u2S9()_(hfv8ZpE>Tm3Gy{b){VzG`;<|O%i|Q_FC>ht=%wj zQ>_(Shb?C~AX_SW+r*vBt*sRlbro{nxs zekhY5I_`;dBF8!&F{pz4zhmeCvg?W@eJvAmZg!$b#7@YQL?q=+>WNM2MOLn=u23_I z+`|^3MeHMTGy~e-!OngfU!i|d-^w>!(fXgD?PqkI=<=Ly5Y5l&EuwlxKSM(i6|CbL zs-&?^_yAAvl<*n-4|{|;+$X(!rm8YPg#l#&Ybd?62RSgDjGB2oQCx}V*Ev~+Vv-_;mbXJxcQ{KmySpm3rwsZ)&gm9aFNnl=y_$*miO)jH)I90)aLVH##eYd%ErNuhzrDgg zZ>N_yBcT>@{=j3t5{jC~U`^yY_Qfzri`VmQBdM!&Gz{gjNYsr?lz|h5=GMj$lfk}? zA`uTlo+N_mH1g89iQt09tI=XG`e?ve1lo*!%2o&s(`_Mdbw0p4m+vs%2x+L2tz>`h xpu>ZS5gf`LXKEG>P$NXVOjW}n#U>SU(nBC(ovelE7SAPQ-#;3A320{iOPo|K-) z9gJ^Y`V8BrS%F=>ec3e}bG~cY^VGK=2Q(bik-(vKK!*YX+LBSM$m#opwKuXq%tN}4 z%1);6h>ji{71&cU79~9}4gaR)FL37hhV6R-=c3B0&P3E#SL&#b<2ZUX^yx^VU*Pa6 z0-J*-5Sy2_bc2+y3u1FCoe(&og6LNWrF6Wf;BF#lr8vp>vt)_yxl*6y;^h zGb^6QsA`-%v`J`Hfpp)j(sM<}xYE-d>d714;xP5h+a+?jDyrl@)^SzI?GEKeA4;>L zK#Yh?>X?eS#Hh?-CE}8*#cMjQ;|BS^Ea!48I_c-6yJVS?1goXf3zt$iUz174kQeBT zVt1D`_oaqeQe>5&(cjmxLFHou)-&Y-HN-K4Tj~(JEpUAk;G$cpDqZt;Q-eV=1EBBV zQw^W#_#Afy604qW7AOxCPuhjhHG$)G$R8=;)f0jkbls@fzEzU5mS@cs<*;o##D{58 z2SL_x=Tlx;9Y^FdcQG|5Sq`cDhUq)*qm)tGkQ%P|&a&moLOO6@)#c5rpK-Eq zGdw*7+Ow7|rz)j6>E;bO!mMQ-(H&P9 zzKW_Ox9$vxl3y!+5?y(<;h+|1b*14sHenKID@c=AI`%c!DV2G+$6V=^i6=vf*>X9^ zFdgG)F0#O@fyHx9#Wm%ar9$8J8gT}dO@U z0qYoX9N*(fR-Tmpf>ZEfcqov)OkWE!;V;O9Eg$-%+1k012;xu78J;X89GgOxm#D%w zlo0Vucxi@WT!`UIf#s2P;x$}`;v!B!mbS9iyLRmlB=W<#t9OUl16-M!9G%J!Bt~zI zW@hqi2?i35o5)O0WwJA>L+Bf9Z^7d@zQ#8izEyX_cf7RM5@p#-&Z10(cM7rPoi`Tp zSKzm3sZ<3+jK+g=((B1O&SIsU-kA8v%DRnt=Aw@HorwHu1xA*tDl$f~n6rGz6zUT; z@5W5g@I1*J?uoJ@pix-v8h#Wwx*^(nL1_3{;J}+j*}#Pn;}DPE2DS{1e6ye8tU>if z!N@b2_wYT=TR0jVHIB`gxBNq%$=tl-$x ziB}i^hMLquR})u;n!B1;F!&NDhgy~q2=KHhy(#q WZshO$>xfaR4NoZZ1Af9U==vYS$BFO& literal 0 HcmV?d00001 diff --git a/target/classes/com/ioa/conversation/ConversationState.class b/target/classes/com/ioa/conversation/ConversationState.class new file mode 100644 index 0000000000000000000000000000000000000000..588ae2704ca113b71123de94088f831f94fb376e GIT binary patch literal 1273 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 T^!qhlH~E*~eTM#Q#oGP_++;|& literal 0 HcmV?d00001 diff --git a/target/classes/com/ioa/service/WebSocketService.class b/target/classes/com/ioa/service/WebSocketService.class new file mode 100644 index 0000000000000000000000000000000000000000..d49729fad2fc9c4e0d91611a8e9f53411fa9b63f GIT binary patch literal 1353 zcmbVMZBG+H5Pr6lw$y3?MZ{M`URprb_ZVwTDhbh~YP48B_-T7x%F?^t%k8#=f8yUT zF`DqfAK;HN&b1W^Z8R~Lo4J{tefF8zx%v6)=m&r@o@9~0SQ^P3#*t!}+!r0eeW9ED zU437Ajv@72Y2{upj1`Kt31l#lMmC3Y$T7@&Cg92lZe`R_p5!~SUNv4zx@ynCFcnB^ zMN{eKwhTgFILYv=VxlIuVMN~DNCfi0L@jx6ceVYyH_Nu=uHb4tZwR~FN_n8u|XW^kF|>Ho4~xZoMxk&!FwMpfzt z!^$9oUMWih1p1z0jbZLXTRRoVnzE|y%d*zS38yF-Vl=W)bt$yvyTWrOI^^Pb124Co zIZ%;olo*nmra`67SCp1-+d*AM+k)U3rYpu1eoaIww)@Vc+f#JjLgil;^Bi|3R9<}k(A6-cLviREL4_M!?pKM9teSS@$t@KpFmtxaHex`A!pLG- zCnIUxVJLaOCn<%=m&Q2jB0(MI_DsWOP-MvPE=A7rDXe9&j=O1W#J$ED7Eeek-7zgf z>$X*|{kD2{!SH$T+WUdMBVGyJ@TFa>7}IKpgS{|ZwNo3niTa4}PXlHA(@g`eKE$T* z{i<@3a?ZWhT1K0`uvXeM9xyBo?}W zjLgnm$-+d|K+eJ_EDhsz|9aW;opRu`x65mMXh?Y*8YXIeL#si{Yi=%yYQe&o=#6f; z?Rv}G2|T|k{Ba8t*r#E#<=*IcEq7zt*>Tprh8K8ln_ekvoxp39YhF7DZB1F27M*-o zXU+E;ZL#)<1sew_aoTNfv*~V}-gKLc#IAMSb%aq4+12J%KeTtq!lU9_rscLfjUY!u zpRn*ap3q>{o#vSv9jBpTYBm;`O3~8X%L0DN!VI3)klu8IDpN2yI~RjSNsx3Ou`nxE zGmO<~v_-dMVP13#)P13!8WAm8cm`z+`zgAdn4O94ME(4T;wLS9N)(GR#V|!8eAdFJ z@fjsNJ(#6~G~FYXy;O7fJf1Uf+QRc# z9w;xB5Dmsnr_pgQUe$0oDYbi3IKjd_W8o~$F)7!bZFkvk)}7!bFW|h*cHlGvmdu-R zV^Q+=+WLQS5>}cCT4nJ$L8rxB%&3`qD|BM-%%_$#ockDF_iQZ<*r|Ke?8qv zU3X}QS8mnswCe6zPxe(-PQPd5)Z_X- z@B2YJXgND8Zm{KVv`u_N!)t<=^)^mw3y;U#l3|itaenBQFb3RG2yyGAHaC{Rw{rM4 zzGL9K(jDJq)9IhVUh}5E?Ut42s$rgW>Ve<7rQzN9HjaSG@AFP`qv5t^YQDeS*@^m0 zcsYo+Qml&&D6X+dB*0&Z;k##Nj1`$!b{dUUFL2pA{D!BV9r4@V?I{{YmM}=@|XG zH(z=WY5mUpUts5)70e}=iTP`Zo9!Xb$#FD&p;(HH-UQCt52?=XJV_2TRNuF6ZVvhU$Fyw0pm z;otZwyIzWY>K}N6yb+Y}cQ~YUoWm~GNu{|vevLY*3>x?eHb@z0;YV;unfNKTag|gS zKO<+8R1SA}Om2}H#UJq;JW>|^$(6cBDvy8RAa!16CvMQ+8m0{M9tsA`4>4^Z#gD0d zh({Ee{a7UZ=I=^X5o{j(&CD6nQVNoq`)&Ge&n1)zk<@7Nn@gEVou^)w+V2&YPUt7Y z@;Ovo+G6pT#rfMX7Vo0+hVbVqx(IANl9*CbO0-Z(hay%}sASsduIOkb6N)lD5o=6o z9jh3jh~*V&8C}uwiW!Q`o`^+9twYHr@T!U+DuEIF3fIwOd};iWzs;MBFvmmHXY3<* z3U6VDl#Wwe#2cj2Y%D8Waw&m;r$U>QfgfW(M^XY@M(s&hACaLOFg1-!2Tl8k#`@!w zFs6|10=gJ|kQKo)F<2it%#FatAh?fD5JW2G9+kdUvMf^Me>5sU;^Ut%US0meNfuL` z`R?@2vlp35xey$Yf|BClci|5>#n(~wI;LL7-^UBU@QJ6+2z3q|=`HKcu*koLuk&rv U{5Sc%h3|2cBlUg!0Pn#5FaAr$KmY&$ literal 0 HcmV?d00001 diff --git a/target/classes/com/ioa/task/TaskManager$TaskProgress.class b/target/classes/com/ioa/task/TaskManager$TaskProgress.class new file mode 100644 index 0000000000000000000000000000000000000000..3701e6760866bdc14da7ad8c9dba09ed831be1e2 GIT binary patch literal 696 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 Ul3uxizmYmc%D>|u_$T`R18DzLPyhe` literal 0 HcmV?d00001 diff --git a/target/classes/com/ioa/tool/CommonTools.class b/target/classes/com/ioa/tool/CommonTools.class new file mode 100644 index 0000000000000000000000000000000000000000..b2b6b2d1171d0f2a431107d7e29ccaa110a98168 GIT binary patch literal 5011 zcma)9X?Gk)6@8^`MvE<3-V-~iBu?Tj7LWkJ3L%aX*)d~BNQxZ@1bVtlnv#0DCf(Iz zD+I#6?`zoi@9>Fp{DB|9kK%A&brmh3BTD@7Wo1B*1lVv;eZ zSk(Bn&SILy42xM7b1V+9%0U+M{JOxSLp;LLA|0j!HF`wQ3E#ArwDFd#G2zmRX}3+Z zi6Krov0?%xXuhE%bu(=@RlMmnL(D8TjPHfFyjb&lJ~?4q8k-(yQ~@pvn!cl&8_J9Q zmY~VEQWftpSizNoPOhhs)opc4CmIx2qR3d!YD7TL;b8_g7SNMjFHB+ELm9rbEhWJw zw@fT`1le}`1dZ{2fnL zkX{tXd?$j}G-empbyW!7fU%=Iev<)w1iTY3LPf%B(2-t@lWePYX4?D~Vz-V>UW#cp zw&thEun31ZzKS&&Avv3SFn>VjaN@UAkRl5^9it=5VAz?cxC;Z}NG29^bR$=j-o73v zj>A(oOjj$o3)Q6}sAq{hwXGsB0ikV7fTU;7wON(@H>|tJrmt!nsU%qmy(Dq_>>m67 zv@@Ok#NLrxnU?f>YKyR7Ep3L{cX92Q81_ph>$q8VR+RAcaK6uB-rrrr4>3oIyH~_I z>jm&M;5c5Hf(%rsyDHXf*+Ed=RCkisI(bx(TOI9VWr2AkEXlODHoar^yTX=MA$*aA zgUTX9xE+|j31z^cEb7E&pGYtR& z2LiRjCxKRQ4f{8;RKnDV4J|CnJkhW^vtiQMSF4(v@WRS|ufD`B6jMljn;=Y`8_Kp! zkkko{>f~*-!Nhf4PV6+a3A^*M6m`O}v0UhN&fQqA03K?8Wa1ddyWA6AXO99AI8_E{H#XHyhmih6_uY$SwZ} zm3rMYr9p-QDghSk?b-7aLFcckNX1^*tD8}-UUfONpMfkZ9RTK5yQE;$I{iY>)BQ5( zC4bXPQ~-0p%;f?cR}a0Kak%f{3(U39OZO7=`6>GK4E=_FTch9ch3fZk<^J74M_se4 zma^Mec57Spd~5iQ@!sHvGgr(?N$p%nWVZMC&b4e`7#DyI>Ao z408y4`@;=w749u_uS9Tu-qLIIC)^AQXDTzbMt?ye++P)+^z2;p2uWN+`R^$1q__z~ zK8m*`JO!SU=l@CK9~g|$W01UzNjd{LmyaK(C-5fdN!&BX+~#GxF=*|=JzPcU?-&kl zpK;rdWh#_yhcca|bJ%zu+Ov3G!0%#0PvLQ?6nVCYyikF>REGRMAip2?;LPS#JjX#@ zzi{y$j#e=Gn1hy?PT%M{eZWCuA3crH*r@r>faHVaB=bd*Qxzm1>XUr9jO1C6e1tCN zCt1UDf=_bsse8EG7f$l1BRQYx44h=SPx722;WK>{qw&!*JrBB%m4@U{k?m|nNM3Mk zBf-7`CwZty(ybuTeUcrF3K_Z!lCYfQ;UdX96(suwU0MchwDHJ&hYfY`e4CEY zuR#2klZlh5lXsllbMo^}e!0(SL5l7vk;+0 zIImx|b3W)`yi>zJNoX#$Etzn9b^TbwlQ1_f9}qedU(PeWGgg>(m3C86gp;In!4&*z z7G`R>wpnTTXLGRS(5cd*b&u0`?q$mEBC4Nd%{GFeH`Ghl5ZeJ7rh@PuWjPDXD2lj325bKx+KB)U^z5cbe@~!@tr* zL(s$@;EyuCv%At3O5&H9oipb==bU%X{QmRf7l1k*=a53$LdM1fCIw~=+)u9KyFuI8 z+B@)CT3~WR22$4q(xr0K!Uch1%VR?zLUpy#DHYN*QUSxfn> z$elmgEi82qyA@S#(`FEzO!CgEmOlVQnIM;}>N$eP91@a83`@V@{KgCkw zbRw_7v(vW!mNd7c`eDm^DUFOplj7e9uAAaHquc#J%Z}HSJxOirL7=p&r3zR|rJ=&M z)9adF_93JmpH=wL>1i+Yls@cw&Zg>gRp14>id!806d#n}%HijJou?FTAj5CIEUq_c zsUgiTV5V{eQTYk$-4U|ik^35XFL5>R5y&zwM=D^){ literal 0 HcmV?d00001 diff --git a/target/classes/com/ioa/util/TreeOfThought.class b/target/classes/com/ioa/util/TreeOfThought.class new file mode 100644 index 0000000000000000000000000000000000000000..69f5f4c6f474f2f2950068bfdc6f06ad5cd9b3d0 GIT binary patch literal 2424 zcma)8ZBrXn6n-vw*=1RvL|&Q}aNE*03596Y7L$rf1RD($0YPl5y(Bke%d(r<-JqTE z6XTC?{NhZ%__fX`oxvG@fIrC@U(VePAvBrV$;|G(_ndvsInQ~y`SYLSKLC7)s)im! z6hw8z5N9~|m>=-0#qHhfy`9IR>@&pgn6~N9GelD9&0eVJRiNqUgU)cF?CfVvhi4nU zX=OKDA?{T-YEEOfMjyuZor%D?(;oSaO^Vow@klAE6?Y)?=f@>tJ8sEv5N~D zUWcLJl8(!`!f^Tjd1g>|g)LkPpW#}U(7RYsag{+?aJgNs88WczI#NheW$=1k*cFDE zR|0BMla~iZ>XTmH@*|N$04Fw@ILB66uzX+nA%cd?&04 zhT&9~C=yiYHyN&{UZon-n+(wc6(+-A$+X2vV}D1u8+^y2lSIiWb8C~krrb9Vqkhe# zWRADcJ3AszjJbk)j?Iwj!dTZ7lOI0!_N3JpOO5bi6;bzVL{5D9H=~T#n~+pRe$cqGiqfs1U((8oGN`2j3Xn}JYrdv&Z*cU2ADB3Z!i_x428w!PzY>@YL!Nx zc|e`wc_E1D8C31A!>I?V&RJJhLl*|)xUb;>9xC`smg(0t`c89Z+6T^_$c8l<4uU0K z_8s>L!w>D%&{PZ=xXbN|CA_JUg7YGWSn(@x$i5|#P{AJC;2 zVy+Q>RLU~b;}ePgBMd&HU5FVc9iTtJ%7j{NSPLiwat$A0v1w_ERuNj$)fM8i+fc|K z;Bfp$^kt@#(IdR}?01Z9KSwebi`FRyM=KM_Xi`1Kn*hZig>OmW_i^^~zdt2oM|elZ6$!YS zB_2RNM#)Qg9nyt}NgARvNMa5bQKGWl#sm)N{5!f_B$p2;iWwB~F-5JA);#XgO2v6p z=yVZr8Doo`L!7X4*kb39@+aAmdY{m@QL?*_Psv&g%XHe0i2gVF6pXRIP$m+kTVawO z(oQC6X!^!6-UU`9Kg7i3X|Ciy7~l$dG}V@`p_WHOEsur*>pi5|ixu)CLPqXkwP`9# zZ<+O&G;s