From cec59fbb44c8887897bb65d2378df41d56145d7f Mon Sep 17 00:00:00 2001 From: aimennabi <aimen.nabi@etu.univ-amu.fr> Date: Wed, 30 Nov 2022 03:35:32 +0100 Subject: [PATCH] tache 1 a finir --- .../7.4/executionHistory/executionHistory.bin | Bin 34221 -> 45267 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/7.4/fileHashes/fileHashes.bin | Bin 19597 -> 20747 bytes .gradle/7.4/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../7.4/fileHashes/resourceHashesCache.bin | Bin 19585 -> 20537 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .gradle/file-system.probe | Bin 8 -> 8 bytes .idea/uiDesigner.xml | 124 ++++++++++ .../classes/java/main/AntiFire$Position.class | Bin 1465 -> 0 bytes build/classes/java/main/AntiFire.class | Bin 1333 -> 0 bytes build/classes/java/main/App$1.class | Bin 915 -> 942 bytes build/classes/java/main/App.class | Bin 2421 -> 2441 bytes build/classes/java/main/Clouds.class | Bin 243 -> 0 bytes build/classes/java/main/Model.class | Bin 5759 -> 0 bytes build/classes/java/main/MotoFighter.class | Bin 4190 -> 0 bytes build/classes/java/main/Position.class | Bin 1368 -> 0 bytes .../main/fightfire/AntiFire$Position.class | Bin 0 -> 1525 bytes .../java/main/fightfire/AntiFire.class | Bin 0 -> 1463 bytes .../classes/java/main/fightfire/Clouds.class | Bin 0 -> 3447 bytes .../java/main/fightfire/FireFigher.class | Bin 0 -> 4364 bytes .../java/main/fightfire/MotoFighter.class | Bin 0 -> 4363 bytes build/classes/java/main/{ => grid}/Grid.class | Bin 3054 -> 3086 bytes build/classes/java/main/model/Fire.class | Bin 0 -> 2172 bytes build/classes/java/main/model/Model.class | Bin 0 -> 1494 bytes .../classes/java/main/position/Position.class | Bin 0 -> 1413 bytes .../compileJava/previous-compilation-data.bin | Bin 17475 -> 17976 bytes src/main/java/App.java | 1 + src/main/java/Clouds.java | 5 - src/main/java/Model.java | 191 --------------- src/main/java/{ => fightfire}/AntiFire.java | 7 +- src/main/java/fightfire/Clouds.java | 57 +++++ src/main/java/fightfire/FireFigher.java | 72 ++++++ .../java/{ => fightfire}/MotoFighter.java | 9 + src/main/java/{ => grid}/Grid.java | 16 +- src/main/java/model/Fire.java | 48 ++++ src/main/java/model/Model.java | 218 ++++++++++++++++++ src/main/java/{ => position}/Position.java | 2 + 37 files changed, 548 insertions(+), 202 deletions(-) create mode 100644 .idea/uiDesigner.xml delete mode 100644 build/classes/java/main/AntiFire$Position.class delete mode 100644 build/classes/java/main/AntiFire.class delete mode 100644 build/classes/java/main/Clouds.class delete mode 100644 build/classes/java/main/Model.class delete mode 100644 build/classes/java/main/MotoFighter.class delete mode 100644 build/classes/java/main/Position.class create mode 100644 build/classes/java/main/fightfire/AntiFire$Position.class create mode 100644 build/classes/java/main/fightfire/AntiFire.class create mode 100644 build/classes/java/main/fightfire/Clouds.class create mode 100644 build/classes/java/main/fightfire/FireFigher.class create mode 100644 build/classes/java/main/fightfire/MotoFighter.class rename build/classes/java/main/{ => grid}/Grid.class (58%) create mode 100644 build/classes/java/main/model/Fire.class create mode 100644 build/classes/java/main/model/Model.class create mode 100644 build/classes/java/main/position/Position.class delete mode 100644 src/main/java/Clouds.java delete mode 100644 src/main/java/Model.java rename src/main/java/{ => fightfire}/AntiFire.java (83%) create mode 100644 src/main/java/fightfire/Clouds.java create mode 100644 src/main/java/fightfire/FireFigher.java rename src/main/java/{ => fightfire}/MotoFighter.java (92%) rename src/main/java/{ => grid}/Grid.java (90%) create mode 100644 src/main/java/model/Fire.java create mode 100644 src/main/java/model/Model.java rename src/main/java/{ => position}/Position.java (70%) diff --git a/.gradle/7.4/executionHistory/executionHistory.bin b/.gradle/7.4/executionHistory/executionHistory.bin index 379c05b56bf4592bad402191032e6a449f6f8730..13a6d8b11bb569fd8cbf183e93c733df491a9132 100644 GIT binary patch delta 2385 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 delta 390 zcmccokZEl<(*zM&CI&F@X<}dyTm)t^#Hlba2q!WyFz9X!JRv?YL1D6_gceg_>t<I8 zzep9ce4~P#GV}7hti;r!w3N*9tcuLcvZTt=LWpjL3k;hl7y8L={?mGiXY#T-AA$c{ z9_IQM=9ISzd8a)L*(N?&Yx0iC@3W5!WbSfycVScPOkcmRp7*WsrO6W;q6E&);b8u6 zKB4)0b9|x=laT9VgWMegD&;dgP0w}i5ac!b$!HtLFnRa187zw?cCMcs-y|lYR+r;8 zxAVf@_{SBc2M@O%14}ecS7uoQQn8^)k!2l-u{O^u`pJaO^=Ay;i8J>2=BK3Q=q2YQ z78f%J9OFE(?CgH;Bf+Bm%YK(K+-{x-QubemaguL-NxoZVdPYfV5lr#3G^VoOGMipl z2__t8$@l-Y5Ulv#<f>*p0kMe(f0eKGymi&n`R=~+Ppmc{$X~`NV$i7L5Nt0V=5TIv Qfchm5*)1UF6t!9d0GeB(C;$Ke diff --git a/.gradle/7.4/executionHistory/executionHistory.lock b/.gradle/7.4/executionHistory/executionHistory.lock index 80e8955e82d390b14df82ea4edcc8a752d441d75..e35b445edb554d7fa073edc271abfd98838ce07d 100644 GIT binary patch literal 17 UcmZQR@qCKwh0L%v1_<Z^06fJ7D*ylh literal 17 UcmZQR@qCKwh0L%v1_+1;06dxn00000 diff --git a/.gradle/7.4/fileHashes/fileHashes.bin b/.gradle/7.4/fileHashes/fileHashes.bin index 142907fc41e849b439843292be0e751c757d5320..290d329335402dce06010b3d3a3ceebbcb324563 100644 GIT binary patch literal 20747 zcmZ=^V2}{_4+RVeAc|m)vPMH-Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!n zMnhmU1V%$(Gz3ONU^E0qLtr!nhD!*9GB7Z3K|CX&!vtdRmoqRJ@Gvki=(h8Pw7trd zE&z!#FnA|Irw{&j@ZSyC$F6D(5%=2+6Yui6CpiBlhXF*~zZxb!{qv3s{tRaoAmX0$ zVdAsQ`rm94_4xr2_icxX&u;o+{Cyk4HHf&+N0|7E+>+$}`R^gZ3_iUu@zo*6!d}Sl z(tt?#Xu`yI{+`A7Xc99-n8C{wCcfwSeN8r5wp$Ph@5wOneSzM4I8VE-hKPI3goz(w zWY_du`V{6bahUkwV2z)CT~qEu)O#O=i62vUI(Sy#W;8_H_ccuX(sv`}-AX@RL&O6F zVd9qyqeWw^v$-MSUVmZY4>{+B?c&+?7$WW)3KM@C#lM4Z-PV~9agU`i@pmOgOvPSr zzd^)(qG94cFP`~!pd>~SD!v~k&iOa}i}<&+2#C1Hb(lC;0N>H?i<hQD#C?@v;$o)y zp6j2aDM7^jp2EbH<t^|2e%|m2BJQmZ6IbWXV=9_hC;=7!4inelOkTh+cYiiS+@lyK zuD8~Eb46^U14P`f5hiY?y)r({pg<KWE(;TPTsFbRmLpIQBJR5rChmN#a`hpOFle}W zrNhMi%Ce+bY|VWk>b;m@;sGg{lZ|^d#USFI7h&QNDST%$g&wFu#jRoDkw={E#V1Ui z0TK5)4HJ)+Fe!O?($)nc9<UrH9;Z9ygw4<0h7fT-f0%f@tbL?jits{+xW6Y%JWbGh zLD!D@?-22TQn<KoZJ^4Pa)>a4|9zNv`gEBKRSPVj@#x736VJ4nuX$UkQUIdCe=S_R zST0GuZ`*l@xQ8Q5JUcw(yS_p0M~HZUGfX_k<e_J$sMIrvxMwa*y!y@`d6lU6r4aFe zn=o-0&A`Co36UEmM?+vV1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!n zMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ON zU^E0qLtr!nMnhmU1n3z8#taM$nhXpKphe`00^N@o1w+1G^yai`wsE=me=`FEV~b7P zVd#o(uG0(*40@<KW*=X&{;&3n*lCM*SSFi)(1qwYXbJJd%e9y~ruQ9s-26J>bfm3P z_u9Tc+o3u@#)34Rz|^tzQkd;S<}RLf%HD@W!xCE{Iu7-Mlru2Mw_)l?F57hC|FY`p zCu&>krhO1w2hwqjD-OCMn{yMUj-0h`cKN-~$zd1EpEGCuvkPDy@xgHrJ6M-v>M(Bn z!j?Zj|Bh;Qkbi!t-(;{3kC|^FI;0L^>L@y%z~{GAkFTdwJ|cA<=VFMC1?M0-SV3#5 z(L&en;-N0HP7&$W2ZzK~)j!$+(sA^jJqJ|B5==YX^mg?6EuPC$>_26z4d+Blkd9;V z5#Svl3=GWcFm)su{Mg?9@{q*kh<BoQ-rh+8>+o0r3L^#v2JUy5I%;?`SZ3CHyz<RF z6Y`!{Vm??$d;|-`Rh*reI{ZwN`L_R6JP|ZcY@=ta#SN$q=#Bt43rrm{A14*hGBBTe zdE@Fke~r3I!8&;A;-PjN!_>ilPN$>URwXd)nfk$F>GtoyI#l)YAv)MWA%GUTXVe3m z+9Hy5Sqh83dA$ng2I)Ae;?@q)!Jvm}2ao2zEjrKBpZ%TvF00~MvIt1WF^`2%J9r*q z>L_5So3-b<!{tq-whI-QkJ&<XK=;@Pfc7k)xoXXlXxFZ<2C0hT4!<U@Fku7fIBN1| z2gFsZpxppyIz-K1=Iq_@IeYE$t%<P<^HM=Nj`4oZgy>*a!E{x)(R5imL7rvqu~Yia z1Z$Omb$BeufaqW~#ne$LvY}CKLS2tkr2Wd7jt-$v9cfS<J27=UyJw!Qwf6;+V_`4f ziex)`untwdeuxgvKujH;AJq<J=qZ+X3Y@PxGVg~CScgF)bRQ0DC8iE5z9_~f?%#im zcifq|<!8MISck^~Xs+ddf~n)&%S{4(+<B)?urc|aQkmKZ)?u)8F2q$FpuJ3Jp*x}5 zdh0yPrQy>n=XrPTw}iyG*)eFGV{_H<Gc&(;OzAOw|NHDKhD95_!FG5ogr+MFbxc=X z;OMwt6!%&)(Q3=u<5C&oU>)(nr4UzfVo6u}vM2ZGn8hmggvc+G&S>I;>PUj>0PPh* z^M~`z4EN&TqC3u0C4?JK2d;tY$b;x$_QrG-KWkP9x7uXS@~pex)%7Q(Lv@5hbg&y? z>gZ7r63a@Gw^%CBxZLCDgpW`iIS?HTj+i<Y_We@(bj7vDsqV#&yUUpxpgOW3I#{=1 z>X`djB(Oix>am05U;WL&3nidBpu3u6v6McyCZFQ<n7HrzJSLA%6SbH0Ky?&B?BD|J zqd^O+nc;FS^J;&^#N2pv%g=bjJcy2P=*}`;&{iEZ9jcEKG(Mkpe9<*A$;@WfjXO{s zP=5%5_T8cB_@~-=y#HnRL(e5T{AnFYko*xJegxtwLC~%-G#&c)r|s~R?vAvy33wRQ z7s?H_1C|oEV}{lKfVjoqmKud#>@=z?SiT2RGQ@}HLhNAuim4;BRKIO?-p9}*hF|Qo zB)>C3?YIZk(Tb^K_B!p2LXGTYk8jRgD0}n3KB$h_P#vJ%erWz^EOdBvJXfibLE3fM r@5BAapgLYcba2#Q+F|LYKJCT%^%K*C&m6Cw;gSc{0nJf7d>|bF@nK3? delta 713 zcmeBP#MnENaf6A3pjbO!NZYGS=>i5Y@J^guDxom>u0+D*P)Ui&b0sAvpOrM2EGi{2 zIabPJ@>{8j$#<nCC-cdOPqvkj;Q0>)3=B+)8x?<uZ#4KJI@!_VngpNQ&-i7zHJ#g= zF7T{+W*g4Hz}Rv$-lA->zNb_@-~VF1^BJr4md!cVV`LN-3zlT)%LTiDfpsba1B0G1 z0|SF50|SF12n#%}*3`?=J@@7Kj-%yG*B(9x>v-gP4WdJe1yjc{&J)Yd?)N?tEZV>9 zcPYbdhz^ft1_lOJ1_lPP`pIWKUA#nQ?^(XZ;K8-l4mQzQIUN(As@6cvWuA;_ZY)F2 zgX|T8X(zmulB$BV+n_p9CP#Zo)h{YpxJOU3A=*qiIMMojsS;Fj9mF`!QcU9v8g(3k z?Zv|!&TS4*zvLkc)v*Pl!^Ig>$L`bG*L5DN_}*KzK77UculK+@E-%($U|=w3U|`^U zgsFvHYe#|W!MRpnqAELIOzwLC)*>tD2C;;}aI&_yOAu%2F0P;*9LxH*-LkJ1Oqm8& zWb$VtRMBTlW1polmHn34^ukIo;W$ga|1YqPM;;3yIt1b-AM|$dQfN)zdv$GRj9tvy z6fL%|+rWx0F9tc4fq{Wp8`D^|x*WH;ofr1TKdvY}c)0Z#SjQueMU(w~^aPGR@>m2h JpLHilD*zxM)g=G` diff --git a/.gradle/7.4/fileHashes/fileHashes.lock b/.gradle/7.4/fileHashes/fileHashes.lock index 377c088269107b126a7bee13fb74d2242b021620..31ba47f15f9492cc156499a67c65a5c57ebc9633 100644 GIT binary patch literal 17 VcmZQBEe>6w+qHB(0~jzq1^_V!1lRxo literal 17 VcmZQBEe>6w+qHB(0~j!>0RS*c1RDSV diff --git a/.gradle/7.4/fileHashes/resourceHashesCache.bin b/.gradle/7.4/fileHashes/resourceHashesCache.bin index 9bff27bafb7b6100eed2008b7aa679c9455def16..a618b0ff71f22779264da258e7bdb8b39279b6a3 100644 GIT binary patch delta 1634 zcmZpi$+&X?;|3E6N1K+zhZm?vOiW+^1JB?8p`gcz&FM|p*C}9O2LFDj@c(I>_@v}x z<#V9o-jiJ=6a?m^b@*mnl9>Pz^jSPPRw6@S$Kn^qS{BszLInN4PTnh_5OH{VSl*>Q ziHjhDeurVko|BMX>$XWd8zSzX3lqOw>ALFHvYXc-;=bSE;?Fo%FFe!g2@&^sKKZJI zg~l_HZJTy1b}5Aj`sTwFzcje^b-{`t6NtFq)5)xo3IgB#xWC@{Jx2v1=yP<ktfYd# zFNPy7dWliN5JBI~lT9TRG}sQ#i#&Io)fpn_7Yj3%dlK_SWv_!y5OLp$lYJ#;ILIwY zGz(dIoDU-C&kj>8|6DaUK>l?FL_9zoCaxg0IbfFGeQk)ipXB7bk_`gpOVxMiR7#~m z1bsOthe}xpxMeJz%68+>ABdn|{p40D1r1;KqsweLvW`Lo{WW361}0fu&hY-&0ulFV zoIF>`LLlz$UDHE47IPtj{u?Ksl~NE$c`zw*&xWV}pn{htKb2C@$Ov7xrf~7{y%0fP zUzo84zu#Cjp5M9=Dy}{GuatsAk;bk69U-S1p@LUoic4}C>~{V$f<}j*HB7u(em-yT z+^=~M^?nN{i%M%Tv2NU`_(Oc7L59#~M-K;<dSeC#21y1620;)O=r_0frWPIIKYh+` zqdK3oa|{d&a;PetS=OHUC%FCUfsiZ0es4E|q7_ZWg;n)+_L?j9ZuPwKYvQ!E2AF09 zhv>9i`QFsP$TYkDj##b!R!k)uRU5^9?wy-gc!6_`Z`DIkI!3dmy0G=q)703~3EP$` zcrA=Rf@wzor5UM9|2|$6u92MPc=<prriwoW^<Oe~a$fq?|CoDYrGUu^OeGhVTK+s~ zAuc796g2bCl?yVMDz+AzK3#YJ{tMr*<>_u2CwF41xRs&4(d4IAf%=E<YvWeLb|R^$ zhX(xTg50;7t8{hNhCE|gbNl*gBqdN4Cj|4oM6aAv3C$F5ock$nI;M&%p(~kWUK;Zz z9aUJ<c;t{5riz^INB-*DpMU!BDfi^>(s%b680yjE_e@djJBzo)Ctj!5s$Zyx>B2PR z@ydi%Q?1p#5|oXLnwn1j#Z)oN>rHI<u4g{n%iQ!8e1GU;s<@|<s<6<_;_kuv%jxU< z%v16)m3aN|y=J~nYUSy3(;GOI9YGlyEd}&8y}GLxvC+6t-s#+*Cl}Q)&4_=%=zPY- zChV-HA1C|rI2}wC^#X_HhE&zsJ8}4T2kcxe6oRQF_RgO7J%1<sw^XVsnk@5c38som zTs`SeRFh3_zp~l4r<L;xrV6bY5<>S_S(jyT&1rZQ$tD6<VGqi7AS|%d?u>hm>RO>m hw?8-dugS-fj9#Cg%Dr^XqeFs0+xluk<hOwg0RUM-4p9IA delta 107 zcmdnFfU$8V;|3E6L4}sXhZm?vOiW+^1JB=+OC=O0ua!uctSTund9I|v<iC;<lXaye zCdW!iOkOHAVREf>#bjO?gUO*X5|ii37)*XDBQaT2R$_9jti<HKvPw+Mf*Tcoh;KCD L5Z&zP;lKg_rg<Xk diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 4ec51350aa97f62b3460115e0baef1fe9e4bf6f6..707445b757d1205790ba6eab3062110ccac43783 100644 GIT binary patch literal 17 UcmZRUKJ)c@^b_gh3=nV;06ixKsQ>@~ literal 17 UcmZRUKJ)c@^b_gh3=l9C06gmjZ2$lO diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index b9647d18a023b65db35462985ee38f79494d3efe..cb028f4205a1fabe70cff5ec865ed4504b6cae58 100644 GIT binary patch literal 8 PcmZQzU~D;NFmEvc2q^-+ literal 8 PcmZQzU~D-myuAnj2hReB diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="Palette2"> + <group name="Swing"> + <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" /> + </item> + <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" /> + </item> + <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" /> + </item> + <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true"> + <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" /> + </item> + <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" /> + <initial-values> + <property name="text" value="Button" /> + </initial-values> + </item> + <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" /> + <initial-values> + <property name="text" value="RadioButton" /> + </initial-values> + </item> + <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" /> + <initial-values> + <property name="text" value="CheckBox" /> + </initial-values> + </item> + <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" /> + <initial-values> + <property name="text" value="Label" /> + </initial-values> + </item> + <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> + <preferred-size width="150" height="-1" /> + </default-constraints> + </item> + <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> + <preferred-size width="150" height="-1" /> + </default-constraints> + </item> + <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> + <preferred-size width="150" height="-1" /> + </default-constraints> + </item> + <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" /> + </item> + <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3"> + <preferred-size width="200" height="200" /> + </default-constraints> + </item> + <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3"> + <preferred-size width="200" height="200" /> + </default-constraints> + </item> + <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" /> + </item> + <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" /> + </item> + <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" /> + </item> + <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" /> + </item> + <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1"> + <preferred-size width="-1" height="20" /> + </default-constraints> + </item> + <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" /> + </item> + <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" /> + </item> + </group> + </component> +</project> \ No newline at end of file diff --git a/build/classes/java/main/AntiFire$Position.class b/build/classes/java/main/AntiFire$Position.class deleted file mode 100644 index 7547f4bafec835a73c42408a68545ec53ad10ee0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1465 zcmX^0Z`VEs1_nC@M=k~?24;2!79Ivx1~x_pfvm)`ME#t^ymbAb)a3l46h;O%o6Nk- z5<5l)W)00SP6iGJPId+^9tLg(9!3U1$GnnEx6Gncm4N)>%#zIfJVplQqWp4321ZYi zQa&CAevmrm<op~V1_lN}9tI%>VMYdylKkM3qRhN>Mh0~a9}GjRHGL57fGD&EX&2>T z5MvN$WZ=k1EY5JwPf2BD5W}k76Qo*_he3)#nvsDmwXifXr<jpJ1DjeToBWfqQj<%p zHKQ0AST#I7HNzMgSRl6W`();&`jzG;r51%GCgr3uG6?zPCnx5FB^G6Z_)tNXl8nq^ zMh0OlK4N4L@J%hr$WIAKEK1BxElDjZW@Hf2z~WJGKzlMWh-zSW8e=}lc0~9<UCqeA z6`WsMl$`38334AVEKv18Dj69#{8EccJo1Z6*co&f88~3Fj0|kBcouNV&o3!1DM~DW zIJB6bjlqD6!H~g-oxzxg!Gyt-kwG407$kWVmFAUX=BDaHtcPl0WZ+DKnZn4h5!nZs zd1d+8srnFw9*KD=IjO}eKKc3Cr3KbV9)-p>k_c2|NM%8)OKNd)QD#9&ei5=3=bXgi zVq^iR8PS-AAlr_T$RNJ3=3p>qWMD7KFSkz4&*5ieVCQFK;ALds@yyFhEdtw<TFl76 z0ZZ)c47Q96s)#UwIu+R#m>=00>=_y4@GE6xV1on*gCPS40}}%S0~3P~D5EhjFbIJ% z5(5JR8v`Q)D}xLJ6N4-R1A{Lp_cAar@M~>nVAPV{%D}EAvz38&BUq~(R5=5K41+ua z1A_tsGe{|e0)rw02=IfAW(14zGw?7lF(@%GFmN(4aD#;y7z7!F7?c?p!8RE(FfxFY zvTN;P5MW@~fYk;bh!Us`f(&8|Dp<6OFfgnkO1l(;Dpb1-0~0trIJC5PF-YLjF9uNq zwVr{2gF%f!9qevyxI^^8d<F(qtt|}f_?*ECHHMLaAFF0wVl=ZdXn=jH$)E+MwHb67 z7#R2%Kw-=S4rLIj2Nq*w&}U#_;9xLguwbxcumZ<969Wf>HiI>TB!dlu9fJddBmkhX BC~yD( diff --git a/build/classes/java/main/AntiFire.class b/build/classes/java/main/AntiFire.class deleted file mode 100644 index edf3af720839d02a3d477b8002d211e1d429afc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1333 zcmX^0Z`VEs1_nEZAT9<b24;2!79Ivx1~x_pfvm)`ME#t^ymWp4q^#8B5=I6#o6Nk- z5<5l)W)00Sb_Nbc20^f*(vr*^eUHTAjNsG~E(Uf6W=;lf1|D_>ULFQM27X2c4#&Kb zOt;LUR7M8Yw9KN^VnzmjAB4`})DmlM20;cPb_QV{1`!5PMh0FKSw;r7qSV~{vQ$O} zQ4NSjBzIYBMuF@T=V6dwkYr?FNiWJwVPs(QaWBeDvF2ouW{_cLkmX^JV~}TL5QMoz zB_O{zvm`S=kCB17D8HPMfzcDBRFQ{438aoWIX{PsL4`q;ok5L<L7hQ^k%0wd9wP&5 zL1JcJ2_plmhNq`y7#D*UgEl*Z4iAGagB~LTAK2MoxA`WPWPseAn3s~D3l1?CkSh&% z7z{xca1`a2JLi|?m4F0|c^FK<g30+gU_mYhX$CV;JZLa7a0X|l=Ovbuf<jLP;(2g* z2d9?U_+WU)+RmDhfyFsLB^4CLnR%&xrMXF|MInhvIjM{cLO%J)i8*13MVTNzRFI`4 zBeR&1feUV!H6sHbD55hHb25t)A%VoA;i(zM$iS7DT#{J^72}6;Qr$AsGfGm67#TD) z;D*2h*jf{d7$XBqUTQ@NBZDe-9pG>Td($VgxWt-~!HO7lxWa=Ely*Y$%M*)IAgPcm zwW1_5FTFIgID?Tv46D&$j0_wF@H8Tf)en3{;MheZB~cCRp5+S8FD*(=b;|@r0xvAm z^gzC3WZ?EoEiUm*1w~UaBLk0TUS4XEb53G$F({vKzzk<mWZ-6CVqjokVPF8|Dh5Ud za|Q+mCI$-z22jFh009#Qc@PCkVhjun91M)0tjxg3U<uCQ%nXbS3=9HV+Zh<Ob~CU? zZfD@!%D}Y|Y>E{F0|Tf4U|?WnU}0cmux4Oj;DM-Tuwk%eU|?Znuw$?X(+&)5VA_$v z2~0aPxWHZG%EHLt1`=mrWN>HjfZ83-zzlY~wAK~|F72HR0!$3yT3Z;zw6`!wX>Var z*v6oYa0VX(GXn#I2m?2RD1#J(7}zOd5bY4BFfcGkGk7w1F)%VPGI%riKrL}&U<W%` zW;cU$<PHW+tt|}t?b&@0mQj0l-*yJm4RFu0fz?WYO^0|?25LGpgD+T>AA>(QxEUFw Q83Mq;17dMA1Tshh06EPc*Z=?k diff --git a/build/classes/java/main/App$1.class b/build/classes/java/main/App$1.class index 98d51f802497deae0e1387a24d43001df1e48c74..80ec6c10a634c0eba5e577cc4795820f17885624 100644 GIT binary patch delta 132 zcmbQtzK(r@4m-C`dQoPI{zScM3r;Z0y(lw<k%2WgKP5GXk%89-%+U7*ajm%+WEf=G z8RU2v<QaGv8Mq;G6E8II3TyZ{78F=R4BH&R7|F<}Jb4pSv7`nA8-pf;0D~5TID;;O T6oWQ{G=mO<JcI6JJLXUT9;zP# delta 105 zcmZ3-KAC-j4ilTtMB{387Wbme6h;Qt-29Z(97YCqA72o|nu|e(L6)6Cj)y^>frpWS zb>g!I4n7SZ$ASWDpUuULk&KK=lg~00OR6)lF=#LdFlaJ}Gw3i#F=#PJGiWo&Gw4i? HWDW%Y@@^F| diff --git a/build/classes/java/main/App.class b/build/classes/java/main/App.class index d295b944a9625d1a7a2f892180b64733cbc7ae54..9a62bf97329c0156cbdc7ce6defdf70e57521761 100644 GIT binary patch delta 147 zcmew=)G55dgprLiy(lw9f3qp0A|r=}h7W`n$z;aJE3Dz;SWsXM6`Iam&B)FT<%qBr zF){K^ZfCb)6<}at5S)C1{g$mL0|$c`gAju_gEWH#g9?KrgE@mVgENB+LjZ#;Lo9<F lLnebfLnVU(Lo0(KLnnh0Lmz`O!+ZuqhD8iUlkam(0{}q2AI$&& delta 137 zcmeAa{wlP=gprYDvlXKvBd4;4k9$#OinZqCjcmf3YnWsiIrubu919ApeKs#+u4ZIn z^VzJyTExW2GkG?<4J$tb3xmMqJM6b?MHo03L>Yt_#2BO*#2Hi=BpA#Yq!^qTq!|Jj qWEf%@WEnCU<QOU$<QZBS6c{=g6dC#$lo;kS7%(hiFr56EV;TTCcN_Tt diff --git a/build/classes/java/main/Clouds.class b/build/classes/java/main/Clouds.class deleted file mode 100644 index 9ed13d4bd20ab64d05aa9707562c6eb4616a9296..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmX^0Z`VEs1_nC@0WJn624;2!79Ivx1~x_pfvm)`ME#t^ymWp4q^#8B5=I6#o6Nk- z5<5l)W)00Sb_Nbc1~%uM{L++SMg|t={FGEi27aH+yi~u^+@#c^ki?{%R7M6NpZw&+ zoUp{AOb{O`$WoG#S<J}5;RDfb&B(wNoL^d$oa&Yd(!&iA)&seKL6L!-fr$YG7#SEr zPGewX;ACK6&}RVg85mf#wlgqpWME)mV&Gz6U|?flWME)mX5eOEVBi6>Ss8d3co`TN K7#aA$s`vqUc`XhA diff --git a/build/classes/java/main/Model.class b/build/classes/java/main/Model.class deleted file mode 100644 index e8275b1856b942724c1e257e1e9c8263e2fb5cef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5759 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 diff --git a/build/classes/java/main/MotoFighter.class b/build/classes/java/main/MotoFighter.class deleted file mode 100644 index a6e726acf81de951c94e8a90476341fc1c41a76b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4190 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 diff --git a/build/classes/java/main/Position.class b/build/classes/java/main/Position.class deleted file mode 100644 index 919933142d440b6278f5b21b1c80bfe4c0edbdd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1368 zcmX^0Z`VEs1_nC@TP_AB24;2!79Ivx1~x_pfvm)`ME#t^ymbAb)a3l46h;O%o6Nk- z5<5l)W)00SP6iGJPId+^9tLg(9!3U^fc)ajlFa-(Mh51h{BlMHMo*9mJ{|^skTi30 zevS|W1A`zBgAju-BLhcCesD=qW?niYgPevBOs}=355iW6yfsLdC=Y`egE%7tM@C|C zhI4*ODkB3gvMx`MB1s+wDF$gq2Da3~(!`u%Mh1B#B}nG_CuOB3mso2?F*2}fczSAv zF*2|~%;fjU%uDqv%}q)z3Q0`LNo8aZ^2tw5%n3^@$^`MDf-EH&nZ=9@TnJ|~G6?vl zmSp6o1SA$E=BAdU78Nrxh-hH(4LIyP85u-1u)BycA7m*a5TK4_WZ(+UFD*(=b;|@f zix(DPdLWgI3~aC%5^&1TFDWi5N-Ti5r<k9OL6?g`k3pZE!GMRskim$NK^~+B60t?4 zc_o>-srnFGpjsFiIFn$eFfwdJc4%f^S$=k^K188MVqQv4YO#t>etvdofi;qUpfQIe z0@WB&S&-_ITAW;zSx}N+gsjCmC$YE~SpaHAG^QcQwxc8%h%c-;7)%%$*o*SZt&{U} z_!$}4`575_85wvy^YT)Q!1kmTvolySGN>W~0_r|wqhTInXRu~uki)N(k%0{o3Jit} z91Khh3=B*RLZE!Xz`!5`$^Z-u3~UUH46F<?3``8N3=9mupv=a=z`(Dyoq<tHdMg9F zmdsWL-i=_ba!}<A42%r&3=9kk49p;<3<?a23?RS{HkuJE#?QdRz{H@$z`(%C#J~*} zVqg$t5MoefU<BJ_$iT<|Qp&Eii$Q>aVFOkhcpyrkHV86^F{ohCF2caDhA8b)460D= zHVjPQ@ZiwW-o+q+OTQRI4b*xD1`Y-_26eEzx#14c2lE*iShcn=u;X(EE7TZ927auX zd5O`?!k_{6sV0LK0|Nse11M~Hz@ZBwwZUSH3_1)f3>*x`45kcb4CV|B3|tJ13>FMl I3^ojs0KK3LzW@LL diff --git a/build/classes/java/main/fightfire/AntiFire$Position.class b/build/classes/java/main/fightfire/AntiFire$Position.class new file mode 100644 index 0000000000000000000000000000000000000000..7b3534afc972de4297091159558cb5c6b6c9dcdc GIT binary patch literal 1525 zcmX^0Z`VEs1_nC@M=k~?24;2!79Ivx1~x_pfvm)`ME#t^ymbAb)a3l46h;O%o6Nk- z5<5l)W)00SP6iGJPId+^9tLg(9!3V~w9NF3lC;dCRDH+1l1#VEqEwZD{Nl`#%=|n? z2Iivtaz+M5Pmm@)9tM7p4(8<i93ch<20<PMAqHVa29A>a;F6-uymUqeLk%B1##w9n zAlwGgVhu7#l!rl#L7b6+BO|dm!#O`Cm61V#fI*%heUdy3QVi0J3~Z@|rHMJkj0{Hj zbs^dApOlrFTw<*m#mK;_;pwRv#>l_|v6<f|GcVPzG&d==C?qi{CzX*w$R|HJF()js zC=<ko3bK@BWEL|r$l~=cBZGi%YDq?ZN<d;!Vs2_lYEdyGgNO!}U;syrCnJNX26jg> z=7ZdU2tBC#85y{O^Gl18Q{6H_F6D*ApdLsiBLjzDYH^82esKvqgAOBu5N6acGO)qY zh=5ameo1jjQDOna$;JF^3<g{bh73mR48}YRCJd&G4DujjAxW#KG_NExH&q|v5U3VL z2F@gyDU1vok^PdHSC*fhst-}<k(if~lUl6elb@emT40UjWoW8E5`k(AsVqo!Ni9w; z$}A|!FGAMhoRe5wj4S{(BO22XWZO{^Bg7Zh91P}+4D3bu<<`mhIsA+a?EH)jyo?My zo_TqxMPPeUiy0X>VA+G6!IqIh6%i&-ry|<|^CLThJtKo0ex-~IY>)t9Fl69hU}9ik zU}6vgWl{zP1|d+^V_;xlV_;-pWsqTDVvuEEVDJUyd<F&vey!~cj9SuL8Q8UCwleT; z1Z$OpDraC&V3213k<1{a3<?a23?RS{HkuJE#?QdRz{H@$z`(%C#J~*}Vqg$t5Moef zU<BJ_$iT<|Qp&Eii$Q>aVFOkhcpyrkHV86^F{ohCF2caDhA8b)460D=HVjPQ@ZiwW z-o+q+OTQRI4b*xD1`Y-_26eEzx#14c2lE*iShcn=u;X(EE7TZ927auXd5O`?%Af)E zsV0LKnAT>{Wnf_7V*rIQ4>*)Tq#js|kwKq<g@J>?jKPAzlEDfb=S&P74B8CV43Z2s K40a3-43YqaG(au@ literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fightfire/AntiFire.class b/build/classes/java/main/fightfire/AntiFire.class new file mode 100644 index 0000000000000000000000000000000000000000..000edc73d1cbe7233d82ed4268c8c7023364c985 GIT binary patch literal 1463 zcmX^0Z`VEs1_nEZU@itG24;2!79Ivx1~x_pfvm)`ME#t^ymWp4q^#8B5=I6#o6Nk- z5<5l)W)00Sb_Nbc20^f*(vr*^eUHTAjNsG~E(Uf6W=;lf1|D_>ULFQM27X2cp|s5O zjFPm>qEvmyypl|}%%W6A238Qin2~|s2Vq8VYKb*BgCK(tJA*I}g9w8tBLgprEF%M3 zQEF~}St=ugs0KtMk_)Xhqd+!`^Dsy-NHQ|8q!(qTFfwrafM|X9qRbR)E(U1^8FmI) z9tJrEc}50lOoyoi<QHd_Waj5FGB6kAmxKN43DTy>!=MDx!<?L-!^NP&pvumm#>1e_ zpuxz%3AccefwdqpGp~e^fmOrPQ!|W<L5o3~ok53(L6<>~k%15F8L*3e6H78czDdkW z$<GDb;sSEJ0S|*AgApSGM^S#cbABnvBt}n=gb5FWDOe&oKL;!Ua+5hIu0Re5&P>ls zEGY$rs~#j+z;P0sT4Lja$B))_){G1+&iN^+pm@m4OZ6+wO-d~aNleN~Wn>WY$xlwq z2}>->1o5GQEF~G4#f%IhSd6u1WZ(cLkj%uKOhyJ44NuK5Mh33L<dV#?L`aD8LpiB# zpahXx#K>TyfyE$r99V1Om1SgL$xE#$VPw!JWC}Rk!9n7aSzKbx$lyns4#J_x2TGM8 z`Q?d4DUkHdm0D4fnU`LgS)9Shpg_R7Fh&NB0(iocCE#nmB5<lfq*QqgLIK4UoL^d$ zoa&YdidbG)F4O~s3nK%!UutoQZz?G2iy0YsJoEBWi=1;3i;Gi>85uZW*03lta5FG5 zFfgz%Fo5zk10#b40|NsSgCzq4D8n&;fGL9!hyo>I1_lNW21Za}!obL21ukQl85kKD z7zDJoGcaoHW?+xp&cL~qfomh!6l(?s22c^iz`)7C!obB~!@$7615wXl%V5XAz{1F2 z&)@*29U0ibv=f6fn08@sg}cU$g^|G>B+kId;KAStwL6@F8SHjxtt|{(+B+Epm>9yf zwlIikZ)1?s-o~J?jX@dV3_b>Cu$Q<QBpIX_q`*!QgJ_31g@J)Vn!$^~n}Lymk->+- z7ix(c13TEkGP@b1BX=-pYHeZAZ_n<7u#DTY`?fQfZGd~04WbroI>e(gP}7+i{J^UG X83Mq;&B!3l5C{$)5R023h(QtnM5R%B literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fightfire/Clouds.class b/build/classes/java/main/fightfire/Clouds.class new file mode 100644 index 0000000000000000000000000000000000000000..98d34018f37bc4540a3b81a5f2d5df533e066c99 GIT binary patch literal 3447 zcmX^0Z`VEs1_nEZja&>&49x5dEIbUX3~Y=HLTQ=l86|0%MXCCZc_o={nMJ9L3~V-; zd6^}4j10^gnqlk=9E=RYS&3zd`lThAIr@%8MTwO@nZ+es4D1ZdoDAFyJnRg-JPdpc z{EQ3&2;-b{@=H^S85!7;p$q{ZgdrgP)?5tS41zoiLJY!;417h2c`5n10r|z5C7Jno zj12M`nm!1_U~W@^DX`{d5M>Z!XAtLMkYJExWZ*+Jn~{MzF(rkOK~w``X-;BZy1su> zR%&vIwPqB^(b7B&G9VZ8B`5o(mcxuK1{o{I!ywO~z{tRnS&~|mSdw4F$RMVn2{8y9 z1fEcFYi<T524!{z6&?mv1~o<oA%r7fN*Ec~GZKsaQY%Wpp&13zp~1tT$)Lr^z>)_R z7J-?K>_~P79YzLeJOKa-JUt!;eFg(Y2L8n4lFYKil2kWPWTqA|GT3O~4Ltlo3kn`1 z9tL9u6GjG>^rFlZMh0#l5UuZCl$m19#h}e##=~IFV8O`1T$Eo9_LwIZgB61{JA(}m zgDry{BLgQ~JtG5aL1JcJ2_plmhNq`y7)ZMV4}&9EdvbmbNTV|kg9}I(J6NT!8_08R zJPht2&++Bvm!*c}mnRmbfKn$&$`cfTUW^R-gnWsJ4{(A5MXnDIgD-<0BLiD;Nl|KI zE+d09Ecn4u3lY^121{ClLLz{NA&?=6k%1MINs1X6_>mGqaB7J)7efd`C_6(K4?{RZ z1S5kW!cItfD+VR*)WXutqEx^9JipSM97YB;Y{?R0E^;CeVqjp1;$etph+$-4DM>9Z z0ecx?0mypfbeUF~mki21`T<3$DVfQMC8^fj3~>zc><kG!42cX$j11xk%_u%)WME6n z%qamS9ZRU&z`=pVL}Uw5%mCY!!o!ftkjBWsR+0}2az+Lrl;8!4f%AO^4?`wH79#^! zYDGzAUV3R}aRwuU0)hAhr=1*7$z=zMnLHkbe1-x>29Bcqa_9U~P!ePG1W6R}FcgC& zlJj%G5?l<W3}x&L<va`(43)6L0vyu5i6t3~3~Z3n2b_{!K&hmfhoJ_PKv{}2t5QJ% zbvz993=ND7%;~8mpkl=n8Vq1VAQ5fN$iNw#nVy$eQVJ?W^&#;I4n~l-ZSdwuJ8MP; z7U%qwR8RuT%uDqv%}q)z3Q0`LNo8aZ^2tw5%n3^@$^`MDf-EH&nZ+PEL?Hnwa;-rn zS6*gGW@1hzBLj<ur)C%<18ZhpN@@io16v;0U`7Vs;F84TY~REJsBv7-G6Y=sa_1q6 zL`DW#ye?;CU`kGAWMBbh4@L%#0(c3|2`b(|S+<ywK@8Ogl?AC#YguwKLCM;WK+KaI zmR!O4rA5i9ZkeF)<Awx`9w_lMG6*>3=a&?h6eSk;rj}&nrxf$EG0f&-n8Praonami z!+eGXj0{R3rTXB=&CDyy&ra3%Nz6@3N%T!ENlZ&jF3B&dWMtsZMdqD><{M;95DPpK z^HOqBi&cE`^Rr6}tRa2@D+?|u%FIhg7J=FZ(HK%$kV>8;#7g{nky9|#TIa-^oZ!ro zRBHhSNq$a-#oP=_7?!d#EaPEV4yt5%!Jz_9(ZQf>z>%DvSCW{SS1iD=l5p;gVr1a) z%*#tHa?VLCE>10GWZ-~RyX*{W85vZ;rh~%;>KsTYK>Pv=K6Zxnj0|%4l`=B0LBg6r zk%60miGcx(Wf=Gw7#SMDye0+)P=f`D&&I$AY7sFoGBkr5O3Vz53=9kcTH6^IwRSVG zM{Z}}+{(bU5v;p~fq?<kj$&Y7XJBFAWN2kzVBmqMXJ}(+XJBApWawb%gql?fYH=|z zFvu|5%1AF_5ZBtmz@@c~L0~6?2opni3lrn=|F1yiGBbe86=GmvU|`^7U}xZC5M|(H zkY*47o3FsY%)rDT$<W160QC*TCI$u>hHi!e21bS+1_lOB2Btp@OpL!6Bp4VOdKo~T z0(s{W12fpzWQ13wK+f37Aj`<$qrH<sk&$60gT3}n26aY;0}R@}S~}Ypbp5opFc|7= zV=x8bZ48zmuI@GlQ{8P0_S+bow6-uv=|ViQ{Qo{J5EmLk5TB?qa56A3h%kVPPYnh! z20aFG23rOR1|J4VhHwTchA0MUh9m}AxbO5BG#UCB`WcuRG#K<5CNT7a{h166QIPMr zLB11ZXHfdZ;KINNYWqNg_!$E;0~-SaL%5dqHU?L)>pgZdcr!9+ZDH__+`$kWzKbD} zfng^@EEB^{hGa$tKadC0b;16(Vv%HlhJXZ!1qlKxRxL@^Z4Bwl|3A^$z`(%30*)Oi zur-PdYz)c_nhYuodJL)zJ`8FMp$zI^f0!_^GWamCF-&CWXJ7?62<mzUhH!>S4E+p@ z3~UU63_@VPX)@?BOlII`U}l&CO+OHkCI)73TnaKU{bMj=XV7M6fcROCfssLz!Ha<j zltdZX8Q2(@85kHQK~tx%_BIC7c?{AzyBV}2L2Q;3?QIP9+ZnPUaRlNZON00<Dag{M zT3Z-$SyC1un~?xghOEe5YYRgmsv?jQmISyWjNsB?;9$^YP-oC%aAVMC$YwBLn808N z4lYolW?+~E52Q)ZK;mHNVwlRn&%gu^8i+^}0~0uCxEWafFsQRLh{~y`Ky&mo21ZbO z5t<-^7+ArnM-G%AJa#aYfa#qKRg4Vn*?l`1YMDUE92Boi;CKaP6b1$}u%pBvI^m9z zgF1?tVLCYX&tRAdjjve@%nS<|7BQ?~SjE7=AjH7Lpv}O<u$n=VVGYANh7Amo05aHA ADgXcg literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fightfire/FireFigher.class b/build/classes/java/main/fightfire/FireFigher.class new file mode 100644 index 0000000000000000000000000000000000000000..5ce77f12ae35b0bc5981488dbe1a73c069b1704c GIT binary patch literal 4364 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 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fightfire/MotoFighter.class b/build/classes/java/main/fightfire/MotoFighter.class new file mode 100644 index 0000000000000000000000000000000000000000..ec8fa238f4cf44cd92e19f5edb39646f8a5c2087 GIT binary patch literal 4363 zcmX^0Z`VEs1_nEZb6gBe49x5dEIbUX3~Y=HLTQ=l86|0%MXCCZc_o={nMJ9L3~V-; zd6^}4j10^gnqlk=9E=RYS&3zd`lThAIr@%8MTwO@nZ+es4D1ZdoDAFyJnRg-JPdpc z{EQ5u2;+S7OY+@7hNl)WGH~bSm*j)xKs*5-gmEB~thpGt83cJ4gcyVw8Tg74^HTD2 z1M-VAOEUBG7#ZX>G=0EYQCz74Q((=_Aj%-d&LGaiAi*HX$iRncHX{RbVoC}lgQy0? z(wxM+bbbG%tkmQZYt1N-^QCzhWI%4`%T4o3Er%If3^G=Zhe4h}fsuhDvm~`Bu_V8U zkwHvD6JiiJFg&5+*4zwA49e^bDm)CT3~G!FLI_8|lrS=|XCxN;rB;-H!!-(|LxYDw zlR=A-fh7+tECMqd*^%rFI*bg`cme<vczQex`V0n)4E%}7C7ET3C8_X`x6!~Gc=&@B z6g);e48{y5j0`O4MVTp#4BS2-THn1WGsT*VL7Tyhhryh|f{}r_D8C%+F;6ZAD+X(J z1{)p*TLwEu22QwoMh4b`#LT=BMg~?5PfyJ-kah<i21l^=<oq0vMrR%d7mzM?uu5My zkmuZZ7~Dag<IBx2OAW~{Pb^9SrBjfUCnx~D7#Z{l`4SNy-~<PXTpu0=Uj{!$2Dajo zqSVA(Mh0nE@PnfkBB~z@mb3<iL;w#%AVUx%11l&Y7Be#NBPE33)Dmkhh7g8Oc7`w> zhH!=mMg~EIosjfa3`*Rog{7HAsebu+ex*4%j0|enk|o4k<U}CEz`zj2!w}67!^pr= zl3H8>_A<f(koCyvGOaW(8I*hU1By~pGLsWaQmwfe;uzxD84`FH5*d;h8N?BqQGCkC zz?PPoQv%ASmQc5Wg9D3+$QGiQ0k$iJhar_Ajgf(^Bp(#yj0{33!3z=t=lcvEhD?Sm zMh33bijvH{^wP}Y3`Pb80`Un>J2{{-%nlSYc{~jH3<Zn~97Xx%&iSRFB*y3ok|^R~ zC<aR;=jVVW*cnP08AK3%_sPu5PE7$hhKr#DR4`VcM4U%raYk@z2^T{-NUj<~&Ns1u zi=m2vnVX@Gp`M+gfrp`yp^1@!A7MdYX=*8`NKH&haRf!UByylS=jY_4f+NaWGYVve z9LTg*9)>oCc18x~g3=O31`DVL<m7;vK%jAftO#UYCl5mxs61lNEOyN;D5(UA_3$wC zf(xC3{G1$ahJJ<#><klm7$$)VPhNz>gHuZw890*j^GXsk^NK<4n!>{{6_l`<(^E@8 z28n?*i!m~A24|+{C6<(est$dK)4)jv6sk6OOCLLHMg|t={FGEsX3ES<^()OyN-YXW zOv*`RWDxSnPfpAUODxI+@u7k&B^jB;j11yP#v)ZT)}W#~FS8^wF(;FefknepGmMde zH8U?IwStj>Ee~uuBLi=6Nn&!gZ(;$|OfG1l39fCp^AL3aBZDlGJ+S%_QS&e|Fy*>2 zGO&Qk14agp0(h0h2`bM)WmGXEgBYqeDhpDf*0SVeg7UE+fuv4yfO3N>@65y;-~6&v zMh1?=l&r+$R8W>+PcAJgg0M>R!!nCAOBfjhk&Fi?RZxr+r>5pHGH|A478RF3Oc6#> z2Feq@i3Qe-3<gM|V9kVMTMtP~aB2x*4gN?Ppf=;zgg3@O363i`zqBYh)h!d0$OMp5 zj~*!TGcpJ`<>!|amlP!y_@<U*<fjz#voY-DV%W#9pPk_V55qx*LyQbcAf@`?+?JVF zmY<!f?~|CDl#=M1T9TNSm|T)yR0(SIAoI>3=VPcQhy@;rc_}%m#VS7e`Prof)({Va z%?>Up%FIhg7D3S%Qdy8no+QLd{Cbg#6sWb%i8(pJnI);#0t}M;oD6*e495tU)lrNL zJf3-ZsYT8?iN(dK#f%IbutpX;!zo4vRgAF27A))xXBZje@GE6xV1tAqgCYYr0}}%S z7|Ss5GcYpD0P|)tFn}7WNPIR1Mo>$bfstVrxPi>fz{tSBAfUCKfl+HW1AF9l2F|Sv zTpPi<XEQJ`fZERt4D1Xn44e#e7#J9MAnF<BGR$LOU|?jJ&#(Y$Rw<~Z&A`AQ!)z-f zy@)|vYYPLH);0!#oeUyO4B;(IjLZMO0-4Lq05VsIfd%X~b_RY1Q3gH+X$AqX`3elo z3``7?3=0_wpuU0F#K0iKu!y06fstV`0|Nsm1JfS{CdOY35)6zCOBg_&0(s{W12fpz zWQ13wK+f37Aj`<$qrH<sk&$60gT3}n26aY;0}R@}S~}Ypbp5opFc|7=V=x8bZ48zm zuI@GlQ{8P0_S+bow6-uv=|ViQ{Qo{J5EmLk5TB?qa56A3h%kWKSQ-ps40;UW47Lms z3_c8!4B-q?3{ecy3`q<!aNp@MXfiBiSjNE2puwQeu$*BT*q_PJ5C!>;8{|7tb_S(i z3@!|epq4H)h@UYqGq5o*FobJqZ)0!;yWV3bgEu3C))of;$Q=y9;ky_j85njl#4<7L zWJqRY@B?`;T^H<sD;7x>Xb4DvSdbvFV%3sl-Nul<{Qnc34GatnEa2FY0$ZcNz{a4& zpvj=jpvR!X;KQKG5Xzti_J;`rD}xUM8^a2QWelt!2SHuWz!1)`l3^JGBLf>lAcGLt zZ<-8x467LU8JHPXL(>mLWF`YMI4%VlnEo-Cu`_71GeG<-$H2&-$>7Dn1WKZe><nxS z%nS?+lc1^7S9=?S={yE$o!t!Dksvl}iuN`J`|S+bkT?QykflL<))ZuEQ>`rwxhyG* zkj+Q{DMMCdueF7t5LFRK32Ope5k_!nGjK5IFsL)=GPp75F=R97GfZGG00$Q+Q8O@1 zf(OzhXdrPgbTO=9;Adch2Mt7ICIb^VXt)_z{xGPsGl<Hms6cb{S_Vc??*Nh@7~e6l zFmNz1Fx=YBP!hSFq0DzTLwV$OhDyKP3{{ca8EULpbU;bPV<$r`6GOPpPKIVi1}j!c zR%kkq0kNRzfK8G`l1-9r8$(O@^8XKXb~1E;iijqioebUJykf-)N@O4neM}598Tcew zK<Q@k0S4_2;1uKmNn~u2Y*52pKrE=??7EWdI~l+l*_QvmuLI&uV`2yg3r}Za2$y7$ zWJj0?am0@0|EskTY0`@U)GIJ$;9xLg5MVH8kYuo6P-U=WaAvS#2w<>gh-9!~NMW#L zC}OZ<sAaHcSis=Gu#UlzVLO8p!vO|ohD!`C3|ARk8E!DRfg>e|frG)Bfs0`s!!iao zh6M~p4C@(|F|aeFFcdOufTrtP@F=?lkFrY)8yPk+Ffj-)oMPC_5X8XDAjxo$VGF}n z1{QEMf+CxP0i<dhT-A2CsvQh0;HWiWVE@mc%fQCYzzt6Nb?glN><m@x3`z_PzZjJM zFzB!|X#W9?H7NZ7^|ZBrFsLyxFf;4~m(05uc0=>h9tLKH!wg3ljxro)U|<kpU}Df_ SU}8AIAjxo&;WWcp21x*Oc3lSm literal 0 HcmV?d00001 diff --git a/build/classes/java/main/Grid.class b/build/classes/java/main/grid/Grid.class similarity index 58% rename from build/classes/java/main/Grid.class rename to build/classes/java/main/grid/Grid.class index abc72c01fbe72954e14638fa7e2b6bffc14378ed..08aa92028cbb925516370f3224907b2157bc2a89 100644 GIT binary patch delta 336 zcmaDS-X}33gpD)3C^JQWVrVCahK3J>{V-L5J2yWiHAmkUL~=1GF{tt|urjDIGVnpw zOpa!h=HT^#sM=h?D9Oam4bi=MGV^vOK}H541|9|m21W)^2t7HPE!L8C8-w;n1_lNu zhFAs$1}z3I1_lNp1`Y;c23`gc1|bGf25|;423ZDi1|<dw1|0@T1`7r$24@E8$sgJJ z1?3oc7~~lw7!(+^859}x8I&eZWcTG%VPI!aW#DGeocx?!mXUEXD@UKC4g(j1E`vUU z4udI!9)mrDK0^wF9zzy`;p8<Ow#<wSnUe*$Bqp<Px^tQ^a50!N*fN++p2Mv^xtcSH z(~^OU!HU6_!5S>W%at^lk=tnULaqc(X9g|?7Y17fH?WK$cM_*30~doAgDr#i<T>0y E0BylPI{*Lx delta 304 zcmeB^cqcv~gpp-pR422thR?*;siLgD`6;P6TntJKsyqy=3~G!FoEkop3mB!D*nKun zW|U-NV)NO&nRz>tAOnLC0}lfTh(hSe)oihrEZZ2gH!?6VFfqh3FfeE_a4|42@Gx*N z@G|f+@G%H6@H2=r2r$Sp2r?)!2r=j|2s2nPh%h)ah)xz{?-!I{;9-ztkYJEv&}NWk z&}WdDypi3PQ;vb1L7st|L3uJehb$w*WL1tnNi_y826YB~1~mp#1`PF+(1`UQR z2JOjbIBc027&0dta7j#7;dJNJW8h-YXRu{3n7oHuee!J1Bu--nE(Q|@TLx3Gh%Q$W qr#S-`g9U>vgB4h0KUdP^elDZQ!Q2U)&J0`(E)2E|u9Nq02LS*-)iWOe diff --git a/build/classes/java/main/model/Fire.class b/build/classes/java/main/model/Fire.class new file mode 100644 index 0000000000000000000000000000000000000000..ffaef6a003613578cc8e673e2ce27e75258d51f6 GIT binary patch literal 2172 zcmX^0Z`VEs1_nEZ5-tWN24;2!79Ivx1~x_pfvm)`ME#t^ymWp4q^#8B5=I6#o6Nk- z5<5l)W)00SP6iGJPId+^9tLg(9!3VP-29Z(9DTRUqEto(mg17s0!9W#Pj&`AMg~E! zNu?#3Ir<)n#Tmh=C0q==49p+{1bG;Q7=#%aSkp3#Qi~ZG_<ay+gHuba*%?F`83YUR zi!)0y^YiorpbRbsaRv!?21y<UDF$gq20pMRuv2{#OEMT4*oqSKQu1@b4s`+9Bg?}e z2XZAxQGU5|era9_NKk=?K@lvNoSy?0<YEwEPzHHlg^__(!_!kUjGIA?L7kmJgNH$r zL5q=r7i<yOC&8&Dj10_)DJhH$q8boagB<_~D{IXtb_N|r24RE-$D*RdN}tT)5-tX9 z24;}K`aBE<42Fyh9GNAlMTsT(MT`t$8k!KZN<pFJ2^F{IW-w+jVP`PqVK8GbXJimU zm<m(E$iSYFSnQWt0dkdwW)w(=B@crYgEb=qOCDHQ1ZFm}JGmG*7;JeM>=^7B8F&(t zOESw6OHv_`sH)+E5%AW?&I5VInw!Cq!HJ#0nTNrJ!4(!2VAq4B85!6TQ&Jprau^vT zp`iqpbI#AnNlgaDsWr&0jtu&s2=U-y@MQ2}WMD}z%1mKo;PwI0`tC)UDb}E<@!?_c zW$<HUU@pop2S=?ZNHl<lArLH@oS(zR5X=z5&JfDO5XPXw$iNBL&&a@8keHcQ0`eIs z=$%0Rjs%5|J;(#<j0~K?ndy0nC8eO`tAZ2<!Ko!SSi->$6t2$sDXE||o0*sDSDKrY zS`?C)l#|NHAmo#uoR|}qSd<CkLj_q%GBS%98F+jU8O0hD_j#EmnTa`>j0`Lqo|<8d z46K=XDXA5V3|ycr0Wp@5fj77$F*(~eu>fiq7c{Ce^Ya)PSU@Tn8HBMolaYZvFSQ)x zYeohRD65!}K>*2vplGsYWDrAjb7es))GAdpwYWlq1D04A8LWs&Ik?PW$;m7(VPxP6 z&Mz%WPIb!!1t=%T2YR4X&!EV_!NA18z`)AD04jJGK){p13q*mkIG9#s-~rP@48jbI z4ABe>3``6$46F={ppuP&ks+3Wfx(@DnSqgkfk9MjI|HK@^Hv6St=$Z~k=q&gw=xK9 z1Z#<7U|`^5U<O;n!ob78$soWG&%nUI1JTHkz>vtmz`)3m#E=X%w1<HMtlpT}Rz`Xe zgPztF27%oSB9S{7#I&|B$h2qoL0Izb*?rp?ly)+xGBJd=FflIwe;H&YGXuy<AqEx( z1_ogUb_Nj!9R^_rBL)$$wF(T(3``6L3@Hpe;1Do|I)H(}m?0JHs5Ax!22KX1KMYKa zzZmox7#Y$T*dQ)rlx1KB8(Xing@K*5U=~B(ZU*hh?F_m;T3Z+db~5NOGWhE3WH4f6 zn8_fcvy;Jsk>LP?h@ZBW?luOSoeU044B^ZFKh)mI;D)479-&Zc3xm7vHU@9qZ4Ca~ z7=o7nzXvi`dnZFU6GOOG<Q4{YmV~Vg>>yvVfPJaOz{SA8AkM(aAi*HWAjzP|AjM$C zAkARQAj1&OAj^=+AkR?3pukYapa}N876S`|9s>_U216zTGebB7KSLInCCHG>kj;<- zj*@z4h~z>e2_l!rz{mg!87T(VzYNms436v!#=jU8|1hwD87jXRKsBEogFOQiIAvHd zFoDCDO-p+lL&OGnQUC=d1A{WyHDVAIQ2Q7d*ckE|GT~{hfPsm@3T7T7I|CayQA~n{ zxUcp$2Jd+c(mJ4&0b;YHXm4Zi2d9T9CWdej2U!}#XGuYp_68*;mXt-vW+Z@=AuICN z+QJ}@stBZnB>}ET2jn+MY)CP%F)%QwGjK3yFsL(VGPp5lF=R7nGfZI60s9w}_81r@ z!Tmc4>R%3qE`~ye90n!^SeQdZ@)(%FVb0CK@&{CbI?Ac2Kr><i10zEbI8ciLDu&F; literal 0 HcmV?d00001 diff --git a/build/classes/java/main/model/Model.class b/build/classes/java/main/model/Model.class new file mode 100644 index 0000000000000000000000000000000000000000..f5a82156ee03baf18c7ee96cbffafb38d006dfc5 GIT binary patch literal 1494 zcmX^0Z`VEs1_nEZSS|)824;2!79Ivx1~x_pfvm)`ME#t^ymWp4q^#8B5=I6#o6Nk- z5<5l)W)00Sb_Nbc2GO+4^o)|U%%W6%-~5t%HxMtih>L-pftizmn}LU&ftQDYkAa_& zfjc)pB{fIi7es=2aMg?q;yzf7v1VrwWMmLQ$hl<}rGl&g*&qP1L4=1vltGM<feYjY zh#Vt>7?ODiJ=W|D5{wK22;-b{@=H^SxfsMDMoIH9$S}w<GO#6s#Tgldkc@$-wPt6K zXJilthfHZnW{$pNQBh*0PiAom7lRzc6eS)8Wd;>S1|E=uz;>k;6*Dpj_#iZa)LXMN zs4+5dK>`KjMlJ?bhyj{B3|b7@j0~(G1Bw|Lczh6wtU-aQ%fq0@pwGy_Qe2W+z{tSp z2@*8qVK8DaW@KPVFUm||WZ?Dz(faO1nJLzs45kcb><s2S3>F}5oNyUN29D(X9OwMf zyb_QRW*~*uJPbA<RUAe6<!~8mkmKxm7#tWJ85uZ0X&^H(CzFwZMZ;4wjEg~l!5$Qd z_Mm9D2XWna7~DZgh$}I<B(p5BBr`t`q`(cNzzt-U8zTc}aAta5Vo7OHDkFm`THx6D z6yz6Yg0$%eKpEC{){G2%X=#3`<uIXQMh4zwR6d^ulD{>>7#Ucc^HWk88TfrN^HTjv zbCXhwLK2g5QbBQ>pPZNzmROVt;zI>lN-{D*rb0s;oK`{B!hBo|_6j2dyN0KyrzgmK zaI%9K%*Y@JiZM_cEJ-bbiE)Dy6O1RAi^wD}F|OeJ(xT*4w@i?;xWIPmfzk?tA_F%A z69WSSHv<DGZW%zpf<Yfdf#L{E^D*#)X;B6-FfGF%3#OGBR2Uc;ycrl6m>7H*7(gis zEbfaY?uW+L1Dnsxz{tSL;LpIw5Wv8|u!(^g?2a(4?F@`syBXLcw=-~VW#H1<%^(oD zok3_TgRs_a2Jy)443b+Jq_lQ3$VF~vP}s_#sI{9xHF7(H`c?)FE#|EZI$GLW84R?v zw=kG&Wv~R%R$CctH-g<5$iTp$2llBv0}F#713!Z>gA{`ZgDQg<g8_p$gEfOJg9C#C zgDZm~gD-;;LnwnXLl6T4gBZkR48aT`VE=`ILyD1sks*{J4C?+C1||kp1_lNttt|{1 z(%Ts9w6-t^%WPwC(%QlxCA*EmS!)Xemnh3N1{Z`|#K1Z<7&sU-83Y)#7$g|9859{z zz;>E|<&@xdDlvpJ=rb^aY+#6B&<DFni6N3fpMe=H7R8{?z{0=?$`Vi)g)@L$$iN^A za>+IZSCB)tF?fL7v5mnK<jidhUg(bTVPI#7V&G#)W)Nj4WRPJf20MlaY_TlVF^mk+ I;NXk_0JY>SyZ`_I literal 0 HcmV?d00001 diff --git a/build/classes/java/main/position/Position.class b/build/classes/java/main/position/Position.class new file mode 100644 index 0000000000000000000000000000000000000000..7678dcf784c91dfeffd7de8ac1c7c502dd86fc9e GIT binary patch literal 1413 zcmX^0Z`VEs1_nC@TP_AB24;2!79Ivx1~x_pfvm)`ME#t^ymbAb)a3l46h;O%o6Nk- z5<5l)W)00SP6iGJPId+^9tLg(9!3Vig8bsllFa-({QxL~k%74=znqbQ(G#SUkB5OD zq>ec`KSzjxfkBXmL5M+^k%6NmKe(hQGcTQyL0!WK!w_ptAA~y~3avrfMR^#+7{nPF zI5HB8Go15NQW+V<uxj@Nsg~qnkYbQ#WME4zEKSTQW@OO7rWVO2|D>$c<PvMmC`JZW z4Np(aFh&Lzh%Nj+nR%&xrMXF|MInhvIjM{cLO%J)i8*13MVTNzRFI`4BeR&1K^TjV z7#Re7Q%f@PQvwo;5_3~aQj3Zi8ALR&coZDao{S8l8rYr2m=CfY5k62?Gcs@m=a&{G zr@Cc=+{X)x5IvAeMg}%mbP71-=a&?h6eSiw+*8cY#-Pi^pvR!k&S1d9V8~#^$RH2W z14#u%rFkWpxvBaPTcBDP890+*rZ6&WM0RLqURi#2sy;-aM`B(|PHM4=Pkw%OX@ND8 zf1r_yBm&hKQdyAdl3JWxlvz-cUxcj1IVZ8W7+C;nMl_}&$hM=TC5SJqIT%bB8Q6>R z%dM01bNCq<*!dY5co`XZJoEBWi@^4z7PB*0GBT(l0s`tjWTRmoV`s2tWRSzJl#ziA z5(*543>*wh3=9lR3__qx#K6EH1j-}~3=C`xj0~&{G7L-%vJ4CizM!1Rz`($-wVi=c zOL{8<yOzvW2HuTet#VN13=GT+@(c_N3JlC3r3?xTiVPsY4>p<+EXL2k!@$I##K6G7 z$;7}77Ghu!WDsIdW?%%{WXQnC08+}XwTnT3fnfty8+af}pf(6Hh%u;O(JsQku!bn@ zQVgn4?KTWd;PBwk(%!`&flI#_L=Dt>1_llWH3oICySd>G(FgMx7+AHoFtFou1}oGU zMh1SYnt6%Q%)+1n_NgX=76StV9|I_CdBC9yBDKL{j0`#qEDRhB#tfzmW(?*G3=CWh Nj0_eGRtz=_k^nc&A1nX> literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index a03e2a7667f4aee40a96aa3d95994982de790be4..0f0728cc4c133795de8262bbb5804bba0037686c 100644 GIT binary patch delta 16795 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 delta 16285 zcmdnd!+5xZv7VEGp~bPFKwweH!aaJL4bf)G!HL%IOO+TI+MRRqOH+ykI7@eN1?}Ki z*1zqReYIf9G$uD@hF0JFl6)41_RRE*lGGxBXK74jzhySPuo6r-&XVu{i#32vh24#V zq17?3B$Jb&C9^1%i=mO5p(DRIvm`S=PoPp{L!;b;x*n<eNc)vD9UVe>7&-%Bl53Vk zyLNpwNL3Vf_%(5b2^+5p10O?^p@7KjJ<GQkJh;}{!6rH@r(*&?L#umHW{N;8L(YTj z6@qCeyp@uwg0$NN7}|XEQ&MvTj&Yt?c6Pt_kzmpOWxq=qZnF!h)#bR&?Yyuz{&7X= z!NaY`MCutB85nsP1RaI+g!M!i+OrbN64NR~8F~^63UV@&6G5)!5@YB_@E92w85o!t z85ji^#DgXDB=tn37}|<U64O(;q#0U4G*|^IBLfo?I|Dx>69W@7uK+uPjH|4#oSwX% zf}V&XLtAljYF?@mLtA}jUO{OImoh_Zera*43PWpIYF-H=10z3!03#zWBR_+xvznf| zo`MELdvao4Sz<AlCPN#T0anD$$jHjb#GvJ*t*4`>pv%yaoS#=xl%K<;$Iw<<Qj(v? z$jHFJpzmy;XQ-!O#L!ldn3-3?Wz5i;pOat2$jHx7&tT$Y>S3m5uBTwZ(4Lc6nO|DM z#bwFRoL>RfY87m)r@&>y&<b)dScHd>QGkKL*4fTo&7Ps7D6t?TGr8D-p*=sZB(<Uh zWF`YISfQi4wG%^YQGRIwnCtB15@yC_31++cxcR&5dFY9FN;C8%=jY_4CW8XHn9GZy zE2%iOs4OulC)Inh2(xm%kB4utpR=_;LvwL)07Gj@Wlm}!LtAQ2L28izpU2(k_u6aR zk2o~0ZB>~P5abdZ5TX~VClbccnVy=Tn_5y-$raAfmY<ndV$3BFICtxtk8GA@FYJYL zW|@B75aApd5TzHbClbTZl3ZNO70b|8oLZWaAIH#|lUQ6Vu%-0*q5A!eJNWObE|7g} z`<OdEB*8IJFG(+1FGVkvp(Qy#H;tjCxHL~BouMr=7nA}r7+P}*G7>WxS}F@t1>)VU z>zYpZIr+CRo;b(h){^C%t&-!D>zo(tp3l&nT2jE!mXVm3o?6Jzky%`lnwMI{RUq*4 z5<_mAOImO#`>ud_Svu~&iad*5OZ-ap%Jj<hk}DXRi_<F^+6sy?i*vcE7+UgEQmYx- z($Z3sOKK(;u!z^!hSllS>m@fZGPHuifUA*_p*1zxC`G`!-S%6_|NB?-qP{z{t=p;I z#2C=b7}Ub3*UG5Z#;BK4+0Mw&nweXW!_~pa(2-i4Us{x$+R4b!lAoU=Fe#*K{*)u< zHoLo}2e^2wEA3)*>1GV-VGOG4Wdx<&yp%phhOX4)62rv2^qf>9E`g%(dz?vEj`Q5v z{5EWRr`pYaM#l+^P7@jRCNb(ID{@U{WN6DT%}XhsGTDYz+I%Xb&ooBo>5M+^-UWpM zv6{~3S=vj&r<<O?=l?zB)C|VpnT&d~81)opGct6Q6eZ>rr{x#ra?P1MfmNb@E@Qwv zMz{HldJ7o!6c#cvw1N^M*CLS1^GX&oGPLIxmy{Nz3N)?KGS=w3e{`<k@?BRLDm9ic z`YmO2U&iQH%EeVB;JfDIj7Rr-PH|^8?ClJe`n;UcWd&nE$V!kqGxJJ}xCGX}J7#OJ zVd|&lQUAI3?p<fNiqT^=qwAV_MwPXUVe1(6)-&pDVAM<5$jH!^4oX0q7#W&NGr2Z1 zGPGo-mUF3WVPt4e%uC5hEfT15$*H)rqfk{`MS?XxL&|3>W5`U#ZHx?^Fs}*pGraOy z?XMKE|5S~9;Iy~e+ZkPVFuLqy)Z4|Vx0_K<WDg@lTT*IbUh!U0Muv{0%)FG$ymYR8 zAlH^A<)rSPyq8VZ^Z=vFK}MIlLyQbvnYpQX#hLkeMqC2@lb3pN<ZoEfw*2aw$q#ET z9%ghq!WeWElnS^y7>`XBV3(>t&ggQ2F({;ukxO9D+K+8=-pu>utQc4R*Sz!dBxArS zM!nOFdLm~S8CpwAGIO}jGBUIzW)=x-T64CYVej>mHkQsOZXMik%~rt5+SDOXHuIWC zk=kMh)r9DCj6UZXoi8x@x?f~uXih9BC=}RvQuDgM+i!y<w;VZx(>zyRV)VEi!st?Z z1(Y0%N-D2{!Y{8xAT~Zy{q64g`K=)p*Zqqw^j%|gw!Y5D(3Y5+T9hcjW|&mrT6M(j zTl>G|D|kNqzrpBolhOAUqjQx1ZAONc)RM$IlQ_iL?t%jP-eg%0nfm*Tz7H5x9x^&T zV$^%gsP}|XFXbsCLno+YPAtmIf5ynro(j%aT+bO9T60qKQn;!FZue#P_-{L)_WPal zBgreyelHk9UNXAAV$^%hs3-D<k)bUWRDg4-yahR|C_S}A!1cL(>FbO6nr)`%YW5^% zJ$}a+R`;Hfp|w6W**HaD@${b?1H}%VyWqWWk+wz!%Lm4=kBq^e82vvp>U{yl^jAiP zwz9;W(o`<5Z;T9WB}JKe>E9U{T0uer`F}q(tzVV8B3iS4uQ%Hr2}gkoF(<{6pH6y` z%@C6?wZ2^W2cz>(M#o=_j=vdI{xCYuWc<qrDlIbeQq#EpGX4XZn4g=OTp+OaT-xcd z-=D(|%k!igX5BUX&lu9c<k-lh*Tkf!(9FcpR-BPokjmA<#L!%noGH*>yi6l|PW;yi z5?t5A!;d<)GI_Q!>9sTIiF7bAbS36x=0d8@&dCcn73;g0e7l+SdYJT*dzlzo)AI95 zxcZnF+EYu4GLwr1-oAM>Eyy@vh3sn8Se^w(68o6~CNMcoWYU|&q_>-KG802*K~a7| zYEelg*Aym(_Wb;u)Wp20Obi`RQGvLVw>|xRzuCn8?Kki8)vuYx<TITqcm|XAOs0@o zOnS5Hne>w9FflZjWOH$G*%S&~HPpSh^_YCk{BOnU%DOHI%w=+!$K*JlNpAs@Uj1xF zu7ykt?P+P5d8x)+0@X&cG5-_FI|`?*J<xmZmhK`Z$Hh#}>ll|XF?8l+79`~-7Nsm@ zV(2O^&MYoT%u7xcaEQ`BcAIO1<w1M1-DS%d9xP+B4Xazu!~iOV(*!s?5+^O^XSw-Z zGre}A+9jJ6Ol~WgoL4dFt!C0oUc<!Do?Kc~oL|JXmWiPa%vv}3KbM55tH4!;Di+y= zOJDOT=1M6&IksgzQ@{qM;E7D%7^gA`oY2#_?<{%HMl*FG(^nqOij7Qej~F*i_TiST z-^>)eg(=v2D-%O=X_Ae=Q&aQT^1IjdZe9}2Q+sww+%_hskjab!<`*=AQy%&R^`6mP z7Rmnm=XR#x9ZV{=TsxUSZJLr)f&WXd6jh&8VBrr7{Ihc1>i%6!PCFTQGcmM7N*;j| z&vkX|f1PYyoVJ%&+vSeh9;TqZOuj9Q_4}AWrCwrsYDx#Az+06V-TyD0(ofu2?hv<? z>-B!7kONFk2bok3F*zM(a;iJR#L$vhoI072YcgY|fOd2B_B#(#c7~Ux-{&!npL>+a z<rtImai)N}6CiaZ87G+-I`i|2OLJ3;jJO0AZSpoQjczgM*Jf4h_<ADy6jRV?Ceh$C zOnPUT^x7DknYhj|F|>k`@%hPhJYrfGm|QP1`R`=B#Kh2+l$DxXvY%1l^YfL*=bBng zihsXm-~D`#TbG$ajxt`EypKn!{wkBpH73tTjMteMT0xcl9Yz7;`ixcgR}>s+e|lT; z*~aZTH<&_hGP&GhQn}6Kc84k8DC1owhStoA)SP=v3~l*ExrrrQcNjATPQ<5FHth9X zcA9h3`jDm@&+jw&JYaHv$fWm(NpBM4LPoB~Obo3#l?55z0w0bBFDVl7vSaS4_iPWA zt)KIR$>}MR?>fe3Objild8N;p7@8A{1X!*XOh4vvAWL*Ulk?}k4G&*1`MzWdk$VNo zB%sPNwWvy<=daGy&1$O`J-6Mq`?b1}*lVWXH%v}%ne^T<=_SW-y=P)*&Me6ncu;0h z^gJ_B!LYz#|I%|0wLdU<9%uT<#Ngafl3J8ll3yh7{H3(;xAc{Buf6>}x6SYU*-uQa zpPAftGJXNMIzJH<jEChG@<itu&D-93>{af~{&`=Sf{!wOW11|@Cu#DXDXi`XI6D}p z3Eay1!OpdM-FC@Y%%A4zU&{Z<<ot^%=r@x~-4(_^Obl(Q>6!U?f0-s{@kty1V{-h@ z<Y?W%%+QsboLXF*nUs^-$js0NZaWH`I{hw;bN`2qrdeMe?>Q8`pov*eq<QiVKAHL! zW|vlG$N5Zc%+PFY#3c~sK9AMr`^2?MQ?iwdL!z15nFBhQ{X3b1CNgy~Gqj{8rgSqi zwB+SfPGu4hINBgH`<=tv*UGAL$KIM7^e{X2GKb7(>;oyRDCuVgl?3T|xv6<20%z{z zEV{IR)@!}iD{&vXGE1j33Dn#CeYX4J&kp`*?}hWOIZUsc!0a}WIbagA-ehJyg><gF zO!t@s4E?oRKK$Oj*VwxBLz$_T!4ziSsm#G|nF1~{3go`{anN$lI$OQtoR9V6Li49F z`%GsJnZc|#lUdJW7BfRXyg>vhb7wO%^ugK@i6xm<`FY*~e<v?sF#FuEInBKH*v{Vh zf95c|&SehX$@q<NKcm1k^E#tt2hMRFUmTofsVj4H9<%>^X1|cC1(SIN<mwkPdn{rO zTFmUcggJaEv)(dhy<{n_<;)CinRzMs<tvyOT66M?Q&%!Gw5Jx9rWTiMVHD^oDgX1S ziP4iMVO#FGtc#~sF}tp2_S?z0hMA$QG&d==Xg{OCz1P#LZ$wUbyNma|>CYS2oYpdj zykyK2Fn=WEe@IZc)i%oh&Znb~Sl6X7`>bd7+raF&ky&pOv)*QAz2rTNZy33@Ff(){ z6_*qxCYNkwW@yVV$xN#(6v+L|*(u`d|7{v~hWyhP3Rku<JFjD0%Ov1?^XKHq>2tF) zzHjE=+bo&3ojGU+vy<6Qkj|o%)S_LJ1qCHpcQgCS?U}4ED4n{O+4T`)wZL5VzI$@7 zW47IT_id_Q)<3y@%)$Ga9S<;j9%R-##H^R>$#s~Sp*^o8H9fWH2s1-#QBh*$QD%m= z%Dm*%B7rg?w)af-Q{SH~7IfLmW%KD6v)gfI=h73*46TXD8L1~HZxocQKgAsOiSaw5 zKnbh#`Uzn>o!2j$dpGyx=liFbomMd)VG{V3;Ho0VX6O3z;UV2qSGNeCVfNg?e4R<a zX!Yg(e{AbtB^JwR=N@&RdzRVf9JBj*W|s@hDpp(<nHgG&64Nh%Vg=m#EfjdSp=jOg zDP2FMd`{-ynzPd2GPBziX4jO`>XXa@Jz6>aE1qb+6ZzN7?5-HAdzCr(8ng3t=76_M zv2i<@1dQXdS(nP+yC&{>@{;C;Lxwk)Jtu)2@!*i_{p{(*$MkhJ9r-t3V9!lv-&@Qc zx0zk<FzelA)=PfF2x|7;o4i3ts{TH6*aK#lhs@!h86Pn-bQEQlfO>iRKz@JTb1-V1 zt;wG<l~<ySKYC|BW)6G8?EIGLDKkS?Voq{tPGU)F%6CSAW1mGTbd8hE<KJXn?lF5W z@r*g>IdeeW3ucCv%;fBs%nZ$ml>+l7ZF=CdH0plT?M3-J@+E^_F}u8G4tW#L>^`6A zEhs$lQi~FE-Z3+D!7_<4mq5Z#i=(~s*(W^cQA__VEt2`3+2bYS7Dj<@_xWyj$sC{3 zQn0l;{>zGQADCS}GP{0acD}>>nVF$8KeqrhYLTk)g?aKyVVU}`%ue5!opv%#VcN|k zpt$K63r9n3nl{tC){w&NMc<i2elUCfWLEjb9Q>Qv^AEG$UuM1Je;~(a=5t+V`p?YJ zUXot~>PKE@$`lBdK7Q)aoU=!EtXQ~K^6jgA4J^UhjVuhE*_nBHppX;zb-ImN=<p-A zKU&s@6|O74Z(^wrZe|HM%Gkof&|Q>ToSFv?;hjtZRy)_$sB&G|C}{CJLM=8xy_Lmz zDdTlUft#D&&MsW@yFz2tRF&uR!cE&)!rED!9x_j1`pzgYExML{_U=RR(@nN(|JE{C z-NE8Ck-3wFp{+D6EwxDCcZG>ikola4g*vyHu4JFq?_vq=u4nPr?qOkQFH0>dD$NTJ zSmn^a^=Pt}jEnDeKevt*e|lMb`d9+`S%NPx+e~0#Xf4etPAwD=SD2=;_tQ>`#Vz#` zT6fDQI}5CDtF#Y#Shx9}HCxwDCN}4ZEFqIvR3@_oOkvTR%A(iCXv8&*g`pKZn2{+k z>+hONCm$WNtzzUZockj1)s5*a!67py`-zIz&t!3)#o{eDn}wk{wQ>#%Lw9~|Qf3~w zm=su*s^)lf!kUM+S1TlgZgRHGW$~HE;yIs1Z#N^?0v3jzyt2fc%oMQNLV>#+rE;(8 zr!R2N-l`rtuWQai7N12d?u%JmW-wi3zQkN8ka6kF8^vnFPwPwF<Q6T^nz@7}Y$=Ot z@I&TrpakwM!Ly+9_mS`GOm|GWJw-@)8B2iKau$Y`#Jp4i^Rv72?CxDRpW!_tY|X83 z^A#+<D_H`TGOl7_XwAsaOJ6-%TTHrs4U2!s0%n2dMS4{yZEjsT5Y1n-(m#9iS{BcB zEWX;$nAWo}w3MXg3T!o=dv?LLkCq;fc1Vi_bMD!|;=hq4I4WQh3qxB`W_o6xK=~u@ zeG_CaM$C}Wx7??6KX@~X<A0_tEDW6`B}JJ@r6s8X<?n68SZ*&#%Fw_2Xa89h)_IHq z^)&|`pHNzyqvdeG=H-M}0v=mgoVKy}EM?rz!q5sD1w6teP_)wj+tU@jD=bfRoD>#q zUbTb8*X<&sK$5t{3j6JrL5c6o!}DjFEZWHuwu{B{6XRj#?~DRY@fz~QT_*F*)y4V+ z`{QkQv$*YHah}NNzn29x3X@(ea83MP?(N2Ug-3lB*T4NN-nwTWOYnXcl>;mR2U$Yo z4zYknACfZ;gJ{s$)=nk?hcri~+D3(g-i3$n2rgE-c!VW*2lG)DQ0FN>J5?a~h}7+Q zYO=SlW(UpIes3#$jK%3Vi^~ZX_tKLrpgu)8D0AIm>|_xzaS}9lE=%#eS-}%wxZqmw zo>MF#r&)r|u&5Mqon>KYOU+A3Ey@&VH43R-)+koJ*O_I)TV6HJb1cE@7|*jXv}9JL z3Ov1)UYHbKs`;0{e#hK9%cfjl3AxDPVtt8)p*6LjB;)dASqX8OD=Yy9(^v##^ty_@ zQ~j5Idepz)di@Iat1NmV*Cq!@$kbnF3An-HGN0up3#e0?SejEZl}TW-_yJ#*+X-F! zH49Ha{q)EB7EADL7N?_(cR*RAI5YVui@=WpKVND7`-**1L5fFo=ia%?5`2#(sO~-s zLw9O&Nn&1lX-;C%IVOSmFW0Q$Vc#0D^cBCd`@NL64_Nd>9<ngBrd8zT2+Xn(`CB%3 zif2P~u;bfVJm1Y8u>{X#d^|}~!tDu5z*Cl>XDlHtj8~XC7&{pS(n>E1S@~Tmwz?Pl z;OR%-qt97fU$E%CWYJT2#>iDIu-KEw_}t9tGnl_^W!zn=;P;9pDC+g(cuDd4H!N;% zSzO++s4QXRy2ALLg`p)UF<qc?y7)I;j`S_*?=C49y+3p21B;{8M^NT0$xO`2Of1gK zOBaw5>|e&DbFaCRz3=nl+2O9ASOPw?xO`#p{K}%YnVE}=Ybuj~Y}E3&zkT0wS5_E5 zKiB>3!#9@jd5qsdaR^Gh0$Wbk+Z7&8pXGaF`=0dt`pE)6Si*j?_#S2a#lp~%TAZ<& zQNWtx!YAp190h*Pbo(cv%rmV7CMFfkJKuiq(ykj8y)5eUCjDj!`NQHgpXmtGHb#LB z)rV$&@d#~aHhRVM>*mJWe_5RVv3TxeJj}eCNnlaLmr9ZMGj(!zTn%25rMve(OF(@C ztA7XcC8nuN0!s4V;svD6^EGd`n3BrV=+nsR+r%2Ol(Cr=RBM9A*M6}GoSWj`>0{~2 zUK~`y(aqRf)xsLk%IY$aX&<ORIA5lrYLD6{`8LLF83E2tciLFp+gV*YSY0kKcd{}x z<#AnN7H~`HJg3o~`tC<<uKnri`p1*ISUtO0oy>Yz8M+dav(t+}!*kb}1U_txl>60@ zE`BP;Y4IEj=i|MsuK!r}GYWjsXz3B%;(BH(+mo=LI+OSGv3mBi2Fzlbz{=2(lUM>8 zpu5f_ATpuyk=UaJr;OhB>xR17WlUuCnZz2fgn2S6LrZFEQK7(guKQ<BcXico54m+F zL3iGf6;oJ4Rx)J@Tv>ZaF|?EENXhHXA7iH4=}l$zna1ikomFK9Yxqpo0Et<w46XSE zr3K5Gxn{F6wB;pd<QL6hW$4I<4B88%E8KV*vpgr3lWm`&`HsVFb6K6{vAWD>bzQ)! zw~$pY8I&BaFfL+cXvr)o77)?qS6LNu<oVygM;u9)6_>a!W(_Dg!6fkS$Omiw=cV1( zCdRnlTzJKB39Dzw(#i5Nk{Zic!<Mu9d}3U|%FvRZm;RkmKqnwJq~YKvR#$VCbKhRX z9bC!k*3G(Va)OL_{c6^LHLSr=YgrjOK_l3p5@srsfZ{Sm4++l4YKEm}ty*hl`mAGh zKE=46m7yasCnqT}Ia`3Qo^#jiJd<sSA0GMM2%PJ&fz?NQBP&CDVp3{OYKp+-HN0z{ z?`;fPQ+WD@+@yAfO{~tdSgHgHkMy>w+ElNYF{42J*UU+|n_27Kwy*|lWeuOi{D>Lc z-S`#vwD{{bncmGT`dhCs$v@x5>bjlPMfM`IiU5yFumAg&`eb(7#kIc9Uk>bG_1ekm zvx_yjk?APQZcuRLrS1XwIWte-?47D*?fI74eoJg}m-O#V+RN&^k5%OyBUgbyP~rVs zPJ2I{a%VVZut-HpbisaBp98GHGnk|c1yY+I&Sywj`pIiv$I|l^i@grA2Crj0G<lA! zr08MRpd+llM_E1PYL2low5670<fj~;d|Fnz{sgP<Nmln$tRbgaox7RNurjn{Bo>`z zWoXKO%yf>Gp)IihG$r89Iq!n?#4xi82Ooj-1goy|tRWXzgXb|`WM$~g&Cf5%$jnR6 z6krL+E?bc6vgGjH-EJluEiEpw247|kzQU?<mDPD8%QaTes6tt4QAuhM*Eh!NtPHIs z`IA%SgjH^^2Ha$IzQw9?o7LqGYe3yyR)*HZk_;m*u6wMY4t`#0(f!GD<s{u7usT0v zRhbG3h#TT^Do)dWZHv6i@cHxfian25gCDaxK4En`$oz%r2=h^9ft`BOpOm$xRw!?8 zl03LY_sCOL=Vz<|+Ot@nPyQz-#rA?Vd?NG9$#U|N5#j<h-wW&tlQ{NkpODH-TK+!w z6|3)SR_CLPpP8!!z8>sW+<rG(WxD&ipA}OV*S%p4msrj$kak%5r=j-WLY55QrMG9F zi+s!K@{ZM6`#mcIc+MuT<OA#E3G$NeA6bLN0|dOQta@%8I^Qpy9&NNLLV49E)_~8f z9wA&`SQ(o0iv`3UxVT(iW~S6o%IueNKAZC^tK&CTzxgcRK_QWwn(~8n@&|d*`k$;G zzgV5EPcUC)6eyoOxBuw7%N)0PnU$k6G<N)E4f(_BJCpG*DAG!bGAl9#+%q}M9t5P9 zDrm0MwBR}R{vT`5OveA9AT3EONfmh1rS#>eVdWORgkvmbYhJiDusJod`B-mfIl?5c z-#|qwJnoz1(f;ST-rG1Wn%DxG*;rHrxmqT7D9F~gvIVrUIdw2k0Trybiv5|FIyRkg z?zwVE^!t(0b~g8JrpHVIr&rtz*?n?*&Vt^ak1EgC<ae+Ibg~6ocd;>a<RumqXXKZ( zun9c=x0<#5)~cyb_J}<B_u<*HZZ_v0HkDpB&!<f5S-94-3h-D-wODt)Fn8>|V05#G zDNj&9++O&|X-B?)Wiux^>=K#w=u014P+k9I3q_gwpDY4P{r_ER-SX$d>!lY$t(^7+ zO<)V?X5|)e$y0Lg_?n!0^u6=083A#@6WIbLu?2T9gU9)fuYWKxZt?0W!z)Hjec5wz zCbKzDVKEk{)K%@j{!X-<nfE2fZgc5tQ`p>(GTIBA`CoNr*+%i{7Y^jCH(r0$`YDsZ z+~?jd^GsdqedKl1`_6RVG@Z)kF^$c2I-AN2Hpg|04a}han!xWThG%1p)?Q}6lk?r< zjo*fuY))E7m<06hy*m>YEr04O*XpcF(Xyf)%mQCnf>h@RpHCIluViPIc)s){qrl%i zKPO$DWpH@*#1iXFyMGr|1(>pZU;U`f)#!a9X>7CBD{2;7z0+*Apt?D13@xe2C6gHi z7M;GA@Ws8~NbM?P@9)w%Pv)|@&SFs!_)!sP{U>_sr0IX(Y3$zN@O&Pd|9loNfpf{p zk}*Q9vA@~XCdcKNX3l5x{ms09jiDp8BrzqiBvC*r)UnlF>$~wGzDL21a+_u^WDAa3 z1d<0$H0BoxEUQ;_wV%I-@#XU@ZH0+R1}Tf#!j`awEM;?^&$Nt<p*b;c8{>OMfyayQ zXoTJPx#z36!STSW%et4d1)2R}5-5D!xjoU4^XWGwd%n)s7C|f6oaL4<3H(xP-*A^# zrFi!)e)f<l7x&y|75F^a@2{_HxQz1B%ejA-vXvfU5?C+uK*C<Pe)&vwxxb4Fy7eVi zviYuJ3pmQSie)v6fb6W5{)sDd?x#4vb}HTb<M<j@fuNmp!l&rug!$A><l9uq(zBY) zNmfrFK>3d40g3$@6F1a{Hsx8kuVD-BW<Ad$VCvR?dBet&wm<Go`sQ;(_w-t}&~<Do zmzlWMvoW+5C#I(gByBtYk3li@u!szcr&QzIEmJnIIc;PM-ozHXnaz0%o61vGE-o&v zt&=}0OR{cb3y#`8nO{Y=eg|8~PBxVZ%v_lQt1pHyZTYyon^nhVKTm=Dwq0y4yV(Nj zRx)x4v=j)wd!{A$?5f`Vuu0w%Htb;w*51p;(2|{*Cvda<&xG00%YqNYdAkI!c0I6< z&FweyIwpbZx++(e%T~`XbUkgVeDW&Cem0kvj9-`q9;KD^E$DH`+OR`x&87IW-wF<} zg&brHIm8xpl#z?;3X{NjrKq+QR`P+03r~v6&*G3e%ocKl&GRUm$|)wU1uU5YGhFWJ zCA{Bq|C7|RPjMGzrXFJpt~<vh5E*&5y8G~vC70R%Ej_kBdEs$37r7IYc~oWUPqGDd zv+iORP)fI&b25@m|7elZ={FG`TTiitoCeu?mgOy@KyA=Zr%g}9_6t4quX^0_d)^tg zfL~0Vi~?WGY(6~+IJ`(-;{gAK#aZ%a*+O=)W(s^@nC#c0pe1xQuI!cD0|~BkY$4~_ zoL;b8U}I>>DJ{wrU^AP3H7`M<;K72ha@7kZZH*V%JT9@hUS?By$^_1f(cx}4op*SL zv3xFc<Jte&{R&(7I>zP90<Z7<FJIH}boGLXZw~NZTAQOU5X2pu?%KZn*vV;g_pS5) z{N*ZJz&gfjlmDtp)?a4}yTRsrlTBqN3)d|+hK~G{%(TqZqVJ3XG6M3tN{`pp9Ff;M zb=YN7+-){L>neexyexWiq?Ild*!7$0_^jS}ht2gH^L|DFfzlJqUt=d;U1Dw*)&C^t z{9QKZdu+j{7{4)IV-+}5R8p6uQQE6@LTY+dcgn49R)PBa;+MkiTGr=&K6{1hPu10h z_u0Z8u=zb?UIXg<z0mWUcJNeM&!f9bde*G?eR3U(z;Ts-{*s$DUZ!Xt)4L)(`Se4! zkVkBekJ(iAGIKp)V`xoIPR+>_Fx-0QO<bLgl-!~F=HXH|{yb%KwqDC5uyEmCbu-1y zK5YUM_g#K^;P5jx=S{40SOosoJ4fF5=2!M+-YUD-PmV9nd(P(k0+h^NvVmsa3ld9` zGhVTQrUo+e1o)39crxpy+Gm73)cbYd(zDlWPH)&8=QI6fJi;V!;Rny}USXqJNBflc z@cpwFzh!eh%BmtzBYMiCY30t=DMxnfzuUA~;T>Dhdp5U5rd6!3Sp=FMO4moaU4O{h z<oPrB%yf|rAK1bkg1o=SHu35Pk%fXPC0Aya&7ZREBU^AI(>W%A4Q&_CMCbNxwCM8R zdGr3m1TBH4wfkJerv0%>G>qj~#ePxe6PwdqP(MP9uPOiCZPu*dC0pe$?WooK%oY&x zg;ijxbJO99FTug<EGGT?(aT)+rJl|0E1S<m#&2v4ZHb^I9(!2?OzLwbcZbdGTN^v4 zM=HXn;5(bs4#wR~0`fksdarxbMLKe}t&gx?VfBYmp!eL@RSbMqx7flbxWBObI_n3U z?@zYyb!@-bK!c10RRVTtQGfp27Mynfm+OXqAz#FQvpKmQVG=NCHVR;kc9Q=iW7n|l z0sn-qKWssN*@FJD1-)ZA%krNMw6vh4Ve)zn$@)fiXYJ>#0y8)bb5rIDHi+gX-gu|0 z^RJ2BH>#N()W}NC5SX$q|IqaBH`f)4Rjw<ky_3<x9(0?zm7Sq0H6^nsH5oKDaqrXt z{qBs{R}Q{85->wXV{se1OFO&DZx*f&cF<fxQEI9{WvBD1zRwcwA+JT9j-2H`)yW=U z-Br)d(3V&P8o*zj_4(U|zO*f@5?)<Bd>hTKvI;OQ-ZC%fZqAY7oiZs~d^M7~*?oK1 zonEj!XRH#iD>VG3ao2b5x9tgE%I2Q9)XN^$$L{ip5j?E<SWQqmNx1dYa;<j)|27oK z_Ot7WOkihdO-d|I71$|Zck9@_$HG<#Yb^HGZ@(x#kv(`4yUJvC&!ddjnYgBa99)!{ zm?O}=%1UBl{Qu_98=rH1;q*T?l|6h1^E7sbw#<~0jA8+`AJWT@6jxno3c4AQWzNqy zo!xf^yR){#GbVwUXkovytyfs8H)y$uUsN!i$?h?W-E}s*%0X6e(K7v>vad*n=8V-r z^{c|Z-FNf2%_OijU!vQCb<0e%%x5da8ovb1VfUHK9z2729y_RkTaudMEnq0exa9DX z(%q&J#}68p{#P~;XtLry_G!b^1zn~6Js&nnKRUoFAinY*>y=&~nPRhWg(s&s3(RMC zTEOlykrCA85|~mPpCb8_QDjMN#)H`<_fr<uvj@B73lz<EzNNyr{s#BfSv#%L-S`%< zyDVmRUBayLg<0TTSu-!6$mi4!*C@?>{-4h+VR!lr8e}!qVkvnsiQ$7?hez2@y*YeK z*?liFU1Su{zR_SaQ@_iXarLe{49Aa7TgD!+oZY2^8QeXND$ILl^g6xh%j={Xsa>{O zE9%*OR<gUzU|z+}(2<!_l3E1v=Oc~iK<!tnpEm6CnUVkF@bcB{u4~wRb~3JD-Onhn zzQ5u_^4Cu~@8lMyGE~pzS<CLTjy+&H(=?Vsfy-69u4Sz`x~f?(_zibzPwjg4unp{P zpBTS@hE-SJ5xTy`DEUoXkzs=Lj_4H|*@HK+*M~f0>SNx_&d^ejm?yCD>`A*g*UA-V zJaYqbmQTI9g+0J*D?6z3pI?+&QYnyPu;1xy$-LD!Cf8m}UCb@LjosxG<92q2j?yCV zaHYWc?(!Fk4JTe}SIiO=(BGLnnO(q8Ey(7st$=>#gt;^4C+XMjVE5U{9=?lR<roXs zZuWZ6lvnm1c7~SByleqefg>VQezkqweYx3e>ZHg;d)eLgvAf9KVZ6sAkgROebpKnx z>Wa<tY~~$*J##;M@BwzWZl*<y2iZX*Y?;}q0=iQ|j?K>4<acy7GgD%F=k7!7K?m47 z7zK{5nccUYP1|Y1saqu{Hac)0W_RAndXZ5;KeGPvOm43hztuMXyN>SasW`&!w1#~* zlfZ=~nfdRgPS06-xT@yLKli+&>`tpe<=%>hJza~Ba(lfn@T^<ss~C5TJ?KBvadw85 z{G3#QoQ{2kk(V|fxOb&UV4BMvj}z=+C)xc!F<t_NzD`N?|2GMT<X49L<~_G=%Cb}J zE~nW&&&aU*o@LiN$F8@Y@jN?2XG&^LYI<TxDi>&6^}^&hU1^t#>_L~<oz3pCUIrCM zDVdo9Q@EY(Sp5px6L>#TO2;5`-4%A{8B9x<1d^V_Gi+mU*}Sab1#9_4Gl#3}!PnRW z67MoypS)LBvR+0&O7Hlm^M|`yie}}z`;}}-o53b<-=xlC$J%*8ON%Rl!!n!i<p`vH zDNu5cSnOChWnN^fLs-)dc9%2k7uW@!ChmWlylvB?GmpNns#<Q%c9Y%Z7Q5?hcBebc zcUV9frSweL!!5xf6_4T$MFbZqY2IP?J<7P6MPS;W*e7?(Sn4Y@KCf0(D)63kmpy0- zTL+_ne9elxXP4Y%zgfIwwx8tAgZJ3O?z8)SVgy&w-Un4ZgL>=Vs`7Ibe%w9f-2?Wp zhwM(D7{N0Hg1R?i89v{BHskKn4KdPwl8@K}9<zsm`icT3rv=ka+j(Zsm}?@o_htX2 zwTuFm2jATFiZ_jYqvbvSbC7e6&J%X$r|fQz7*8@g2nb(Uu;!TO#L7e8dOH0i`E#GK z2R~=`5PAWM)8dkslR5RJrCzbSyk^&X!>%`p@hv-e8CY3rQE_4p*SpDf`ZD#sYyxvF zwfo~{cYNeqr~F}V3H!5V76F@-3;c>v7BlaKM0RpZ80Nia_xQl>`jK7b3LCf#Jfre| zO+el%^^boWU%dMK=;9}K=g;gxU)Te_vg>^VS*67Fg1LeHJ3B*rMt**AYLP&xmdNBa zW;0yRo7Y?ID*ur1gFWacdw`q;NSVOAg@1Wn>UlU0{QPFxA$F_!7kk)mcK?UW;KZj@ z9~*Wri!1e~&6Fh%eqX8l!ycmjmwmFJfuzGf_OSo#0Z|Pcpn9knJlXa2Z{_J0Gn@K_ z+Q${|xU2d%as)JSI5u;r+-Boy;b7>6&Vgs<WR_I6PR=rrWozRIn#kNfxz|9FwS&V~ zqI2?U1L^uMj(~0s|A|cCp+&j12fkK&*KBD^d2F#i(A8uzi-0;$<Jx_z?y;9HY4wR$ zesFOHtAJa{m-Cv(Le&p+P0Mg<_ipat2<qkVdBoVq0UBP*28~{IFbXtW>|tj~SUfrY zfuLy3mG9#H93c}pd?#|KtYqW5$e1aR_2Byp0p0qaA5YD>+3Pd$OT#3NfQd{~nFRE& zt(w~Pv!~y@TK412hZV|`IXt(rUS|?W$jNwWTJm(>>4lee$JoT{PT}yK%AqoiBX}v} zIVP?ufhaGYW8RlGpH-OpHgVIn;>PJ5!FQNuaDdhk7A2<&=x&HuwmvmUUE8{hk7v&# zubCXdM_2*^1=wq~gJS2Le<L2eO}=(QPSGq5x7i%NM;YgEFtnzoWG1d-5=e9ZAXx4- zIeg~&pwBUPKUmJ?@SDdGFrPzZ0Y`w)LJo$`qST!H#FW$`u7w<nCW{%#*DvPqS;7%8 zgJ}Xwp#UehYyIg-&6gZF=6tQV&Ev6@!{;z#p+NeLg^!YR`wvc)4tg$cvczH;htF~j z=g*7<g#w+?;)?`Vth9~!krL|I7q{~Uo4_LNju6hR5>J<Ks+&lhp7>=2hx1Afw^>Z9 zI2c;<lS_+Nb1<|fmKLW9T*yjNSX`g_`so$5qJ{o?4J~UpT-JiZXdMS=IcY(vF_*xy z_BC&M=N2uytXjBrQn32>=S)6~42-wg7=joXc>XZ{W1YdcoN+7TC-xug*BEcJ-DP~l zvW<x$f{}scDXY(IwyVqx@r(?NSJ@e|7#SFI7>XDf7%ww3)G{(KE@xwCVq|2fXWGN` zgoUAtk&%J%77If^h<?t(FqM&!f$2A!E5i(sz*a_vxgY_bd5jE87#SHji>5Q(W;@1w znYoo^E6ZZmH5?4f8Q~6sIOjOnIfq%n4q62=Wi2DaRz^k!c963{PVHcu!T6}2g<(6$ z=<jUH*clFhl-*@vILye%z}(0>g>3~3!*P&U2OGmlkgAF7SJ)YB85x+iGpRD11Ig@Q zVYmdMmoPG11L?BrVB5^ZaD$PNfps<OZMJS!pB>B$cR?z)GBVr;(MuQ^UNAB;a9hc2 zW&FWjzm{bi>ut7|jC0xEvb|wtcn9*{E9T!Utt_AbUCcI@={4IkW`++St#g<eet_sd zj12!lv@Js`6C(q&e$aA8hAz-b^8M@#{Y;Dud<|@l%h_(TePq*eHd)KEf%Omj3|8?s ztPImYil#F$%w=L^;BIC4!}zbB^%~<{#;q(f7?&_UV%f_0jG18(6C(rDTE<n349h^K z&tf~oRLiger1L2ogDWG0oZ~d6T};!MzcMdlS<CW@#p*B11J<V?^BdUKu-;}{$MTWw z6We#T-)xQSo$S-u=ddqfU%`HaeFiJTdL~8&_C|J)gVwU#W_!viUeB-*WXV;gW6XP* z88$O9GO&XD-N4q#{)wGo8xtb~(^gP=+YYkdmSGo2@h7&g%tzT7_JD+%7#a416oFjH za1<nRo0Z`dh(657aDj=Df$Kj@D_aX|FY70!?TpLVSF_(?>t|xP%*4pRa)50LTm50i zrR)q>LB<w=op1wW+GO_IObquyto`g$*chIG%)7$I@B$=ab(@XhHAvtpGs6dvF<p$u z*zU62W@Y#U5?#X1@D)U#Vq^FYl6}QIi|rlbAtr{OAYRcKwk3>vnHm0pJUWA|k)2~I z+f26GYz$44?alP-TbLOc7`HPqv@<g@u>NP6#IcOMm2Dy$Lk}|}1Iu<MTTs9;Ob5B* z0IL<l1ZGACwl<E<tQ{<UtdrSaurf>m>Gxrn#>~jTw1RyOJHs3h>l4U`dCZIq%vQJA zUa>PQ1gToY&aet3c^VXyYnd4t_@}eiZ)IG|G83E_r!iT{fD-097ErRh$;_}0r0EI^ z!!|I@#;_ekpJ8U$4Wg|W_JUkkw1n|8^K%x4eIT($R)%9BdI=-LDP~3n-tCOLm_9MJ zGtXhZ!?v3J1bZ**J@yCelQ@=fFq{Ty-p=@`o@q6EFDt_tkhUGn3}->K6~ko^wS<x3 zDu`}kXSl)4$iQ)hy^HlYo9$$d<!me1&M-6F1o>qV`&t%;`ygd4tPGDqv=75GP*AqA zfRYm^VKKad@UJm0VLZk>g^l4oGb01nbat@M>)EVkfD`Z=)|<=>A3z2yVrTdY(s6+a z<nC3>r<obPgT(i-F*L9+GB7`7ZDilW#?ZvV$iQ@%v6+RT6~vm(G=+_!jfIhcv7d>d z10*t;;|4QB7l;Lp!(Nb_6~jajHJOEBI!IyyTm5u)hM6pk3@p#s*0PB2W@ebn!pOiq zkL@+nI_9g)pkxoqRZG~9u>WOYSP0U4mYHD*h+facungoJlMQUn3@bn)Yd9FzfQ)k9 zz-n@vjbSawhIK5{*%>ylFfy>-VBE&Gn)MaSV`hfUAU-IkPGzf~0ZNMV7#SHjd~CNf z-DbPW3Uci~c80AW?O<Q+04ZO~Vzrm`HmJPX39_q~m0>rCzRkw44@6I6VmJb#cQ7*? z1JSAsr$AH@!#NPOjhW#Bh`!CnaD|1Dfvbbf_6W;nrtM5tTq{{Ou<CzgW4OvP*}+V5 za<8SR{B@9hRvTECu{f?{VYmg-IE9VjE{N`8WOy+7prv;GBM@&ZBf}FAeVCEqIVdQ$ zGuhr|V|WD;TFA!m21GAmWcUE`h}C8$hEJftS<5n={WjYlc7|^tVNmt*1ElUSBZCzq z19t;kFH0x;HO3iiZLFYlA^wK-EHlGz7Dfj7qAtdMMo^i#mGLfP{amK2OfAfy;^Q*& zGv-&!TUl<g++}&h@|?x$AL|sh+pNdfZnM2+`^ff(aX<SZc80$o+j?2&Ff;sTVPxQK zWn0U#jJ=;}Ih$1r>ju^?4v=MUSZ^>hG_o=>Fs|WXXkle!5dO#7z&3*sR9verXWPsK zD&GGvI-5LVsRu<8xBzBo18J~g=mJsQtPH&%`Y#JZA7~TNWcC}(3==^jZ&(?ofan!W z3{ye$3|5A@Ao@8A!(x!iC5%(p7?!XyGH^PBV#H(zb2sY|mgS&)whW|hH9Nyf5Z%qn zu$q;Tp`P&uBf~mYMh2D+mgQ`q@^J%5b|xFcCRRoU=DBRo*lw^fYz8T4;{cUZ6POvc zfmFya>;MUFXR@8i@sW*TFG%bhBg1}>8xF8eWMw!Al0L=uo_z}26*h*$Ao<&D3@1SJ zA$ErIAa&cBZ0i{=fz(}P-NyEcWg#2G4Uqh8R)z<xj0~*5*`_kiVPC;MjhW#QNW77i z;VH;f8`!3^|6yl%0W!mOG6#b=BLkx#!z+-IDQpaHSQ#1E7O`7RWSzmfkXfAJEl3$C zm>E8TRERTt0ttL(Th7Mtm9?IcK{;pw+j7Q}jK>*wFoWvy%}i_9^t)M~vAt#6&3uOW z2J=*QkR#?X9%0$WzL)(XyOm5A>k`(LtUuVdu}<cg$sx}06XdETjG%T6!*7u3e;Bti zGW-Ksx0R8hfsK)Y36yS|*uV~LWn*OE>SW)__=kOFJsYUf?Pn4Pr<rz;g8l3a9U%HP z8$&lpXD{0+b_PL42F7RX41H{j41z^V7^kq!Vw=l!i0L-#Ri@W$pwv5&eKPxRmOj>I zmdP9pKS7D~Fk>St!vv5?U91cfLG*eihRJM<49r_uz|Es6Y>W)`T&*lcOBlDZ{9rl7 zbczksE?dLF@RW&>f$0g;MK*@1Abm5~7-oWKEruPS@^d*G!%Id+2EO;qADCO%=d#J% zWZ%yQs&E!EKL@vjZZb2dGBPmQGR$IQWZ-FM>tgI<1G#x4`&|~0o9{CnWBbX(Fc)M$ zi`7h)XKd4$80N7tGH|<|f)<r?Sr)P{Vc)?5E-vSTEZ@h*un^?<PWIbuP3#PdK|up* zY%wecu^QQzu`sLvsXNZba2pixwhV`u7#ReL`oWfig6k9$C?|sg>oW64wpYy0S$?zB zGpqz@I?Twhh80wF-e6qI@|1NU+Xgmp*|HjB<2F{AX-o`jK<c_!8P<a6!;B0YK=e~q zhHW7F6$`@-kTW*3PGDx(#m30M4{AHiW!ew*@oyH8pIewg4%o~5jG18%8zTdoRs&0Y zBReQ9KV@au2Qp_eJHvjEjMZ(no9r#@&q2lX0g%B{*bXx?90n;l#l&z76jY#K1(i>y zm_Vh|es)l?^_zv^I7l@pAD;v%?qX#)1@giHwq}+oYz${W>>_Y0<}66vOpf}GYz*f> zDxb43Tm;cinHa8sR5h`zWqi-hpwGy_+`!hx@q(4%DjOpM#|`%B9NU=JGJ+E2Q>H6y z4A()5L50Lj7KYnwj0}oC{ft`~uQ57qX4=i{3~FUQ2emUdus&sNV4KONx}0qd>mG1B zQw!9<tT&m#2I_(QVQ=J^!OCz4WZGBe+ib0D40l1!S<l4K4T{a>Yz+57{QJxd>p;c) zS{8<fARiR%WoCE^Vt~B-45Z=!E5ma(Mg~qRP%HHXBPeaIV|l~6m672!NZnkf7G{RG zAePKrHimcgAl7y!TZRv8j0~)8ER#4^v;Jbg&&Kc(WY%&vhEHsa3@jIz?y!N|51&Eq z169imUqJGm><r&Q@{ktlYIcS{piYYIKi0d9KNx3#8|4f?KsFp^yv)S#8>D3#Gs7Pc zy@ZjWk)4sjhj9ZdLlZkA1LHzAh87ULh@GL0osoh0Hw)OQo$QPZtX8){or29w3|B#g z%MHeV><rx?HIRC;7o=@FBSZgW14r%pi6Gu&c800!j0{X?n2)e9Ob4;nvNW<Y%mm3D zWM#MwYQlotG>c<0`x6$1IUsRYh6A9Ge#6QzAH==Q#;}l`k%2AiH4`W#pR%rDWmp6< zX$I>XR)!@Y>p?BPPfQF;LCROMF)RZqueWMpox!@C4P2hB0Li#AtOij>*csM>=;=%h z>p}D<CWeh5`aToG7Lc(f&J5c?{6FjrlR<`GW&$_wcYwr>u`uifi5+LV!oGryVLwRy zAyDi75J+}EJHugiNFy7PppSs$L5^cM%Ff8ZwVm-V%XhXV>>!a<%%7M}Gaq4RI0jM! zZZn+#u`V!uU}QK2V)e4!U}v}pVy$F7!oqL`6#mEA7P72ho6dBWnc*tP#>wmqGN3Yj z8!N*MQ2blnW}C*eijg6Qk)fXXHPb@&tIP~HKnkBSG28?h@PT;|`$FcM%q{E;cR(Kb z!Lkz6LA?tKvBQi%SoSdeWVy_Ahn?XbJ0k<fceY;k?TkBF*0V2T1t+@)AhYhUF+75J z^D~?6ayEvwjEoE{O)N9mRxw^-V|W6xrf3OcJ+wRa45USn;T6a>tJ|QCZ7(R<J!N8O z2IZf_j12EVDz30Gd;<9uRH`!k04d(aD)Wh*;TK4-i(?53!yk~cMs|jOAo?mRLn8-d z6rqiSk%4tGxJ~c^)ZXa;iHkGTcX2Q>NQ2rtTN!7vff`1j<_@S|*}&4s?mV4+4!g-( zmKE&a<`N{=Lz+L6L3P$-wkd23GeF7kDJw${$i$6I4E-Q_DLca?4n_u+7S=9~ekM>& z#sTUSb+FuKW0(R`@R5ySItQph)5O9s6C`kig<%#4xM_cxiD52CM37-Ii0WlwSPG&K zGcqjWU}Rv2)j80{`3+Epea1GEg<%EAiUX|sLCu*pARSv-7#JED85kJY*K_DGZs1^O z1#J~)U|?Wm+{mHFuz`bt!Ha>3fp-&!9uJ7az{s<iLr(zAWD?lI5wMj*MSzQY8;2f0 bSd5W>JBJ<<gvqpnLysNIWMX9p*}(t+j9mZb diff --git a/src/main/java/App.java b/src/main/java/App.java index 10dda1d..4f0eed4 100644 --- a/src/main/java/App.java +++ b/src/main/java/App.java @@ -1,3 +1,4 @@ +import grid.Grid; import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; diff --git a/src/main/java/Clouds.java b/src/main/java/Clouds.java deleted file mode 100644 index bbbf9f9..0000000 --- a/src/main/java/Clouds.java +++ /dev/null @@ -1,5 +0,0 @@ -import java.util.List; - -public class Clouds { - -} diff --git a/src/main/java/Model.java b/src/main/java/Model.java deleted file mode 100644 index 52d20ea..0000000 --- a/src/main/java/Model.java +++ /dev/null @@ -1,191 +0,0 @@ -import java.util.*; - - -public class Model { - Grid grid; - int colCount, rowCount; - MotoFighter motoFighter = new MotoFighter(); - List<Position>linefite=new ArrayList<>(); - - List<Position> firefighters = new ArrayList<>(); - List<Position> clouds = new ArrayList<>(); - Set<Position> fires = new HashSet<>(); - List<Position> ffNewPositions; - List<Position> cNewPositions; - - - int step = 0; - - public Model(Grid grid) { - this.grid = grid; - colCount = grid.colCount; - rowCount = grid.rowCount; - } - - - public void initialisation(int fireNumber, int fireFighterNumber,int cloudNumber,int motoFighterNumber){ - for(int index=0; index<fireNumber;index++) - fires.add(randomPosition()); - for(int index=0; index<fireFighterNumber;index++) - firefighters.add(randomPosition()); - for(int index=0; index<cloudNumber;index++) - clouds.add(randomPosition()); - for(int index=0; index<motoFighterNumber;index++) - linefite.add(randomPosition()); - motoFighter.motofighter.add(randomPosition().row()); - } - - private Position randomPosition() { - return new Position((int) (Math.random()*rowCount), (int) (Math.random()*colCount)); - } - - - - public void activation(){ - ffNewPositions = new ArrayList<>(); - for(Position ff : firefighters){ - Position newPosition = activateFirefighter(ff); - grid.paint(ff.row(),ff.col()); - grid.paintFF(newPosition.row(), newPosition.col()); - ffNewPositions.add(newPosition); - } - - cNewPositions = new ArrayList<>(); - - for(Position cc : clouds){ - Position newPosition = activeCloud(cc); - grid.paint(cc.row(),cc.col()); - grid.paintCC(newPosition.row(), newPosition.col()); - cNewPositions.add(newPosition); - } - - /* for(Position mF : motofighter){ - Position newPosition = motoFighter.activateFighter(mF); - grid.paint(mF.row,mF.col); - grid.paintMF(newPosition.row, newPosition.col); - mfNewPositions.add(newPosition); - }*/ - - firefighters = ffNewPositions; - - clouds = cNewPositions; - - motoFighter.activation(); - - - - if(step%2==0){ - List<Position> newFires = new ArrayList<>(); - for(Position fire : fires){ - newFires.addAll(activateFire(fire)); - } - for(Position newFire : newFires) - grid.paintFire(newFire.row(), newFire.col()); - - fires.addAll(newFires);} - step++; - - } - - private List<Position> activateFire(Position position) { - return next(position); - } - - private Position activeCloud(Position position){ - Position randomPosition=next(position).get((int) (Math.random()*next(position).size())); - List<Position> nextFires = next(randomPosition).stream().filter(fires::contains).toList(); - extinguish(randomPosition); - for (Position fire : nextFires) - extinguish(fire); - return randomPosition; - - } - - /* private Position activateMotofighter(Position position) { - Position randomPosition = tStepTowardFire(position); - //next(position).get((int) (Math.random()*next(position).size())); - List<Position> nextFires = next(randomPosition).stream().filter(fires::contains).toList(); - extinguish(randomPosition); - for (Position fire : nextFires) - extinguish(fire); - return randomPosition; - }*/ - - - - private Position activateFirefighter(Position position) { - Position randomPosition = aStepTowardFire(position); - //next(position).get((int) (Math.random()*next(position).size())); - List<Position> nextFires = next(randomPosition).stream().filter(fires::contains).toList(); - extinguish(randomPosition); - for (Position fire : nextFires) - extinguish(fire); - return randomPosition; - } - - private void extinguish(Position position) { - fires.remove(position); - grid.paint(position.row(), position.col()); - } - - private List<Position> next(Position position){ - List<Position> list = new ArrayList<>(); - if(position.row()>0) list.add(new Position(position.row()-1, position.col())); - if(position.col()>0) list.add(new Position(position.row(), position.col()-1)); - if(position.row()<rowCount-1) list.add(new Position(position.row()+1, position.col())); - if(position.col()<colCount-1) list.add(new Position(position.row(), position.col()+1)); - return list; - } - /* private List<Position> nextTwo(Position position){ - List<Position> list = new ArrayList<>(); - if(position.row>0) list.add(new Position(position.row-2, position.col)); - if(position.col>0) list.add(new Position(position.row, position.col-2)); - if(position.row<rowCount-1) list.add(new Position(position.row+2, position.col)); - if(position.col<colCount-1) list.add(new Position(position.row, position.col+2)); - return list; - }*/ - - private Position aStepTowardFire(Position position){ - Queue<Position> toVisit = new LinkedList<>(); - Set<Position> seen = new HashSet<>(); - HashMap<Position,Position> firstMove = new HashMap<>(); - toVisit.addAll(next(position)); - for(Position initialMove : toVisit) - firstMove.put(initialMove,initialMove); - while(!toVisit.isEmpty()){ - Position current = toVisit.poll(); - if(fires.contains(current)) - return firstMove.get(current); - for(Position adjacent : next(current)){ - if(seen.contains(adjacent)) continue; - toVisit.add(adjacent); - seen.add(adjacent); - firstMove.put(adjacent, firstMove.get(current)); - } - } - return position; - } - - /* private Position tStepTowardFire(Position position){ - Queue<Position> toVisit = new LinkedList<>(); - Set<Position> seen = new HashSet<>(); - HashMap<Position,Position> firstMove = new HashMap<>(); - toVisit.addAll(nextTwo(position)); - for(Position initialMove : toVisit) - firstMove.put(initialMove,initialMove); - while(!toVisit.isEmpty()){ - Position current = toVisit.poll(); - if(fires.contains(current)) - return firstMove.get(current); - for(Position adjacent : next(current)){ - if(seen.contains(adjacent)) continue; - toVisit.add(adjacent); - seen.add(adjacent); - firstMove.put(adjacent, firstMove.get(current)); - } - } - return position; - }*/ - - -} \ No newline at end of file diff --git a/src/main/java/AntiFire.java b/src/main/java/fightfire/AntiFire.java similarity index 83% rename from src/main/java/AntiFire.java rename to src/main/java/fightfire/AntiFire.java index c42dd1c..92f06c5 100644 --- a/src/main/java/AntiFire.java +++ b/src/main/java/fightfire/AntiFire.java @@ -1,12 +1,17 @@ +package fightfire; + import java.util.HashSet; import java.util.List; import java.util.Set; +import grid.Grid; + public abstract class AntiFire { Set<Position> fires = new HashSet<>(); Grid grid; int colCount, rowCount; + public abstract void initiali(int number); public abstract void activation(); public abstract Position activateFighter(Position position); @@ -17,7 +22,7 @@ public abstract class AntiFire { public void extinguish(Position position){ fires.remove(position); - grid.paint(position.row, position.col); + grid.paint(position.row(), position.col()); } public Position randomPosition() { return new Position((int) (Math.random()*rowCount), (int) (Math.random()*colCount)); diff --git a/src/main/java/fightfire/Clouds.java b/src/main/java/fightfire/Clouds.java new file mode 100644 index 0000000..dd6eebf --- /dev/null +++ b/src/main/java/fightfire/Clouds.java @@ -0,0 +1,57 @@ +package fightfire; + +import fightfire.AntiFire; + +import java.util.*; + +public class Clouds extends AntiFire { + List<Position> ccNewPositions; + List<Position> clouds = new ArrayList<>(); + + @Override + public void initiali(int number) { + for(int index=0; index<number;index++) + clouds.add(randomPosition()); + + } + + @Override + public void activation() { + ccNewPositions = new ArrayList<>(); + for(Position cc : clouds){ + Position newPosition = activateFighter(cc); + grid.paint(cc.row(), cc.row()); + grid.paintMF(newPosition.row(), newPosition.col()); + ccNewPositions.add(newPosition); + } + clouds = ccNewPositions; + + } + + @Override + public Position activateFighter(Position position) { + Position randomPosition = moveTowardFire(position); + //next(position).get((int) (Math.random()*next(position).size())); + List<Position> nextFires = next(randomPosition).stream().filter(fires::contains).toList(); + extinguish(randomPosition); + for (Position fire : nextFires) + extinguish(fire); + return randomPosition; + } + + @Override + public List<Position> next(Position position) { + List<Position> list = new ArrayList<>(); + if(position.row()>0) list.add(new Position(position.row()-1, position.col())); + if(position.col()>0) list.add(new Position(position.row(), position.col()-1)); + if(position.row()<rowCount-1) list.add(new Position(position.row()+1, position.col())); + if(position.col()<colCount-1) list.add(new Position(position.row(), position.col()+1)); + return list; + } + + @Override + public Position moveTowardFire(Position position) { + return next(position).get((int) (Math.random()*next(position).size())); + } + +} diff --git a/src/main/java/fightfire/FireFigher.java b/src/main/java/fightfire/FireFigher.java new file mode 100644 index 0000000..345a62f --- /dev/null +++ b/src/main/java/fightfire/FireFigher.java @@ -0,0 +1,72 @@ +package fightfire; + +import fightfire.AntiFire; + +import java.util.*; + +public class FireFigher extends AntiFire { + List<Position>ffNewPositions= new ArrayList<>(); + List<Position>firefighters=new ArrayList<>(); + @Override + public void initiali(int number) { + for(int index=0; index<number;index++) + firefighters.add(randomPosition()); + + } + + @Override + public void activation() { + ffNewPositions = new ArrayList<>(); + for(Position ff : firefighters){ + Position newPosition = activateFighter(ff); + grid.paint(ff.row(),ff.col()); + grid.paintFF(newPosition.row(), newPosition.col()); + ffNewPositions.add(newPosition); + } + + } + + @Override + public Position activateFighter(Position position) { + Position randomPosition = moveTowardFire(position); + //next(position).get((int) (Math.random()*next(position).size())); + List<Position> nextFires = next(randomPosition).stream().filter(fires::contains).toList(); + extinguish(randomPosition); + for (Position fire : nextFires) + extinguish(fire); + return randomPosition; + } + + + @Override + public List<Position> next(Position position) { + List<Position> list = new ArrayList<>(); + if(position.row()>0) list.add(new Position(position.row()-1, position.col())); + if(position.col()>0) list.add(new Position(position.row(), position.col()-1)); + if(position.row()<rowCount-1) list.add(new Position(position.row()+1, position.col())); + if(position.col()<colCount-1) list.add(new Position(position.row(), position.col()+1)); + return list; + } + + @Override + public Position moveTowardFire(Position position) { + Queue<Position> toVisit = new LinkedList<>(); + Set<Position> seen = new HashSet<>(); + HashMap<Position, Position> firstMove = new HashMap<>(); + toVisit.addAll(next(position)); + for(Position initialMove : toVisit) + firstMove.put(initialMove,initialMove); + while(!toVisit.isEmpty()){ + Position current = toVisit.poll(); + if(fires.contains(current)) + return firstMove.get(current); + for(Position adjacent : next(current)){ + if(seen.contains(adjacent)) continue; + toVisit.add(adjacent); + seen.add(adjacent); + firstMove.put(adjacent, firstMove.get(current)); + } + } + return position; + } +} diff --git a/src/main/java/MotoFighter.java b/src/main/java/fightfire/MotoFighter.java similarity index 92% rename from src/main/java/MotoFighter.java rename to src/main/java/fightfire/MotoFighter.java index c3d9186..903da11 100644 --- a/src/main/java/MotoFighter.java +++ b/src/main/java/fightfire/MotoFighter.java @@ -1,3 +1,7 @@ +package fightfire; + +import fightfire.AntiFire; + import java.util.*; public class MotoFighter extends AntiFire { @@ -5,6 +9,11 @@ public class MotoFighter extends AntiFire { List<Position> motofighter = new ArrayList<>(); + @Override + public void initiali(int number) { + for(int index=0; index<number;index++) + motofighter.add(randomPosition()); + } @Override public void activation() { diff --git a/src/main/java/Grid.java b/src/main/java/grid/Grid.java similarity index 90% rename from src/main/java/Grid.java rename to src/main/java/grid/Grid.java index 0c52228..187212a 100644 --- a/src/main/java/Grid.java +++ b/src/main/java/grid/Grid.java @@ -1,11 +1,17 @@ +package grid; + import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; import javafx.scene.input.MouseEvent; import javafx.scene.paint.Color; +import model.Model; public class Grid extends Canvas{ - int width, height, colCount, rowCount; - Model model; + int width; + int height; + public int colCount; + public int rowCount; + public Model model; public Grid(int width, int height, int colCount, int rowCount) { @@ -17,7 +23,7 @@ public class Grid extends Canvas{ setFocusTraversable(true); setOnMousePressed(this::mousePressed); model = new Model(this); - model.initialisation(3,1,2,1); + model.initialisation(3,1,2,2); } public void restart(MouseEvent mouseEvent){ @@ -34,7 +40,7 @@ public class Grid extends Canvas{ model.click((int)x*rowCount/height,(int)y*colCount/width);*/ } - void repaint(){ + public void repaint(){ for(int col=0; col<colCount; col++) getGraphicsContext2D().strokeLine(0, col*width/colCount,height, col*width/colCount); for(int row=0; row<rowCount;row++) @@ -42,7 +48,7 @@ public class Grid extends Canvas{ } - void paint(int row, int col){ + public void paint(int row, int col){ getGraphicsContext2D().setFill(Color.WHITE); getGraphicsContext2D().fillRect(row*height/rowCount,col*width/colCount,height/rowCount,width/colCount); } diff --git a/src/main/java/model/Fire.java b/src/main/java/model/Fire.java new file mode 100644 index 0000000..9a72bd6 --- /dev/null +++ b/src/main/java/model/Fire.java @@ -0,0 +1,48 @@ +package model; + +import grid.Grid; +import position.Position; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +public class Fire { + int step =0; + Grid grid; + int rowCount,colCount; + + Set<Position> fires = new HashSet<>(); + + public void initiali(int fireNumber){ + for(int index=0; index<fireNumber;index++) + fires.add(new Position((int) (Math.random()*rowCount), (int) (Math.random()*colCount)));} + + public void activation() { + if(step%2==0){ + List<Position> newFires = new ArrayList<>(); + for(Position fire : fires){ + newFires.addAll(activateFire(fire)); + } + for(Position newFire : newFires) + grid.paintFire(newFire.row(), newFire.col()); + + fires.addAll(newFires);} + step++; + } + private List<Position> activateFire(Position position) { + return next(position); + } + + private List<Position> next(Position position){ + List<Position> list = new ArrayList<>(); + if(position.row()>0) list.add(new Position(position.row()-1, position.col())); + if(position.col()>0) list.add(new Position(position.row(), position.col()-1)); + if(position.row()<rowCount-1) list.add(new Position(position.row()+1, position.col())); + if(position.col()<colCount-1) list.add(new Position(position.row(), position.col()+1)); + return list; + } + + +} \ No newline at end of file diff --git a/src/main/java/model/Model.java b/src/main/java/model/Model.java new file mode 100644 index 0000000..454700d --- /dev/null +++ b/src/main/java/model/Model.java @@ -0,0 +1,218 @@ +package model; + +import fightfire.Clouds; +import fightfire.FireFigher; +import fightfire.MotoFighter; +import grid.Grid; + +import model.Model; +import position.Position; + +import java.util.*; + + +public class Model { + Grid grid; + int colCount, rowCount; + MotoFighter motoFighter =new MotoFighter(); + + FireFigher fireFigher = new FireFigher(); + Clouds clouds=new Clouds(); + + List<Position> firefighters = new ArrayList<>(); + Fire fires = new Fire(); + + List<Position> ffNewPositions; + List<Position> cNewPositions; + + + int step = 0; + + public Model(Grid grid) { + this.grid = grid; + colCount = grid.colCount; + rowCount = grid.rowCount; + } + + + public void initialisation(int fireNumber, int fireFighterNumber,int cloudNumber,int motoFighterNumber){ + + fires.initiali(fireNumber); + fireFigher.initiali(fireFighterNumber); + clouds.initiali(cloudNumber); + motoFighter.initiali(motoFighterNumber); + + + + /*for(int index=0; index<fireFighterNumber;index++) + firefighters.add(randomPosition()); + for(int index=0; index<cloudNumber;index++) + clouds.add(randomPosition());*/ + + } + + /*private position.Position randomPosition() { + return new position.Position((int) (Math.random()*rowCount), (int) (Math.random()*colCount)); + }*/ + + + + + public void activation(){ + + + + /* + ffNewPositions = new ArrayList<>(); + for(position.Position ff : firefighters){ + position.Position newPosition = activateFirefighter(ff); + grid.paint(ff.row(),ff.col()); + grid.paintFF(newPosition.row(), newPosition.col()); + ffNewPositions.add(newPosition); + } + firefighters = ffNewPositions; + */ + + fireFigher.activation(); + + /* cNewPositions = new ArrayList<>(); + + for(position.Position cc : clouds){ + position.Position newPosition = activeCloud(cc); + grid.paint(cc.row(),cc.col()); + grid.paintCC(newPosition.row(), newPosition.col()); + cNewPositions.add(newPosition); + } + + clouds = cNewPositions; + + */ + clouds.activation(); + + /* for(position.Position mF : motofighter){ + position.Position newPosition = motoFighter.activateFighter(mF); + grid.paint(mF.row,mF.col); + grid.paintMF(newPosition.row, newPosition.col); + mfNewPositions.add(newPosition); + }*/ + + motoFighter.activation(); + + + + /* if(step%2==0){ + List<position.Position> newFires = new ArrayList<>(); + for(position.Position fire : fires){ + newFires.addAll(activateFire(fire)); + } + for(position.Position newFire : newFires) + grid.paintFire(newFire.row(), newFire.col()); + + fires.addAll(newFires);} + step++;8*/ + fires.activation(); + + } + + /* private List<position.Position> activateFire(position.Position position) { + return next(position); + }*/ + + /* private position.Position activeCloud(position.Position position){ + position.Position randomPosition=next(position).get((int) (Math.random()*next(position).size())); + List<position.Position> nextFires = next(randomPosition).stream().filter(fires::contains).toList(); + extinguish(randomPosition); + for (position.Position fire : nextFires) + extinguish(fire); + return randomPosition; + + }*/ + + /* private position.Position activateMotofighter(position.Position position) { + position.Position randomPosition = tStepTowardFire(position); + //next(position).get((int) (Math.random()*next(position).size())); + List<position.Position> nextFires = next(randomPosition).stream().filter(fires::contains).toList(); + extinguish(randomPosition); + for (position.Position fire : nextFires) + extinguish(fire); + return randomPosition; + }*/ + + + + /* private position.Position activateFirefighter(position.Position position) { + position.Position randomPosition = aStepTowardFire(position); + //next(position).get((int) (Math.random()*next(position).size())); + List<position.Position> nextFires = next(randomPosition).stream().filter(fires::contains).toList(); + extinguish(randomPosition); + for (position.Position fire : nextFires) + extinguish(fire); + return randomPosition; + }*/ + + /* private void extinguish(position.Position position) { + fires.remove(position); + grid.paint(position.row(), position.col()); + }*/ +/* + private List<position.Position> next(position.Position position){ + List<position.Position> list = new ArrayList<>(); + if(position.row()>0) list.add(new position.Position(position.row()-1, position.col())); + if(position.col()>0) list.add(new position.Position(position.row(), position.col()-1)); + if(position.row()<rowCount-1) list.add(new position.Position(position.row()+1, position.col())); + if(position.col()<colCount-1) list.add(new position.Position(position.row(), position.col()+1)); + return list; + }*/ + /* private List<position.Position> nextTwo(position.Position position){ + List<position.Position> list = new ArrayList<>(); + if(position.row>0) list.add(new position.Position(position.row-2, position.col)); + if(position.col>0) list.add(new position.Position(position.row, position.col-2)); + if(position.row<rowCount-1) list.add(new position.Position(position.row+2, position.col)); + if(position.col<colCount-1) list.add(new position.Position(position.row, position.col+2)); + return list; + }*/ + + /* private position.Position aStepTowardFire(position.Position position){ + Queue<position.Position> toVisit = new LinkedList<>(); + Set<position.Position> seen = new HashSet<>(); + HashMap<position.Position,position.Position> firstMove = new HashMap<>(); + toVisit.addAll(next(position)); + for(position.Position initialMove : toVisit) + firstMove.put(initialMove,initialMove); + while(!toVisit.isEmpty()){ + position.Position current = toVisit.poll(); + if(fires.contains(current)) + return firstMove.get(current); + for(position.Position adjacent : next(current)){ + if(seen.contains(adjacent)) continue; + toVisit.add(adjacent); + seen.add(adjacent); + firstMove.put(adjacent, firstMove.get(current)); + } + } + + }*/ + + /* private position.Position tStepTowardFire(position.Position position){ + Queue<position.Position> toVisit = new LinkedList<>(); + Set<position.Position> seen = new HashSet<>(); + HashMap<position.Position,position.Position> firstMove = new HashMap<>(); + toVisit.addAll(nextTwo(position)); + for(position.Position initialMove : toVisit) + firstMove.put(initialMove,initialMove); + while(!toVisit.isEmpty()){ + position.Position current = toVisit.poll(); + if(fires.contains(current)) + return firstMove.get(current); + for(position.Position adjacent : next(current)){ + if(seen.contains(adjacent)) continue; + toVisit.add(adjacent); + seen.add(adjacent); + firstMove.put(adjacent, firstMove.get(current)); + } + } + return position; + }*/ + + +} \ No newline at end of file diff --git a/src/main/java/Position.java b/src/main/java/position/Position.java similarity index 70% rename from src/main/java/Position.java rename to src/main/java/position/Position.java index 47d44a1..8af853b 100644 --- a/src/main/java/Position.java +++ b/src/main/java/position/Position.java @@ -1,2 +1,4 @@ +package position; + public record Position(int row , int col) { } -- GitLab