OpaleV1b8/ 40755 0 0 0 7553047150 7577 5ustar 0 0 OpaleV1b8/tests/ 40755 0 0 0 7553047150 10741 5ustar 0 0 OpaleV1b8/tests/m2d/ 40755 0 0 0 7553047150 11423 5ustar 0 0 OpaleV1b8/tests/m2d/frame2d/ 40755 0 0 0 7553047150 12743 5ustar 0 0 OpaleV1b8/tests/m2d/pack2d/ 40755 0 0 0 7553047150 12567 5ustar 0 0 OpaleV1b8/tests/m2d/regression/ 40755 0 0 0 7553047150 13603 5ustar 0 0 OpaleV1b8/tests/m2d/pointvect/ 40755 0 0 0 7553047150 13436 5ustar 0 0 OpaleV1b8/tests/m2d/fonction/ 40755 0 0 0 7553047150 13242 5ustar 0 0 OpaleV1b8/tests/m2d/transform/ 40755 0 0 0 7553047150 13436 5ustar 0 0 OpaleV1b8/tests/m2d/marktype/ 40755 0 0 0 7553047150 13257 5ustar 0 0 OpaleV1b8/tests/m2d/polarf/ 40755 0 0 0 7553047150 12706 5ustar 0 0 OpaleV1b8/tests/m2d/data2d/ 40755 0 0 0 7553047150 12562 5ustar 0 0 OpaleV1b8/tests/m2d/line/ 40755 0 0 0 7553047150 12352 5ustar 0 0 OpaleV1b8/tests/m2d/conic/ 40755 0 0 0 7553047150 12516 5ustar 0 0 OpaleV1b8/tests/m2d/Transform2D/ 40755 0 0 0 7553047150 13564 5ustar 0 0 OpaleV1b8/tests/oul/ 40755 0 0 0 7553047150 11540 5ustar 0 0 OpaleV1b8/tests/oul/ode/ 40755 0 0 0 7553047150 12307 5ustar 0 0 OpaleV1b8/tests/oul/m2d/ 40755 0 0 0 7553047150 12222 5ustar 0 0 OpaleV1b8/tests/tools/ 40755 0 0 0 7553047150 12101 5ustar 0 0 OpaleV1b8/tests/tools/StreamReaderTest/ 40755 0 0 0 7553047150 15317 5ustar 0 0 OpaleV1b8/tests/tools/RWFile/ 40755 0 0 0 7553047150 13231 5ustar 0 0 OpaleV1b8/tests/ode/ 40755 0 0 0 7553047150 11510 5ustar 0 0 OpaleV1b8/tests/ode/Pendule/ 40755 0 0 0 7553047150 13104 5ustar 0 0 OpaleV1b8/tests/ode/Projectile/ 40755 0 0 0 7553047150 13610 5ustar 0 0 OpaleV1b8/tests/ode/PredateurProie/ 40755 0 0 0 7553047150 14442 5ustar 0 0 OpaleV1b8/tests/ode/ee1d/ 40755 0 0 0 7553047150 12326 5ustar 0 0 OpaleV1b8/tests/ode/ee2d/ 40755 0 0 0 7553047150 12327 5ustar 0 0 OpaleV1b8/tests/ode/VanDerPol/ 40755 0 0 0 7553047150 13342 5ustar 0 0 OpaleV1b8/tests/ode/StandardControl/ 40755 0 0 0 7553047150 14611 5ustar 0 0 OpaleV1b8/tests/ode/Volterra/ 40755 0 0 0 7553047150 13306 5ustar 0 0 OpaleV1b8/tests/ode/file/ 40755 0 0 0 7553047150 12427 5ustar 0 0 OpaleV1b8/tests/ode/VanDerPol2/ 40755 0 0 0 7553047150 13424 5ustar 0 0 OpaleV1b8/tests/ode/Implicit/ 40755 0 0 0 7553047150 13262 5ustar 0 0 OpaleV1b8/tests/ode/Control/ 40755 0 0 0 7553047150 13130 5ustar 0 0 OpaleV1b8/tests/ode/Lorenz/ 40755 0 0 0 7553047150 12761 5ustar 0 0 OpaleV1b8/tests/mathtools/ 40755 0 0 0 7553047150 12753 5ustar 0 0 OpaleV1b8/tests/mathtools/Fixpoint/ 40755 0 0 0 7553047150 14553 5ustar 0 0 OpaleV1b8/tests/mathtools/bernstein/ 40755 0 0 0 7553047150 14744 5ustar 0 0 OpaleV1b8/tests/mathtools/root/ 40755 0 0 0 7553047150 13736 5ustar 0 0 OpaleV1b8/tests/mathtools/Function/ 40755 0 0 0 7553047150 14540 5ustar 0 0 OpaleV1b8/tests/mathtools/PBernstein/ 40755 0 0 0 7553047150 15024 5ustar 0 0 OpaleV1b8/tests/mathtools/sort/ 40755 0 0 0 7553047150 13742 5ustar 0 0 OpaleV1b8/tests/mathtools/Integration/ 40755 0 0 0 7553047150 15236 5ustar 0 0 OpaleV1b8/tests/matrix/ 40755 0 0 0 7553047150 12245 5ustar 0 0 OpaleV1b8/tests/matrix/Jacobi/ 40755 0 0 0 7553047150 13434 5ustar 0 0 OpaleV1b8/tests/matrix/FullLU/ 40755 0 0 0 7553047150 13410 5ustar 0 0 OpaleV1b8/tests/matrix/WriteMatrix/ 40755 0 0 0 7553047150 14524 5ustar 0 0 OpaleV1b8/tests/matrix/LUBand/ 40755 0 0 0 7553047150 13352 5ustar 0 0 OpaleV1b8/tests/matrix/SymCrout/ 40755 0 0 0 7553047150 14032 5ustar 0 0 OpaleV1b8/tests/matrix/SymChol/ 40755 0 0 0 7553047150 13623 5ustar 0 0 OpaleV1b8/tests/cst/ 40755 0 0 0 7553047150 11532 5ustar 0 0 OpaleV1b8/otests/ 40755 0 0 0 7553047150 11120 5ustar 0 0 OpaleV1b8/otests/ode/ 40755 0 0 0 7553047150 11667 5ustar 0 0 OpaleV1b8/otests/ode/file/ 40755 0 0 0 7553047150 12606 5ustar 0 0 OpaleV1b8/otests/ode/VanDerPol2/ 40755 0 0 0 7553047150 13603 5ustar 0 0 OpaleV1b8/otests/ode/ee1d/ 40755 0 0 0 7553047150 12505 5ustar 0 0 OpaleV1b8/otests/ode/Volterra/ 40755 0 0 0 7553047150 13465 5ustar 0 0 OpaleV1b8/otests/ode/PredateurProie/ 40755 0 0 0 7553047150 14621 5ustar 0 0 OpaleV1b8/otests/ode/ee2d/ 40755 0 0 0 7553047150 12506 5ustar 0 0 OpaleV1b8/otests/ode/VanDerPol/ 40755 0 0 0 7553047150 13521 5ustar 0 0 OpaleV1b8/otests/ode/Projectile/ 40755 0 0 0 7553047150 13767 5ustar 0 0 OpaleV1b8/otests/ode/Pendule/ 40755 0 0 0 7553047150 13263 5ustar 0 0 OpaleV1b8/otests/m2d/ 40755 0 0 0 7553047150 11602 5ustar 0 0 OpaleV1b8/otests/m2d/Transform/ 40755 0 0 0 7553047150 13555 5ustar 0 0 OpaleV1b8/otests/m2d/Marktype/ 40755 0 0 0 7553047150 13376 5ustar 0 0 OpaleV1b8/otests/m2d/Transform2D/ 40755 0 0 0 7553047150 13743 5ustar 0 0 OpaleV1b8/otests/m2d/Function/ 40755 0 0 0 7553047150 13367 5ustar 0 0 OpaleV1b8/otests/m2d/Fit/ 40755 0 0 0 7553047150 12324 5ustar 0 0 OpaleV1b8/otests/m2d/PointVect/ 40755 0 0 0 7553047150 13515 5ustar 0 0 OpaleV1b8/otests/m2d/Line/ 40755 0 0 0 7553047150 12471 5ustar 0 0 OpaleV1b8/otests/m2d/Conic/ 40755 0 0 0 7553047150 12635 5ustar 0 0 OpaleV1b8/otests/m2d/Frame2D/ 40755 0 0 0 7553047150 13022 5ustar 0 0 OpaleV1b8/otests/m2d/Pack2d/ 40755 0 0 0 7553047150 12706 5ustar 0 0 OpaleV1b8/otests/m2d/Data2d/ 40755 0 0 0 7553047150 12701 5ustar 0 0 OpaleV1b8/otests/m2d/Polarf/ 40755 0 0 0 7553047150 13025 5ustar 0 0 OpaleV1b8/otests/mathtools/ 40755 0 0 0 7553047150 13132 5ustar 0 0 OpaleV1b8/otests/mathtools/Integration/ 40755 0 0 0 7553047147 15423 5ustar 0 0 OpaleV1b8/otests/mathtools/InsertionSort/ 40755 0 0 0 7553047150 15754 5ustar 0 0 OpaleV1b8/otests/mathtools/Bisection/ 40755 0 0 0 7553047150 15051 5ustar 0 0 OpaleV1b8/otests/mathtools/Fixpoint/ 40755 0 0 0 7553047150 14732 5ustar 0 0 OpaleV1b8/otests/mathtools/Function/ 40755 0 0 0 7553047150 14717 5ustar 0 0 OpaleV1b8/otests/tools/ 40755 0 0 0 7553047150 12260 5ustar 0 0 OpaleV1b8/otests/tools/StreamReaderTest/ 40755 0 0 0 7553047150 15476 5ustar 0 0 OpaleV1b8/otests/tools/RWFile/ 40755 0 0 0 7553047150 13410 5ustar 0 0 OpaleV1b8/otests/matrix/ 40755 0 0 0 7553047150 12424 5ustar 0 0 OpaleV1b8/otests/matrix/FullLU/ 40755 0 0 0 7553047150 13567 5ustar 0 0 OpaleV1b8/otests/matrix/SymCrout/ 40755 0 0 0 7553047150 14211 5ustar 0 0 OpaleV1b8/otests/matrix/BandLU/ 40755 0 0 0 7553047150 13531 5ustar 0 0 OpaleV1b8/otests/matrix/SymChol/ 40755 0 0 0 7553047150 14002 5ustar 0 0 OpaleV1b8/otests/matrix/Jacobi/ 40755 0 0 0 7553047150 13613 5ustar 0 0 OpaleV1b8/utils/ 40755 0 0 0 7553047147 10745 5ustar 0 0 OpaleV1b8/utils/sh/ 40755 0 0 0 7553047150 11351 5ustar 0 0 OpaleV1b8/utils/dos/ 40755 0 0 0 7553047150 11524 5ustar 0 0 OpaleV1b8/opale_src.jar100644 0 0 1030546 7553047147 12440 0ustar 0 0 PK O- META-INF/PKO-META-INF/MANIFEST.MFMLK-. K-*ϳR03r.JM,IMuRp,HLHUp+ʙrrPKC65PK O-opale/PK yO- opale/cst/PK yO-opale/cst/chemistry/PK1-$opale/cst/chemistry/AllElements.java\]sƱ}2 .ʊ&))ERIY. ;$c^==l`}N83gzzNtSlWLDEdRDJ2 %k+C\؄Q"0V3T Xg[*$O"M\<}#8/ 朦}=>bzz a,E5h2)E>L}0\,Z )\I^U D!M.҇qqA\< Ȍ-hf_E+RتIr_N'W$.m^a"m E+B&M-D&ùLU P4-"ބ1q"c@qbo|CCoҌm>dpl'&y7=-P=0z=@)!"ْox==M`)N3a H=}Rp'VOehzZ@.z%y!G=˖=zmĞS0CϬ ̞S?ENl`"  uþ`"0p6| ^O Mi6vWOv.mɚpK}pzE}@%$`l-8)L"@U9}; ;8Es=E 1$Tǫ k' }'.^#}Zr\`Z}ϛ\`0Yn|=LmQiؽNf="@ a=`)ͷRO=ڛ4@ܛ zo0_zd@2Tпo}OTy4>S_(-ט R,4X( 7(Kwt{ ]D c%Z ̂hs0.>2=]a̅rq܆5urdHR1`e6p)-W1p)>KW /*ƕ\@ϯNTU=pQf+qWs ~f<|rpeu+p# W|# ӏ~T_ I!UE }_JMF?g tA|M63m1gUb<0ecZ3>fQeЄɘԴr&18\WK'0>uhO]&Ƨ1Ƨý̻L GzBsl'خ1J,~ŸlS}f+S}6Ʃ朋z'H񉑪1/ф Mjl.ƪ&0X5vV)VMUcp՚q1>|VbjqF0`fVd$i&d1+J0f31 1h5LmZMc|Ƹ՜ sc{A1t徍00v5FH!Ưfgȅ& xqtyP971bw/ư#cl|.nA0B0=!]a؅kߧ;5mlLdйmU>Pk(T{(uhFE( Pw5H, 4@) C7?48FZ!vh+˞iey1e9bgᎻ ^bsΆ&]W̜:1jeTO,` fcc]04i;Zf3@g kh6tСL;hV]8jĂ:kθCO 6slAO &pƱ`2f[lf5Rb{El8h3g̱?,  ozGY0]t 09QѴ3G64CBClnk lnԝ^l4pA7;4hLF`LFouEԪWݡ<0o4WG7G襶oY`\q3x`&^oh27MLG 6p}. &:|8f{IY{̦qh3fE>܍m|0Zsќf 6 05rV!qwbVfCCJvd 6\*FMD}aƢq`2y,o92y=iY}28|LL&".KDt⡪_/?4"dU{nL^sUaUI9o;*k*QSTgh o_߫yJ4`Ő?+._vSv4mG]޶Uz(kf]޴:TƼ ۦoUxӬ»fYR5Uٔww]mIhSݵ]_w-Ulݶv\RWF鶫,n[u5tӮKf]ܶU0w==/#uq왫'nupӮ*VYܶQ_W6Ͷhv m.mmmQֶ]mU̶Ͷ>iaYG\eMkJGbSڴ:ԶU6´hI۞vkׅmG]ڵж{v}Mq'i+9۞nefۨ$fڃ֥]"ʶ]WLja_'?QTF:<Z1mf@ jF?6W!fTѱ@]x=AؙT=*ڵiEhxZCi]eh[')}*jnNao_Jylߟ> x֍_[d2W=f o89f^^_7)w V&M[ejF^O Dmsr}E63t%'F߿/ҝ'C3`O)׺B-ݽ4T$'Jԯ'$U[yy('֡=wsz<eʢxCJQb:?#z6YVB $&jliٮDՋ׺S7/o]mFQ|PK@KVPK1- opale/cst/chemistry/Element.javaT[oF~(OR D⢣cvkVY_Ӈ>`2e<|& 00Giy#|. 1j.f>Lq {ńxD2*% $JElOgBBg܅ZYm>P-F%4P"&AcLȚr-J;T<)Y%EPIy} W" 9Pf s1QYTE> W2t_F?6tWCaIР2-%kLVES|Υd{XQ07 HXMwatxuj 6h T}a]Jr/5ژ]9(ONMh,Q,/h^*?VORk Wи8d5ZVa˪VOm>5{EۯLjFHc}zw9Oz}H G ;,Cw煮Pi᧋4yW uxq^_U_X/JZϩSRPKFV+PK1-opale/cst/dummy.javaSM0+ޱcUU-fH,D$đ@3+u{pMfP.U*W)J-*E PFh2yt I_*[ovȍpԭUpM-š> q#B?s+%YX9Ak![4^Byj ed*o"K[:XﱒBVIJzRY9 P+d Lew!|n IZGG[+dY3J w ë &iAسDd>Cc,>F>%nu|c_/P"dRfE[ϳJjX|g-BD6^Nph6Y줼Yi) I/v9PҎX 8IJ9hq0 w[m<'(:y C_ËG.J#3]dGUd_1UN8N_mъ\ʋK4u<ִ:~{3g2j~GˋI/l6e~PK bt]PK |O- opale/m2d/PK {O-opale/m2d/component2d/PK1-2opale/m2d/component2d/AffineTransform2DEditor.javaYoH ňDt$!) W^`/ky~3`*ѐٙ;wMxxB h.bho6 $%)eKz?⪖W`*VFq.ej<^ۃI|7܆ hFF2\xr . jb9HFzb'Y46 rs{cG.$Tkbo״YAucG Eг^ x.B2$9(R]s`4HZU;U|ۤy40>`AUM ԌE,{;i4^~@b4ȃv8d L` wӻlh8OiYgMٲxL<``͞8F Dh2Xk۰摖8V*`G?1%x>KgdyAswSt8g"na=|9^knDAir޿Bunv7u fVծ'8JUÚBhU;}Pm!Pfb74f~1JTSu@Q xwm ]~ญz5AC+/bg *"6./%t,6@`a m7QXcB"`Ju:7ޛ,\5ۈw =C"oehnH5b z((jLqJ_ޱ[y깴ۭs."y>e!>dՃ,鑥M"64[Ϊ3V4U6%&k΍Y<ͩ\5Қ4jR\lkR"k•VWV<>| r'd«.޴ lȷpʲ[ݣ+~kXT3NɲZ͛j\ڗC̤+~@=|8\7mm'鲭;}݉vKZ}a5SB,r9g֌Bu&R(CjY+SON.7%-$sje_ˌIWRdL Sf=/\(Lx ̚1wgXiB8پ^boj dz2k>c@ {|{9D @Y׽1} ~nIIa};`d|MΦU@"FZ7ue K#KIiI%e2eH+I)6^_9US__ l7%7FnQPVS\PͰ>zWz4k&zi!/,Xaڋ2Z^=卥V7,V>vMҨtQu7G ]b*BwRxnXz?0E֞>Λk/PK +PK1-%opale/m2d/component2d/AxisEditor.javaWmoHίD$izT$H{tZ%lcwyqO7~aCIrUKgٙٙYT^ESNO% qeBۓcMH#bffgXcJ/KfYU'CͼccE+;˔J%b+{"f-,!Vy˿TNO@mxd+[0-{rD'mܵWBn$jI*^Bu|]<8UbK[70I*AXBq[/MB85R鳐K*:U8x@fy@( {AFv7r ?sxCrrwŗwŷ\f~L܏0V3O)< fjK;A+&f:FѲx=XL[By8rYJS l aQץ%XC˥$KWqrn(_iotV7 :bŇz uc{5Ʋ/q#\*XsZS\77bSY=2p%13akHh\W\U՜9;r-(df(궐~#zxYij[j,&f̠<}'?5|ދ>fҎ ~?5VK ?)nt/!T65jͩ,fGڔC̤~g XfZQle&G}.iĮUgVi[5Z+`r.6Zùo 4+ɬTe(^_CjeS93t8UL+cz13ЪV~Nc"2&R2^ؓlE ̚Xo; sʇu!APt$Zj'ѿ7 ۗͬm׽<:Cjnt>P (z/jw%{SĝНyQHq l%!cl+3rc/K[CD ʏ0wF3R^gvf>$<1Hu}Zs,z^{1)C&%6DjbT8^s S_Ll-_-v93/UkXC2MvS[-yFOo*uKI>{Fn%UoO1ULm`\jhX2\fIb~BYpRTM&X'М(1_NZ98%Δ\.\]VWf6 .3rE3[} ƀ ¥-P$.^$ L956@f}0yy='7.&lD'J,W@ɸ2RAIytt0pz9\F79πaMѲg }BOk2a8z<mda }7qNk RipƑLb WaFa&1p};^6Kmp9<<|sxt/q6;uOA1KJЬfl)M(՜̓SCH"|Kk\j׷RrgMdjXt5z_i k줔h&7+ݲ9DZa$+bwnA$)w c|k4d&84u 5ww>GiѱR\kb-IX& "@QFKG`pFpdZFQ>y;I[',vis#t~"+_o:14,F.(/`l6 ;Ci)74VJܡ2_(49gՆ-??խ`-x_;ҍi!r!TpKO72 {F Oj$~$TcN*UP|ATh('Jtɷ^%{^UO{#3S2Weh|%4>\'pc>b>OrD=)hu븎eȦb&(~1v6X_}_fQ}ke+a8p$챒򿶧po^PUD/ZU^ Nva_ ^ 'Z?Ӱ0RYa@fPǣ1Ot.cpe$ ǃaq? ./*Me>Ը洿:NvC6 k v`+„st^ˉ,7eM+>P[md~ wn )ENHvͶ\x{zvaeՔf=wh)֟V7rlCr`+i y:sO*CE)hAޜەM`8팬!]'s1 C kI,E[caJyd% j:ɣ}N5Pz,Jj'F lͶ#Ld!Q>ЅwW"{fU";ۖΑ_I .uGʗqwBMߪA~<+u7ȮR.lU-TʯPKg, 7 PK1-"opale/m2d/component2d/Frame2D.javaX_oHƟ1@FZi K2 D4jzָ6[\UcHnF']*W\74 +2Xε;Ȓ5ƣZJa pJʮ~ȐnR ])؀ҝ˕߄vS#ilE:JCυFv+4va2E#<ҒJiV\,wzm@-1tw j2|c2Ha C;x˦L SV|r\%]@IN#:Bd (.2g*d_P6XJڊD[0G ."> gf>&.ە[Jb.JXdLva0'p4}fnn'Ѓqo2F & "v!=}Z֊26?3eڐq+AxrC6 ~,Jk9ĵ r-jIudiY!-&aЂ?fH1C"N3]7Xh_w:w?r4`}'J~"ŏ{`.']\ADvĜ\ 3ЍI9-f[O^=s $_˱\[{^#.?΃JCNWV+*Q%cPx ٪Ԏ@asլG6FoUKC]|-J}_,XX~?լW\ Gǹ˓E+'UO*EP%O^"fd3E?}mxo44XZHJcPN Q{sO2+Bӛ#閒hR"[L5& ?'"]2n4_1 X~8T=\6ޫNfG?.T7XO\ h_udPK-FPK1-&opale/m2d/component2d/JAxisEditor.javaWr))V68N٭%;oR4B ?Sy}=9{*7i믧Ggj ΠB j1b8u }`D В|၌PZ@\$'VE(b6}~ކa\GhDFqsJ sc1[kBALD'97/w0J얇<ƍֳ@x= E>xC[d[ +\eM8L 1Ȉ4&P8 ⥌е%R[0V|D`ҟ~Os_:qnp`($Tbѳ:޸U:,نc=.6G- k)zbMϑOL4e= ?Ôc8an'k"8o4!?wۭV[INF(L(Xj?;T^l%ĕ'gjF<"ΰgR_EVYU'Cͼ[ccE+;o)'gZļG"Vm*!Vyۿ^'WhL{W+^srl5`dv/2DzOg[>kdX7a.jՕsVUڰ׷PR#0zиQXfab 8>]Z1=dmâeHşm,EGVr\xKw@n3cQ)llӧϼkO,miONgC9OPM*L'Hwm3q=gɅY l^!0J'U^6~պ(^9f#UP:Ц |^9_D-N<Y }~}ш`sv{w`F|mS @"Y7uuk#/ YiDe2cY)6T9SVf lwwFnQP^S\H͈>z9z2k擹zi!,Xc5ڋI2@fV&lLEci4M(@BtnX}꣸9Cq 4G ]j*BwRxBXy'?0e֞>͛{PKZq^PK1-#opale/m2d/component2d/JFrame2D.javaXnbP> -+(V(EJZr\+r$Kqݥd5'z.83KR:vP-Pٙov}z \zsPbbL˩zYhX \%bW i*) "ٔ$2}n/,&t\"F*K ɂ(3FZhFe4F4҆ѩ TmAE4f- Z5)>ʦ Yz(CL 02,0 ^*BPO (iBmܯlMРRl:Gł+%77/TJ-]8)Bfp- fx?@x߻齛|](Z Prƒ2-!M ^b0yw> `Ի noF`X:ڹ;Gs,3B+dl~Eڐq BxrE: ).Jj r-XkIydqf}[0H |$!bRl|nke,s;ggg/^qka #L,e zjja#riF<:RZ,`P%V^"kiMWʙRUSKE#Nju=!meCz'V"k[G<^Z&;ӓ^7ٙGVy0.KbjzIZPHp㼐;{ʄ ;/>"ҏey$9Ks 'H|IdJ9J1?yF"rv='%05,H3hD%2D3B!} ޤ\. ̨\FK ZzCca[)0gp>b'ݾ'P=~k|&a[D<T/yg̵Nѧ=Z8 o }+*k(z/H4ԋDjY%5 WJRwAT;~D3h!w]ZXGj}8+~3 =O$dq ]xE:D=[ޖqWZHj@:)L% (jBpaM¤3?>z_GK }]-3~TW{ZC酬A@HM 9ajTcF~.Vĥɮ.>r_E HKvސ,tldN"{+P=Ә=WGGϬs>w/ͱyﴍxa3蠮r3pNGX Z+e>sXvmw#psrT ,{h~?}v7} EM`m54%Mu/4G4oL: "AWy>C,g;a̓=)Z`ZPVܥAe1^$M*wkrƷ\i"+_K{g/JsUo cw-ȉι9h^oc ґJ-Z> 6TvTlK\g S P^[p!ÅD qOmq'ʃ,mo#f XD*FMc\ u,tE晴]iUvGb B@nisLm[s-:'捎w>8j\;|<%oH*H >z8[7IsX~H.dKPKٔvPK1-.opale/m2d/component2d/JFrame2DKeyListener.javaTێH}W[ k.hFCqQ4ml+ʿ;hA.N r ҂HdJF*EzY( Bq  /i,dڀ u!%pD׭y0 FB]A5.Dgf1DT`0%d#!HGӾ6 PTf-Nm?phJ :^{XcXɄ2" 5m)m8c*3i§u5X2(^!{@q t͙A'FvSi0pkj Hj(5 _m6aL!dY+Iԙk;#|n&(%zX.vln0[m u-&e~^m!"t'KZ#4oKIr%*B&<G -UuM9OAfPi׃GN:gyuU_C aDB6 p{;;mG~pv'~][|F5e¹~_aR6&gz:v|,Ȋ+;ft16:7<_'&r"9 MX^kluuδo_3{^-"G8E4LtY늮|=H Bqt/sǷe_x&1WOd^%JX gvIW[k}.4Gx!׿ (GT>Ab6ЩO S 0c9:rL aW3Q2kQ~DԈ ? zC~ PK/YMrPK1-#opale/m2d/component2d/JPanel2D.javaVKsF>+ >WvThY,Ifbr+Y?s n% t xjFb< |hHH!,& #IAw<^-/୑2ְ XZԊQd.dV(m ] #XJ\.vOlb~׎.=є-D0kֈ2av#pC LXe~@*J`<Τji{3eN ^xFjC7h8-'m(wBcGM*d%o%".|"'׆jFzDK,2,5ڗ))TUAL ʷXW+;n3o'^'cgq(9Q2dU> Tu{fC)eӋE pi ,-iXly5H%gO7YӜ/N3r}%e2nnDj`?􊡷yp1M[|@9!v.TWpq5 l5SvsyJ#E^X*q9;T G 4/X>~~YV)}{mל%]RVsQ}wlAb3汻aX%*$ #+|v!T/rNTs?Hw? өC,|zi)=3Hg-5I2I N:Yp(:ᒲ8 YN.=P < Fmf=6 Y)-8S1v!NS_}ů6axT5.y}q\@vsԷ7Ӏ Q0:MPi!(ןAbNS 5K譏:S*ļʐ_WP}S'JKYDeltraXEZOelXL&\>@g-H<=_ZlP'J`PDֆ];ȋ|•S_V3'Лؗe z 5a￉}#v(6Kbo]/ڀې.8s7hD$Q,KD⨫{lw',r7̘fx\\Dκ~Uu=7sN#]:?й'"{A#^FOؾGݾ3\/ß~HU(جHo$Uۊ v.8S6UAl!BPbdV Fk~ GqchtѼR2o^MQKssHQ'-5m8i|cv9,!6b+˺͐ǽ=J;9eBB{YW R]LV'80QD*.ѣIx!ɜ)(%7O hZXVxhm);>2 0!`Zt1IqW X-B3 -,c `(y<ѵRyafF ^2ۣU/ylHZOu4~scN̙g?WLâ.@}4TF4ZPj}DM̦Û!oD+zPKKu\ PK1-2opale/m2d/component2d/RotationTransformEditor.javaW[oF~┇D\UբJɲ"*O4cyƀwsf0pl}h3;۸vYK . 'xE <4aIiwþ =`D3BВ|C#I9R@&, ӑq\ө@^o f!D4| A@X[<A}i9 LHB"̺B ̗Gsv#t t܇ifoɔ(Q @Ѿ#h\Fd0.B2&Ί Tо=>`6H\E+0*aD >&h? KMȃ;`mG^q4.<&b 4UBb<}VheÜ-9fb62𰐾/fkŵ"H*uaI.UE[wc8 Can) WZ*M6@h4~i\xQ/ԑ"sk5It3W&32ON5"÷0a+O)ƿ8-6]A4.bEeK#)'R)f3qEw=e][RTy4ܺeꒉؒlUkU+ VZќ98&~b[c^Ȕ&BlEBcTZWCš'b 7@N7 ew)1Պk-?|`e$*4YIxj,-ϛ˻9vbYRSRZ&8[, zo}EG,8K%c1QjcAC_]8 ߳~ V߭8ܼ|@r?)ۘ? tk=r軷.fGqG>ؘG༑OSh걮j\htL7ڕa%0+^)]ADt4. {0 =nkW68b4"==󼔾*|_X8wR ?Ŝȕ(0_Cވ^\qI7+F.bF\/lrG')O'BIy[\Bu06\e5f\wpw*z3v #TE)h{l{kt Vx}3u[Q;uaKaHjot2{_!(o&q5a3 E.;ş_mlۙ&˯?څ7PX;/:tX>h? B6 p|/WJKrozczEtn@(`lH̅ ,a;j ܁Yĸ}1p_yp ZfjϨbBA$YD K%{x؆)^C[J v#\fVWnT LOstR.bJx+P3F2?w7~A`8>P7@n uA~~<S5e\gDSxtxĄ(~x tX5X lL+e^/:lByɗLjG]o790rg;Y:\I[l6<9>tQ£#>E*Qzt$0i< .=90#|Ӟa)Hu|A(!LU-ى-5V+gL%L*قCZNÖ^ }sY}ԙ{͕ +Ll#"j JI[0a}_%o]HsZ>ƱϝYѱD[+ SWqJm5>^#[' `hp&C&ex*"-U.FS}GHAP@A&Xה cqy+8Ӗⱻߗ#s&|o̢U#~bJYK Vξ+7F*l~>yw'^N G bQDX Ϟ.Ϟvw؏K헒uRJghQR8Z>A kVհaՠNz^O8^Z''C&S,h4ɜ|~g|`|_7`-iGGBQՙVh"Cj]lk\&5g 쬪&j -$H)Z2dȓ7#O"gNo@2vȑƞD1fm& jPg0#P2>fUWK@T{q7N֠ V6wЉC 7?̽!Wr2#'JtWT+:-8+QĜbE),鞰&wZE-&V~xVo#x<{c?~=>>OtnzMRể;UXUω'GKM5OȉӎlIzL%/5~PmiԈ㎕HHC~X+vt<'_2%q_e<~7Z] NqFs A$Yf Fw;wځO_vRln kIQ@9X٥4?'il/Fxi][iN|G)؉n!ˏ<k#y:9x:ANDY`J -6K~| --6.J/ql684i_苪.or9ZGJ ?RN*W|]k:TWbNbtsqo Rptt؀ 4!t[f)_eR(:cPbu@Ra8z)1oy+ [yr1\q;??WHt_Sz5Snic܌EtO1ejE|%ΓRxvt$+k*^M*P hukQlڄ' ժ&bU;\ X"y UːG{#w"Ǚd;n1yc+blt/tC庝Ť]@I[9'kջj ʲty^\PBc,u\W@t~\}5SrxZZsTŘ(/٘`Ԏ 6NJm1vsV9I"茗1FLaNBt--Lv6kY}O9؊*Cx<~{o8i4}78C%ÌT@*qZ@gI~YE Sy@%T0\6\lwϴfP}{DK )gߛ"iHKn! ňǿub4#nlsL: P at$I`1j5 ={;6ڀG6#l)~ knT@ ԲY=!?K RIOX|ȯ0SۻAtڤ*4n|x~K6SD*Am̟X tv"qZ2jX#qV2f5l_iZNUv2- 7,uBC?gG:$nמ4)Fw5ZRX2o3_C:-I*]sw1+E?mR.Wdž}U;zxWNJ"E䖀N33O-dB{٢{[BWd*61}8`KJd9_Mx# M9Ʉ|TPKzU#(PK1-1opale/m2d/component2d/ScalingTransformEditor.javaW[oH~,+U]TiIJR*T fc5ijG,23Q:ѓ aGaHo~t1нX/8(o&qy03 !}ItiK~[)yUJ{`g*ˮG"15Wi<`iM,#+z|/7J_S+;Vih?Oh=7TE.rSY +RNZv^#<.[6UlIuщ ЧMeMe7U-|^4iӎQ]U) v G֗X+8}B2m,LPFG2|6IQ2Ӣ,JH %Cv wmӧ\ l.Y_*7"0nbqОUcfl}mhbZIՂu/PK7LPK1-5opale/m2d/component2d/TranslationTransformEditor.javaW[oH~,+U]Td d,md  >JN,FLHR"̺R ̗{pv#t t܇YfɔIn \K˨ \ h_Df/Y4f2tOa 1@Z!8iX':w3wmD*&ъ8(=KX3$ݏҹ?M&p=CF߽t0 0 XoMղOk&BE=`Z`+X <,f(yvqm D`iygKu03yIJ./uJh5ߚ'oT+0usgHBϋ It3W&s2O4"÷4a+(ƿ8- FOFyVK1K%fE39XIJ廞\2.oJTn2buDl\y*9a㪵SYiAxF?1/dJ+Z&HB摯5FC[%N :A "ŷ> >M%>34cGkV?{_NVFRa_C[ OW?X9eqzJO+%+t.4聟3XqaI<44QV j!VWTKp^_]8 ߳~)ߵ8&feulleTEkn*Tc}kg*aCay"5O<0{^gDt4no 0mdZ&H7g rg׭3O(bw,Ow)o3a1K)hb tY=t)dLΑK@%sXO608IHEC@rwo·@zFT<'1He<+%~~`9|3xqx{q|ӷG3!i9-3 xqp `iZ&c6KD9>ϚLhS K,?ҲngS(Gd0$lzE5䰈hщ!*#P?C[ vc1:>>jRBZ*czem."X0{s+2לcPBiM4gf1\ `sE$סj'{~C3yFlߔ:0akۄcW7=fc *3D1' jT, :Xƒ}٭Oӑa4pOaF@!$48NWrHBvT©Ӭf;8HIA%2HONzD:G46/&K"c8C*Ju f'0%jtN^DT DẌ́L /2;-Ȥ3o"Kt4z *B㺸m%>7$9TYUUMc}Jf {Re t"lAL^d^ȓ`U8}7 MSzSFlE^< AkJabzd<4VPy`O`JK2CqPzI ì׭+f+-/EȀmB2jZvl!zk+!7+Bzi0 5qǩO~HQEnQu; FcZSw+zy]z]ewU X#ASlh [l| Sx|2R6,@:87EpѶ`xL3ZiM=,mfC!б+Fc'x5u"%r;8}oR : vy }n ָ+GP\:EuـZ}&Y:19U74ЩVMm`gR7yy?aCcI Ob=Ył1p6 HN|3,%t-/+ܡK̜T9vS,nX;(Z NL4'ʯPEdʼn.{Z~a /wAVTpt1;ѦǑBSwǼ /4V#"T8Q[@1wwُĶ P@7 6Q4\7~:"BW䢳m;wa\^zgX#9JX(y[4Onp`D۴'" ,1h6.M%pV++y /-f3KTоre[7H\fm"'$0kI@"p2|?=ap;xr\(:щ,()m' ?_?\}%7oG#xw!zxyodVICJHfiPe`+cKtRhacNd+^])R*sN6X{J=!iU'Kugx2~A!&[ !*on&hbp[:3F!Ov,@ssZܳM }ب|).J7J-46sJKm~VS6jk /KQIY X!3#|mr;SF`N+OnYH9ȐY-q,,K5 ;iev]aATeJP`0_ߎwߣJkzC冨ê3,}UrJ۳ ZgJX /Ĺ 92z$f?koí/QVQVM IQz=wcwEk' vXsEىG_C)rJCӠl"ù;U S3"4s趡,#oՍi^OL; oMyVow;yjuNBJUyMZ~nnaKju^^F$vݿ1rWσ}ԕ4jߒӨ~ۏc+J,(1tܮ"Ѫ'ƻ6y/6jsF"4j9p܂\B&IYf5tbB&S@hwv9hn/NiyJpQ~Q[Kmh++HUDePfexuv҅tݧ%y32u9Ԯ~Lo9Dm^3q‘ Qʤ$_mA8|m(@'AWܠv}-tRٯόpE2?RZWD>ٶ[R84,̞6x)wqEQ!% `XG?5홤2 =:i44j2mvBw۳:0,.x{Ժ3AiСt-26tiEG?n?mAk7b,u  X/9q{\jFc.Gt<9F4bݍ >ޟR(Cզ2 %Z-BR1\{Z (AfqN]Z/kR*UqQ&U΁SNZ?y˽CtyC7bA$-Ny<^xeq%n,OTv~󗛍jtn%u_PrLLI_6n wJ\^ЭO} \m*u< &*˷e?n[gܜ :0Tpt7wORFۋ w2WwFW|mLw'ōPK?-n4PK1-opale/m2d/GAxis2D.javaWn9}C!/+eۭK,v 2,{'z)VSCR7 {lJ-_b^ֆeRUT֛czC%A6Stj2*eKCAJ\(XiV˕,Kn&2: KSmHۨغ,s[gM].D!t;_FJzm2Q945Y:I`҆u[ 44sKzWw4bBrR*$,-xdNPFu#nډ* / ᘂ!`ɦwT!/JaO7'DfP kU4r,V/û[_Mvf7XE*5_ ̈m5|>9"/cf|4Ounп뻛<%I]wlk3N21"mi&VϤZ Y޳ޯ=RS*Khmqf5P'tYfiBI>t] -Y۷~}vt޶At7׹qEZNȲsZFꖛbjsYdU}s Gy!F1N ft" 7'g',sLZǯBd{Ia߼xͫ*kBXx-(AZ։2~H3˟N6hko<>-.2sݳ~ hxGVr_YN9[/Pna;9EH1)?@5 j M3\jУV'xXG&>өE b"ڞ=wچuX¬EcqQ; ˩* j *٬pE8l:>[8S҇#v"\hBtACVSxmj'^ynM[GjHKMS\pF,fVZn\)E)X4|>Yhţ\C |!t_ ,wk*<Tll52I;CaP$ P3bѧ (k iبtri' B!'wI'|Oc [gދ8&D=Spfa{*T\L&=&vc:]!LvI'*?\ǶK=ɷ/FyUBU;{koxd.B +~WOK(,/&4RܲJX/I,>ٗUx`8Uh*Hu,3֡enig>F]ZqWܿG>o@GT}WrDxc'Co<?{4LBD'2 1- 헓'* j _ɢpHUӮaa>IÅG3w1+ҮGj~xGK3UW|nKH{i=+P^yɤ n8,ڞ69<Izy?C+3qb%BH5V7g=wjD{YZ[@lҪannx6xgpd3jxxWڍ68;c(E2ӯD<- $DL͌^W;:RWqMvwӈn bx`N_PKh&PK1-opale/m2d/GObject2D.javaUn8}MWXu.5Ć#-,ʤJRv~pbPr`ӇX"gϜ9tf'E>luJ^;TMӄ&ViCJV2qi+lG ֖rH؇ 3Mb|I^o@JLwU*pƑsLa`kJ!^ׁIut~ nᑦ=ذy.u*SLS%ևx+T-G 5;vK4HZA G(T@S\ D{]f=uӗqE'2Z,F!Ca&6Pz[Ȩ).7g>MՓTp;Y=,t;[Јj2~4\g˛h|:J߅l-8(]z `YfT)8*JaҚM9']s26th4|,0VwhbҤC?F+fLR{d}Qo~!z\^&.iə{^"n`$~Vĺг ( 6oaX_Ʃm;ZTڜjty5&|1ΰ7NtR_jmPVWWgksB1؋ N~UoA4:-օ7p3εіQPFRS9n\}ũ\ ˫Ei8h\("ыf8^pW;>Q'w $~l2OcXպ_]Z(9%fl..Y|;x^P1ך__,/ڇ ^^5PKTPK1-opale/m2d/GPoint2D.javaVmoG _9ljQbZ q`5Q2>nwfgyIN`2\4 S+W2X.i.G@"d k%bDXed7H2UTl`4 UVhXh ;=$1H<+7-6tFWZ{!)hȳ"HKF]A"*AN 2K4F&|ː/eA2~i6p e^B EJ[Ԇ^A/8+]v)hP[]bA*8F@jʈچ\{ǰD .h3܎&7 \`6\/nޕLXgbEj gd2x7/xq}>dfr0l:s*.zhΖDQ<#BƆݑ҆PlI0 )J׎5TkIyd:aЁ~RIy޼9;e,^9f>s,JC.6fv #J$2. O--"Ȕ—8dTK˴ZkUJY"'ᴦʎkL)Yny~3~k/E&v*Hd G_[H^5''G2X`1 LLm=sr u#d\2e\NH{J^:c7>L1%C> LndO{gأU|b(Q3&,5`rŐoOJimN21 އnwLP!zQ-v-KN-#ҁ^"0GhoID=.u0Tj[Ejj~? R X8N"qG/ɩhBPSuh0D5?q;euz'+j 5cg{R:))l'#g(D*耟Z3޲|*MSh|4FVԝ(X!zJvfᖆN-aVxQT+Quj)Oie ڌ~d녅6d-7VI̩Cטb uF~HWf޾՚V5ۖkV8i/ӱVa`UtmZW<͓H,\S+HlwYxlxbrvyLڃ]JmSg1!_Yn(`>"0du4ċsi[`+Hd,uP")v'X]bO% .*(\ԲLIP)#G(l֘%gm^|B+5CMhuX9c5x4,nt5 =UR2e:~ϩdmp~1WnK(p f?rbr\KaZubዬ{^gWƏO]QךeI PK'PK1-opale/m2d/GVector2D.javaXr|3fT*NjX%a x'lFٖN]s)nI{3d>!p\JIP(d*Rjf)(OBihp3RZ \%2 B^([H|qJ6$Rf>XR 拌]]p%bI7F竒i({Fv9"!#Ch6jgTaGVԡ 0e,Sґ}LSD8>g XzDJ+& Ҭʤt5#ptI*[kiR?*\Ewxz>Y>q|H2XBT~-tG=4쑋Uu1 ^&?,gcU(OPRM(-/[Xވ_ξk V++r/|#,v;¹uyRqV5, _+]3%,<PK\PK1-opale/m2d/ILegend.javaTn"G}+-EE,Kl/k`3tO{hc=5r67Ka9.]l>ޒ(mkj|$*;e$":xU8Nq36Γp $f쪽yb|I~HJ{xiU lj7ĝ|C{WS,y΀L:"as^J^޵2"24?i!-{kSm`R*y hoH!b&}+&S#d˅"$1(;E&YnFКMW p>OVg+=c׿06LS"dcK*nqaI *o5'Cd<`? :] w6r6|9R72)ؙ6 lǞR`{+PKrKPK1-%opale/m2d/ImpossibleAddException.javaTn@}b"UUKJ$Ey\x(I»3gΜ3n;6t ʃ/r%A d`z;0 J lМ,dEm+ ҏtr@ ؇8gdS"^oJh[g*Ɖ"xp8A 3Bv* T0ZTC҃͛ۇ5L{ET+S%xC_`Ia*#O[3TtTߢtwr.Vj҂2n fwJkHjy; A8Y+H1Y,ӐCaL<@Ҋ3'LwF/Fw\Owp3Y=K- yXMFiz1-1$t#gZ RZ3 ?RgP-Ֆ8 4H禶ftM9A`l)`aޭȸ_ I3] py#ޠ_/{_co<[:x3JmM.)$@-..H> ws߆?oaZXiHL\AjzL< ۫ Sä?.)L*!D{Jq#%gNr!U$ U,X;t4FR2)mV O/"~"RFy%eFH`H+'2ȩr[d'q|{ 2פ_&ObP*qꜝhAEqPQ KOhQ/>"m*1]P߈pdD@T1=)WEh0Z4U< sTF? m7Ki܁^\ [eV qbGS,EϭȍȚ!i$U;/b۾_Jԫ$#W& ďKj xyr::9U:NBTKk7xE/uQ{T1g>BHcJ݆QqT66횠)nZ OO%^hoO%{9V"5k|,Ѷ˽mFKPÔ\$hi"|(m};i}s-{q$ȍZB*3GUiWed|A;|T>WWO}/\ӵ, ]L-' eVHXdD;xP ]j:;%ϥ)D'qmϫx.9:|;<܍`3õT$4T2.02z7wN!lgbJyw_pfp=\n.cO?p|vn!%3V`}@ L"DC((D"h&::qf)2m{`qf5PhA~'Ip&6!b;.YWG=z ˒DG'/_~oY̊%JD֨UH[,sLww\TR%D{Hm,}sDպW!x![⿇ϟMH D 7JdFje{p4[v!+BlY}B`*C$H^ 'ehOtv 0ܢu!9cLK0ym?5ZJ:]U[Z@%F2V6#6TQAB}A. 5I $ɒ x;r"HCA!gdj 0fIM ʖ!*O9D:h( J7Bq8\yQpCZUkph9F :G%Kvdo 2YIe:$ֲFK1p3ժMTeh:ArJ_~keh%ȅ Gݎ3Bg`N wV3!vLj3wY 2Os#PM{.}|`M' /v? 6: WxOU+_W>Y^f'gβ%~&E]&3KtTޮ"U.kq^t]TE p-pY7w vxZ~tfDazjF?M />MA6.ͲZE^񎯃L~F#)GρÒ:D&Eg~<$%qg ܯ*gϪ~)ôm}v9;] ]W"L{n+/p|x=kaLf^?ƛӧ6'tu."歪 ӛ&*@xz <^ ڇ1ኰkײ&~3| _3|E1 Iíg^S?9 IZ 30!qabxבּ.{:;%r"ǜ/<Қ*_6ĕ&\< NԹ=oj};Md1/;+pIIjzbSl7M|uo Yr*U$'ou筴,[VxH@b#a[4n# 5oDCN.z ztيg5/V3N}7_;ZWEhԖdlY%|ɉ?!N ZX=^: ¾nHj3r֑ 7Z_q#}z밼: #^‹+VWo"}?:;ѩk|lzcJ_}nVb[@{n?\y2OƘT~MD?WgjYl=慿(?[#ewZRkXWj^~lelhnm[AԄTZGk8eBP.[A*ܳ}%(sQi{|X\W qLk=$֙[`"fQ[JŦڧbN@HQҍUDKHG{{Wʵ+?$gsU?NQ%&@w2fqfm);X`A[yR-<E3{̭W(2G+g)6Qٹv\uVNvssGnm2g'9rqPKl C =PK1-opale/m2d/InfoPoint.javaWr#}]"J%mǖ2W֬P"jT^Z:ci /8U렧8}fNi0IyS%MP3VS'܊JIG~B) ;e\Jm ?*`4Y5}H\b|uuBgg4(ٲ& II£pVTr2ee:ֱfjbYQ.dgq{ t>,ZRi$`_Ȍ񆡌k(tca[sIR}<}).dKKv-xI$J kv&q7#D /l0 g4Tz9+uM@>&?'Խ{Ѩ{7yrXXE+S*/ex +`g ףM؃z<4&~wDp0NR6DGJq&%3A(Dh!OZES[3^cφKR326)Q/f6nSϤI&Ij" {wּ֦]=wgRy|SlbBMc0P~\UbݜiZd؎2/PSipvD^WoL "%<5*[o3R='sL:Gb./ˣCu.n?H!Z% R?e!ӟ$Pߦ6 2o;qеF,`*C9QZT{0:`2ɀdBZAYJ"/| ę8R3_N& B$W+ʪ,9LH[weUn+ #E e5RL<:2:AV'l}!_S/:lzIBU*kE.=nPORe58cx;H0JWw_J7zOp=75|3]F|x:!oM[:v^m 0FVXN3%c U Mx+M韕{], A2a׵?*yM-V(' #4} IJ%e 2Wޓ?P:~Ar`ks, <!.Ց? /"S"?b;O9Rs`W©,Ӷl.tm-ΜUYQҝ}DJ\߭{Zr+vˮnEkMM] ŠXZYé%Œ@gנ^N& :K[x<3ƹwc?q.|ɍ#|k'uf-\i3 Ma8J&e{9.&xr6=1ܷw/UcaȺ;x0#:lFMcömbFRYWGC8 0Jkk00c0{ʭj N+N&[S5dVB'vtNPG#tv+=ʊhCikpG^:]'1-S,)XI֛AUs߮Lp?IE>Z<y|/@Q̯GຉKUvOySD+_J}M֛:ol+aL}?X௯&XqB4KdctX[ ƹ蠎)PKA<2PK1-opale/m2d/InfoVector.javaVmOG a u/QT5V8-Qnlow{38Mk?g m$}gyfw'pa҂JLaV%8^wb!kivNi-!:6 Uغ T+# ch7mB!Ŧɂb@sfꙻ;"y6r9(`І:i>phb zWp9&h0* 1BʓvLW (p?%u}VpY&`@lyR3 'нhԽvh[hZ"d*I)3#"7:@&38Oz1 FЅaw4^_tG0 ^0F,>hVKrnҖPbT0 IHWMϚl6v@ ѮwFޭ3ٔ$ ' q0T"ڎ3veu lZjn⥴T:ySb\g"jh3gxz0#/Ȩ\R_j܈ 6 uDUX5u3I&1GsOSN6RR>JP<.LHrncMMGC(Hbi@OdQ A;쓋['.kBĩ-bgZPcD~30w9S0NIA3ht85!x9H{Fgנih*Ddn0DzPzɀ= =Rzs>Cey/Zz ?rWD]P*dXcI H/<5lk{5=53k;$ WxgoY8b</HE S5TEnFCD[20,dv?DV#e! XQw@1YJlw܉0¼d[%uZ0GGs25LԲxJD &LR@.t֔pk}m /(1ED ́i(PxQmoʪ7pY {40tZHP*A,)ҳBe uwt8vwv>,CyZe>A3|?0r9[oFlvJe&+S05r'/g Φ Up3]]Vp3_z:_.`y'/BӴLa"T?;e9vm&= ^qvZ'H] ´_ ym5N!A{8@&)Uq=z|>6<ۼOm90=ס= p$~Ȉs:Xq_b em #]sgx="//a~2 ֠$}M ꓞ Oz&Cx::Yl/}_ /ONgɍU g8<9PK`^ PK1-opale/m2d/LinLinCS.javaVnF}ü)RvP"k;2˰l|\+qS.%E5_쒊Z$@غpy̙ vK1 Mt,xnTĔb2OFӜfeHKd[&x1)3MS՚XHԐwԡ~F8*Y :u :USdP%KYN'`VbRNaJe 2ʞi >2\5ɩ8s5+~YN2[s\sb {SФr'6q H#q/8`o xZvPC|k`&jXTH-%], Ri`z?~;EDWW`JEk*1/2fdXn*n_|x N1h@.o.GhZh'sZv\Bτ&2m'Pi(Rx12HVL35lu= 1\J|ZgKs_jy/t͡ˌŨ/_}z#w^oeg񠝛(Җ"55 ) YYC <%uJ7Sa c׾X+m-϶&+Xqq`g#l4A"nwgc 3"*iNVItД[FU])>!|I%K>x^13q}ĝO5R޷$/J,Bj KBv>F|&f0xHa7  3[Gl_krR$Ԇ4S ^:DO@Tƒtqu gåHLz9[VswBl Sn'^eWę۫[J83!opu똺A9xv-F{v/R["{Ib[#A3TZ+g&jo zoFCFZEq|w J 15@Ƌf,)CPTJ\@I.%8Ue_XNAd W ^N7;^R[KJV1,r< 2jǸZ.p%,2"[.N_|4 NG˓ NSd8·S\M'I0Cv>hVKo҆P! a_5c\tur Ւtd:aЁ3I,B,g|RƲw{\͆Xit`]1-E"mᩅ^d؏L!V^pI]~V+-+`R+"ȩڰF;?>kL HGQږ+GdX*6"WW ],H݌/1TLA;iIsdGMϐX}VN,)fggb.Jf}vF:Jg/"`mӧ* rՀP.՚hvh;ѰOQ$A1j) Xj4w=M\0 ˎ3'iSXn ͢et]w),ĩߺhy݂VA#Uv\^ru8_dLWjJԀvhi;t~! t3.P"6~!TljU҆eRv9bgv=(qA/(lrГ.}&WWJ,MߛpPAC8PȦ` `ݞhMïlLUZxǍLp(1M砞p.fpBSmƬVomfJcN1 7z""nxd ͧ/_8K BњeHE[n=p?ԍ\ժo=ZLgEu' <<X-o*X{ztp&kT2:^g[c1 3jתa|71]~b&uI9w_ _x)-?PKT9PK1-opale/m2d/Matrix2D.javaVmo9Q>Ѕt#J$E rUpnYom/Ux7})=yx p3]@FD*6!Wpy1to4,a.YDF@W< ?"S#ea&xSkٜd|a~z~M"JI4^.gsrf]!"+1M aaؖ2 ɲ0n.okg< i$5!!^kxNTF98˸ \J|+-ԙȄ,m" Ky o2>()TYsv ;{.*S J,H 2FXl6ȝΆФQh7C7Oo/{C73`yhr]&e)1!7LDÛ2 aVoM c?mIt=cKm\DON "%pD[ZfSR_\edذ R}v|gC? bsn4 ﵈[?4s7L@1aU7'QbD~?tjЩ}sjx'MHhOP:žCN=inƲ2!JJ+)B@6fl;J+JWH;Kۍ%^ݢXu܊e闇ONEDs3vuw'CxVPߺr/TP:CG<4wzCxTU0E .eZ#`Ţg#TNE $zt }GԹ;,m Ӭ+bEAE\$*q0DR,Q#42N4H·1cpf p`(V#gPY#2^)2Ƕ+_nfYzaNmHIc=fW֚PtaeUUE^O0]1"\*&K|ЬA9f҄2ƄUpjjXI$d)UeswFm//OS BrtYQ~U70cحR4dž_SԫWTS"+c/$o?B WT"n5U% $nϦNU;wo{{.{{^m ]|;L]w>CWsPK<\ PK1-opale/m2d/OIJ.javaks6+$ӔL檺S7qRrc;M=9 -A6sHc|v bfڄv.[lȎOY1eGyf, R?]"=?9gl1 -38"N,q: or2`xŽ?y:5#H9gY)u\ρr\9gA Gq f<83`vjMϐ3 {}<0O4!6$i1KQ bHQ)LCs@7qI}슳""Oǯ fTL(dk)8<}(3{v|);yuzr|vh3vƹR4ԤR-9 t\svrfHfG$5Tz`84?㶝Lej̶7gtIgxxl,G'9cف.zmpeH&ϓoG΋_ڎkd/1QaH'@}K B MJ%i|K8ܟf١?VFO_s&t \'Ns9Bo[b [xRBLb #: n?So<6[)᯹8rT̈́aMPq<Nl0b1 !/CR H} vcsG3|0#dƶCy4V%㫷hQa]vl?DHAر1BY&e1BW! -w*j'5Չ˃yׇyѫC"}Pvm}L[Hr!IcÂ̱ʹB8 !hƉ%h#6R6MI>N_,ܳ8Nqݡ!A:撹-)yӕɣx n&'D}\ib^```2H35Q q>a;w3?WuАbIQŊH}W]͘AIoMNlՈm h$H1@4jJ %Ipl}K~F amݳa= fз C$$hr ca}3w#GNy*~>ow41pH[xEL"{&-+ ?HcPhuمr"RHLZ U VpefV)sGPՆlb+xM2LHRe$<# ht/IPt.Vh~q*/}X0؝.H ]Hׄ!(y>}w5Co5`k y2я#+ GxQF+.0jHVpF.j ,ޥy_.24CsL G^4~jGJ꺮CFH|( CtA$p1W|*/|~;tb8~(h1)TjxTgD b\3۱c}`bhF 7HFԖ90$MLJG1A EEz'v|єM#Hm7p)#,yK%ȒnPfp7ZhXm'E52x! r9&:kUNuUVL]ZU> LTo/Zt5\ ի`MtAor-Tڹ(zP֊PlRM4cJS[eW4`Ũ̱㦶J%&iwQT&dlbH&=uSmΩ9՜Sst<N6-ˉ$0^r48eՄ#&AC wӵӽt47sTkJfmrT'g-#}74ci q3)u%8cQTݧhh{]|TN9T4;5-xG׵EŏJ)&ik' }x\6}AYҠf-/oY}BmwaxõЮ v)ZQQBKgvg{# \el<@ MزllDg.7DnDf;fq*PdWܴ!/{N +Pb_Mpɪ lyW?[ 1.*_)͇p5QI_0Ny"s5X?\J~Wfs:۾OF~]edȞfdedoݶ]]adYeakyaQgZsW"7f2b6#&#Υ wV%^C%R 0nu^d:`w3_Ai<\[a*wWBvi+#SYnain kW 56ν:p;xyz킺fXtAK/ 'ƁFZ[J'P 1D|ev[? h2KK ;AWImlv1y~cQig&,?GM(+ Z.5KI┄.5j]nC gN*rH\650 tzȶl'k.V!6GPC,9^/$܇" b;v;fK_*y7~i7}܁K]HuI,5Oo͖w"H@sS^pK[fO Ǖ4;V쏭cˡ˼N@"{ A"Y_6F#"3ջ;yCC/QKr7h07k T'T;gMp̄E#!W뭽*NS~U\`#Dn~ ]i*qACh`5@XrR>&X)KK'vSNJ&`. c ҙ\<5ԮtT*1*'$ BhQJI>hg([yO):G0MIc:8%\F0,mNZ(rPz|vU|٠2+裓D)lIwַCu7 3ǖcMYBݸOū, */PK1>PK1-opale/m2d/OIJException.javaT]oJ}<&zyHJECU{vv$J>\!93z\ŋO4Ag:{ u~0%VVR:BNkGfTy:qLmur\Oo0XVKۜk៙#YxR&8*(edu ӁuPTg'9kip 5vX7F' <*99؟;ie ,3q[N@M#9GGs>Xk$() mrdO 6}>~Y=^/rMltQ̩2wA6[OpJyo|0lp\#*^o"^c[YlB7eZ z6^C>.M\OHGilyhXsE t҆>9 obu2x[b+vS -hnt;6kn2G:D{xC ,FLڜ"ҞELptMg{W9{px ILlTR5,5oy<ި, :nTCbNA0{Nk$FI SteR"IԶuP\x7N1F|<ش qEρ_w;?}?MmxxDxn+ο5q-roPK/_e=PK1-opale/m2d/Object2D.javaXmS9lg .^6ӕ<#c➖fl6I&[O=ݓw'eI̜R51¬)iEDgi!TF3-Rp$r%SĖKNTٺTl]9˵QiiOFx;J :5RSw'<)@QIR&]mXB'j`faIOO7t!'IW$U1K_XfVE; M^𜡌 (t설¾}%GG}/-CzɒmT_)⇍ !x0m0N)M$VN*pn㟇7c]~ur\cA b*heFdn sg>./l`||xM=]7kHޥ|]9eD:R (ӄb%X0 H-fjlzBjJv3 y8M;4C?>tݻ}=㣣GFt3m,^)wrBU̝[v5FXti3cxzaGep#C)O8޾3#EU`3'p}c9Qi1K*f¹qrK/b%"Nwwo1AR38zv>+6 5|ȥ |򋄊㳈~*e FG?t"T8%83 ^48(r {s|F򞯱OsyɅ|Tbݝ2jlIs&?*S9g[x)<aPNTW2%iJɚ)%V{wT NO0^} /n}İן_nFR/(f>Ec`Ǯ B| hveYI&ªWKJJoҨZ[L׌y gjP_P#<EuhŢIv[a,+HjWaB`n},}$n8,x1N呠 &|6?RP',ދd `*tY' UnQ!͞lؗƆgosA,y(_2Uʤ_Y."F(Q5kxxFP ~l鑭`g<bɌv/yppky^+%hI"<1ͺxݾM tj-xj,CbQ\LS<4-lj@8`!&6@ɹTidij>4},-]/Mf)CfqD~.@J~hЊچ XؿI`zФ6JXN=&Y aHD2H'|Zӎw3fypR{ ^IM=g![l/keaYHL4I[ Ko_,y|ǽqG-`  qL0r tbKL x>b^qEQ{Ku13۝\NaW+q#^Jc `xSgFA2Z@(Pi [HoF{,tZ_-dwU9BPj=Ԯ.CiUvϙhGבWyh-AM6 FWƆ`g<W=)ykjf"B ߩU3["~q) kA* ]t`k@ QUշ_&UwٱޯRu·)y!nxut^{>aX_ĵ/WuǢ7_ms>④T¿-^-E9d *Ðd4O48Vvp(Sh{>a*8=Zmz(<PKMglPK1-opale/m2d/Pack2D.javaUnI}flhK ql1"?63t(S=M"qSԍYBg4W=)"S@Ut(x*]*# @;6U0>t`񴲎Tq8A|.mypz ԾPORg1ZlH?W]r<(S9΁ L: `޳N6׫2'7w4fqw;VK3 Ϥ\.ev4-Ehq{5dFCgx8l:_DsccJDKl-sPxOG=X6jǨxz24:S^WTХ`[gy*uFEv寴`ijT+xKobaHt޿x~TtN{NbyI^ 6!zV# jsH[ = 20ҷ0K)iW:vjL8f*c w^mN-&D^TkhIޱ.4Gqg'Siwv`p(Ts"E.R. -v).?16]*9NfU~8x21Kʘuv`QEa7>Se_ߘZ> 1@Ծ=N+Z9F'BѠwq4EZ/F;o.2W~Nn-˅Qh3IzD[ch2C\|IJwXWu GگIZ_vgj+zM϶)VŌyW@3T$()YPdG~@q%9pk'?7oulw4ES-ޭrAlڢ?Fv 9}V.+jG@x<&:.dҢ=2hP},;*5^}xhinE/;/Z@G@ i^mK,:Ŷ9N+ Li=٥ >>wEVV˱,Ők/PKLPK1-opale/m2d/Pen2D.javaZ[s۶~gy9ER:sqV=6zP$$!,vH H;9u:#],=؃\W 9KR>!|,2 S'0AL gX`S:c5"V0$+G9L, ^W fp&rΰBH@I $;L,! ,Bɒ)bQWH0dTgA\\0%LqC!K@*ՌE04R&W0{&VA?,E8AJC @Wp 8lZ6C8c3X*6Y.@b- .G`8\ގ8 lE#Q|9JƑ I3ԝ$;E#ӛxs5\w!\ nN} 5uX@4ౢ # -2~:#}5cLg $"ua%9Q*vLb6v< }^nb:B͒|mυJ?<<f`+4bcP$buOI0q 9%8X$HO CyL&[H1< b E+X"ȎpFgIwoo_[o=t!S~JjW+Lu^{) /. 39@)(Xi| VBF<}`pr) da)w*wz^xBL pILCjxMx Y?$'Í1&ì,/`;J-P0؋o"+$n`JBdZF$ S(1VUqP!([#R菩\)o~c !G@G-nv9U 5GUl8]7r+p61%׃ C*Eg[l :ʃSb4R}! $u*%t+fjypqwG_(gtR%+z˜/*|ጥjciz_X E(CK.g!t+6Eiд\&eky+?RU m[u^([JG`Paq'ю"UzYiv/T bӎn֯X~{d-nפ< >&$ŋP6 t~g[Lo+P\/.pelQY)Xl6$Zʎb:rvLZn5o2NHx z@@uuTt(jnjC,AY.֢JŸ v D̞F :dz׳&@ FE 5$Ю E.qM 9PYc[!ԑ4>롎$r,~@bS~_/1CNwQn4գKܐr!|py NBgDh+J'gA2esb])pW?LŸiWtXSa.MZ.ȈDӴJF$ĥ|IcܢZQm(mְ;6[R/}j3jWj<0l7XuY)!x0k+*|CYPQzX(oɬQR"lV"eCw=$Z%ܴ!Wrz[$zNU-%~_r}IgŒcp!'BI2V5XBjT<w)l.enݜ֨/ƤXw̏…]x<X !'ĥBIK3QHЂEt>+:43xsD\ا7B# mQa]SSa*T/GWW>-sa m8{@JFi!{ņ@}O;o3ۼ.&Wڵ yq[5PRfT@Ϥ)FXuQ(}몈Zrvh^~ra4܆ '%e[zG>t6$&[}}gZX$[򹙴Bڼ6p~p?PKkE ,PK1-opale/m2d/Point2D.javaYmsHlW?a0pd9eH%~`f#$Y0-{zf8${4y[鵏M5ɔ\J=)B%ң@7h"77UJ+WP3FQWj)Czx(Hi%Y8U(TԼlYF IulfKܑrAiPOn"Ekܐs"k%H*\"_.23b)Rt#ވP$~7a*M)t)|gk2Pu< $$7"IEg ϲtPɖVT_~yA>xm ISXfb810{8Aˆ\ŁgHʀ9GF%x=NFt;/?܌dzMUzHׅ[V e)P>-ݍ=!7G1kQƙRC #աDTogfSCs:L@gn׃mkfUCQ݈6 W}od ObN)X*׋80.ܕ 2'J^4W0#Co!lR-_DQ(Tgrװ~[#J8?p3ۤw||Ʈ}dVg%n,܍Hoc^pmйHj82;(e0IA"*";]Cj2KxU[R!m Ξj΃¥GZ.:B4|L*N@l\wyɟoJ XĨU lS8D,<&j.;6b \\|`UVQ ڽv`:8+;oKNyЮsnf^TlŅ*bXte,O =%wo&vAbo mu14rcDuZvN%BBOEX6[ }7]Yz4Q}{A6)&tqjt^ G5<"7QZh*SbJ3#IՇ#/[pGɕtN]N]NVK= +/fR eH]fn~j(LQ*ajZÜ`4]*͜ =*\{dIP ^kN̘UzZ1ylkp{gq~4}L>·/P=D 7.<@2`g>@:tJ)Wta|ӬͰJA<"_%4D!'IKVdU9\sO^^@Sٶj6ɖZw:qnf-w"RM"&k5Y$G^a~XJ0 ^GlTBնAVBYuOW-qY[b?)*^Y܍JH< 8G64 ClFW˗4#D[eL-'z؝9h5f)IoX(a0Q%p_0 s7a^矩<A`TjΆӿ-O-}\˭SXȟ4̢"7Sے4diըKRs缋$5J?cBQ6zIoO=F7EKu9y+c l6>QNVkلfOGdѱ6dOXwX|EXW6V=es}WnƧF+w#N(J'/Z*iyWyentzgw2V_7u&-3)B6zҤ3\pu:ZD1L|zg ^{'dz4R!E5 Q%Tt,\THZGhkbyJVjnDk{V3+,Ub fw_P }EUS,_U7d2Tk&U,n 搇T_Q!W3+͏PKm PK1-opale/m2d/Transformable.javaTnI}G?#&ZEDLXA"qQc3];t{GQ}`M%Z!}SNM n`2MwpBUR [A%Z?L1P6F Hcn :[ҩ7&w BW 1pUn&)åŖr4Dof? L `QU#(O eXB<ڝՋ%9:{@OuRC t[{2?P{CT@Eu=ZG[Џ{MdK[x.)8*į_ToMAm }RykaVCe'G\aN`8~f\y>zozݷyr^xs>Cl/t FLT^nY{Eq&v535fc0Eroۚ&;?gdtZSAv}9junnZ*MnHfW@J(˰ACK ;V3@&0Uoq;5`SnU+_jGT!GX`J ykO<9Y] `-|dHViTFlyLx'3ÿz>ql:pQ%q"b%}~=04o~%:[$ߵ\fyC.ʤI] R#$˔cN{^/|is6i@qϷPK;qPK1-opale/m2d/Vector2D.javaXr ,}JMN;V^tskGi\J\zwIV}](ݛs&6Xjzq TEaCͅ'JӀ pu¹xQ D81XbZ28%\T. J- 'C8ay1t3  @P=zM9^ YD\1   DOpĵ,eqET2$d4),y H# qy:>`BG<SAψr{(tw衁Z/yЖ>Fq sda;7۟fna>Oo&Y-9+VQrFdKU듟d!8;xzsgk>]_nN]ƬJt]+%π)/%(e+ZgQ2z#̚1O54z@Bʕ"B?R|Ħ1:-C1=m{7oȥSћ>LȋHG6I,Je8] WKtXx|.ˆO-^9T_/1}*ϯrxuF|q2de/oڗ=t.Q=h ύcOJl&XA`B\fI5Q*r0vpzE\O=bi a6p%[vu8ъ''>jYGdґJA?U ~T[adx.(+^ b%t6Ȁ)'=<7>GJ䚎墥Z3`5+<1zl/Ƣ+Qȏ @}Mx$GCȋ J4O`<曌mE3 {28̾u84Q BVVj{-⯊g97$gMnr+x zTD.ZУ{}L4% b0BOOVb O} >df:]0: :}E zFXi\qtIYcdJv?TU$HuDgɇ.mзVpm gK8MW]fʝɖVEZyėV(vnx'^]>"R+uidw/l䙒mJ7LRX}4[fNh(ܮ袉RƻKGHRbNP'x~L#u o kCUv秤 ѻfS@Qwޝ(ZqPvfPdCM,T:*܋@#mMj.bS&p_%܊I+%*Kb!iMŧ囇ͫ_C7˘;j/msoqW>5>-N9XF9ejAw&80s6_GeQrdԢ 37ӄۅ܊#fw,ijebl<.5tVaAuKYhNMeKbsVdUu;Q0jܨn#ci_(8g;ļP c$7Y&40b)e.L^cdk$ob}h3&6sL<5&5n+5nֈiJ[9N1VWf:r5 /YEy*[$pHrO/-˜:1&t0iX ƀDNєOES;@^M,lƵ98\å")*zdM{Vpd%Xp̓zFP-B5={Pu I{ ,ns#)?P߯zY; a3SRjh:my!XdZQMѬ¼ +) |;3:$˜-;j-R ںJuYgh cYa~'jhuoAaSDW6m]Yu|[XNK/`+jA~ЩZ^l.3L lFazqfhܵ.`zo3/mP}>%rTel/Vf3NKhS[G^)[ڼXL066ᑱ6PKP_ APK |O-opale/m2d/marktype/PK1-#opale/m2d/marktype/CirclePoint.javaSMo@=׿8B &%RX#f=W:AwfA+lϼ73 #\c[('5^JBGd1 fޡvM!_)Qov(h3 fjުmq9x8c MkOIy5΍ciL EK3[b,)oZkVԧ@i/䱖}ZeW+/'(j&cF=.Zooi_' 8Z-pSęSS8<0>g|㜋Q +5ϐqa8DxqzꯢхLBڑ9ЍSj]/PKtPK1-$opale/m2d/marktype/ClassicPoint.javaSMo8=G@?bXe9"JIv`=X53o73pU.TxU* vV]S1[&XxZ{#t&t mZ$G1ڡ4/'\jWL)VЄGkW2Δ(,ЛR4T0UPB}vL9y|bIq(օGhda${-Et㙝 8aa2>]tZ>_E(Bzݷ.5_~wμsdE?ĞpʨER -"^ c NVK-<<̌jx^=5 $`TŠuF+d\^cgt%6^,EPK&PK1-$opale/m2d/marktype/DiamondPoint.javaSn0N(xM$#dVh3x%t6͟n|Yȧ7Y@Zd],NB%ֳֿ$/ra~3;혥*Q--s(xMef?5׼:ț?}0Vǘ"#rb{0Ƶq>d>p<ލ2};[tl]蹣5\o? &F⻗J4R@Ϭ} Xk|5+Uh/C/ѱօVoΙW_:OQԊ͸LaI dpB p+Ecty^<r~5Di<#=ECǧ":IH;➿}8.&(PKpPK1-opale/m2d/marktype/HLine.javaSnH Hs ǣ/`J?&[Ӟ{ EBe0rIKUk'm= r")o|[U0MP}eͧsœA*S[1I[[D@օO VFyn)<12vS5Dž=驿.Ey"iw9=&(PKFPK1-opale/m2d/marktype/HVLine.javaSnH<_QG`,,!@r$"ȿok/6{؃i{pE:P&R0z59Q+`kDBPЎm9*/s4XkX9$tRu[inܢ&>䉤 !ƇuןQ3 PKX2PK1-#opale/m2d/marktype/SquarePoint.javaSMoF =G@?h}6MXe,rK5ؑFQK HGn#bh_hjtN}[)[$F; dlǡP那ZQYbvӻ:xe پ;'5׸4#U8(G3 GZ8*m:prd4 Ncp[_^6X{7[ A/tA'(N>Jl#QZY[e~ܶ3O&K3e Zv9 ewA&% !mǣL1zOUobd|矗+U89ԖlJ7̓9Ն{gy*<Rd*o f- &}GZ#lKcYϒ+;KSV{b {QEnS3]tֆyBnuy[$1~9f̨]Bpw7 )0N&&w_:8l^{Njh /uoHBVF!n'm[G,_sOy+9՜Bm*NT;/k͗m>3?,SW#2i4} CGȺ!t;c(g93[޻@mѷK.V(:\gN@C&]h!nnf( PKYPK1-$opale/m2d/marktype/TriangleDown.javaSMoF =G@?h}6d 8aX8({afdG]/&@lH"9Mp"=@(R%x{t"ba-NN*ړq-OΙy(_C̸@j]{E\`<1o!EU3 |$ctʫ3ʴr"8?7$#[ڧ2T$$?PK*,PK1-$opale/m2d/marktype/TriangleLeft.javaSMoH =G@?ŢelpbÖQ8(kFQ%a6$|||\G|=| 98ztMA,4xJ7Ze"X(hGƶ 95uPM!m x8c*CxtkOIY=DtD {hvUG#;AnX q @yyϱGj1E1:ΩG_QM(|*H; -R[ֳ2?N{fi TjGxNzr^禱05׼:.c4QY`ޭ1m$kFXNnn1nh44 WdwڳusOxBh V# [jmĺг ( nXOy#k:UB s{w^֚/|8g^~Y<DQW%3qʽI d]p(9xo2~@rAoqa9DxqzꯢEHG˷j]?PKLIPK1-%opale/m2d/marktype/TriangleRight.javaTMoF =G@?h}6Mذe,rK5ؑFQKvC6d|{6-tsMMХa)ףk rX< V*# @A2Pt`(j  Hͽm{U V“]{N*qKGopTfm\5pT0ӻ.t:m^ޝh|j[?^X{vFR95Y$9dn ݤgvQ6Y9$to2ELptd|;t:w>_ *?RL5_pμx2V_՞pʨER+5-"^ ‡ NVFyi z ό1B풍 +j ![S]}D|t3G/PK<;PK1-"opale/m2d/marktype/TriangleUp.javaSMoH =G@?ŢelpbÖQ8(kFQ%a6$|\G|=| 98ztMA,4xJ7Ze#c[O :?0@0wVwWc[ev))ƹ~,-^9rQNo@Ё 넠.{vC W{ƌ#5E1:Lxh壯?թ[\˄Ce9&tXzuvT}  *?RL5_pμx2VjK8f"{ }KȺ!t=a(9u z O 8bgu©傚r_E?Hs ǣ/`J&[Ӟ{ EB``0JUk'm= r"嫏)o|[U0MP}eͻs ZU[)Iз4x B΍g!!PSx<32cd풅 j" !!EWy"iw}!o&(PKOPK1-opale/m2d/marktype/XPoint.javaSMo@=׿8B %RX#qc]kwTwfA+lϼ73 .#\bHWH^Vk+lNd1f ޡRcc oAI[R启dQorsmMq~}p8ƼpgMk zӡJfry\SʪcpdS_Vs#MϺE@dAC>J=6<[<O'S#e \0ib/ CqK6-V3%JaMU'42_H5],҇qɾ6eTidf {=0,0$4M04Y.q;_ E.j.|yK{Ioö4, \N;RŖ{(xMef?5c^t@VY{͟>cLux9fL]vjq>dާp<ތ2}=[tl]5\o? &F⻧J4RОYpA#5;S^KlhW^Zc k͗^3ǿT w!2q4~}KX*t9aB -3R=yҥ=CsFϧ4l,QZ;H?K!SS=GgEҾ?}zp]LQ3PKa9PK |O-opale/m2d/object2d/PK1-opale/m2d/object2d/Conic.javaXmo,"-Ӓá5|8c:ApVRڔKY!/+՛5ٝg^MG4_^IP(YZr51,)Si69r.s]AdgT:)ӆD\)m|JWK3KU3U" grjga9-uC(4V0j lk#+MQۻ'u [YJ$W U,kILitoؕ hp]T;sij,Y լbfmS͍fBX)'{zT3SUFO(BWDV$ޖh}SsYvF ~2?H!,LYzF icQA|b+ڬ}s7Vߡ\]Ҽ NAKr @TK A1T@t*HKJ.PhD/${}Dz6:9K#E*ns*_ij\XY5|޸V `NI.ۿ TC᪇lX=En{d::JKwxݚ0J% _2| :'nK]Dv efA2Pup©サbK^ r{J'.54~,(]a  *+U+2M KA_9=2j~ žPaxqC)WR4Gf (huV߭!\d1Y{﮾<Þ=@7ɺ\+9cK˄yLr*ridK2L'M0!F-iKLWZ}bET* bRO9+q wjYjSLxr le2<>% =r(@Ike~%xiyڜH〝A[DdF5M$WN=,k+X8/#tNq07q,.ZI9CsQ ąM?(8# -|sĉi 9V 5N6Vן+ fxօy5X+Pzð3p0t )Hk\ p% wT;tbF0vn ze{s2gUbⲴ١_aCxf_k`{NDpB>u`chqm]X"J8ċӟ(:;ڻ B[ | 9j0v{DX2+d8ԡS:1\v5EШĸ6LJTZbL}) 1 4g9 ;- Qu=DܾV dsnbpIK-oT]4B,e)&S}h,_ \U\ F?@! kD -2]]Yc!sp@&,c>%,_U AYKſW]#E7|M(!j$VpC?.+SMF5B鮸Ɋɫl}l]LnOݴRLS^q B7{unw?3R7fCʻ7u#Y=L䚯ۀ2V8oWῗZk&8ቻv֬[j}1Tǝh@\ǝDבuYw ;6jo;GP~~‡soby8PK5#21SPK1-opale/m2d/object2d/Data2D.javaZYsF~&EG1(R.TRIrlUCb(0`@v_scú601= n7aO LA: yq8(J&sȒK8}~~ÉJ!fa7EB bԄ?gQ c!%c*К1ex3Q`݃)8<"Z DZR1VL>"K@9p) ]!A,pӘQe^)OS{.Ql#Z}xr`)Li0^xL\ZQX T\$}!g\8{~gYvq"$)li"Ju@k㉘jdކQCYY!H oN~={}>Y4a(DΨdQvW\5ip|r.`/N^_#st-@<X?ktRFL،G< FHOf$5)qC8DHU;8IF~ж1n~"ʗݽ^wחUȋga=oRb1Qj]Al>fq徐7$*E k0dRTbp$Ff/eJnU]5;MvgF( |1|Gj/7чTvJ{iņdUg3g*ߑPiĬ6 $#IS&*(B{-Oq$ә] \@XĘxH5È[B$EW7WRM#454"@#ce9SL #`! _H[ 1#Ї39 7yug/k&4Jp;>'(Rp(h9BM`pzl~jo)@ ry'WQZH*6BT2Yp$1WD3ByfSf^l`z|g-T!mAI0:{p,_3l9 OPLN|AyB2JX1 $[%j5T<i|nR[VO%"ʊoTc=6jSφAq)G&aU' φB% 6+7\^K;/j9"Jξ4m[ǧZA/2sh܋s"A8(F} x,㹌XUlVX ش.W0k[m,WEm4dň;'݃T}-]@DW/{CcK*#Z)fX׀Gח洌ol#2~n{u/E{ YDP*,o KPX&c`NoTʕx'gF4UwB[.|!cQZo-]ShO:KixcnH2@ZGx`.t{U<ܭb_ћ8sJcCN)WI: LLQ%ZHՄе#O93elB6Bcҡ'xA^Q>4DBϢB:{b&tr8Erg-eR%fso% P@kgw&H! 4AZȷ]pܥdzl=A!Fbc`*αM檆CFe7py~wJTOzӥ&{Yv>7\8CeQU=QYTuAe}r@nG=Q^U?hVS~%s1ku  BIWVR5Gе]#vX}uK2Z,HƮqrW*2:8|4Sjuzng*ihˊ ;HˆڄR s%IjOU''X8&S=< ?Cw*RN./<մZQO$Q#6-6GZOweT|#IW2EtiY5T4G=iw7t9xէ=浒ʥBUvVҖa"G"U-e"Ll1u7a2uHw .W\kkB%mr[K49q+R ɚ}_!f.R`d\ŎJ4#X%~je0FcDyM}/kN&d8i庳}k;z {r;˴p%z[p&(1"ȋ;eK"woq#ΞqG1fLwFܘ- #Hx!6Z"s҅@|i*+«[51"l[y[j2NX @d/w5-0 bE^)*Je `qy3oV*(nA’rOͼj\AH}R<[a@d bTԺ@]T(`Ⱦa̢E/"iBD>(B53\mX¹Z7uj<"Z*=M Oy*-hA0 ߃g\ĵ[z,/Ɗ6O(9"TɷO\gW[])al$te|b=>ByiDϤatvB!g|f+Yff65a͊2"ӥgۤU#S!-RA&|o[~7=sOym]4>hԒ37dd-!a˟!mYCLO+a5 !O{@|@RyĊӐPAAȋ6g|Mj&tų)14t_3ntU.\~V}l\~8qAAk1A.A^=CXy ^3_>; ^9!}w= 4{q{MpËߔʠ)mR*[[gڅ3U;5=[|uw-մ˝7aUD,tP]uX$g-qowiz۵v5jD AʏQ^ٮ6(k;ׇ^WȷR](YߑZ{pkH7So+So[Z;3BjgYHSD jP,PK\Jϒ/PK1-opale/m2d/object2d/FPolar.javaY[o~&1"RW6mQdQ+K$0Β-3GՏQE93]$7m;3nvb|xv ʀ*Y5B/",Sk *i.as"ɹLL@kٲ"llhQ^,,tz?E! t^~ ϨXK &r˼PdeVx`k"摊4@Jc~yuΤ18JfR#rvPfF0PР&KxB\yV$G(x@*R`XIDАNJJW C-nh "< m$Q$0PIHbx{zśk8<o//ϯߍp8FtTZ$ )dZdvǗGoONߑ'WWprq 0>>=zsvx 7㋫JJѬm^)ВHZC6eL%Zh8Lm>faЇ?%L8!$_~9÷!`8~9 aS6B\4y#'`뽽#"JA^>䋤02T_ʜ+OȤ,_ ;Kh}mIÝl9lצ!ܢt? hF )QB17Y1AiU|z}BtowAGZjbwIFBy"bPAEY9!3h)!:wPb?A0ҰS+\G U8p2#4ȅYdi%;L#GR)&llZ1*dlVCW&>t N"bnA,#c+8\}"O`Q7 `MY4'Uf|ԮęICtX^~'yn}lQgdwK9)E W9c+\8nkE16%7)*s3Xo=ZG-yڌ/ (~-6u]sNeЛ',">.VxG<{Jts<'FPXo#qYU"VaC=#!ض"aR?wǷiݵrbo VP'1̌r'\+w_m^`%-gѨ ?%uLj1TNP/=TwHVSO>龥aj`#aƶ}m}{s|4 Kp&NcXO@H 硂T+8 }Iid9{*q6("ciq,tV-ӭ\Z%tJ 4d O:M6z೷LO?={_K[{x[ ڍQF];wͷ7|A8Ĥe-'yPKjT !PK1-opale/m2d/object2d/GConic.javaV[sF~_q/ DĝvhaE:MVY0j&uEY-;v:}=N{n߹oY&9Xȹ"Pr]ZV2;tN(b0 [6.$kd 2-גȨjn |#̐b0NDHN ީ0U $xf?x-sJۼ9biLS1|SlbI+`xjn9`GEF}4j t#AU`UEkå a9T' k.P*QL5u:UPkwNR.B4!2!z TF^ ʘkT{ DC"{ދ4߉Yf $T(f!ҨMC.8*< NM4>c:ta9W\X3`s|&nj;0og!8ѵDZ{cL!Uzl|F=O5ƚC?Gs=˱؞^H3M&" hm:2py1A.7srE|c*)Q$KÄ-m/**Yj6*=#Ǣ'OCi̒.5&ش¡"a;l:yS"kǓAO],~lv hXj90KK+IE }L;Hms tf[*_Wx3OnDh4NaW]r4W,o)=/xI73CՄȴWV5 0Y}у&l4( ;vB$w4mvπe{~}}tNϛ !hPk6]RAj.jr!>q̮! 8 ?_)gTTI^n2%/nyyzߏx% }qM,-jFd˛d^0<5<0#sJ_(ϸ.B VUnE\%U_nktoy3פBĿB%uH~v^zHiu`ãŪn YD$4Z 8TlBA%9_,%T{yBsViÛX%{^"rME<Ɗ^uhGKCQupe2x> W(̐Ԉ(f)6n+|8(S{0\l&4).BVEbBhHq.A@=Ġ8m4{jg"UO- 'Mp-~3jI^$1 =@N`R"EISC) ͇}4׍GKBGh|*'^j?57#yI-]'FՒpkk>!2Z4Bd2'B~Ol4!hd!hޓ[jwJ'5=<(+ڦChV1@&Vke&Ƣ>JVə+vţGk)R\^4)jvF ([4R;_LQuh?km])T1>ǂ`VB3_?h| b1BMoHʌ,$. i#XJNdQqU[=mښ҉Z!h۷f+| vOgck^uzmy697?ʟ Q=9'_;8wu*gMWG؞G]wן⣽ y>oPh:n2ׅo8rMY1++̧>5l:8AAMZP1al{_楻l#[ztRX-qs56/e ݝ φ\gJn;t?R/}eG5+/JrMO:^2H"3+NǾHkw"d [o˺zY6wqǃ 7GV79ZWO0-*?UHHQ] !flsƫ>QpKz D7BcOPK30aPK1-opale/m2d/object2d/GFPolar.javaV[sF~_qƙN%ZldH+T*+lc_$ ә్ܾsV{mڣd0:#eI̝JTDaT44B:KP9-Hiv˕Lu[JQNR |8.ۜbmb(81 J0,j1 ) #%E"'#cx6j^:I!`| ;t5Ui9i2K:W74Bv!si|RSHE2R4_{s2й$>I∎^v%%S0 Buئ@jKDw*Mi.2).2^of47eԐ+gdfD.ϮO^dj8n9l:5 h2 OnFk\Oӳh*eSh_j)4OKQX:Rޢ(Әb%H0 0HT 5luJ(׮KwFaf. (ҏ?Lf&i=;+mk^{AOD7nn<+e:y'dҹC͋>Jס6 w ~TeVy-F/`HNDU,QXcӝu|$2͟BDJ);C=/#wۘ!m܎hL?ݺ_ =w|mzR^D4 P(zp2ycDd+?~Wu#۳nυ[HMcz Jzä6J(%.s8:p9 zuw^(N}AlMχ0J*vغޱ" ؑty}OL R` : (ҝT,7 Av\eຌo=%hla&7?@ASou:aRPDl2qQwNNԣ1D9 q#]irRk3M7RĿm` "(jҭ(o.:@#Y4w#zsÛs7C)R<^lKȀ״Tw[ݟ w{ܵ;K\I ?~+Kz_ }Un5gFJ5?}{KZ楿lTGdh\qr)j>3Sek0ns|L+ϚS|GS/͍]5L. uԊ.֟!}l gzgkjPKeq$ PK1-opale/m2d/object2d/GLine2D.javaWmo6l~Y9Up綨MRNlIh,jIʱn7CJݤ@Q $33/N<8|<=όXR)J(+^Χ!L $KIHR-Oe[fqHjXJ,+kڄ(@2g2/X g]C,pdWnhK9h4Lex A4"eIk /w0Z%ϸB"JELSLs`rZk@TZ DF[[4.0* />3d2WK_n R9FHS8/4 xMnލon׷#6bkYH7H;ӢJן<Ӄ#zک}ْ&0.y\ RJץn`7 a@Rm/TWk.Y(Z(T [6b xZsz'A1 (?.`6Zkq*a*]/# _фT۟~x [g6{(?.,GUJ ;cu22{ً-WdELRȪ~0'{!ϺߟH*}t)wXRKY:Oc8w{./]-:hj<$--w&_8cц:VeUGNԒ^-84>+z"YIRB1-KoxP5u6 poio.q tΖ_D_c~tcB7FHmHN% -%V.LF N>҇p8h+扂gdfDJ`g7g?dhD\m!~vktkìo%Sg3D*+tu.^V8OaFbukx{Cl;!*! >UGݪ@ZqdvzNngP & ct qwNqu\Й7P& qZߐ:RN" zU}/xڏP쯠X:M(ҝDqv\Ʊd 7}/o :[(E:DIϔ 奰NPp1Uhƻ౾XV+uGuw(:UpMG] o+LFΆ{km`ϸ]u+cGӋH͍/NFPQF]|PmN{_][><] _ fv[Y P7[NË2(pR;Yᯟ:պ5x-`$nP^UB?xu9؟>cP\rS|G=u@f5uJ'm>`im~D+7xhPKaZ= PK1-opale/m2d/object2d/GyFx.javaVms8 bOҹ)% rN?[]m'_veh^n4ճoݬCf:<5"b* OC`2O| )l$IH2eGfHkam|T %6[ްNFJZm .#9hGx CRPgrAHa3Win 2E죈cXs5E&Pǫ p?X,CV)&4%,h=S,5b' ׋GT|Oƫf^/p3[j< 0[gk`yhҗb}4UK"1!7LĚֈ2av3pC ,f,Ӎuq탈 J`3 onտ3%vHp#fX%ee)}81R&lO/#kQ*TZ11rI|1bF8Fv^Zk5?C"+W$5KS:.!可b-~+@aI5,+yHțMmMezQsƿ#dS?Cn@: v[ !> 6۔$o$6dglt (jk*>DCd(ww,HFnSX:V,gE6Wê[a = Dբ[:5Ȯ+dWHLp8P@`Y2d1|HDP"Ķ /f-/hP8e/yٻ1HC"@9XbYzfRҖ/RX<DqAB `WTXPҔz` [w$t7:`$襉^e4'W^EOqJcJI񀹡/Ǭ\zCzPj3Y/Q\a(Y1@QD񇬁)OxvxVM2X"aB5L}Ow6el+yQ2csڝϭ DYz͐۳AxBsv9ɛӛtO"AZ[Oh-*߼8=h?@o.-KE r3n9΁ŵR u-{b GYc f?L'J^ >;}5\HP†rl4kAӇrwr it[?PK A PK1- opale/m2d/object2d/InfoData.javaWms6l|*4kԻȎdK#ɓMg: IhIH9J>+,HJi2I(g}}ڠSO)Kld )V #̖4FQ@R"TJ+-b5F:VO͵--!nk6::Z) Y{BZIRƋv-#ZlCUPB>i¾;}#udKS!#*Wk݈ 6\[$SqL I"n fN[zߟN.XRI+XgF`z*7p~\ ׃ٌ.SӤ?oF)Mnlͤv>hΖDHBŖ'wH[#ZDC6((D"h:]9GjI[tg(׏fn0 I"DlgxӢ7,y'tΞ|Ct3qoE; &yj5F"Q6f"Zd؎JA_␡R_fʈ V uzq>F>ȘeR S5PU]o2a(_WGח=ԚIƑ-͓~lXdCG8N016Jr5ŇTL.[{I-Sw_BZl$R IlE?+=__ZU /] mU:2Y}Q} O/*8OW3~+/K樾$=ʫra8oRXUlK7'Y1wwĀj7f0+m c8m>>^~szF_z(<%淓=zHKnk5gc+b7Xz8ԡϖUtFݺ#CMwP .Dl|:18l' R o5<)#X-S7W_뗟iz}~ƯPKJPK1- opale/m2d/object2d/InfoLine.javaVoG~6yö# qmX6۽a*kKa2fwgg曹k_5 Ɠ.\\Xa-&A*oxܠ25҇,c#wMrpq} NL(;k4)F.-"8Ob&Xhg+G&mcAj^6u`aqw#tP%|d̷G2F7Xl[2+!}@I!-E*^˅@C P5dښ\ROR)X j 2/e0}2kCT•L3%3ef[>L?ѕh8 n nSd0F)L&!VDJ_zO4%5g^H8G#* UX{k 7FHFƮYxE&HMKˬYY]cX"[DzVv& ~x%2פhLBa,b{IA:2Άp|}uuޠIU,BMz8G=h}J8[R$HjV(*Ď\%K */=)4!W4gtETN1{֦PX;c,Fٛ^KmbPz a>3b`&t4,1c4_DW;ta+*7;G>? YM(+݉V6w%MDb&Bmځb_jFx$@PH{IL-P͚ھ~ o1:ZD_hU/:Ha'M;תozc$M JM9p=>, M"L@W2#)R#B OJ*8Ap/Bi ԣWjc&ߠ ~]*w_2鹖gT"AXC~@B ~@ua|@tQA2;;ѻ.c!XMN14V+r 6 c o5܏SkiVT[zxgjᾅ`j:z?_FD8jxԞ_B{G=1ƁXxMvV*1m "PKJ90W PK1-opale/m2d/object2d/Line2D.javaZ[sH~_dBMm-!dB`2T%j%9RW>osZje T/;ۄ.LOA?$a hE"<%7]Mb ,\jqbZs$ohu`<ak)(tu{hF9C,|" ? D`&<L .g1x}NykrN໴wys`1DpZXYW"}e]0Gz6KH "!zE5P$A44Nw'WM^{xwxqqxv~''7Gш)>RF$ %N_K=9=zO::;W 8Ëp|ryl\rTZBф@}z^\eCH 7mmy~õ?d8[G΋bPC{[''2B@%bpL.Ű6l@ n ǃB 3"+{.bd-Gbl-Bf#p_Rӄe]!5#CQ164w5._ GO+ e,Ňa28^0eK c7an UgA"Bh]Jc*GްӢxut@H׭P=% <eRS8VZ8on`BG[s5(+Ww"3'H L;` 'm@uV!T@$QfvDbx=1O_ kwrƫ1ʿ-it.%_ʨq{_&+\%oEF)nMmk C[L4$oWBml渫W2]# BDW U\eSѫ%/ΏKĔ̫dͷg{ɻgq s cUPY4,Xd2N\U`!R2 v2bw,>.je{Ӯ 2NibG 9_m{dpFKٌ'*$GfF`5(6/ր5b?h:"taLUYUCe?GQY(oǏQtKnŸGo7`]*]Ok)=Otlk/3mR0}w9)*Btfym.kYQsve4';=X^āy !mP STJXT/ˊQes]=p3Mc9,(W|mP :Ϡczpzjˎ#&dO?>%L'?Փp{~DTgZaЂN:N:]%dR%9(&g lneI(dRcճ KO `(/Kִs]& -$~m R'N(QAZ,@6gvKUaV{}2NI2nI݅"PK~b۴ *PK1-%opale/m2d/object2d/LineException.javaTMO@=_1G@@UID $ʇzo޵v wNHݙ7oqaKlU6lgwhh"I&eH GLW-k+#}{\ 2V:~+M$z9xz/ϯd#xD'0:y^PK5n\PK1-opale/m2d/object2d/xyFt.javaYmoF,>PCqU]uTweNsA(reriݿgv/z;'= 3;;;/06X:!%TuF NN ВD^$r j)fRQL{NP\wڥ& J|n8T3%er%FTȜ %%"HV4ׂbT,`!xV#-"#93/.Ѕ2^T((~O8q(LPђhZʍS%2A7 aay# 4_A\ή1T@ru#7X\.q9DqTPYXɛ[:|GoOO.oߍT8ъ$dL.;Kx}v}|?߾o/nn|rM'tur};>}sqrMWo&7g>эIwٺ24GBžAd| Z&̓{"f";sk:xF=zP1Hm?=ߣ?nl&* B&g/^ z4s>! ܜ4Q|gp ˯}ɉ|5 qRRݱzr9`,'Na E(`6ܤ}3#@rZWǝN <SL fJ.,,H21jH$Ch#Tz|$ƩZޕ1=Yz֖/,er61[-#[0菱wpgp^ ܦ^tl i xpʚ3*Dя:\/o)ַÞ[ŸwVGUJhsciЙI%hz/E=3'|9BMl;rOg,mm逳S ӧ^}LE(&K$Q>QZP7mfӚN6aׯ.H[Z& yZB;2=sj~le"b l&׹Rrs̹Z<%k}Au~PdzgFZ*]{i[Օ̯5gLm*rE.,9xbziׁƬLoY^!iW NGsn#{׿ثQG *ZQBMדiI\D*d e$ĺvpUx0kʾb\؉3:9fեi[)QN$Ria(f?fKί:L7:n.NwZ=?%67644A\o$5dž+v[~U\sͨE.V!qs3WcrrŜȠew}vrܢlP8@_v vlpkE[]t J_EVD</{)b)zqjQ%>p⁽1En3# LBB3 c_U(J.Y}]( (A|#q2T G .HME/v  tR\[r!1S xÞYHDzkt]_n=sߠ[?s'zw+s]PuL: {㲳hν>vv4j!&:dC?^};inkDiB#ӊw*bN]Ų}-/$w^i7ϯZ6Bi̤MuV1:LH9?ٷz#F|qYmNzqWzEf_"'F PK1-opale/m2d/object2d/yFx.javaYmsL5?$DCz˓&h|~} t$qBLTVPPpb|hȂ$ Ra$BrSf&_⬑2KA* ks!+Lg6v0Jsngc-cs(ч, rP"B*F@bD*"(W4f@i1k5νPIHPZ@aNz&"xrX+QpA$8ϧ/8~<ϑDP 紳@WPjE!I>IS(C$p10zu7|xL,*ђJy eLY!D Ip5^a|~s7xu}~W7p+D 4C5d-D<#a$$?ԴF.fBC,B4Of*)K{*\ĐKӁ{g"S<;@ DDٳnʗ^ldŋD{1M$f̿>9)q%ʗjJɉ!_$N#|s >cRg0ʡx7^de[贘j"D#(=FJ)=ԀCHEd&"]d4 3 ({3Lt0cmpRXb* [\^7*gI*::5C7ar`O$x:niݸ]i#2_(e!ͽXI dVT;*H(a@G:7r kLg5ae$^a, 8Cg>8N΄F7l'` Qf1(3j4Z?S5T}fɮ2@іSS9R$J@cܼT:قf-$[`oGov4Vy}}<R٧f7Zg7;w qy. hOtx9mS|# L8r TANTA۴P4;$-ToݥivmB_D cIa":S +##mlYN6}#>v"PIh^ɣ㆙qf݌": uN;y, [i(}K%$Z\ZĭtsnS*,켶o K@ceM#SXGddznLJ{=5/V(ݹFygMC3[wqRapV_#{ E֑ z%TLoOc nJxc_ӫx2 *0o# JkX')׷ 0$d=ͱ(a)omPbJ3;u֗3h6+Q8W)DRE3Vd78}P8<&YE'):({k(R~l=;KK~}_`P,CƗw"C& SA Ł{A4|qN#l/62x *B B E{-zNF L E2--$^4%8@os0{g(漘:<|b]~B]9ݒCTu51[*>J̽>^u͞ !Yẍ́cwܿm`vi0ncOgx*y 8E\ZwAح幊/z;g?B=(/+ȒUq0s]R| 2vH[.Hc%蒖˷ \!1ꖺ9M]umFr#c>)-1CU{琴ys>0#k[ԸiGY|ms}hPK8O  PK1-opale/Info.javaVms8HB $wsp锒rGK;4-J2_ܮl'&fRgw]>  L xb\ L3, ŰCH`$ Aȗ\?و/W40WX.tUbYuh{^c+Hf R/Gb|n*zkA 5" x>ftu/f9r:=yKKk 8F(2I! uRmH`7p^R)8 [V注1O9Vl&4_ Пq)` RȻHZTU\p6yNmS _Z^fCuf:)7q>J,cj{^ΫN Ct=aŕuB70)>&WseS1Gr"bHK%Bw[3#GʤVSkCQ^ p U8(Z {Jw@]Ohޫk-;~jql?'Fmqp՛7P= %7 %gx47t/j󕧖[7ғ8l_gY"r?!sWK.>[>%?7|쵲X'w_PKJrN PK O-opale/mathtools/PK O-opale/mathtools/parser/PK1-opale/mathtools/parser/Cst.javaS]o@|<HTU-TƧ>L:P"5}v"\a:KChj*u 7N2#lcHs' qrPpTN?t8npa+V0$}`C=i 'q|H&k<&y2Y Q6J*9U.߇$hwdXn:GY2_q2l5MXn$}O?B˶,QPxiS ; )/ilmXsY>t҆6= olu2Kb3RvQ M[d~Ouл~V-7l| @!T_:+Wvb2ELpt7biïrvxR2}e͛sNgEJ-5C.9RGQj=G{kd 앩S8xy~jEEWG/EtLR!PE/oPKݵPK1-,opale/mathtools/parser/DefaultFunctions.javaŖQo8ǟO1ڧPqZNrEЪN2 ;g;@t~@JW6V 3Lڿ,|s<#t LPq9af )&*g = Ӗ"1ZTi` i*/5϶q{XL `:[?O Vx3Vܬpu653A˸0.~p!J*##.Rj %*j\:TY:;3R`&c5RT۰p=u'p8u0`ocsx <`ƙZk ǔ(}3"z%ҷȨ#W*\Lݹ+0VҲT}mܵoڙ ]MN/,C8p_53Mu:X0c $B)d߲'E\e*kCfv@jgE74M-L)p¿!;m$ DAtu7bQ$&, 1]J+.sxc gL`PBi~^^BߏyrdrN%juZ1i4! }iŚ( T߾g:PK1Rɼ PK1-!opale/mathtools/parser/PNode.javaUmoH|9>ACH:]H E"x*aװe]*f`%읙w_;~6\9f6ߍ IpbR(rKDRhLmvh@6:X:ټa$;t4]"|L `um "gpH_jC+dCwy8nVt_3skQv7(Ku_D\YBJvcoa\l]F| \6prϾ\se'J2og<}1`5xS m죐2˓L6Koy8B8x/xmTvKR,b%V}'3z"dBiv0GI'pKO\nYigR@Xi^lͱkAjJ>j "]>r/uz* rdvuuy4Zuw$@eR NsH5*mnrooսǏ=ӦTr".XPIMM[]fIA:E>բ{q>$FU9ݫ-mT2\~zQc9]~.?">\\a\gA̮VyC\uK}i%h ȯ߶ַ1e礪Uÿ;7U7aZ4EKy˓dE ?a>8ۉAʥ+p|[o{ޓy51ӷjeXcLը:=Gk!_w^]̀0g8rPKjۿw PK1-2opale/mathtools/parser/ParseFunctionException.javaTnH]_qIH4Ͱi74,PrUUV{kiҋY\s9QX,:@!lԕ.`t?%y̟P+ms":!(@5| +q)3v>v|F“wmss<QyZS^m$˾BPRW';`}Wu-=%—mnt!. hd3D~SH1?wv|E?txwrXp D7yx[!{װ=S٣69 T'|f/ eUyw|EGbcOd0ؾV:y.20іWwxs)inU} FUc5Oy7܂>,5'IҨ_#w6sGIҿOu;ZmR")7TlZ7W()?ayOsFϓׂ9Fe_+c]r= -[%7?+wuTPKg ePK1-"opale/mathtools/parser/Parser.javakoF+&Ҧ[ܝUUl95؂k@I+ E$eKW_̾(qݙyLkzؿgaO1(5, K҅,00L 9Y)Lpsğ3Nm]$Znk(F4a h=z :Z !aepI+J"5 1?XH!7Wpް%p9 1a_c bLl5G<'Vn%+p!}< {|?$!$2!(&L+*?nC.Dx(I~2ee .;sӿ{Cl,Qq#e,lIp~qw5ðswqzٿv2UZkhE-"CA4s裃Vsa: 'jt8uK]/\ɜofMثȟ9Y!ܹ2a* }) Jqu1OТ);:;&krh:;!H/] ͑"<=uc3Œ{ʼn1 Xa_ߜP!rF˙{+tqw X2~mjf9ap4fўќ8Amm43'?'/^C޿i]g_ ڭ]o/.4.wA.Y ~ۢAt(ɯI'G=j rcrB ۡ-(Jf;Whi ڎC]iʏlGCRvpEiٸgڎ2W!"#oElkH>McΉF?a}D(&/{ "N.k $9궑U[>o4&iN g%)&^}D?l>FX0@[< ʂu7R^MzVi Hg+%4LL<,4TT|XYT׳4IڜFm =w2)vy4G89%27̣eZGZț0oq}`=R~isJn] &b9_= Gbs%KVOK,QFuQ0̿ @F V<w'!ǹO-$Xt} *ڲЕ^ݽ\}x#0WQIl/e-Ͷ-]$L1E>n۩-veAq vfl7&w^EfO=ΐ"sz +-Ɲm[жܴ-V.!SuH(c;`5f0C&s`%f"%#$ ,?9ʥ4+7ɖoR%/PZ r.'Q's#L4ʚڏ<ӗvcmI6/ m)dI%uU\$݈Uu|wJ+]9hKh%k%kIS"aS΍@v%75?78W%Hm/Nra%F  RL WU''pa`˅\]#̒Pb.X JX(̋k[?Q[SM^'LX'|(t0r!CP+19_^1~Qo( eC\ad:yQ~L=#rW8iT\VR8vg:yNᚥh.gŜPh=7ƋAMWX`5wƿϖO<_ kȧtaa&G9MjeEN =KLmdDRєw9<_rA|Uh{Nb5:^WGn+{˽u7Nq{@GkagߝC;v ZDluhvm8ڷqq~DrDKl\S($X+.W]ɕrW sujX>S\5MI/[mk[b5n%Kp^R*azGY ͣU'ο PNWEƖySo鎆2NRMwT5~99bAA}VO0.9q^"T" "uDgeĿNc.9f cS1P=^yPKvFEPK1-*opale/mathtools/parser/SUnaryFunction.javaVn8 }SRx^Xl&S&e}Tl:H$炢lI>8%hWt>f0@hZ*|T r@p`x-1.>p)xЄOk:ZWC@,hÑ@T!&2 f@j0RjmIFJyY Ag}8B~KR.XAɕ)$!SgV(;3wП>O&0CF70G}0Al~hvJz! ?Ϥ* bxrM5 HHOBEbyAiJ׿0RWiß3Q!RvR2y ߴ|G⏋faot$C,7םH|JDg cUFyΒ +VTp`iKulk`ɂ_?̚tȈE,4oG֎OrW_uRȗUw7LNX+c6LhhfPTt1䯄hZû0U&G5n=j+( _TnmHJ oB-S^J%5`U:`W43P' 7KUz-l*V?O6E$@eߌD﫥%S<6Pڶ.RV#߫J'n>uƧ[zv?j'u7Bvtɒ[؋wbb*[k ?¶U0[ޯEQ#U] F3a钕@ k۪H87TȢ/*uxvܑ9_uG\=n[/PK9@RPK1-"opale/mathtools/parser/TypeOp.javaUMo6W6\NP]@A> xcXHIcE $eW-wg7{CHyoj2`u@$j/2%S+l qaTBj(P xDej:%ҏ8ԭEap7VP49hWG_{9Lhi'|b,T&umP}V!<<>a#jTI8{)3A8+1 \\ <§ƍJ:G^M<ΐc ]s L͙ T_Dvs 745V$5{JA8<4j _~ |M6y2`_:%;(YJ2uf-_7wO|^,a{naf/ j{l{i}2g^HrQ*RPF ү.Bהc8YIs͏>3̛cX,I3ymv:yLofomrOQ:9Ocdbx1bsTmll.`#5WhS4W[SXQ3:.ѐXfufdE^EE懅kaIyfY2%ص5迨HC Lΰ3MCٽp ˈI<οs_=w4d -D6 %l?][mufEPKܳ^PK1-)opale/mathtools/parser/UnaryFunction.javaTߏF~_1p6ܩZ*:.T@(z [Zk8+Bڤ}w~`M׏<R R*pD:UP e``jQ8"})IZ>T5 tNF1OiFxrm.#B?+V,Ρ-HaaINm@Pu PRU?h|lyz'4hm[h%z$ <4 ]] '@D` lÕ^(-hke:@n06DHDXzt>} |Nw9ptJ&Pn"db wT~XW 3X,f)l]Zv=U^ҟiMhNKmIP3 9iJ]QN4IAnjk=k:Uag(G3ܬx9f[-$y 0Lg/o,Iǭ 5ϔtjbľy.Q66̇] پcnjW9 -8^"$F{Dݷ.5oay?r4j'>"l~q-,ۿ\ UX)2EKT[yFa%P q1GW/Uwx]FWQO%@kC/@Cn= 4Mt[ų踤tɘkȍצӈ4Wuo@4 'C:&^5PKA_l|PK1-'opale/mathtools/AnalyticalFunction.javaVmoHZRU*B|\1lk5/ofvHt fvgyy˳`:Nn@`b!+-Ϻ@+ۅGVXg\.8ϿI3Y&bQ7?zW~ bxʍx' sqCl-~T<-)fxjeyY0#so(_Zm5܊%U_nkd?kr5~P(m+EgYQ!4/7:q]<; 3a bGH4)(1rR&ʜ+#(H)j Fˊ$ڇ |#\^5 鰉2St*<~%S-(ZG<4ƙDLZ GavSP+@߫"j]u;< 섖[ NJxmVhd- k-hynrW|lYI!91n^T+1G[jF}W]e]1 ۾] é& V7כT\Л]| %j\j޷tPv:z^AFb(۟b~Ԑv}sS;9H.cT,\N =yo?r'BPCENVsQlt@D5jo 4b,MORd6lcohc]B!_LŠ!er-#=!rFE#*d捷+}wjЮ}_oϒRmÞ6zTs1%cv/@xOI:Cw.k; +QϺqV*a+6ބnd%t6U}~ۊPKc:) PK1-opale/mathtools/Bernstein.javaUmoF b$D =E('-obZk(;1J/gaxֆ3x[PpiE,BHZ3BF\~6ȘQ,% [U6!jRXi`r_;@Q^MbsӅ ϻǜ*hu 5֜Q1}ثB&AXxa4T2xO2 ,י'rcPw%X"$4&BYTB|L\I@}˵A\ F}d.f) *'Ϯ+T0s7uhҍA1!1ٝHSXs( Gh '˯OK{0gmPM,D13ͤcv~]d:Y>Swbws`̗i0|,8 JzևB[2e"5?3v`i rxcd"]7S%7.kiꃈA*ۃ#giZ݃ =3,9֌,e!vQ׃2,h4.qn0:s`"6e8T4[L O-"pe.25k,C%- ˻X׆h3Rԓa>9 ؆CiDfGm2؊xaD/"/.1X)*K : mҏzVh$6ޓ#zWt '|/~|vF# Cp/I14s $FNU?*%Ї@5rǃ+8+zoxΦāgΡ8]Fn_U2${ӴdسScjjZ$`H4fs %'8^yDJj2j^˸l"8"s=b(j~ƫ7 E'8 #IW$8x?PKe~ PK1-opale/mathtools/Bisection.javaUmoF;ѩr ^*]Q.3k.UH!33hl>@h`#s#A*B< & ѐ1Z"1Th2"B2ՐH,kbbzcyׂKϻYRJiG 5Q1%D,c̬DX`'%d,=m >0\edbGpvs SQDD<.m,P`,1?6.>pv[}˕+tcC /MfȖ%*e vc@5(FSb;r(5OʴC) OmX >:D+XY ̌)=b W `Dt\x!̇Up8.`ϖ#`hKG\MӒI3憉TS@OFi x12p׶k9@.MvJΔ$u KrxMVhjxRl)z5eL{W5]$(ȑ"UIR_ZܰJT_iklqo>L)Xj'Z~}N$õ׶R(4dkVD䱵*) )s:4Z"&S4Wgˌ+hkڋ;JԣQнF̂2p;ds89W"aW-`6%)B|J6 ? MM,\GE>/"JpF c $k,Et^t/ežߥIj<_}rkYJm59)!7;T@ŲIfWtww규Ƌ8㪓@ ϾpI0wf+ep;IҶ?^ ^,G-Mrd4z=Qr9ߝ5"nŻlg>+aw^28p7⊾Xx֧W"!}zp>xű{hU{~n44^1![cfeư|1 X߿ב0P#ǔH~-48+)!v#E5RHPKPK1-opale/mathtools/DArray.javaXmS8&vu^{ T ,uJ"DZ\&-!0dvPؒ=R 1 t,xnTĐbj epg/"85L0,# #IAW<N9?"Y#ea*|])&B9Z@xԀ^ӃQ2, h15A= LV\{(p"Q?:.>p+CЋ=r0.!3Yd*cv0x. tm*;e0Pj>-}Rϣ1 />ëCYLS%E&P3zXnֈ4_"÷gNFW0lx7W*6zhx&0ifZ#,9[qx 12^L35<ĵb 4p֑gZ/Z{|zٗ8M(`ƍE!xNYO9Oڀ?Ce7ʩv"kː\x!} 2x S?>V'[[ S aǕ KNDk<\ْ"ȰJiأS |_Drb9|3z[N8Wh I9x"!2T""g?3㕸bLp62x8rL|p.rc?pA@p Fx&rNFB;,k@P#YjX.x.~Gw'V*X. 3؆KiD&LY95szu 0fUZD "9dzrVڴa0P{Tc_CTcj%ɱ;Y :5DmT]^اjPv-*ufM=_Ka}<)9["n1]\o W'#{h88؍WPu I~Ctt,%"+j5l״%asD}^FoB1dZt!狭(}!</nxJ6[oќ~fWO2N=7fZl?mSqn5O(_Eb;67 IXF0}ʒf'%9ܒiuK+f)1m„/V[oׂ?րB n1_Q"AuGק?99Ė0=}7Kۄz#.ǾrǮUJ3sJW nMBqrgCzD֞|W\E~=1*kUK;*V{z*;+9AAT=-a|}(Wt3!^{]?)+}X2Sy W9lܝHwd 6]|Ek> LUA_SQ7ϘXbz~ _F4QLLQI~Q^|PK0;PK1-opale/mathtools/DComplex.javaXms6,m>4,S=77WEzƉ=3}HHFoA[t&_}A%mX>bhХ]^.He$(󕌍Z*BBǁt£sQ$TLD$ w2LRL[_ǬI0eIE83$-Zx<>T^$O-lT@RR,ͽrBE/b2f D( Բ ##uQ/߾ e{-c*_ʗq&Id`v+Zv+2wPUp<'$;3 ѱwTs*^z° W-Qj!6I-T{grCVaw74{~]_޼@&EKU*JCLޜ]%_/o޳oޞft59?}w1wW3h.eEt5ќ-Q>i 3="eЭ/0 H0Wk:!81C yd8MtސLU(|v~I2ÒofD㣣ã߉gM8Tб{U4%1<"Ra%zȄ"V^pHNVZDnWB?K["Gui63R9&.KT {~.41C @V9Z ~´%I0$csr$\=.c8^e&_ysb_eMeOѥw YNTpҲuVFtĐbnv"e-U\Z@D"34]0 LHZIg4 K2!< R,xxԟTP侑 %-2ϸ[)̓ZEHUnB#R*SGF{*ΧnSc{a^>T6G)w~xkxZHfA8cɦ&oz$ϊaX*H8%Nyv%=6[ By:ku\=z~^N~ @ A6G=-n\6A'D9@ _clxٵN7a1 B3~ITvT`O1^`jdN{냂g#t{! =g[as-osjz䠭i00>iSp8X_>6-fw,[$Uo^n ̊F"rKj,eK,nB*+ie`RXAj,Z_Q%lQ[RmjqY͚meTw6ۡǑH }IEɖ+z 7mGkCt7,ޓ1n+g]rE#w Xj[7Ej5USEsSJtr?g1z^֣u~zOV]! W>ʹO|spvQizLŦ5O^źܧA}ښ_Tu{l'Ȝ,ڒb>q*lM haFxeﮒNZ~lPY(Σ;9sݻ|x+^9Ϟ3dճs}q ؚmR5z&F.܆pN!aAe}k>-MG#tSJ#M,/Og^7Fb:!ˏ9z6%#2_ԠxT>4j R8T+lcm.hn]v74G8o?^#JMt%8:є=W! =Z؃5%9Cyr>;"^y$ %х(ƭarӺjz+0-,ih#bAO U j K2( gy*;_Tz\)|9<yyRk/je^Vꩲ5o=evk4֔=7 =) x8nji*Up 킳PK#[WVPK1-opale/mathtools/DVect.javaZQs6~~d+UQI=ci"! )0 (KM_ EJd'k3% ~b}P꟟A . B1L/ p܃3Ô cB0&*.3(0R\dC9QB@ GGpK "q9X-Ӽ $hZ A\0h+MLU F jK@p=A엗^9c{%רU2 O2b1 +T8Up%g\^'[Mĥ AE$ٴ@ $ 8, ٠'*B&8%{+ES`7~___ݼ`3Q؋$Si -LN3\^"nސ/n^pտ9;y}޿WS`y hB<nc 2a6ȸ ud#=PɱevA@*ӂ[-ЏZ癦YR݂3{-#fB#&x?ȋ>qyyz/׃~6♈:Z!)&Dߵۊ3|Ħ"\xJI=54#$7a(Rk_X 4Ob crkWL1761߭)m\mDkAßSat" 7c"@'Pn/-cC<'eby&BbM)O.2Pgj4\z'8]R/ cusHSL\1p?#-fN_¼ i@v뙙ȅIjRЬ.p4V?(h*B ~,J>ud.l[=Z܎QEakk9@zY%G$utÆu峴+Q6DZ;BPD=38 gihD"!@˼-~tU Qt\ͤ[  2D 1`ayY`(N]VLRZ 1E ɕD4jYĜw¬ļ`v7o}M(tDؚ||¾sӹmmأ"]D LIlݘb6|٭/נqI4}' #"UIyɾV#+?+B׃|W@|7KA#K|^"_BUe ʴ`K|ӛ8۳K$}y5wNZ5c57X9ZřG,9g^7n÷=T L/n2yB֐nbOS}\T + TI;ЬZGRALVjwY^+eTDiU2H&1Eu{]s~We~\ NY+i eu6SO@A!i$:bsSG[^g+A)Н˥2ʲ{@MVB)[V"meT%#[`~Y#Gfcroֳߣq1G/_ÃE;n/f˵ΰ̸{, Ã,@f޹0vB+M+'xj]q󻊵<,c]$ܱvJ9+>u@6z ]%E[5cۤV(=6JòK +^q&FYCƇ͗[;v6kCzk86܈2]^ȑbSYDywTx&GNIר3!=qXfa 0uemKV:_oNI6U_\*2SIlfWdqxDLp=頾mA*r"uBe+"DJJVk]9Fl.ɴxY_q_Z 6/G@abv5ov7鄡:1IoI :aGS)N?azl==9x`cnN/>% |or 7o*6چtE(gkp /?悻dz?kנWZ9_w- ]D&Ee/Z4O/6W*?*mexx,#bCH.kxJ(eJ s(uy苯i!TĨb7o=AےO QGo_='ǹE\eMY#,m"2Bm^܋Le.2K+^]K{_BeYӣv3פ_!?Z?z~n7UZ')aX4Q[*K$ܯ8(G/g岠И( : f~H%UpUy, 9B0O w4;Qt D同Jm9tEZ #>^-B$Rp&V.lV?!t>EQ(ϣN@2UYQ^eK!S׼"]k(x[_r6Y~ѩOdrE"asWk _syO*_Q"I`-z~uJtOMDj:H\`:pA{7'BpLrtlhݕJBLX4?q#w?Itv࡜PQg=EJFp@Lʇ2/sZTPs!}wQHE*xdԇ0c黠jS*9fY['~ VK!Ou6 mhE={eV`É1&OY_xhj ZuV%۝!J^iMmquϩS1D!0T1 n-%5vI!/rLGdl[<<1^],$/Kކkx9g9lAm>gƞ9KCo;ONVX e|0([3~;'.N%S7k=Z_-ɿQ{!o>;¬}6yi-y셾y(ck?(q ;Z;A/ \R:M9onGAW7a@c/EDW#3 1^?iLO PK:o. PK1-opale/mathtools/IFn1.javaTMFẄ50(J H̀ d5H]ƭ6hTؙ(HA]]{U& lq M6J0z?%y,V(mwHFtPҁk9k]p4:g*b 3u}q5hte =_\BVUEy:S^HБ Cqrv7XP{ Kхd/tA6T@+c8*3pg' |#ܦK3˕"õyedë ]jd/]34|\n7Ȟ)i<˱v&tȬ+]GN>ͳ(7O5fVYO,jX]-ߌiiYRTy?s4%ju xA MW9N+Xx(Y`^[=? gQv h.Dxn|7خd:p y8ti>W:zne0іkzf;iinUs I,8RwklfydȫUjO8]w~$ÛW偮PlQCrVfSAgel!K? y g7Oirut=IHPKM!PK1-opale/mathtools/IFnn.javaTMoFWm(d(Z]¨#@JJK9]K9BkEgH)Nд@胻3o{37X=tB5٨KW|X/,b@)# @AG2Xos&tʞ.!& 93ל>TWk܎ǷX5ksж"D/'"W FzF\9/+ty^C$_{xxaI!YL|%{s9 ؟ĹPٜ`;;i>m2;C\(<\#םQF1Kf/>-5,bH*[3jEiO)-7uc4#2l<1wAxf9%}X.Ϣ`>o62Xv1- ]^m`Ct1G^5ZvgAQiD?̝ԑ9#sTy_7N5:.a]kgym 'C ĞFM+ww!޹%1Ʒn3ۤj)>/G*b$\ZSA}]G[*便ƻWy+$1w6Z2ּu|ғ@^WB$t0 x)>Z}$ghd=5>|Z+#`s,}/jOu€oOy8edƱAӏkqpJ!dN/ʹ+ތ2aF4Jom<_J|)qB½甫sPKBo9JPK1-"opale/mathtools/InsertionSort.javaTQo8~&bVB N;jSvhhU$1ؑUh]R{f;t`:'7 ,0ʉBd EjArn`r70v*&44|åJ"CZZ(vG`B wFJ g0pgtS%8.ܖ>n c وqÄy_t.@~ษ,0֢+nI(z"2,fK[ҝ%*Ɂ jµh7X0:;@vui3G%5Ex$C~7:vK]ci%Bb[!%ˋFv xi\@<~X<ٕ=j)+3Lr'xH܎7I90h90[g&H8? %/BӴT̹cBZ;m̡dϸ GjƘW] PuakΑL0Xea 50,& p#`pEQ/: Lk)[%ҹ~_bVJ]͊.`#Wyf)W2:lfZ9so,5naq?"3_ͲlaDw~N'8Lm&9r U}d \uF>Y4*w 0V'I_!~K'TN=n9KQSY\Шƿnsߦh{S'!h_$h}Zd0hmh("ζe4j(NO[KыеpI_@6.ჷ>oOCڇֽ~zxRg@KL-5)}O#sݤ{'_PKFUPK1-$opale/mathtools/IntegrationRule.javaUnF+h 4$0G=dIВM(udhAOf`[Wի߃>,W|҂J,e J&F 2Cr}4Vi?I3)v90O:~ ǣa8DGiuy,88W2hs. .6{.O'g<$2[ZQS.H,Ʋi8A zJ=B'Iܣk볰?uǿ浪 ^wɹT K{[ǞƳC匉SB䈿C"@b-r_$!}LY4]0 G?Tո{x(g?V-bkQK*oih ZL_rz67raÏ MBe (} bھ@& +"iDV-ѶA߃eF[ܵ7P9]0u#:IhF`q _Ŝ1M$y u#4wBPJdGdhHV _ϐt\ZLqK4)O7e[SP_}rnj_mՊw+qkJPK?_PK1-opale/mathtools/IxyFt.javaTMkIWmчY d",G [B_MGݫVCCrYMwի^wtv 2M6Bg0zoPۜ wv|V?|a28;Av}PQ$xJ2/FΙ*7OCKW!Y6[BMW 8O#>e~qp,Pz_Ȭ+.'NI?Ng(L&%R,z:%bMѹmK-n;gNQiD?ȓ(ՁxsTH?7MU9}A.v5(o,0bjgQvU M.DOp0\nUVNj>A wHb\6MNm] ܾ}ˌWy+#mUڟB3gʎTAl͛mެ3[w*LzT*S YvGN+NQѲ (['9C%Tr<ـs+Ŕ_a/(ֳ2;D\_E6H!h@.0OTGr>7+\t&^IKl&]Fd6B̻q[J-{ w\?[ã6Ymȷb)JҘ'sѯ i![!wPK>=PK1-opale/mathtools/IyFx.javaT]oH|WcN[zQ"*ƣX3cuz/&=鐰LwuUu7nXiQ:;|1\b@)# @N2X?tƷ9P8e p 'Hխ2jrZ£wM}ڔ\BUyu 2e)gdwM$P\d0?DU+-=%ėL:#*PR]%NLS,1H}W@>ѥJEjɼ2]2&7wCKW!Y6;BhL_ 8_g/ Uysp,rOPfdV敍-s gELg )j3l jX?$btg鏼nLKϜ&~;Qq3樐 ngjyu ]ǫf6K7l=#,ʸF}|v!JS F~+]tIW!Dca0pIliB&8ڲ}UnjWy'-[!QeZ c͛mޭ3T zUNAΏ{MW.PlQErZfS÷Acel&BX pX\eRd$'EX$ӈјcpqJ.ceN/!;)ސ2qFJE?[=5Ycwb93;g|N PKo PK1-"opale/mathtools/ParseFunction.java=kw6_Z+[N;Ω"+RJN۽` E$[3_n9%r03}ɞv~dn \;`pƦsZe8bc(p^(oY0eg!Oc:!"Cj@y8XpE_N߳SE<;Ӿ;~ę ތg ғ7qSy-_$rvbd!d[VHP9hv v (Xiį`cm_n*w<\ πvp6Bi9xӺ8ozMS^O]y{*c=ΕIEN2@C;! ]#k3ht i9mz?"!s;&t gDUZ^]pgn{SD{D1Bۯj֞Zg7a7"DqǓF5^9cכUp" >oLPJIBg,G6~ D_Fh0=c8 ~W3dwss >9#|`=A_NչOҷey?{p>?(_4COCs4oʫcg&h:i< ~ =rcD}3۹TI[/'O~pQr+dx( <0PǏn8&+DLpǁJρO G[q< ă DfΑ!R`j h<fl(D\v&$@rx R so'> a w\?S]_/:B`a~A~eb۬Ȏha@R0@`wCO06_A'Cx(ԀnPf¡@`ǤG+w[|km5!wEvrW?'jk!kt Zo5vڞm=Ƹþ7C*ㆪy.=.Kl:\  p=xFg "i@=H}c>W<:&pQ.pp(g70أ*kB0K&Ίht!D 1qEA(~ߑcRr1cg堽/ƅ}^zuX_?huN/_AO')ZZiX -re)ڞEXE[v/jE=բZ-ں̀Z1jVZU7EmME[zʴmGh h 쵶g`h!jVyVo P3 i6m\ P%< PҠm;O>&}l@c+jVݤ@-ڪE[uh2gm]U̢ˌ ,zSo-:}j6LPݳhnzhK&X-jmXE[m@,BІ}aіv#1FMzQ {-]D0ۧϤg퐕+=if g^O]۳XC' k1nf~ހ2Ny,a-ѻhC~m'4Xlk{s.Db zьʂM~wB3ĽŁ63Lo!߈!kB:~m*,6=c l{h{ w|v9EHAR0BAS_н^bVtf\ts/p=֎~@qxd\1UmjCnU~ׄi 2q t Ho,2QS:nte)Q[eA!^HBnQAi5)`65ݙ-)]J)]L)]N3Bn鯡*V+va86h!sQs*s#}Մr /{HfBl iSεd!a1%1 9NspL*spL2sȘ)bf*ҦK":rcGSfnʰ;ss ɹQ fnyO[]v"L&t"RLk Q|lg)P6 4 {m2)lvLhb[=H#Ѷcm G&tI7Y~-Z<7g\]7P3feTIޕg\d5trvev|gjjZA}`En*M#b 9'%XyXTq"MEX# `UэZRiJ.IhnJ țQZ̛RBQ!SYf\L mTkB8.H1!e͢4ҴooWXT]lei6/d8mĄ\E5)L}X~1M+!oJrJ,)IYjR[;. y)2=ܔi9МnhR6uVXk~s s^= KtA ŊFXE*AA1A &9G" ?g!&NݣCῧOB_OWvbe+M8UM5sJgͫ7j!ȊCc;^tde |CSG<8 ؟y(<&:Yws|cz &a }߳pCj8J> 8;@Y=C;dyG :&m/Y;L I--,]lɎDUSDәnC^U@ǻbg rY[T(oW9Ր٨v .ײgwϲJ{m[/J,vR`t}aaN>oub\9^&tbwN?cTv C7FX vM> "c1ֶMCuG!Ƿ8!䘏+#nCg:~a]ght+ +U#So4de2dYAqwjB&)4])ORE9uZbEQd0̙/U͊TB&R*X0b+ AV?0yŪңu"RHQ=H*`BU7]CH87P^qHc Ha7c|B6 ]x;A(EǴnbH.tu~q.Y=&w~!!>IX>:L*dAj4DK[< 5ѕ*`.]Tr{:w3 i,aLcc] eGjfP*]PXбAj)k?V!~ȝO:18y&#+oΦ~zrD5,I" ro*߈S6@ILt(rNZOTy$2 ן4bŶ?S{$sN6u @f{V49e@CVdT(GWG-]19$Lg?rAҢ\X}꒓ŌN77dGEkL20 !;jZL!{Ԗ՘vxqDRG( HQ&ksB '` '8o)DQ8UǓxf6#RŞ@$ 'XaH~5[ҙ,Wu*N_ܰYE1-jbnTeNmlLGOB3*Lrl?= ,E]VӶUfͬ(QBL@ ? ^ ee")YZv J:ʥeAż(ɳg52(-}%rbP>.eի)oV%Qz%yXp/p% d! Qb}cY3к|gWTM$ǿ lC'M^n@fO}z{J> yhoꍄT:CE7S#Hqs=KAumZ+ElY$߁X-MbBL7l kTϭ킅 e%KWoeB9<ᵨzU+rrvg7n8E&Njv2_xړΕRPci4F<8o y%"s.1g\[f}Q>@w?ut,Eֶ KFnPsxsl)?UE% yY7^KLC~L83&WI;z=eAQ$hZEq>{,,I8 Z2knqLyYU5·I-kCӨWH[>#DN=}eƗmI)C̃EМL_ړ=u)$bM|f1 %mJQOОdUaWYɋ`YȕiT ݁ FR씬Y{ܰwh8ɜ@N<3y9%/x^wBmCO>J+HUFwM+k"A}^5 4"iZ(n7ɍI:;Z u4}~ G"fʝXgktNv3]/!TH#lKGrỶ\lae!k$N.&L\MC< K"ơ 7A' qypf'/թběFٛg`?3Q:vn$N5OՇCz~:gR0ɑ;Ʃj͆<<37((CUSWi.[q@ze^i]ʪ&cs6OUSS"6O-mүvh^ɖwaFNnvA w]-$WZ (;k!eRT^)&; o;m 7b/| T?cGڒHe ;iP )"9E3 XQ ߠSϚ.5KҖ{njx; ȷ,bwZ, ΋TB|Gɋ$sP`ui(clr$\rW.9IG]>iOeSa! en0B,/ʱ'R+`*j_#ɽ3&UM%αӦxk#AX L EVS*'?o`<[<%^"!쎺->9kԧ]B32]C82/S-! GyqTwŞ҇8%m=5Bf(-7l'ZcSdK1wL,VoeVa@z>WpAy.l?1PK|7!PK1-opale/mathtools/Polynomial.javaWmo6CTe%uV/HRy1l]Pd,63HʉZ_쎔bIۗh*.cG9đ<7 I[* _h >0L5ȅ}9s51}c&4HCFzLK(p*1>;aJn G((y6Pi*tjP̐ C"{0gkӀB1|>\]`xyrvGcEt:K9FFf*@dr]Gbp:]Lpz5!|8d|5= UB[I_IhꖵD=f"j+e*0x1Fc#}_5S)5lu_&{ű|^g -u#3j`F1vSNJmbuVtXF]KG94Xm% FhEiJ$xrnhI0ʷpTR/Sru9Kar8im߿jODKΈ|^ٵqix!3i!ڕ@1,R,:"t~8F*{i,Ē̎)%$D0Q +A簍'O51sGP뢢{hw 2aG% |Nߵ풇zd\˹}27 /{6!GlDb1!-JcQylJ-Q' 8XLEQZ--fߚ5/^\eE=·B 14E U[OKPU `'3v-~#Fk) 0: >TdI;"-bw/l6*4/? #;bM_op>aK,!3eÔh&JsV}j^5!9Ű"pGPs B;e9TMȵC^/"<ԠΝ fd^͘C%yu֚&I^*]H%Ĩz<2+Exr2F$kKofy%oL6ZR}~=[-+Cs[~o}@w}Of8:Iu|neu؉jUhNY{BB?I,z SxO*|ǹ\Ճ&5w:i$lo9N(́oqDMpc-|[nh~(hw%*m׵a},}Oz8 ;Aw Z^ަ6l,jBKWl#iG/PKx‘ PK1-"opale/mathtools/RectangleRule.javaTn8}b'Qd;b/pvP䑒F6w)R )_P;CKIM݇$p9s"b2t e@ {Zha~'0J!5lP Ce*z[_2WorP B[` kSl=tp9\C%­5u8%BEg Gp45dBŜLk =%2@irYvA-"s{stnQ%:U2P;bb10UCn pGCZG&Lm2KGx`T R/"7oMEҶIbR)HjEb g2[~x\ LiD~k蕚xe$!2+?wF.?Sl>[?~Z&,׳d a5MVmCIߪsyZJC yN;br؊R3;( ATFojydVy>3Kc,?aT3vU3 Oy .j;jZON:jc !W#T 3]1T20UNA_eƊ ̌";5u:klji?{ҏJd Ƀ7?,(17`Kz5-v"M-*{L uI[TjRK+.HYbУe* r֙;ՃN OdGDTRhNFk{q.{ΌVQ̹} `6'#Lbme!3(eC[a80*!kX)QrU #FZJ !pP5{-Wk Ko`ֈQ.-T,4"Uح8j!5h)iky4'T.=?cP`QWTy>GQS6-eam5]ZEipU%ԆMu){@\#hP G^:JA"px7bUC)% e )Bkh}6{^B<}qˀ.۵S"ѧUSJLiQ=Fxg2i@,H#(F%wt@ AtC!%iDJfz<&ȝu턍([v l-Ӗc\<< =%H!wWb'B(WlھUb{_qJ+$ߩȻ}S5̹A<d֙WP5lv]߅"~OD4VÒTոMޒK=+AJgz 6??h9NO;hYG7 #>>̏~:k^ r2.(wT/C'=~F0Ó@}ޭPK@h\PK1-opale/mathtools/ScanString.javaX[s۶~~d)lOOOډ&dד"! 5Eh@ȊUe4˷W{Ѐ\A i1>b* /7 u &"IZ?P.H9>j)R6 X{s*%fs zGpd!/Jv2Eq8XN)އ\"P<@JLV(0JE 2 Y3P?\-bSǗ;qg_x*~§/ϣaI0٘IS%Ge.H*-8ye&d7[~ɛ^ 7\.Ѵ9Dc" aa* $[\}h4Gb=xNb 䌖) N.F_;Yp>:znw܍nghi)- x\3d? GxDHf(p탘B$uJ`igb:{:Yƚ(/wǽ_ƃmŏ"Fב5@L,Z/?tӫSƓjFɉ\$ SyB.5-)pYA/2̷ b k0*$OƒlRP曄7>Ri=2w/n-ݕay/dьA~☒ SƈT%ɆOLqÜfĈoHE}DD䐖O" ,,WYIٚ`FՊt)(^_OІA],Q1Jn zf*zV>.TD1ڤQk/` v69 1:YM\W%)cUB@meahEDG EXU̷EBDĆ\ҥ/8,PX1<,`'ulծhA|un=C:D1fZ,;r&2.^n/qGi;qEizOq_sr϶SLl |x #>SLK5%|vq+3 tK3v˨Լ1m)NM1xPie$gѣANĴionw5_xg= HQsϠI}(Ag$͌L%ͦVq땰q49qAXp&1@ 7fPwLxfn E,>Bf ]Kl?Wl*jRQQSX<±oGBa\5nSʢJ*>lD;g~I;«LsG&sam\ |SZI|A8*#R/Qy$/cxJ~H/QhͲ:Fv{/|hyڝ(7>)|Ȗ[I?gLgڟC|"IӠ80c\H+szGהvDLa˗X͍nk'US2Ř2b3\vH~ˋ]g35Ul|{[[VE6֞f}HV1$5<ަH<W\ lqjnwoߡk%B3VRrZM6c,N0\^I1YjdM窍Qk!픑;yƪ^++5źT[o[];0y-LQ)]C=_OPKDF PK1-opale/mathtools/Sort.javaUoH~y+ 0t#ꢄ"*ǰ:{]pUYB9'E `7͌Ё"݁ &L Jl0u !l9iHq.>dBNB u8[Ruy0rsr0y)rUwTH~f܋08  ld\9`׆ j‚q3&E2LPYav)xTV ׄOµJ:h,݂px@v|i  3ި\cf>@`.Iڎ Is*YwtqYC2z\?(4Rk(Y$dRfrwGJ>Lg+V+/!E\OǛYfBho[^3gNܲ~'%y ;GxrO$4HV[rN@f‹4GNg9 S]7X#yEB]U pu5mG>Dp^ ~جsm<{iu\c s׼^3Qjez:vlHEr-JFVpbI]KT}cyiu|FeI?R$-Bw~N'uS]ibPM[x RHLRy׬`%011k+Up pHJĴ$,xzb0vE%Jp#e"4F?r|ήF[!iK9k)zFl/.&]v:4 YE8K.{T1cez}9=F\|;t4]4`sj=cZb'ڈK/,h-¨HȰDR9Y_&D j8p.AdNl=֖3X5#Mpx^F,A+_.}pO,64xw5$8Y #p>OaN\9͉gpҋtNT+L)Z<])[\G5R M1 (r Dc,:Xfx90-џz!{dzg/_`tsZ籜? A \~|A]%4 2g)ѱT $WK)?Ke:t)0,,Z-}|HgY27^Q1s*+n $/ca;bBX]pul'=˟}|Cxx p=Kx!-K<0=WXN{t=n¶<7p\Ox-i1]W`"kq4EgPq|} sm} Bض'w|;M{6iq!O!m@-/~闵0Ҫ,J.e۲⟔3} 7HL>8!5*L.l8rOlO ?9aj@MK`@:p`ż'yqЭ,!08QO>%Tl ۥ$h!ՊFl4 '˿݆}O֥aͨgVI<΅y4q?w}$D+C;iaCp\NAc{O''?1^Ut]V'T{Xwhp5?/$fAdc2ޟ97?}#ڌUf HoO_}pzF R(2-,z<Fc~RQs&+er LקWrM$Nq|R<9[ LbOOo ݿ[NFZ/yBef4^:f0}s~6NxNR7HmDV"Q #~d0Z/3V s(lSd1"[_6*VW{;?B2Wi p$Z,)ٛl_>5 sVmL%ƨqcjt,ϏiL5={W׮[8p0â':Y`i}ar| Dv\VNah^n ,@?>dI(<5# ͮ'U9fVa0dDA8z Yf0/V2 x?{ݸقFĠw"X#Llr5ųm6N/b"cXQ5FVtTe8g?0;%xނ5{'&ף?C~c'B|P.26%9b]OdZuV=dÓ8>,rsӦ(1`7Mg>#m Æ +z[tr#mMLDjBɃLo:ӥN/$d W4mqlaoR%I[y8MQfWF~^F(n#M$fUXE8##k+0֝V[+U:kD!pmp= `Y&׾ 0iI ٜpS%I;]8qkE Ix$"{P' m&:>fչQ46+|eG7G dMK`ҶlqpĪM$7Hy%JP{i #w7|27wc'rd*E,{f~Q<sv=w|ZyӬUYU'% Uo٦laoiv6K]- |B[=߅dr؁6lWMJX٦ +֖Ac;8:܇¢jt$,Gvpm/ڄ +bKzMQ[^ HyzJvYYV k=o~7}ΜjMޜ]xsMC\!תZl@YqeWTd!;wIrڱMxԲJL5A+,yѭl:ZX" ,`:`k[~^y"ȓ;(Ȯzs!+v: `u툋q aF/]~:SD RI&$阑:sSYPjI+SJ_G zOF6=,andO&K>ͩ,n-%i+x }׸FQ5\mWm]v2ǣXLʽJgA ̼uu ֥< ݬ.7|&8 3z7BןKzq'6jUF㨅z/zC*ˎP^V|C0r*6x|t U*F ,bo-zJ󗟳*Kw*ys4BLDc ^h$6=;HkR邺w{ϯFQRiPHhz%re .(Zt٫p2HF痑 1ͼm2'9Y,,R{ ׄx\ pݭ5 !<; :Y apb,υ*;6SiBM!A7{pLcxC vqT;k*?0fL p/89@0ǀd:0P`Oن60P{ xidoBn9#,H6~;0Ƭ4UmY~h@ιg(WՏ%r>gfl$?4>g]RzW^Tz«̲G尳27ͲR]yCY͛C$ybHPrۼ-L3f "&mMSBrqt`Wt]Z`UzHvHj7KTgăp0kvM){+鞧-^^b]pI<˿$J/j=NSbf[j4ɖ.knۊc&_EXT܇΄LTUƱƪj?ikyWQDuǣwdRħ"(.ߦ)}K T)\_zD6Qb fgpъ )̞ׄh uYWm gd[љ Ieh#s?225\lj[Tқp9iIg+F5jc8N@=)]7.Y<a c6;Ў߈`fq;X=e-ñ<="xA%L\3.{t4"$(4BtNa~FE{n"BǭGj-bW1= Ҭy|p h`ژEr&LG&F뻔Kyr}&>I*]ܗ*|X.b+U(P'_&Yt5JKPtu5Cis.|I؆[=CgZ0@](>3gC}iFV%sjU lo3.r}3 ?1OqPTL6_˯.D\!=?2F5@6PW.΍GPM4 $ᤂ`d!t,]8k`C 7mU^NVӚ}jW)y\ɹjVi9벛.En/zp!.atC6 <|zwDžge (r|U@2Ǖ2Z/DԠ8X qn5;jWڟ~cFK8ʊ"p0(" ϓ:{[/eu#1̾_ej⩒BN)_цo~[ݎɟ(UBv%L]T^?ެVmG}*70 1TdON H;ܟ做j'0 t-bJ!zbm]yqm4;tъR.H~*L&CT^0`ntԜ2*k y@>vXJa󪂓!FGPY}iM<bIMeLXdjZ^p{iy?h.?,pܶr^a7:V^ -5̀e&hb}|t33w tgWPzPK)%ۍPK1-opale/mathtools/Stat.javaW]oG}p ^QU4Rk;`[+"vuwg33<;Is?s4Onn RPԩ )Vc#̂4WzR"TJS-bpDr.cf*i[hC"][ cu0j:sT;YuF7%]gh=VHIVOܓ0C S(R22Bfƹ6pDGj#'MbIO=]T~crt_2LF4^K.eXB\ v\%: ګʔ /5!qd Է g:R쓊cKʭqS>FoGԽ~ݻg7ӰE*dBf 3"u weot}1u{7wt{w{3RhDH:bi*fb.P9jb~N5bּvHM(ծAOFaϜf0hOH3Ia ޼i5wm{Dv}~~حb)+OrLS̜~m65 #pD$*^L<=vE&%2Hy-2F$*80ԩa}cy"g;sOGGSI+ yrXdtd 8qJDP|Jmuoz^GLt& _()0wE|sx :=AY&CQ (ݻoSEO_j$q[|[`ʎ,>>6|bNXݜ#bRf~~': YQx2M/H-;8q0Fyd;IPUpWe w:2^&Ȣ,-Jn>kvS*g9ߗ?DhAj>-H}iW^-`6` 8Ki;m3 5BE)d J({pb,YKq [ 6>N]^|{v qJE0nmw*{j?W*pjLZɍjw*b*Eˊ!P ,٬աzQU˟+X}olN[uUXžWڃtސ9OjePY.7(f\K$,+`I:ޕe/jfI CV8mޭ{X4FѼ 4+WY~u5@屾ͅrPK fPK1-$opale/mathtools/TrapezoidalRule.javaVkoJ(I4PUǵNb{uN]>fg93ߡ>].IYdc% RS"#̖".\4wr Zi A"eK\iYJ!Ql[օxot5jv=htBץ$1*1DLdubQ <UNr aNT#'MnI~.{# iMe*ח*$,|h2h^p*M*tu1!pKcqD'ḍ׸ tct/{L epB5ZK}PYFʴvcz?_[- ZE]<"w|qOfFp1_^ft3[,gw-noC[)[=q#ՒkH'Tf?EYBkq/QX{((_53]mmmZ!Ϯq ;G;G5.A q~j"qNw#=rKuk5‚ 64y0kshn*0U#r|_!0uT]=e!u侭цqM -ibu 毕FAuQMwޠ^D,YkV j N;Ź',;GtO1$E˨(8%6,M@+i%r.m ߵ׼EgvIv=p7?Aρ\\Fs bP gBO 2.wP0}{9a1qFZݱL+x\-e`!KŮ1 s&]ɗ+ YF.8cUQ ]G~.J@ɅKNVJ+̀kt$LbG40o`ʔB[&X_V'= A Z;Bա1q)B`+`I7֔B ͮ*1F馀 +Y`j+4,9JEyd7EWW! D.њyq;,;:Utr2x3~>+2L+3 a%gt3EVe*cX;1U3biF!=/9֙JD$? 1cp vVRi| Fxx2fs. KG>Xi]v<\Rxri 0—pTR_QeTb"+Z-3&C?El%+K̰yC.fټZ93j,rhSOBJ6e9ng+1aD}.NY\,bΥQ$l`^ʰrq=o~1~UX%q020n K ^܆nҙru;'S,OpO= pČ3ͥƠˊ0$Ok\` Q|q:d'ut7Pٶ }1R#t{cG hȯyn8gitvޥTFv"p b)2,wX/p/DAh"8ꃰN֌K D}̚>c<"h\vQXH\H PH?R}kdIm疶wp6xAu<1^oukU acߎ+_}.Ncv1KBӖ$-ihO0jNڇO`KЌi8}01G=t>MVjg =[`~(]p? .%޲y<&\Qm2Uwtq-da3Vy: 2;]yh=mVvs=jkW7^i-b_jS$HX ՜u[zn̪=pð>Knt |Šgj:l{x8=J܎ =+˥iM@3#z2m Dbx%5ǡ7<`{8 f;Y.L]OdՄnF*YG1De~3tSyN( ,І-1=x3B$́MTпV3Fᦀ *1-Bb"!Pks 0y~5DoU]VDQ1IG 8__^_9[Dp]],+X+D۔~-ׇD[ La"?;F/c.G U3WrcFc^CkP Q_֙`\&?s2g vUӧS^(m`:f7^h,|1hS:(jԻ5+DT!Tl)a#$a+TR_YMŊ+H1QҰb5VDkH߾bj2dppr%vV97')x]=at=RUp6~DWϟc9a1%.H!'8fB&܍ Eҵ{e3B`/ħn.Q{2*oay64c}lFrBQu^IwvFIX@l9Ez=`;eNp~\].:p'#V/©eP6nѸG[knGTKF_n[җQK-Qi@4rN.|; =Ttrb:GDoQ=K޾7[:4^4!{߱HJR: LiWEgxN#? )> t}ptXd6nG O*]+v9%QxOdϮl XD%e!3L NgG428)&8xx4GSηD;J_;-K|f2Q +m0"X;AY(.9HeCXi}d:cC4 0qR"ׯ!)cI,hv:Oinw`'`bamKh0"[l)MtN,a#$ҷt('TR_Uٲ 2L,X׆'x2؂_L5i5dgsJYudTm4-OW ZOs)!^koQOBZ0c\%n2`E KS3!m%>n,Y.pȸ ,+T8ŏ ghM ^̤Z+ʔEpИ{O$cw~֡2~uPD\~ |^SKIX;[bu/qKF%?NR:!=,%=ri{mj!P=߇w^. ^!r't0:ozA"x'bHkN;7|ʷ|w҃^%~wݵ^Mlv.i~׃?܈Blx RJ"ufd%v(_-~6N0ސ93%toC<`ہQKʾ{!s2wIP^7vc25s(d{ l}nvءt¶ݳ\_/ pjp@pRG5gOPKpiKC PK1-%opale/matrix/solver/SolverJacobi.javaV_sFOC*"I: v`n$p#w'u]o;;SFowG4Upz 00ҊH!fz ̸hAX2!aXNV@oxV( _"EU*70SЀljbtkplprZRi@@v9fv4oV2 gERX¢ì4,U&f[:i`|`^P3p|zn ʎI.RKÁXѡY 3 P+LmZ9$ gE*ûl tzFeP("z(\13ͤbpwߢI|QzڛLh8Fx 1ƣL8(}DS,qDn( ( cS.n0F)6fe6A@*Z #י`KB_Q~)G8rbm'x PK'1@j=ohp6F]|# |y ֮~i4 Fd͌-ESx*4D-]d8 jٲ 2L,X׆';0؂=jҨߊٜWBZl"rlv]-nDoxR_Jhg?xjK xzZNB3c\%nT%o`it&|WDKoQc+l'A#C$/^fRVl2Ce`4uSè984_5prYF >={mu;xIQ5O3GtpDIvб IfSVn!-H۱Zˠ~(]KdPC&Zk#usz^PM ,pP̷n͇6ΩDFɃZ >~,쎾/K;4/0`9J<~yuyqqy1b- _e@QZ('Ezyv\ `ڗ3_I{tՃ@}x?krF h'i;hFB(bײ-QvᤝKA+_5*_{JǨty}U?/RN8ݰi%) vH9^ӆ(ǯHwv[*_n,܈@{ }D"صd"oSL=P%Gt}Yz x4l~wo`$صL}<n_n[;8v CMT3V.!'s ʕje5/#|2=.nfC+lz=\,-Gᱛ&TIq-Yu;kIqPK} u6 PK1-!opale/matrix/solver/SolverLU.javaW[sF~F-`YNd8 M<?, bWY0kEٕi=s۳rA. d҈ C rs ^] c0bJQe&F$Lsҕ㉁q CLYL<-'L?4琩y`arcDb`4U,F+20?0\3P#pvq=e;kL*&""8 RfpeO)A *•l\g(àU+ }T4$!<< c51Ë6B-AyD4fIﺽ-Upڽ8 !\M/Mrp 8/m[^Ml+g IF32a'qDH7Dɱ}6}mTƇ-GF3lFCWF{*avWMީ̐yctF"\kn.&U~=X\cXHT,y&gb,9q`D\4zn aͫԥt'O -gG՞9[@JB[$`ìڻs{`9гvph}'[ hm)䕿<Ϊ:M88t(k~ZNn*q#<3b4v.Q bESx}ͳJeGՉJx·S ?Eiiz%՟=_׆?OvG/Nsh5]oixC>qexMHsk w]iCۡh &Oe6E&ަp6DF 9wXW)DWXv'˲3k5et[˧ۚ^q`%^oY`~Xn]USA&Z |'Z +_"ط?Zq)mܞ:w@ 6k'DUm%;͠)NĚ~gO>n=ډMK~^윈'PQ2PXпnJucl"j#It 5,#ď|g O/N~GdB/hHt4b|>9&J@ Oa%2s2_)O Ne8@SBg MsOzA\M4(3fv,<~7]*`hr;]ޛ4cCqk^wM'jl\7:E[5MlKc1,[wI잙e܋ 13S*mL V L=ϑ$FgvF ɜN~񗊬NNۯQE& }όdl {f^tBi*e"LFS8h68,ꭾ1^58 (X~ йw"HR.nmڃ'hTtUwBo,3?KTѴ8#B:/7Fϋa^^tP[~БӠW‰ (I-P-p,s.P2GF 8 s6gG~T;SNIu߹Yu=1s t|S3pFhcd h(Ux4<9mM;Ybpa0xH *v4K|gP@}6V _khk*Hn^ce#bOZy,uF+c\8XkwӸkkT麛v8Y98ݴnfPql}xY@fyqaa sl)!ɴ =UٴzdC%,e)=PQ\Hԭh{|[DB^ʇ=ժ,y@Sh mq>cG:/&Q֒ &TKVQ .ΣB+.덧ҳ#  b)Q\( E>9N s-am"6njwYjTp+o'\}P:F<ǪgC *QY?+*bQhV$qmYs \©L[lNB%\hk ޴~υ_+ЀX^mq[ ŻL;f.BtwWKb\Mhpgw3:G6ܓ[.,'94R9AItW~l%wB|2$`!"_Wx32 2䕀;C{WbGz5slA zxocɾl~ZK}[Uɽn`O^nӏ&)#}?u4:/kj;_ʚZُȘ,~ꍲZUHK0̩&x*scX6hr7X@Z!.Tro7Q;Cfv:Oq(gb,yggfm 3qvʾM Ti0x\OЏl>بL®Tq̽'l W 2^PK9zoPK1-#opale/matrix/BandDecomposition.javaU]oF|ׯطچJI6UZVdGl h#9򈻣l,IN>Ԁ vvgvv5rNړ"juJF'N5UƎeDTUF"llP0Z)Tu:!@bf>9}(].zjJqf?8hrC \ Z"/[B}?tx!A$>kc(aj< j>ǛM{q(,nJ@3pB0>!$],'ap=η[[m(u-fe~^mі,t+鏴*3㠴Ÿ dT#)#jTHV5b^uΩaHNG~gymU _iЌimTn /bd2yr3~GoڣuQP6Y(4/*9E<ELptʶ2r"-m*VA].ՠ΋18Â~Yz2 j~Q:2.">i~w q+]WJR >Gr_jz;gJZ`C6*%`N]a{+T~H_NQ-tێfQAd?-@C1YaaM7hD!o9tMP]eX1e-kayWtUw]\ ƒ _`-1F*}bD%,"!=@ Xlߚ#uk#9Z-q7߃?PKPK1-opale/matrix/BandMatrix.javaYms8 7Uec ٝ]aL6Uɐ ۚc,lΦJ([-77ës 0HTDS[Ȣ)Wpuqse撅"`<1/ 52L`&h3NRКJ)8v0YB,G.>YVf"g%, RpڑT̶4f@ j闋' .x ~hxp` 4,^DXQDkSgYvqXJ*(1liC WzOءTw b1@C9d eK,p2|y w89]H +CQ3ŢtOd#idƷ0n>ތ'ڤu. MѲh)O#z:A)),ؚ.(#y3\kkJA J`Ħt QpfnBo'18;V&)ͼtO{IWaU7Hu!!4t$%f[pI5'R.|+-O.J[٬RXW 5fvXIg 75;O:f̂lmfHԒ4xCrJگ#|BHbkv6%RBP!Q9HQ.Y$!aD3 ݤL61F@ޔȀ!, ?" ߠp h08֯g|+W8oD)"8C9q֛DD7xrmzވz1ɡPN3651[dnT#74c%i*q=tt R-qӡ:iR$r%oq >CʕL\z&(lX GKČ"RtKrԁkRc-Il $8&t=-{~ N~V9pn g=SnQ9?䞈Hg7ƊaQYGm"c:$Q4? bӘm9RRZh'^Sy{rPʚD}&=Q^'8x/ў)mfu'p[t cx4R1>.iGډq5U:ɋLFS-dŃ῵jSL]845?kA`:>t=pL)7N'!uHa""-I<u"埤=`v ֩Gf{*7='ⶂu^S^'5ztWhl6X=A#*ziʖȵpEYiNɭ^bjCZ~%Fa`Ѣ DtdZ t] ʱNn a360:T0YıaŠo9Lc/ϹѨwg{tm)z98qb_aKGg_&3M"kGDu+?|x0=-剾PQr~xX@:#㛀_/Y:]Ts>x$V%-ٚy!^y Yb> R-jM 1jA\yvCВzNR^~]ÉX,F|/Im:##Z1六觔XUktAgw༮k?שxO~ 4;`f5o5tb^=gïaqxqlжX=ըLmۂ68^.&XNIWRsFΐcٟ5PK#L hPK1-opale/matrix/BandSolver.javaT]o6|&OQ7ɹpb=䑒VQHʉPwWl3;3f,W:@!lԥatڂ<OEy ;et ފ?ntCLb\y"f׸ol!*MJ;>Fu8]3uq7yBsis'C ęVFM+ww!]r9ƷnmotI749IlKUk%EˢE Lx^_LZk{UnsgʏTAƚo:~Aeh0hT'8/U$Ay~˨q4(9Im22Tg,Mr󍶤Z2?EAo89᦯1kkf\L@'(J@ϽQC1 ;yPKt'PK1-opale/matrix/Decomposition.javaT]o6|ط&+I8pb=䑒Vq($i ";3;j/=)*\dt;QSeh^FJ+:Xe$"Xָ Nq5rHU3$ffӇ"n[Z0=8]Bo<(S:نRU N'M` uPL'9h> JO6o?dq;nS^+ϤFE)iluhY#tN Czq> > ̥CZTi4C3Q)zmn<yo'ODm=Z'9_8!/E/BRSdAʳIYGWl+('Җ_ LmTR mތ3,'Vu`^ ӯ~hAwN[DE7@P8K,nRc=\Wĕ Vٰ5|PЖ! k9EQǶ@Nbw5wCD?M_GSVѬW?&V@!Z pˡkZ/*Z 0)s0iQ\;UwBC_q'XBy 7>JTbNvg !O4lڢ#uk#e9Zͼzﯧ?PKQcPK1-!opale/matrix/IterativeSolver.javaTaFίoMN]*E>.ZkP76~(`y̎ntCug {܉:gG"$x`` #`+a7Xk<֑O`"H6'eWt;ҪQٶ9ږq!1ExRt-e&9޷I$G @es]d~Ulѽ<,w`5;_{3^kϤ<5KiJzBn)~cn%rH "m$ugQwÇܜP .mi% !IC{sњ@0}MV-Go6r8PZ좈= eNy}BH!Y$GQpl4ՆbZǛm2- w*GD)ҟy-9$GTڃɩTGF3GpT_5j\}.aHONs-:[21v2܍'ڥKmGQ:{Q1Y(υ9EE1Lpt Fy/%5S!\Ed|R`Ш:0'tu^vA ga.čn`ƹu($U y5+GW f}P5T_pk1dCiiͺWԓidЩ$=rڥ93ԿߜnoP(I9rf>Kd|77o{G΀zU[I_Q^ %[oM PKC<PK1-opale/matrix/Matrix.javaYmS9lnS% Rl˙|# ߯[/c`j7[džo>_ ώAh`3A.F%+WP1/Y FCb90̌_"UTaJ`rk:sRLgv>ZM3#0sjbYRdLBHp/wTI 591?0,4|θָK^"(>ӰI=cbʳ' J \RI{>O K PZɖ*g_8a-PDx( I"aġ|Rm"/矯a+|^^?]f3SJtDRFJ& y' /~#ßON'ןp1>=|6ϗW)h sX@ sDI~߯i\c;ϸCdhHLS+5Y1LKvdS=p* ;\sČE2UE޾g 8z{o|5e#+UGwh"13fc1RS-'*US#CH!r<"Z^A3% ]B헚=;Mgn&t˾)-Ųh6рTi`X*T3E'< ~~3a*4ܽN%GugO0zQAهwGhIH?#5ˡ 7u g!S4\}>#1pv(͇wDy֯g4 ErU!ёEB&EN_e 4HP=ȩW:բϋxh6tOZf (-`{a$ÈD%sw EW^*{7`dNt kwOɞ-G!>hFNgLJhZmbM>9F&MG˻ ]c tPݼ݈ۛ;*Fhh{%7U)ImnrsߋQ̾;q.UmGvօ],dCZrVeYd{i WD筈So$loԼ7ڇM%ťq 8[[J[h͆i |8%X:5ݱNψwo,7BGoU YUDy{0*b܇0K'`?w /q w†{9.r(]KVȊh8SgXQ&ojguZOO@SLxjߩ? u^9M9 'HQ%| 6T^13'[q/#|ѢWxR# 2W\wV(nijxS{tK@ꃁpR*vXcS2` lNBiҧTNZ `~q: 8qd<} ΑH\s^׹ uű\́?ʞ jSq_nRQ9whJ!Dv_jɠe^sѲa˺?8q4}K,u-2 &vtISSMMo;'xG6I`dbNՏj '$u;K~P.߮{{8vM^HT"ѩӁj)\L&GA^Zs`!LMt:ε]#q81omm4#u.͂Wa;%kBMSَ566ǗOU9|*WeRU=8[$_ kDVߠ8 F9^=o53IQiCoXZYwJolh x)fs qb gԽԌ*\YmmIMIE} o@h_ #-R(6,}-ZÏH^ÞlpT o`. ~Jv&ۭI\~MxwzMU89G}?`M{{ւ<4_Э'rp+=6J&ۦ<w>{0?B9  -L@n}Gyt$Tgʊ{=~F[XY0a䒶 6͂#ށl;,:U"NQx^Dq`]j֖iA2Etv q4"MS!&& {/]N7/ƛ[bj /RUC3Ef%]PK㥱 PK1-opale/matrix/Solver.javaT]o6|&+I5 Mr.GyE"r,ݕ>Ԁ rt7trM6R0:whmA"<J[2t ފy7:gJlw1z_Enq?c(Cxm·!2+OStE,<uF9/+tIC$_x~aA!3YL|fF9@P, d]$T6g*xr4/>\!`_nT (%2r p5r Kžkc@ekyms^۷)]. J׍ьʼc}|1߾qrtvtnZn`Ct1[^ktKς&~ƕԁ9sTȹ_5^5\}B.5Qt_Y`bndƖ3ʨkiaH[d/ƙ[72KMFA?՞p:i>Nq>^׫"H~8j;ݱFזGd'Q!J1o!䙗mIy.DZ0<5þ QY].E,bK}82\Q_DAԙW.נ'1㯙.NTn^zuH#oŨPKz ~PK1-"opale/matrix/SymDecomposition.javaUn6|W[EZ 8a=䑒Vq)w(ɍۻ>4@ή'7#6^/I:2Bfdjm9[Z?lJHMG#T&|bej\Gf(G$t{v>B@YXzZ\tzKZ(kzx/\-,39SayNi(,@2mb,H 2rZ9ZQ S3\A dq#sd4EEHk|Xv^v ;g~-Mn `t1q>88+,~2%c=Bjlpa䁄ap\|ܙKj0Ei/mEpo5 .39|7>A t&Zt٨S㤭6#H؄}gIt֔:UϖPGϖyuSk8$z){bhW^Rb t/v lTPpN%Bo r_ wnɝ)tdd> =O?GPKPz3PK1-opale/matrix/SymMatrix.javaX[o8~ř> dG/b1u T 8-}eʦ+I9{IYvg;K<<ȴ[ h6:NύHE(6PS*KaD320Lg@s#)3 TM%Xg(`؄^ӃQ2Jt?G!*A<2%$,ŧ(YIi8 mHRNE5ڗZ#\$ q_PТ)L6#2Gq [+4.A/VrA,iWqFvw  <6G2p(5O,$up'#o?qKb(,23rAIWd..?/oc8nU|wy0B[)[rD'F+)يc.Vh#鿋f&yj\ Rȥ Q ##_ƙԡ2O 1pc;.Ii'3 :n{=aFYCG:4Sk%Fduʖ"DR<91T9·a)O(ֿBəbK_Ęܰb%F_iJkl1?bn4 |e3nUbo L '>'Qp_~ RV=ɘ6[N咣"j/N ⸐Hbߢ6yӂZ wMD]87v;ƔC納7KT$Kڱ PM2xjۀW ױVq3;ۅO(jJȖD /5Gs+vş|pEvsleBMr'~=OhۇQXu!(X6mBqDy0@[G|lqwXH;s%R)UNFz`7qXMxτ}@ nTāC G!i\;T9:-+ +㇝(p2ky5{!XCX 8ϢE+X8 23;qTrŲ&h>*܊f躆l+O{ަ5FQR*Eqw&?rX<] rrd޷q|sd6~o:qeONACH#k ] ͣBNcc&vi`w{>-2|֓3iik!4@z q+7U{xtT{{҇x66\: )$yrˌ95f'f%]DW֐q?*\h1O ԰)-H:T0jFr=q8tŐA9/./k1?PKA"!PK O- opale/ode/PK O-opale/ode/scheme/PK1-#opale/ode/scheme/ExplicitEuler.javaTMG=/(%c®Vfg{X5WE^ UC4]"jt6H{R&L'SnOIv6i<JXGs[)l:k6YG>p-No&]uW4-UtlU[8g,<*}ۊeq dU`ӎuPTg{;? O6w+xeg:׉xOt3)O\-׎7BeqB7nMX㽎cqEWq&䥡HpdKl։=ÓܔP ҶGf7Tۍ 3ͼuPdDڑ"h.^2*R4M"{Gm$HyǙ)a[ƗN`dƒ*G`#H̹)Vo64-UtiMU[823k,Ǵ7% )^UI{$L{ @nRYSg;2&l\Yt"pᘔRݖSZ 8P |nX^g߱u8hpw*/%X2DFe _ܔoMҶDw:hT9^WYW L˫͒׷q81 (2*{pBƓV*/G]L4pLsg("Z0]^hܠ){3'BiYJ[c(ށLFC_ck*ҝ՘#oY`ҸH.12@E%gg.3΋!Qt0 Y &SI;^Oň|yr#c7BϬ4Lpt53J$+XBSx4Tfg#̢I/J6LI9r  O- u:.8G>Ǎ>W ;ѡ kFEj~DhdLZ"u9/jנzݣ JnP3=TRTܓ ie2yӁpu3:LS>U\ğAkz ,yIo;ҲC+v8h_٘P?-E}rbK$sO)xOzBvM\eٞ!ҏ^wj2wlNđ[$J%k5y$*ǃU+?Bj˾Y^ĵwPK/POPK1-#opale/ode/scheme/ImplicitEuler.javaV]oH}ƿ6IT-T6%)Rq0Zx=wl(iO$:;n{tLqj@ʐ *Y5/D2dAW㫀P*TF -Dr%c.%>T]ub(lull9P%I)rH,tׇfK&q!%{QmtIȨ<j^ZI"`;Hu Ue ?H =\^Е4{2Dl}BIP΋f)#o2S (\g= .JKttj-.\BA:g˦*ok|r#xsK{J#2i ͌׷?g=K]XRi(xFeOG^ g\pv=Nb4>?d<[aՒjI+Tb~[0meR$Z!GA!cl&:[akTL-/tdS#-faТ~fƉdotZ6O~uN/D7~m2c9v6nknX*Xpzzn02s՗zQ 6 ufEX%/ 3$Ir): yЏ.l@p;\I{š絏= iCbH؈ ^ ;Ն]D&7B`u&tgȔ 86I o[ (&чuny%dUѹ|iXgT'VfJA}tI iPq!TnpkJ֔kYJ%2nK#85Q7?!QVRViRVsdEzΈd˔ӓȜا`ҟՑ;0]BxF'Ȥ\iSLY DL cAx}e/fob?lWq QÄy9%>呋 o$?+X$^`4Yeo%πC&\-@FZ&3nx8wg]"1ʼP1sn% KDžj~+~rp<]K=[' NAN•K=qg&yFJWv(?r=|{*WHS%.dC*Ыru̗+#^"էەp .i(om/tE>nTf}0m7s_*擯폷&|I~E/cig:s|G &VƷ ѺۇDUSF: lj6mp=W4;"ƶZ꺃''sm;ݸm)f3~SH[ psk2 nd.E9'Ÿ%`7]Om/ nC̖Cg$uUT+utzLnPKo42 PK1-opale/ode/scheme/RK.javaVnG}f*/]0Y0nZ54RdbF~ !Q@L[jOm;s9{fV#ƽa#E.֜{1znP'lix>F42sZJ7SS`˯:Ʈ7&u0T;!ArNMz֩nwhTܚV 23 ,wicJUN [=/= LZ @fڶ #6sd 9s<ձdu̹cR Yt+NhDt' Qɻu=IK`Y*gF܄0 ^bouҜt(Ӧ@ foFW3]^ӻdһ]wWJgEʬmr)W`v- fFѸ7 N &ѴMZP?7Zܒ3at~kLAeJYQQ #i&_VU#羯] ʍoҭ7_Y`GݤAGMz =c*l8/o{DDWamvp@/ZFF tyf,JGh_V)QH kVeS!ɽ\[d|̤PKmI8r1?w1vNrGrF#ǩ* e1V e hR(WP}S2ݔZjr8LZ<ΘTB!\h4"ܶFi4>[.tWU4 ~9OtӪ/ 21JݽBJWh֪UN$LMYM>׿L^PηTeݠs wҎ5a:59~_GG`ULcf,~߿X`'||I]ǰkV"Pй|k.'LJ=|y`1%a,D^]맣WG['ڧURpksе_~7wc9ſ^>iٗ6''*SPK3h4^ PK1-!opale/ode/scheme/ThetaScheme.javaV]SF}~ŝ<2&v3q(ئiީڕsWtڇ>u#:ܻ<:└!A&R2*QjYrGU˒.ΧMLVZla5;F]K|VPKull9ŮT%K1]"t^h-ֈ&ǤN(vHTK$e0u2dkuȏ,3C:q/t!޹eħ2U[_HF0TY˘;gxƩ̛TL? ¾6^GK(Ilu@wpx,7&׺@ikD*Mi)22a4Y|^3}f!۵.H]H` ;>9SܮWoK/__I#4{STXrDqR7v*c?.8OZ &p쉶AKx~wC6}xkmx oޘv:m4p1 /盿~hT\J[9SCgpSR呻YeY;aXS ţ[=^m97i mFਵ廎"tz=88ԞY&A57ýC;8>9|Tk>Hr|e~Gd8q+3kϻPKL PK1-opale/ode/Equation.javaTn6}W[@+ $qKAJJJRw/A}Hl3g9u a:&#Dr2 26R)&!BHk-rpRbKr2[un!: )s<8h;p9‹U-7T} "X08  ld\9`Ն g5 ‚LZ{AUq.ΞEJ>L!>gneѴϚV@I# z dK[8`@B;f?L7otI6Idw2!F,fU0t Gy|Ph!P(sI;#|͇_)%2oy|-rsf$ `, vQ1m//:nmW".JK;2ƹsy1BW3QjtxY0Ƒ+|g1+^Q4[VN$u-Qe[fL|2ϤjJk:D8hqq ? ~ ZuTĂD4]=4U1L*jOUyR[ӧS)>C{/;WY~a=@ygr@b,-}Kj?'H w qzHeuz ʐJd) SC*b2$ET;W&FnO _.;;*b;qʗU|Rr>Vi8hqY/yV]f/XȖ|^ :nrZ6 KkKW䖧5G=~)g?D~P^HEw)ӔNQ)lE^᱙SsL}ٹdXW؋6ʼn?PKGPK1- opale/ode/NoStepsizeControl.javaTH =_c`RY.qXPKP]mv_fVKOOORw0_(\0*U1hҞ0}\LxT9 $x@m {?ӭ7F;H1CS=4-a^HhMY\V{q%B"3?J8bńږAyJte$*=.G90i8[GE*詊1wAF*pT §M>Tt_e?udwҔK` lUBiIZn ޛJ${TZt |pp g9[jb B+Bʬ3rB¯d'(`<_Bp p r1F@xWZ߄i 陠J;DvR'ǨQBLMW]Rȍ*#oa^[݁I34CXhSozjg!@zQ6r:y-8{_^ϩ̔>zEqTNe3Z-fgev Me\%u:klfi"3+(d!.&49_ڃo~%2P-n6ln݉tC籨[TcjA/^`Hn]Q3ơ̩pX>{?5]Hs2bzhV\K4^DÕZqK13eA#c%1_4[BKKhK=]Ovv08I살'A^jUՒ8Tr4ZRO%0l,djpr-q5֑(G`R͹N@4Qtl]J>u"oN85Iʀtl`6˚4 OvW74SJ!E1ZLKUzESB6hxɡPrLJ>z+!ttB u)8[b@|G?nF`s[!HNCEWe4YLv [܂J@FfNL&3/V+/iBr==MY.櫋hԱб/-E=36'ނi(MF+0.#FA4ŬaT1-6iQaӴiLk)Z!fa>XXhx:^Ά?ݬ&s.kڐg<`6Ժg7g 8DFyÔ*gwNTe%j<5&<g<3'?Ffj$B++ =_^uG,I'' 6 H]IRT61[j(̒mMD.}.Jb!G>*L@DSYBe4?8)k.8Q5z[YDP]GX0S@ȋzvjCe<FXX,lY>@ƥQ%{qSq{]԰.[,U e:ݼb:oTQ_M<=G/5S;LG Yl2|R!{QBt'_L8ke͞473b7_D r-4j*jS!F5o ɹg2CZCZ_>6ŲeTx}k!ͅF|P`}J0`uYjXm 't oژY}x>PKNeFZ7PK1-opale/ode/ObjectODE.javaTH+mD hr2$2 0ض˸n3AQ=Umؙf{]{U(m^B;(\Sus:ʞѷY+(hT-@A'MG"~O1Ci,T{;s,LwXyYtzMjƒ5}wV\JΔYYlz䪅zOО c1.d0?x)kr%ķ}V\:C'AWQBYi nٵr "t6U+w͌Ç\U bu]##ʾ _ƗUisH<>K%Ӝ/)7qMWkFfeVr)z>Uq!6٥a=춛2DWoeZ~䕮ӎY*u"xNrڴǠs^|Chj#ogyi6wĞʹ^c|4 0ffwa&S|Ҏ['5)bľVFأ3]Gl_*gҠhUs IMU>R=w:k:~Ee$:)hE<8K(<__IH$&Q4B VN>&\-jYWtqsy#5BY1 9Kr "Tɥ|1ӫ 7#tR0׉ 0ypB:lA. $CGba0x^n ;Ƴh4A i&P{S2BGя'PK3 t)PK1-opale/ode/Problem.javakSFhC,rW'Cb\, Jiq=i$\%WQwO3jVdpD PD!e (gp0Ô.SL@22~Q4]>YK<ش}@xL3bY`*q#@kt]!IF199qH 0?8};;Gg,RFԤt e, (;Qv?8<8@F| ;pszvpNޞVJm.M2MQL9t\\9G\̑G!:җY3NK%5Tz@>dHLd*S >|/83'1 Ѷxч\盛/6 vF^<9cȉĕo#MEKǒbFtD*0dR%,K/365QAaHXrrk gtZv& ?K$EI3i($_l6W )e!jDBwf2+BqK[.vy@Ɵ1t#vIBSg41f 1-1œT831ZE <`ȈP%ƕ ]穈iHFRЮ nʼn~OBӻRYz&PKxzӅ 2tFSeY8gd,S<<<^'7˕h xM`[G#z9$ϰMfغTy9R}LvSH3&~} 8P[lpn:[e++tf|oUt>kq(V)GRxC2V#1Tz7.]>jNɄQ,*"!D(!n\jLU4reyLdd {k_};daˈmoD@J2g?'EЪc-)6FWY8n,IEJ-κEH>XjU dlF3l<:Bh-|$-4 ZaќF'Z6c#J#$ v/l  e1(.UՇiwFZt 8 ׇ-j~Hms7^8(r* a)bL ߮:6(ljy.Lz[Ts1 -c~+r"4rU|$i:U!r 驝W`W>!T;ťrsx#R>䤃Ľ/u6Y.퍋i.&t:+Sy}V>bݩ܆RpZ(lѯ}w!wPJݜEɄgM.U@(qпF7X}܆Њl. HZ f ppl1׈P'[&ϨS(2V0-4k͔K6cʮ9>5CW6Y1TjuNM'G6p$afP1pG͋#ϜK:3qQCe‘IT׏J a?o6\ӏ0<#My.^no>51pў_CWRѦ!rtX;^2=cc{؈MHӜ1IaL&EmĎooO/E0S@$'HbTPjO<9iU|jc^ׄXDHfAˈto0Ų3Q׈a_:݋uCO}Ef}f/V]_KUUvc#j}iבF4d:Q\` vA] 8ҡ6B[\բԩb51#\~f nU SPx}DQe(G*[2z|ZtرַQD۟W7 #woY\YMKq{]w7ωܼWBM{&u)"uR!HKW:v1\%_jE׼^=spg#T&Ut~60|uf2?GH;;e?#`eR1ZӚfp,r.O),~wΦD̤ ,F{!WO:Wg r5uq\ĹC_eq^LP1a$V=孏zٰNpڦjO}мS5׭:+acÎg]R4UQxCY+x+@1IïG`/+ynڭhΨDL2P"oV53~;?D+2i,SVk L/4V4I3 UXi,8]29ij?Р"=|ᘮfQ8I&toLh e"Ls-HjҌHNVfÀE6WNϞShD"28~c Ef">eW.+4~&#tcZd K4žS#4Q`Ɏ*_!݃CnD+ 6J{#Ƃr%&yc`'W_W#0Y *hU"ЌȲ +9x5Dzrzr#xzr򒞞]]\<~qztA/..=K! .j3:B#(Of&S5d*\G$'G7Dt;ϬJuN+A^`8诩Q?Q=6k:y#ƤXLţrelcͽȀ <攚Y:͂  D~qQ_99h6 > ,i$F&*'4}\LXL<X"Ȑ-Ry6t&r0h\rլ6stPD&R)4B5<⑒\PBA?(faL(Hp"hEvﰆHZ qxȘ&(¹Ʒqڌ$1s$LLG‡BidI"ntѲGZ F#$= `̷.}d?{rL}e[t= naG..H"Eg*2jk뀷x DG%&i2}3jsN Md%hBU$*6\A6]fTܔZ2MM,}`nMm&h(6#ή6js;ŢoSnoll-#seؼZbM9) m@aٝѝ%YM\fZZ;5[3_9o/ֻ̆6*I8By&QT-Ut<>Io\힡^QŷsN'bb:AQl:ykX$(xiZ>˗˝oq.QqzH)F( -R{N=fkڕθK2o_Ҡ(] ,ǚ[E\M_ܗm,?ɥm 8?A= }\>Yxc]sOdN-B7"{vwtvB,뻐NjG[UG6/>{GkbF& ҽeE|֤ZOXgPi~5.kkP48I\">眽 Ĥgؕq1Ҝ\֢{hJhhx. k-Fb|ܐ~PXkn{5fkic0XLw=|`~Izp\UƝ/2zj^ 2z=Ymy|*UVy'ߌ׆Ѝ%ܨAې<~y)Ѭ*dZn!#,cܽ{Z_|I$w41?!ieST^1vƐâR;~u zP\]qk61L=ewmrLS`W T4n>F5Z%xTo6~ST-~I@9J{+ߊ)OEdS{)\M6}m94|i|Tܮjiq_)bTovLw6Ʋ{vuX7޴ު{WZkvWt;'zevGnBPKSu| #PK1-"opale/ode/StandardStepControl.javaUQoH ~& Xiٖv҂U!q`&VgOBKdٟmz:0cXbd*cPreC'h`z50q2!sXkiHpJ6HdLNke!D?[bozuކ~fPWFEmP:NN^ <Q d:484[v9">/WJ=1AX(n0;^2)q%[44Ր] =۾PJguxI7R76IRB(-2duv=܍~HnDdV(IȔwF/οd:Ys8rGv:Zv1E B<ڗZ?%Tr%*")G15үtYK] SȵH#֙a^$.|K!̕Iۨd~hz? 'o87⭴$ ,Cl+~4FʇTdRCmLO"qdN<3K+^SΝX$嶦VGL-ȬI/B5Beu6m@~y{؊Pj zNP7|M_g9,")UmDT跘oa:`A>e2 yն9]>SQ5#nT#qCD|p'3/LǠ0rK &$ ;vx àA' >.eQL"c EMD>跩WA;(kFf]f1j.7ޗ *42 ktHٰ)U5-w% OqF6x5kR@Q1ڌ@uH*dhOل8 ݒiH'Tj?=*meZl$*KAb4fG G^kעQ#3y,uyǟi.I*bvVW:-zc͏NDt;b.(q̭\ek_m̓rJ6+NO/"~T2Fy% WFdTas'*(Q}c18>k'TDE O_!6"R%A<>Ni<:L)/V6T[ :$ް:-<$yzm%VF% %vħV T&+~7*踰Wd!5#xkUjN"AQM@ %s2O*}| 6Xhzm]#'!N݆͠%h4՛,f 7qPzl,v8wЋ{u1U0eh^w([喆i*W"UrߡZA/B >+XhHtxL<<91U WG1%*_6oÆ:taD~w6Ƀ;Rg3^I7ͨ0/PXo:}ԋϳRIz8+_{8J\xrlw#]ir0$`:Sʧeorr^qn,E6+fh2XlU51kܪʯ,Wbʁ'^JVuj;(*ako [ov <)c:Xy^htJh{k()[Dp&{aqS%X٪a64 g <?Xstw%ZJ|UZI^(C*>t; =wJ|L pSNݷ ZGGpO|G/W³ (-(SdgP5xg*#HWZCP;k=`z _&Fu ~@A ۥE,huP T3X*ѴJE)8$YE:Eywp<XSz6 WEJu$1OvXf7_AeUCqw^`?zK i~z~BJtI >ĶiW(i'_%|sv̽F_[v^[g $[I|yXzOJp[QuQm tcY醷p# M[+/JJTſPKML[ѷ~PK1-opale/ode/TimeScheme.javaZ[oF~~ʼn_B2e%(Iumr6"G4吾lz~g.INte Ԗr\sQ&CڦӳC"ұY)2T΋*KDAǯώC:*5"RE)(HĕHUR[*jZe |o ,)x1G{{4RA U%ZQ!VUG"BΫR,`2QXD.ny͊JZ?^c5^L`22iyQ_+feXW !IHׯDD©ϑD%P(*ޣF܄` &|rv Z)UZ,t$p]|Nۃ󃓋w8\^*ˆ\eHVDYy ޙ/Ǖ]c ^]fśs:{s~v:; fBxEnuh>QF2,?`i .ӄ.+B^Ljb8fw\P1]~Tu;3c:pL|K:tF1l;{c%ht:ݝ> ћA[6+a:~ZI3˲̟L&#,Em%%"+ [s6//ԲV.*b2[Q.݆&pGh)Q9(p{_)Bxe8:r3N#a(@U ܈N3A+9ZUdOBf2kCWsKGhzbV܍1x~dB0s\=ytb2dAHY,,ힾd6(ke]qxO!;h7BŢ;1G )gk Qsʓcgp? eGC?m>}%8o\-8^Xpgdڵv:{K7>ҧNAǓF]EU(F~wkE"Ekq[XA/:W.d~{Xe! ]i-  V(db ([Zݷ#48-p Dym|&aA$N`C:n5Bϕȿbw g[ p&3mTb @ Ɋ=[ b>wK2|$pTo+,Fo2iR& f3,LUkY@Y#xڴ.Oεj#?&:ZXHv瑚yz׮VL5,8mE,q07sk2x-(62Pu ǡJZoO{snAzĪo!in.MbqsDɅ\!7LKm"52Zl>ჿn,Ip}. ݃- *c3$n"9`4_¸4W*QFUء+GdR̫ `%śfZn$W[ 8;YjN1eQ yfK˛c:=#9+Paزv) NB:7zIW;ݐjR/;FwL[SnF_?bz5ݩG 5+׼}~51G놐)DMܾUEvxc|pJ\kvP׺&x-W{zfL\ܼr{j׀y0EȣDJk 254OnZlEbtVhXd=XAlg "|k4_~bQvc?țle'Ee_-p,nTwP =H[`W+/F_\6v1-M6Jk[Rww+NiIp`?rDR'$Mp-hւjkV-18wwNl%PZ|}pH pl~ȧ-?x ? PK' &PK1-opale/ode/UpdateODE.javaTMoH Wl'-Zpc(r(kP95KRSa!UWZg9 6)kr ZWz"qp e"xDK bhF"$ʝS.;jNwp=\êQSI{ #B2>+38Q Z9X07yLŘT$og<Du*8=nskT/FTFC䧮^F=1>'74~t:!G\(k!Gh 'j fM{qrlԍ5̼rij —3dI/vW`mv2zY`8I?m,0*c<ӁTFsh^%wXs͋30%8#x(> ̋#X8wC amfoLFB/z:Lٯd&usQؼI#RƞR(( q,_MƧ )^e}˶3W:'$i *p$㫫_VxKVQal(NK9HrV8ȋ[;o*6>b#>+!0u:+6DU!6Jn~DȔ C1g&i[AClSE gL4vKxF90 $a>.n|bS貤j+sK1Zƅq=R 1l82HBUbuO@*ۅ#ٷ c]X" a&XD]߅Keyy{Ep͹x `A?z oe\l}W EW0%/+(\fY=.0RҲ 64`ɂdv=Z9~c+ٸi[vjM}׊K|#Ծ?,>D*Ɵ~m$h@0 ,q+0GEzVEV¯l͞,+txt*VQS hM"k7nDk`U߀+b~Hv4ҏ5&Rx*w9o 5xE3qDzq Y֭l/V.JA7o1&x2]t %L@Ʌv Nz2a԰4B o 5*SЖϑ~dB 30e!hi{ B(kkʢcG3d~#,akJH)![(=0+lkU<ڕ;sw- %>= j rLa ʬWpC5ZGKpvj6P_" (%dF@j0pn *-'H*v#B0+U!( _ws÷t:)vI J % *B-qgW:2< \p~{9x  h0t2]3]CK_얕~TޓҎXrFR mXI>G u:/0GD pvmgZg7ؕ WUCgVq…ɫQ!vlYj$.ƅ%:d:7\IϺWu.Lpc$yt[hVȷ }l>E+qIZqDͧAPm ߔ"P]L$-з/0*k<&|=X/R &+WF'= 垠< YJ:TBePe|nH~}GN1_ l!(12rSp5xc aH`E(=eƧf-> v.hFfeNj4?!xy+ .bC̆f2cv3MX,}[L)(mr=4)6jG\9*$HJ5<:ΐi`2VNsU2o]t.4q xؔ~amZN姿JqWlRŤ3icW^ Evy| ^Z LV-L& 帯۶F~`*p!1 U=hMv#)n1 ͋^Gm}m@_@*P"[ܑ8b}(S W\OѠ9 k=ìowetw'yi~ż0 u v [t\o~MTQ.>Fm32\)+*"1Zn$0iUgU4Kzi"Nf v'*$,|hӲʼn5$N#{5d@T8NٲJ[K1 %DJSZJZڦC@>4Olxx@%RRΨj(ևS[H:hV?u*UNjx||]`T|-Q2HJZ)Lx,}6]΀H}I*Vh GX}lUIlR"Eë|t!c.]3~?EX ήs[e37s@3eՏ]p4|΍͓EȰ׀-ى\9[nzS?j/#+6NX/oZ;,2X$/}jcKz)u;YǷ,yZ(AA*ꜜQ)8few܋J .e#[1 *vPAG Uu*U{0øe2p+r}pnFz:xxuK=£Wn}. Y+[%V_?Q.\g3Ut|myx_-l'usڨ b=~$h&ҮkaT9%|Yb4%k/)Α&ȻuGPKOF PK O- opale/tools/PK1-opale/tools/Assert.javaUMo8=Gbځ+IQ5pRnlc)j$qCI5A &g޼y^pe4r IWUl=@]&ha~0 JȌМ $Cm*9%Ƃ(G`CJ[Sr>\FFMN5Dcj L R`1!d#(O PD>k ~L|{,ek%9{$A8@|hʺwqSN7whe8> @,3PZcf:MsSQk9AR{5ô`6|Yl7=<·h6 [b J+Bά(3 Dg;m5-V2Zmfyv\!(t#~R3A/v?#MK@.vHvQ$#ijSfMהT [E>93˨0+e8wI3fj4y.=v.)G{1D}a84P1={EqTI 3ZGWYYQt[Ҕ^ȶiֱi:?2dO"C"x' /.ΰR :6eeSn9'+=Z8~jpRM O'c!MQ)GyEܘh"I}-M|9u1h#a}7-ͨ?r9u@\9*05{,IGUHȠDȟ*%M܎S{h ?ٴ];px ,,c2U$<8ϯ&6-?)&xk2&|J\{}\mTp]/T&3Kp4?pl)aҟ·Q d< fB-z&,y -HI8 ަfgM>/u\ҮFR9 "u *[o0G$1i;+ۍZI[ǖ}w{Y?7⵴$|XH+~o5F"&f,rG**_(/XR_aʈ vr"b7ۚ&;gj"& (DX!<콀ڧw,B k2 1HV:Gj˶? K;r4U8S <nBY`,8k@޷N6IT1V+|WQv膨Eu=fSPf0xojJZ̭Wg8s¸c2t \;LٸIx l  Iϳuqi 9'd E"D\ s9dzx[hEӪWQj VVakQq3fܧJS%Da)^{}b}?eqחjjc3qhh#[Lkw( L2?d~юs=o~:îdPO޸j_ ̪a=ﰦT4,❞QO_'Oz=VS.SwپuUc毭WWs_PKitr; PK1-opale/tools/Debug.javaX]OH}n~m^k!5e"QH ab:>6b|5e JmcϽg=clo5h]RH̩DEfNEKCÐPMHiLu%7GEXuZmHdغ쳣QN6M:E*i"FSQHIV'BEs]P$222QIR0L*2 #'̒N)Jk/3i@|PSdf% K9ߴSxʰB{\g[$XܢͰWWA]qtΞ/T* u1! <9B^4ʤH1}<?>Q>ONG-*XBY* #2#27wF{.w3``t; i?Ohpz28DC)k˴eg,P!,Ә\"T((B!Tg5|u"P]@F> s( i$A*"vX0݀iC^^w#:oU|,R{^1Y:+.1SK*j^(O'YvfjX1fDWyhw4bZYMtujϟ-]{vǛY$< /|)^3''8H >lUxVj\'|'3m9r?7jI\ʲYZW~U?Hm~Ĭgk9ָUik%+JooYKh~F?wL^'9 X[K8ˈz/?tiߙ*K~486fRɱ{Imݼ %B`e{ɖML=yDmRʶVf놛+V8uOvK?PKyPK1-opale/tools/Field.javaTMH=E)kZA"Q4ж˸n 20lrȁtUz^֛h9@$j/ Fha9,{*!5P\ x@ej (Q cA| fb}~`Z(5M}NJJq!B_ (,5 dBŜL =52@erYvG[90Ec5Z"iR%3^ Cj~t%搶]ጩg*03O=:zQoxw tG`j|R]*{?:nJaR)HEBdH>w Dm*yS/ Ej% &B3vJrE1[`mdm7x/BwHWy[*CzTӎXJq@rBx6s`0vqt;oA:{1K!*ڞ{gRϷȂ1$_1SNnښ*03ڋK4utiAg{s82%D_Bjry@̧)&1`)# @I{2Xos&`<=^CL9Ar>z"70!<<1,y&>or ɞl ZCE%c8*3s@{p/ΐ.*J ̛V(%3-npjnbHnANhmƷlBob=+Ƿl Jj;#s d'I:OVb5b>[R`It= -ӲsgIQiҔԞ9*e{o2{:yA 뿺]'yvSBQvQmY]ˌW9Kj^[!QZa}63w*'D>*~-$>H wCu)Wb li] ~& }+˔a>aǠmAgԧ* isǭ=Ge~ ^^In*4ٵ<5 PK1ZY_PK1-#opale/tools/InvalidIdException.javaTMo8=G+ Ů/U '5Ɔ?ȑF[Hʎw(Iv؃Ky޼z zX,CKE&RIh;hMA<,xB1#PОm8*⇒ j:srB̙Ԯ v8Ţlۜm*q!KGop8R8*٩ `1.ԶP1~;`~j[v/[{=!ėms%xhG_Q%G*3[g֌A]=9ϟp.ΐ}p_El3oFi.]nv#WaiC؃9T!06 '|Vq4áeOPnbdV GLWϜ}g~y׸_a6vܮ4DFw-]ςPG'v3K]{b%=sVZl.ƆEe}unjW9vgwN筈Қ 䩖h}Xf֙Go*GOI4B~;Hq28  Sf/I-w̃xÒ;'bX+#|E3?$L9M{2+ϒ=2Ǫ5KI7xyG|͛ x\$WN]qr&?PKKkUPK1-'opale/tools/MalformedFileException.javaTnH|.A@ixdH@``53&AQ> $+mVC1n::/Cg SavŘVVrړ5_Gg|5uP C 3mp9My ٦>%8῅#ExV8(gd7M u.C E{\cF=UILgTy/)&NDܸ m=9ϏpN].*H ̫V(93`75V2$7x*Əi}N<>G\&ӐCiM$@f0\nUso2{:Lx(CzV#KvbBn&8bv-3^XW;ujw IlTvvykl:}RYNL&pD| KK*l^OZYޯ3Wx}G̊*x.|z]q]EoѿPKP3D[PK1-opale/tools/ORunTest.javaXms۸, ?\(ˢeg:thIn&M2$(%@;j&kMXCųo<;qq4.!q(> ɜe0|* 'aL+ sbZ1*!b Al R\tJwلN4\g"Ol{@q1R,S.lDQ@9bn8?)X9_lh̘@l-A,[1)q%,C>%A(!AbsWej@hH8Y&q.b?/^Ȅ DJ+Qq?TAW"EV}q ry|J*P> go>‡dҿ}좰Z U|5eY b' wp4}$ t W0OfQ8|)cKt4eZ?Loyx&޴Qzs gimu.34Q>. vFu!n4tZw~_p 0 q%x ݆-۳.HKFzTUZ3cJͣIeSf@T_q⹟+j-p9(k}[%CՁ-Gɜ&9-fhFl|NgLY=):%_&bM/ާ8^?s^jΧZY|k&N.' wj_Fh&hVI ljdPF:av ~m-(q b "ԇ"c}gY[(rb[1'^` X݆dz{Tf3+; h4[˨< A} T4(s!p DV FLWG) ,QfݦLЋ p LM!%_H$7Gā(Z !٬"yhxxp>^0-al_Y"DI!RTRjJ09<[I#*'\yxjʙsb;P0ɞSSANb_=ZWѭq3֦{Zs"Fي|1|vmDuDq@ GZK5 5ɣ9dWUqJՋq=9A2`[;5;2g5Ԏ}ZZG@!*S}~)7d}Q{I=Wa47~/J"e1jJA'gq5YSژ?|/XRiRn oa4-xaTʕ>@Tsֶ5#⒃Tc]qh۬ &j-ɇόX,]sonڡWbQ.jNQ$ tLټC9Z3| Y^i!w߆l`*apLS˼a7hK+^sD;$W\IҳR*֬֨\ ]~GC PKWVPK1-opale/tools/OTCG.java[msH OaںZc|!^clhI_w ķ[u yק{ZJ} puݾ8 a_ /W;x.ή/,8B҃o##Op* }| a`{10p9'ρ"0+WpӉ^1#u?fv Oo{)7t~@ƾ#4@ 8?.B!Ν O>}&4gxJjVG(5AHӟD[vJ޿߫G?h6~xx7vV6'̙AH$FQ49} +~c>[~0$^DH #:C3 0:*hc"βh $v3.dI\G{(@`o:~ef<`?ٖGti\];$y䀞a({.eȆE7' +B,4 =;\0G ;X :$!Tȃ%b2= W_xDbe& o'pPh^eH<@cT(O\1FNr)"ʎ1.N蔍O3qwGq<{, ==u`Ć3 dœeYaQ\'zFD/2숁􄒍 XЙe 痫f{ QcA'ղ~ߔıT}T\•uL67~T\I"|*iSvj/CiU9Uehxܼekvv0g%8)*[_pB*eIWZ;-دK/s% L.$?HU옍3LBl M)ye{2*o225hd^.+h|7 iLYBLe0qFUCNHk#*oQz>he Ԙb)FšҋxL*Y+-[8DŽ&S^AuD<[A -(w]YuG,HL^BɄ=YoX?\Rri|Ny8;;OVD9 YKkjixK1J2X1'1#"4P7#rvX><}5Z눰H{ֺrI'rbR΃Ө>TfXjG\( < ˺8fIYoxyfV%*8&>< /Kensr|.-Pz^\> 2)kQHUP2P*24_fK{s/g)ti̖/6yU ,s/CJ,kBp%=]VQiBVfN,nE"IY+*b}CL 4V@F16ڮkTjj_Ogz4l ,AOv#;u |4t6[|_:XD^pR$E{= [D+}1JC\1 ,U㾹Z dz49"Aqo ps z;qKtQ_j(J;ŧ.ì_Kjz"md"T 3{nНD{sctgJiu ^&v`#`Y;mN.ߴ+jВGT!ACSUQJ]+Xh,O|H Ҩav3oE7:_&fMhdt|:uGBa襌s7+&̌oĕWošJK y+czXy"HLn%R|EEَ3XD#߁ƒԽV;غѩP}_%w^qXRO2F9$X\fhk $]bfiǔ l;~>mgq1%zv]mr8h]kLM60SV\(zA& (v%ܥ4d[Nii/v^+S:!)ԩDI') ,jW[$NVB a't$̈&d0eAwAM]7{%Y%+ƪ`JC;;ːA'GhR-32 HҲ =gڢWg͞e:"djr{x%k?hO}19^A"uJs$ 6IJ 32TDՇ~&,֜Aꇚl#% $bAt M(J%6R֎Y*NPQefY6"Sh[}ks18lRhS}Sul7[h5~Mzߤ 243t.y%&45)tUs:>$95E'Ɠj#dGC, ҖKj׀QͶՈNuc ]?f3!m&i휍˪ܳk2y꿗d^ۛo-kmԴ;ʺ'K-$&KV*PgEv~HY;h*F+X8[5Gm'f`Q^!b{>_b4me+˟̈yMe;JmidDboq6op^TBw9z+NfsV}Ejnk ;.1ü@#0iٻͩ[hu--N՚ΠT\%/|oPq&VjH}YjS2Z -{2'SʿBEuIWdZG@OӋ[0/m)xV kne2_x6r7AtEmA='I"e7-s$?Ε0*bT/P;m5EuM7XCJy<Gؙv;4WB &PKoLPK1-opale/tools/OpaleObject.javaWmsl~1_,9Xvܸeɧ"-RxEd{IF?9gۧ :}Gʐ *YX5U)jRrC"%&ԷB4"g YA&2K|sTVT$V XJ/7-EW1=?K%ݔz s:i)%=O+JEA̠T, fm]t|,qs@|,joU* #IZK3M6N]WZC?IZm *[Dr%%K.Q[y؅zP`TD*o o1u>pؽa;"zUj4#RvYÇ7tǟ87`H]Q/!IMKkhYh3Vp>^ZTk((Y5s]\ԐԔ m[T*:][/ҤE?9tXw-E'?tv:λ=keP:$'dXv[312 o]==ENQҷp.oYY),Š+T4 k0;\v飘I 'KKZ$J'xh6w Ǒϓ]~ȼbP[7xR&J)E5BYoH㊫b{ ,CAr4HyE;\zdtK &%8ښ+`J 8xn,KwB/2fK*S%/*x tXEmwww#w Z KQ8=S 2I{يb~  CiW5f;(#3^WK|ʒZC`.*\ /o;1^%Xчٜ ^ 0?-$m8$t[u_M˩)PC'|1ՙF_E~J74~lCnKT 4O xG\ʢo2L qrAnft{qb8nP=WO'D| ߻'2urB">hǦDM77aFiV&`IencrpsHh~8DE,sC{ɾz2}qtZ틅:us5w2Vg4w(:q4u-92)=c9:^4!.E|Bvh"s(p~L~ }x3D": ʽ8=oQn^(wg>HDkڪ .z"dYPl+x !;̜\=9z-֙X󥅇c|w 9}c'00+%%{N܁xh0u u ~RF9Fe/}xFV5u.d'\}QB3ڦ]˞Gq-w:HoBmޮ%9ǢD\-)/|]uu V'ޙ9|3) -7a֧^Rt1.]If񱤺 T_BbsNj0$cu)_pp\ L,t=n Q_PK>/PK1-opale/tools/OpaleSet.javaZms6,>4TPs\I}n&t(PKvtn}niM)`}v/@Oo@j@RdFd Q2KDoߜ hXD2 (bK\_2YTa gM h;ʗy xS2wDgs BjfB`J BNK#@0,T"gKj|`DРf9Z?)i[L 44"&Q&Nx?*(4^s,! P93Piju@kQ9DedT@ŬLwg0>ǧ㣳#$6shDJ.T"gԬ2Dىûpóó^NƧgoǧpr~zr<9&BxMXW@,T@~@Kk2M`] x,%A묙삵55#3ȔU!яZ3M=,op&3'im'%1xxg/6Dn h_'nŗRh+1M,OCE#4Y2T"F|d-X21o' 윛PqK+>$.AhB_jȶob>T Beiq~`ZnpW;hc ;@TLxz%Hn߅-4 6Ev.])V0X9kQxnQhM ,]ؐ`D;z]&)*cujTJ-1p{M]16];7L~tPͳ]]<*a6Jb=2V㢈vYՈXc=] +@>gk#!h:g\84& s䔵']<@r&6:? FD)E:ЛO4Nd uԔ|B݊[ ؀fDNYG?ަ,.G=*(vP 6'0J5ŨWo*ժ[ 5RT%R ,\}QRA]Pjov7RԯNB߼r Baf . h4ӈ'$Ѕ*2#,?-;EX|`g⢤֣Б@؇*,}pW Rڹ?]T~F|t꛾VwHjq2['c ^q:ws>FQҖm΋̄B=#nOz=.I|j&r#v$0a5H7hSê_JQ|$mK%a* 35˔U4Xn'62++C ce;L]ߢP» [Kbn^%o;YS ru6iYEaZJPc/pmw>JD ĵOַy*}bߵp|ѫZC2o6hZ@A"ԏ3L[Vvpč`aoJH4SwP=ӁT.`=N?NLLhX}ۏuJmԣ2a 4C(_צmOjܳBS:]},2㩕 :*Ea^9mӸjiP^"\.oɌqWDU>!׮^_S&g,WB6:6noժGC+S6u,*wiŹId#J`َsӳ'6cb<)үܱ3tUݺ(u?lH}I}")ܸoݴn_PKLJ *PK1-opale/tools/RFile.javaVmoF b! AQգQPC"QUc={]C~pEgܥUj;33oN݄66Ld\aP L&B.[81n1\I֙Dj_[یt7r:F-8=99Y!2+ˢRZ>&NN^ cB6r]:aՆrdw84-LZ]BCu&#E )ư{KeYV@Ir}_K S0 lDe-ÿ# ꂨIdw2`PZLʬ w 7p7\,7)TxyIB&fF(z%d:Y3f\lCv:\v1-!NOKh\S>ctBfS-EŐ-R#[Q@D滋i1 (:30DEaξR晈˒\hXzpr^'.Oqoұ2D\<+lj,rG*J_#Q^sI=y5liDt%J4ٓq|gI_މ B>hRh7a{lv& <:be"Q2JJA?< =c cO+ЊJ%-/aM&!y{spVod"š}`>8T3(~JA#҄HR)㠆I2ld6~Oyٰ%e7P6YAU Nx c~szvZNNsڭ6HDfQď2gJ/l<wR_E$H+T )Ƨ69$(hǼ6{ViWWϥ~9 X'>aN?2 їʠ+7]:~VؿfmK# ݃;*ɋ`z&ixzM w<>&JЀ)#Q~D k#Ri=gҐm|Q-UR#4xR_zX L 9aQJY=0Ih}OHZ:]^6w?V/Z[yH oE lz7[𲡭 ?L^C{&,=64ԒPK'tb PK1-opale/tools/Stdio.javaXkoSQV#(Z]_TqTj" jɵ!,) !sfmFpN&\Z1)b^@)3@3!aXN+"*p8)ZrEКsU,,c8n_["fG?N4`1۰P%Lzb\ZYSir0W,ḣr=7&۫qcp-\#rVDʥ 4hf<-$(.l8v'G~e:U3WLn9CK N99OʼA.~~ߌs~ ѻ6ۙYѻ"#Lb'\ %7^w"쎮.Cם{~ fp^$C+^M2Wg-~ߡQ-GS.n#yjJN]Ը6 HepUOu&7R7+ӤG8\,Em%989i52,^vVc,= Y[|l**Ė6"QzJR-aGHoa)IR_Ty Z*iYb% 5VvRΘ?lؙ4iFQҏl!XP(Qvi$穥yxNsf,'/9ʨ,kzI0΀ÏƠ[~@?9w_)}Vrt!'th3OQ-Lqs5:nK,>gy1< 64-쓙7%ij2.$ڧ9q߭i+-:Å|9Q4d"^0J1 Uf;U9s}nn[zdSxڟ_MleR0kL!t%VX>o-`z*;ym®Zupnb k\gV2BkpчK~9;s&|_)Ya:ZE=&0aK2ر՚Mw9NA 3|Ma_=ֽbU׷ۜSupa˩|V\f_8ąz=|r278uAme91#ۊamKy\#x&"TIԜ/oJyҺW!ի!m^A[p`% ڮ)y\nLoGC ŚU;y,?q9M2"S&q2Vf}OLԛ.ރ C l~ǃ2~V]q춸Ty#d2Op|׍ur|>;^pI;FPKAPK1-opale/tools/StreamReader.javaVQoH~ƿb$NW4MR$cث!M6wpޝ曙oƴ8ۿiA$*'A*F5*Fa?RL=fꌮ?ѭ:hB+`Br` 4.pvrrLFYi4S=&NJZ cB6r;(`ֆ:ɚϊ484 :/7Gk">̧ػ/#TAX1;^1qI4SZu%K4,<═-4 =P ~gLӍsQjsdW2Ma[Ld { tosw4L:dn\d$dĝ>].>K}ߛqWx WtaMz`|BЬzL-wG2a.HP.Ϻj5Yc]; Pڵ`e$}fV! SQo9ys҂:89;==}}7qw;7VRZj\,C̝޶ۚ#t}"2]̘:E.HE[xf4Sn/3zfĢ vr"*bo,˚&;g' DEJ N@b)Bݓɔς񣪣TX xPI4#+>hC>0ٶҦ4H{h/ї󥪈8cI`YJ"(!h8g!͚rz4UjNz+B+'Fl'/œ+m,j{QuKqgXlT٬PCdgc +@I@VkLdb؞ي8?nI`V[ڷg֏2>/T\MOm[^DIQ!._`Z" -h"94n|e _չQH?@t48﫮9eW;;rgU^7y{C BUoPKۨWPK1-opale/tools/WFile.javaV]oI|V"?t:ݡH!qAeqm`,6O]H8GNtޝ})@BF=o9{^) bҖNAD'9oظ[qx 9h<) +^/W&]]ШPڻV8c^[C[WR,yL:][Ye ?ׁܢ!k z3I*d18%.;Cb %H([_*Od2(GUnN\i+PB6LeEiZB`ޏngԽdҽwW(bMׅ`2l"wax5n0EA0N?Plлv'4Gӫhʼ7_nY;sTO{JdirZ  rT~evH/ȺآG}[gZ lhilTNK!r}%\R+JWV̚; )N{͸Q^Ϫ,=Z/⠣;J9cd{m4O>'&M1y mA0N 1e>9 "֔_$ l0#+YJ]ɪ5(wnj'9oX~ BINR7;'O'qL[*FJ椯?D#fhƜ ]0׾)껞 [ywog`cDY1[ + +z%OG8p#!ƩXgཕ ً{!AxǬ368yǀ{|QGy1C"g@ZhM3>=15gҚ z)PKX% PK O- AMETA-INF/PKO-C65'META-INF/MANIFEST.MFPK O-Aopale/PK yO- Aopale/cst/PK yO-Aopale/cst/chemistry/PK1-@KV$opale/cst/chemistry/AllElements.javaPK1-FV+ opale/cst/chemistry/Element.javaPK1- bt]opale/cst/dummy.javaPK |O- Aopale/m2d/PK {O-Aopale/m2d/component2d/PK1-IgB2opale/m2d/component2d/AffineTransform2DEditor.javaPK1- +%1$opale/m2d/component2d/AxesEditor.javaPK1-v#%+opale/m2d/component2d/AxisEditor.javaPK1-g, 7 -`2opale/m2d/component2d/DefaultStyleEditor.javaPK1--F";opale/m2d/component2d/Frame2D.javaPK1-Zq^&oCopale/m2d/component2d/JAxisEditor.javaPK1-ٔv#Jopale/m2d/component2d/JFrame2D.javaPK1-/YMr.&Ropale/m2d/component2d/JFrame2DKeyListener.javaPK1-^\#Uopale/m2d/component2d/JPanel2D.javaPK1-Ku\ '|]opale/m2d/component2d/OIJListBeans.javaPK1-W$N2-bopale/m2d/component2d/RotationTransformEditor.javaPK1-Qq&iopale/m2d/component2d/ScaleEditor.javaPK1-zU#('popale/m2d/component2d/ScaleEditor2.javaPK1-7L1kyopale/m2d/component2d/ScalingTransformEditor.javaPK1-!zji5opale/m2d/component2d/TranslationTransformEditor.javaPK1-i@ opale/m2d/AffineTransform2D.javaPK1-AZopale/m2d/CoordSystem.javaPK1-?-n4&opale/m2d/DefaultGraphicalOptions.javaPK1-h&opale/m2d/GAxis2D.javaPK1-T٬opale/m2d/GObject2D.javaPK1-'&opale/m2d/GPoint2D.javaPK1-\opale/m2d/GVector2D.javaPK1-rKֿopale/m2d/ILegend.javaPK1-Cw ~% opale/m2d/ImpossibleAddException.javaPK1-xM _opale/m2d/InfoAxis.javaPK1-l C =opale/m2d/InfoObject.javaPK1-A<2{opale/m2d/InfoPoint.javaPK1-yz$jopale/m2d/InfoVector.javaPK1-`^ opale/m2d/Legend.javaPK1-g*yopale/m2d/LinLinCS.javaPK1-T9oopale/m2d/MarkType.javaPK1-<\ opale/m2d/Matrix2D.javaPK1-1>opale/m2d/OIJ.javaPK1-/_e=^ opale/m2d/OIJException.javaPK1-Mglopale/m2d/Object2D.javaPK1-Lopale/m2d/Pack2D.javaPK1-kE ,opale/m2d/Pen2D.javaPK1-m (opale/m2d/Point2D.javaPK1-;q62opale/m2d/Transformable.javaPK1-P_ A6opale/m2d/Vector2D.javaPK |O-A?opale/m2d/marktype/PK1-t#?opale/m2d/marktype/CirclePoint.javaPK1-&$ Copale/m2d/marktype/ClassicPoint.javaPK1-p$!Fopale/m2d/marktype/DiamondPoint.javaPK1-F=Iopale/m2d/marktype/HLine.javaPK1-X2LLopale/m2d/marktype/HVLine.javaPK1-Y#cOopale/m2d/marktype/SquarePoint.javaPK1-*,$Ropale/m2d/marktype/TriangleDown.javaPK1-LI$Uopale/m2d/marktype/TriangleLeft.javaPK1-<;%Xopale/m2d/marktype/TriangleRight.javaPK1-,"[opale/m2d/marktype/TriangleUp.javaPK1-O^opale/m2d/marktype/VLine.javaPK1-a9bopale/m2d/marktype/XPoint.javaPK |O-Aeopale/m2d/object2d/PK1-5#21SKeopale/m2d/object2d/Conic.javaPK1-\Jϒ/mopale/m2d/object2d/Data2D.javaPK1-jT !|opale/m2d/object2d/FPolar.javaPK1-c Eopale/m2d/object2d/GConic.javaPK1-30aopale/m2d/object2d/GData2D.javaPK1-eq$ opale/m2d/object2d/GFPolar.javaPK1-1]:opale/m2d/object2d/GLine2D.javaPK1-aZ= opale/m2d/object2d/GxyFt.javaPK1- A opale/m2d/object2d/GyFx.javaPK1-J opale/m2d/object2d/InfoData.javaPK1-J90W Jopale/m2d/object2d/InfoLine.javaPK1-~b۴ *Ƚopale/m2d/object2d/Line2D.javaPK1-5n\%opale/m2d/object2d/LineException.javaPK1->_"'F opale/m2d/object2d/xyFt.javaPK1-8O  yopale/m2d/object2d/yFx.javaPK1-JrN dopale/Info.javaPK O-A2opale/mathtools/PK O-A`opale/mathtools/parser/PK1-ݵopale/mathtools/parser/Cst.javaPK1-1Rɼ ,opale/mathtools/parser/DefaultFunctions.javaPK1-jۿw !opale/mathtools/parser/PNode.javaPK1-g e2qopale/mathtools/parser/ParseFunctionException.javaPK1-vFE"opale/mathtools/parser/Parser.javaPK1-9@R* opale/mathtools/parser/SUnaryFunction.javaPK1-ܳ^" opale/mathtools/parser/TypeOp.javaPK1-qG )opale/mathtools/parser/UnaryFunction.javaPK1-A_l|$mopale/mathtools/parser/Variable.javaPK1-c:) 'opale/mathtools/AnalyticalFunction.javaPK1-e~ Popale/mathtools/Bernstein.javaPK1-H!opale/mathtools/Bisection.javaPK1-0;$&opale/mathtools/DArray.javaPK1-#[WV7.opale/mathtools/DComplex.javaPK1-4,ۍ ;$V7opale/mathtools/DVect.javaPK1-:o. ^Aopale/mathtools/FixPoint.javaPK1-M!Gopale/mathtools/IFn1.javaPK1-Bo9J:Kopale/mathtools/IFnn.javaPK1-FU"Nopale/mathtools/InsertionSort.javaPK1-?_$~Ropale/mathtools/IntegrationRule.javaPK1->=Vopale/mathtools/IxyFt.javaPK1-o 8Zopale/mathtools/IyFx.javaPK1-|7!"]opale/mathtools/ParseFunction.javaPK1-x‘ {opale/mathtools/Polynomial.javaPK1-t"opale/mathtools/RectangleRule.javaPK1-@h\! opale/mathtools/RootFinder1D.javaPK1-DF opale/mathtools/ScanString.javaPK1-:nU"opale/mathtools/Sort.javaPK1-)%ۍ$3opale/mathtools/SpecialFunction.javaPK1- fopale/mathtools/Stat.javaPK1-ȏA6 $opale/mathtools/TrapezoidalRule.javaPK O- Aopale/matrix/PK O-Aopale/matrix/solver/PK1-ޖ]'8opale/matrix/solver/SolverCholesky.javaPK1-En4Z $/opale/matrix/solver/SolverCrout.javaPK1-piKC *opale/matrix/solver/SolverGaussSeidel.javaPK1-} u6 %Xopale/matrix/solver/SolverJacobi.javaPK1-M({ˈN! opale/matrix/solver/SolverLU.javaPK1-9zo%opale/matrix/solver/SolverLUBand.javaPK1-#opale/matrix/BandDecomposition.javaPK1-#L hopale/matrix/BandMatrix.javaPK1-t'=opale/matrix/BandSolver.javaPK1-Qcopale/matrix/Decomposition.javaPK1-C<!xopale/matrix/IterativeSolver.javaPK1-㥱  opale/matrix/Matrix.javaPK1-z ~opale/matrix/Solver.javaPK1-Pz3"Mopale/matrix/SymDecomposition.javaPK1-/<opale/matrix/SymMatrix.javaPK1-A"!$opale/matrix/SymSolver.javaPK O- Az'opale/ode/PK O-A'opale/ode/scheme/PK1-ˠY#'opale/ode/scheme/ExplicitEuler.javaPK1-/PO+opale/ode/scheme/Heun.javaPK1-o42 #/opale/ode/scheme/ImplicitEuler.javaPK1-3h4^ 76opale/ode/scheme/RK.javaPK1-L !:opale/ode/scheme/ThetaScheme.javaPK1-G@opale/ode/Equation.javaPK1-~$ Eopale/ode/NoStepsizeControl.javaPK1-NeFZ7Hopale/ode/ODE.javaPK1-3 t)Mopale/ode/ObjectODE.javaPK1-\])1Popale/ode/Problem.javaPK1-Su| #l_opale/ode/SEquation.javaPK1-U5 "mjopale/ode/StandardStepControl.javaPK1-A1  Soopale/ode/StepControl1.javaPK1-ML[ѷ~topale/ode/StepsizeControl.javaPK1-' &xopale/ode/TimeScheme.javaPK1-?opale/ode/UpdateODE.javaPK O- Aopale/swools/PK1-e ! opale/swools/DoubleTextField.javaPK1-'S% opale/swools/IntTextField.javaPK1-#_opale/swools/MathExprTextField.javaPK1-OF $opale/swools/OGBLayoutUtilities.javaPK O- AÜopale/tools/PK1-xD opale/tools/Assert.javaPK1-itr; opale/tools/Chronometer.javaPK1-yropale/tools/Debug.javaPK1-ҫopale/tools/Field.javaPK1-1ZY_'&opale/tools/InvalidFormatException.javaPK1-KkU#kopale/tools/InvalidIdException.javaPK1-P3D['opale/tools/MalformedFileException.javaPK1-WVopale/tools/ORunTest.javaPK1-j:opale/tools/OTCG.javaPK1-oLopale/tools/OTest.javaPK1->/Popale/tools/OpaleObject.javaPK1-LJ *opale/tools/OpaleSet.javaPK1-'tb opale/tools/RFile.javaPK1-Aopale/tools/Stdio.javaPK1-ۨWopale/tools/StreamReader.javaPK1-X% opale/tools/WFile.javaPK02 OpaleV1b8/opale.jar100644 0 0 663411 7553047147 11553 0ustar 0 0 PK O- META-INF/PKO-META-INF/MANIFEST.MFMLK-. K-*ϳR03r.JM,IMuRp,HLHUp+ʙrrPKC65PK O-opale/PK O- opale/cst/PK O-opale/cst/chemistry/PK O- opale/m2d/PK O-opale/m2d/component2d/PK O-opale/m2d/marktype/PK O-opale/m2d/object2d/PK O- opale/tools/PK O- opale/swools/PK O-opale/mathtools/PK O-opale/mathtools/parser/PK O- opale/matrix/PK O-opale/matrix/solver/PK O- opale/ode/PK O-opale/ode/scheme/PKO-%opale/cst/chemistry/AllElements.classy|[ŵ,+rbY6Y8v}uK-˶l dIHr)Ji¾$@B pR4-PJ7ҽ .< fιc 3;zw{Q!!Nޓ%z8yWxW̒x9W<%  fA/A AE/ ȗAU;=AA A@ / 6w@    =$(* T&(7(( j (lPcA*TT|P'j&*5PSAMUtP3@5 lPs@  Pu!ς@u1K@}ԥ2/iw޻O宼gƮJOkݕ_uwW;XӸLUo]y+/]OL=v.;];ݶxэ]#7w,sf#76څw7q뱝i$pfύs>Rj.MG>sv[l~ܕwu:)u흿qgOqj?el4뮼s#{g:H[퍲NmGT李$wd;vamptnUv͑a{]_8`'/[c}G>~ orW\{ QoOfq5x=rB W48"pJYH0_ޙJJ ¡HoRCp1h uO_`w,"EAs,{`8J כѺ;k ERzX8]Sk(Y&֫N)?MwH^qOODEB!': /b.]O>/++*,noCj?rO/@EOoORɃQw=RLدD6E"`*?dP'OcQ)Xp{0-砨HR]SW>uVZ}fy9Dո-! >u'[|rƆ#!^`q0svnbzƛ>u3~ISڧϢv 6ߦ@zM] Tl0sFth;Ц1-drT||9gl\UР۪ Cp* ƢRdo| D2 T4:8;mG'Ro(:y`OMwzCIۊV/Źkn3]3B@$tIbH !N1:Ϙp4 9KtӤuCXVRJМPgO>oC7q&4 jÂy=><-4"ýX\ZS5z5%D&yie5`<7rjIé:CP*ŵΝhPyBٍZB-pwoϒӪ]Ekk '@o ǜN9nmIj1f ĒXbHo1=2/mEfV{,~ldzvP?G{wsL1rʎ}Cϰ:S=A;N}:Ñp>Ng,Ģ)P$>0?.e#P@~_]Hy|қPMl0LFYU9DARݦ09?U4m4L^s0}kL>ai5f3!s0O3̧uz7 C f3e.h3tQ7mMa՛6VlZ抚`h7934b4k5L73Uaz63*Mܞv3mYskl7K9]c̊:̨N4vsVafԍ.L.];;̆~NT"r%?PzںDS蜡`$%B5A{],fsxqc&/BI1>Qo| t٬mbt~_45kYj8n݀^`]I|/ 4 Ү/d3'b}IH^+3ok^tkޜ~k߷:9oʼw )o/g>|0RBfTy*XT2"2nw@ˣf;!gJ!̿J ך"sވp{dOxʞl:"({@hDu3M^oLSQqD6\a1VOQwX8M=,HyN'[J"bwdk{tAw;8 :uREMz2΢&?/*Uf{}#KF>{1q1Q/d,sSuZDvY먘2"n.^<$.02U8wL;"Cb/hx1o;lDxDdre,ԏDW~fY~战y\dw̔:}n ȯ٧wf)bmq uL9"f/2 ϶9s\GDb,ƹ%s0-X;ߍ<ĸmGĂN\:)"'1-v'Nʡlm+l¸F/U6F 1q,Ƶ6ø61V٘0ژƓ08c068c0'clq blq6 1Xq1v8c31v8 &gcl[l,ƸƹXdaۘN|;ڌ2&%ɄvCLhcڛ̄0.&Ḯ2kLh m2=>&mfB;Lh~ 2-| GF~ _gBCLhG?Ƅ6оeB7 dBNgBLh6dBw˄*P>?`BL<̈́ 3L&<˄sL2 P}1*?aBULP Պ3r &T1~ɄƯP5*/0"* /1&TF^&̝yDE)]RrW; \iD8# ni ҐCc61A+Ш ,#^d`.3d,`2e9q(yLrP?rLrQV1 L`R$)LƣdJ5(=L&2)@Yd2J/)(YLla2 I!4&E(L1dLK F\ `LQ2¤ey(3dRd>Jr#X],D1Y2b%(L0YRd9 ӘDd\&Q_J5(L֢?u(TcRʤt&5(]LjQLPV3GYä&([4lfe (eLQf1iA)eҊIJ>vL6eҁRΤe .L60ٌd <&[QdL$&[M-'iȤ.ojyiP>0ZO9F/00]`ųHWv&TULD3+b[C`.F^²I>²xo&h"{&bT@t=#.~)M/2Ft #*0Lxx Ìf׈h;Hט$1a29ΨEI) "2o|ӌ-4~q#4˙, FKh-/!ZQc:ʏ2lsl*S?:o$W nbf\j蜧5e+!KXˑ81Wpuc| Y;>]5B9">5=S`H`$J( #A[ PKa=*nPKO-opale/cst/dummy.class;o>f].. fYb✟_\\R[ X\ 4  HY@$ªq#XPKFMtPKO-5opale/m2d/component2d/AffineTransform2DEditor$1.classQMK@}ӯZi衇R*B=ūnmwKVY7^K}3y3D-l9Ȣ`#U,YXX'PD}WS6ޤxLR W!@i/ZI!72GB }Lhٻ&d*P1zfc3#uJ/ƦՅ K6\l"o,4v@=1"1w"}in: z줵pBUݟh3˛ &ʉIH^Ƅdq&O+wPs"`uΩ9vJ*enPKe B4PKO-;opale/m2d/component2d/AffineTransform2DEditor$Delegue.classU[OAUxA-K*X)]nX 5EL$̶ ͜99}gf0z05 R\PETtGjU'~).c@΃R\Ⲃ+r Cຊ$P*1TpKAR(Cgl\gu-wçͻ\h*k 7?P'-#АyE.,,7hLeIYhrIL{4d1tcU ҇iSHi86 'Цආ;`L8)Hk 0IUP21aw{5J/^6$-&E੄Ls /b\d*0tWϘm9 ^v( ZҴ1mxۆ?xMVqҖ'8dG&VeW7,pqW&%ڙYhFAA5L{tftjV{@ J]Ǔn;Jv'<;dy< OyX=b꺶7bqv 2,W.B 6# %Ȳq1h q)h\U!|ςqց}d9YwnoQNe&WqT#tQ3G~t{hW !S8Md^Xk X_T(&רEs]먉}C;j?wI[G_MY$ {Js:5k[~ 7gl %7<ѳCDˎDMmuGH6R?l: J6/KASe ὁ$ H#$U#o8 PKlpHPKO-3opale/m2d/component2d/AffineTransform2DEditor.classW xW,k+s8N8$MCڒHi$q HZ!c;m=rS(G5P(WPr}Cafi)s};ޛ7oޡ>`Z$LLb.&f&U0SާX~&`r  ŽCL0 >`c{1(>> WpO*XOL>#9QRH|_,_—|_5_࿡o+]; ()<__1 VaQ21~ dQƟ8?KC8%{ߙf?ɿ + A= 5OOc:޴V(6:j 9-2dlh*lag};dxτiYŃǴT0ʎ.sRrO}"mtO+覇52Gc7'lB3,}֦ sMzMcڤ1I=?hv@iT)j%Tش>4rXTuɩu6ܙ'{{>̧Bd& #]xT.?O{Rz:viiwMmMfiypsC)b6rE8Dk$&jjBDXO%t{fT$-=ZyM'ӪH) =kv. u`*4DrHk!JqvY PXپ?턑YZ )8kI MgqL%JctW[q~a_8/lg'N Tlp\xz&71yݎ;V94TQeb CB"04Uq}b *N2ɵLn!aZ`W]%{R@tyEŭT*nczTxa1_N$T:pcO/ѳX U4HQMbrbvgU,ªX(Ib*ZDH $b U<Ow*V:PvrywCWm/nEiH7M=$ה9RMn֜it5?6`Bُ!2X6ӴJ\<^jjk:wN~@Eb^3ϽQnyX "¨CQQ,nbIIHT"νmW伃-+Dn]ܧe1=5۩%Ry_Ihnʑ9djXB~;o1:I% wVA: \n2iS&kWiL7{ Z,9tTǠ/IMqcs%_ ~ Un yӝm lsm~׸Z_rzWz]~ov9]6|jD_.,GfΠK3+AA0Lp b-#,`) H|%Jp !j6dQA2JV,T,r/>a&lĽajkL9m#>)SUL4A+R Sq R7)+PK=ƭ5PKO-(opale/m2d/component2d/AxesEditor$2.classP]KA=ׯmMв$ L _ć@(ziwYv'=Qb/8pss{?>QC**,, z$!awB6޴xJr =x#}$k屐BZW\_PbJ^VESvZ11=hό륔Aԅ ,]lh.lv gR?aqcB950yߌ zEQ$|c^k%Y}ޤ)$Fr2,'I >}iڝWdSa9:d:oRWfiPK5PKO-(opale/m2d/component2d/AxesEditor$3.classPJ@[Lm^XBm>*B-} &ݒdYM/"ts9Y QbfaPC7 5a!DI.GUtD/r-|<RNkt멀JB ݪhVk0bSzݔOp‚u(,3)y YPNB&5a_57JBo#P^k% Y~)$Fr2,&Y >}iڝWdSa :d:oRWfiPKd7PKO-&opale/m2d/component2d/AxesEditor.classWw|GFmOQ;5Wlɉ$Q,9q˖'2%VZJ:@b:DG {B'!|J t}̛7oНw:nQJE ܪU*J=LncUz1y=70y7lofr;0y+1y3*V{^PN<]L=Lޫ}*6z3**; *>K|xGw8*>{|JE7e3|V}*v>*v / *k*.yoMFbmFa]F_"'7xO?"_~Q&j`8?F'^~W&xWS[dZuؐҒztW3nM,S7lmZ-P1n g@qmV< y*i$:'ә3ܩ"TX@򱞚kTgU+AETv|| Vݛ)ǰ̴^YuH',{Z<4}g벗; G+Bگl=9zBNӡX`D U8$0$A],%LX)&'؁9e's c’8g[52ɍb K<ϗ&%^KjH ~cZ7oTf!E(i)JDeBQDDr R*I~V.&7a8J T}I-YqJTHQ){RqbFd T ˻[RԈ"jpР9ad *v]hjRa:Fkh9 2ÖiSZ-ZѤf)bb#(X&F>vY@e +Ą?1MRV)6VFh2Kqh&ݖM P6(Rlc pZN&b)"=ֹ[ópG֜F P qԨM K/ oZwF֘>>x+KtXO'%Kڎ[Úz.7"fԝ>:aZLG3w/R ރ@^^nX3I OXxڡT8A@\6?&ߝFK$'yHSuzG;lzAPFKUOQSFul܄WUIk߭͒3:lͥݡ+W` _E]h^X&n i#^v?JqIͫԯOh3Ink|4Omwmϛ[ɔ#ZrFkoJ[?mHEAA|10gsby[OQӾ84̄5GNQЈwaZ)A GmԄ]i_Om]>˳>y>Nr.7u|/7ML7z) /b>رѱE/`)(6j W-@"oj5 օ> !l$%laSC#c6~;,R2[|JE!J)ePt+ o[Yl(bkGt[qJBet{] =F+"+{%d%2O_]7gqiݍ=Cc[xb}?+r}b?XEd$^KjETR-10O B[Sgk.5GbXgkxn 7hW=[l)*?Jt,~ˣOrNqEဪhNJollý"q=s|||}íϺ) } ^]lz,݋m/᭼,zlcet^&g.g{&*kɨԵ3t=nq: ~,5\/!^O`f^Oo}1A;}cPKsvLdPKO-&opale/m2d/component2d/JFrame2D$1.classPJ1v׭R`>ԊU*(}9t҄?K>~xR/O03LΐW䱋E,(a jV%7TGhM&F2wd`ƙR;g1ݓBxyP:5ܡI%2S:5XoD\"KS9#D#F Akhpѿǵ ZIo$TdNN/Y1}^TX&\oX_9!" Iyuv*_:;=!caPKPKO-&opale/m2d/component2d/JFrame2D$2.classPJ1v׭R`>Y"HUP&si -~|(^Daf!o/cXQ@5 VJnlkLe2L2v/Φb"{'NtjȹC;" vI%2W:5XoD]"gKS9#D#F Ahpѿǵzs?JKuq*2'|ۗ> AlfD?pͷa,ï%f $>/\\/O{䞐v}PK<ۯPKO-&opale/m2d/component2d/JFrame2D$3.classQJ@=m`ERRQ*(6dY(&ԝ9w8g}||~!}lZȣh"% ,X!tߏ-BPAza0 TE$>;$J=DŽ]gp=I( OCGq1xҮ=M) f 6 X .ua}:C2&RP@zs׏d%!$oOw#XdClOfcz\~ͷd8,'1r4A2/) 2ᘍWdQ*W4/PKI27)PKO-&opale/m2d/component2d/JFrame2D$4.classQ]KA=ׯm-оKSbMz+B(z1WY~VP=QB.spΜ4i! P4ll`}/6 N0C(PRiחe`=+ݗsYw)Ovk{L;JB^ ԭ {A.apēv䘕YB1KmXXa`ulp +d( ztnՄ;^%+ Z\t7%\WFQc<9[r9b7&0ƨyRoH$,'҄c_j| G)%_ZPKy\8)PKO-&opale/m2d/component2d/JFrame2D$5.classQJ@=m`ER ERP܏hSII%( ?oBI;pssǦ<&r(YXBBAijp$ = QҌ."!}V/W>&g Nؓ=Q {zw OڕcV)<,aaՆ9k6ֱN7t ؗJɨ3q,cB) ^ [:wXKVnKxc1~Q-G9opXOZcT<}i7d^RaNe14?Tүx-i_PK:HO8)PKO-&opale/m2d/component2d/JFrame2D$6.classQ]KA=ׯm-оKSbŠ+(isŝgEC?]-t2̹?_HcțȠ`a EV9jP#1:n%f|} _Ώݳ}=uǞ a6KwOȴ$䅫@ʰvj G) qkʜ'/wPK",`q)M8fR% PKK9)PKO-$opale/m2d/component2d/JFrame2D.classWwFmVl xz"ɲ-#62rl00I#fȒ1 wL;$z2(${ Nv+!{tw{ē( LlcrU.\%^J+;<W L.`r!\* .]•<^j\`-udܨ7+ʸMt٘;B?O2T07pqOqz >+1<{X# 1eƪS^ށؿ3dIMVxBA Fx2`MǓ,Pf7\ [{@7V6ezJP!-#\P؜2mRW!"$'A&ZJK8%A(OBm٧x!af8į\Z*.YsH]f3I"yVڥ9kĖR "uڼU/ #V#AfDj)&Ds)Yͦi%۷M L5F:MWKJ8"l:4h[ɆF¼ká+vsevvŀtn]>%zr,m 3E5l{V,pbd/d, ^x SF6gQԶf5Tl o %64w.EA3 &>=NE@Ƈa%_&'1>!\h&'$3ОPS?$DȅL>Pw`mm:%9]YP6#!&Љ./IW_J]_/ӊ}+q `.lIh8TS 3U7+ RCs)v|^q7PwmǢV8|Asȫr(E~"G$ed`Pӹq/H|7cHv[*3mTX4(Fެ 6)9:dKs>Aܐ+jq?wHXE3hEFQAɆaC[J22b |TVhi>w4 J$)iLVIƴc8lfqDO'CMcVtfL㨝g/g2ڭR/`.҈S>gFPIW4-7x#\o2֫|f 1zƱ}+YE8.+]'i,&g8a'G$9"Y4N|GP 8'AsRj~%M? }' SL7{r wciet"F |#X"fyMb+Z3pzhGw$:37FySJo89˰]r]#yg"="OQN~Ta6?? 5?JDIh%~PKl GPKO-&opale/m2d/component2d/JPanel2D$1.classR[OA.]F]; Ը--&.|N%n;P_h%>Q3ۋ d;s\~Y<Ķ(q 䖉۸c.4Y6{juM{Kr$*^tE^P^Sb7OBՖ*(n;a͞XgiDd&2 >Ka;}c81V)ce+j± NoxjQc'xjs1/5B2ntDȄa_{틞1C5NP -_SK=$;\~&b΋P5`noR+MbbLy2V o XҲlN@#by(٥u0TM h*{_'=RL.~,eOzn z;['Cwl H*-f;Xe2_Ru#\X."wSV* $ 0;B !g|,PK3\PKO-$opale/m2d/component2d/JPanel2D.classW{SU&K^oPZHY4MEE 0L-Z5ym_I$ͮᾃ6UQe}Sf朷4MB{=}>B؈,MaC t 8By& FdXA R`TƘ0eL(hb;1u ~23?2nPM n- nepqK.&/5 ~ ~{>q?d.1[x+Wo?_pUO/qB+qVZkow%=kpojCޘh/Ơ-aY ,MK7PÌP̙Q;>Dwb.j%A̺4 Q.\e${xܺ-ݓrYO4/YkXIgR]C5O҇ݜ[KR|X7+%D*kB)ý:Oe9>Z+:Q`>5K%8Njb۵&RVjiGR5hsZNc^O}=Q5St3d ΛlaRfgVjK_h+--"d[8FdwZzA~G6IbʙexuSժ+֏+VUQ'PKU F PKO-(opale/m2d/component2d/AxisEditor$1.classPJ@[LmVE,RHWEBAAUdnI֪%x?J܄"B;gٙs?>6dQA2JV,T,r/>a&lĽajkL9m#>)SUL4A+R Sq R7)+PK o5PKO-(opale/m2d/component2d/AxisEditor$2.classP]KA=ׯmMв$ L _ć@(ziwYv'=Qb/8pss{?>QC**,, z$!awB6޴xJr =x#}$k屐BZW\_PbJ^VESvZ11=hό륔Aԅ ,]lh.lv gR?aqcB950yߌ zEQ$|c^k%Y}ޤ)$Fr2,'I >}iڝWdSa9:d:oRWfiPKYU5PKO-(opale/m2d/component2d/AxisEditor$3.classPJ@[Lm^XBm>*B-} &ݒdYM/"ts9Y QbfaPC7 5a!DI.GUtD/r-|<RNkt멀JB ݪhVk0bSzݔOp‚u(,3)y YPNB&5a_57JBo#P^k% Y~)$Fr2,&Y >}iڝWdSa :d:oRWfiPKx}7PKO-&opale/m2d/component2d/AxisEditor.classWy\\W.Kr!0@HHIŒ6m <ޛ<`ծڴ[]jk Z4jW֥ޝy_Ώ9;={νw]gPD$n% Tt˙СW2yW3ymcz&o`F&obf oѱzS:6ۘ;Sûtlmf&ՉOi4ܩs:E|01K>G83>w>S:v>3:v{y _E{%{e+,~}7}ѷxtxm?G8DS^?"_򔿊לo"-O;{ɟ^_5M}efhwFlH'ɴcKxƘ4;z:*LΔ{@C1m3nP.X=5˔(>/t/źf߻tk%&IWk,P3ƅІ7,t|Vʘ*he1Rr.)tgrf)^g(;^iQGԔ]=) tAHf1znQ̲ ْV6M"b1 ~xCqz<>䔒ExZ񫔝1JR|Zsqzu C;Sp=={C>k^{B> 7p Y~>}˨ma_{w3f`%q>by<w@SЈ]yZSt}Jts9rxq1%|i |ܻKѡw)gPK2B8PKO-%opale/m2d/component2d/Frame2D$1.classPKK1l]VK]Ez+ګ"Ȫ &9tɲ -,x/q / y{yE{XQb*Z!cnGt6cNy:ԓB+,OD!Sv$H*i{vCs&UgXn(7SMŔl\p8##X<u](%l̍aהV }^346[k5ۮ any4/iv'a >»_4xO|+:GXPKPKO-%opale/m2d/component2d/Frame2D$2.classPKK1ukUAPmEVzU BoC7H7Yş%e}DaKf2C_^Q>6Ա죆vzxXchة4L$0M&:˵?L O;e َa7׿bt*ZT.F3mx|/9*i|[HOrKj!+Xq3zER;d9~PKx2$6$PKO-%opale/m2d/component2d/Frame2D$4.classQ]KA=ׯm->L5  }Z\qgeg0YAQGEw{ ̹9s'8<6r(9XAª5B ]ovDvHIe_"c}PgI%5rh E R2Pشģ䔅iJ9O0K]8Xwaa†Mlf_{{cԄR2Ijm$+ FRym/yf1Y\|4ͷd8,&1r4@+2)2dZR*W4PK޺-H6$PKO-%opale/m2d/component2d/Frame2D$5.classAK@411joHi<)T! &MI6%Y*,"xI7хao޲_0BσMuAmB̒D LƱlk Bfj|qBp)D&:1gn0%ؓ\ha9c֪,UIS\Ek`F1IK6[V񼯣Z .zW' 4<|EvCZyZ+~UPK;1HPKO-%opale/m2d/component2d/Frame2D$6.classQ]KA=ׯm->Lz)@(z)WY~VP=QB.spΜ, JPnjaP0@ۄ~4c酝G$RRƗe`>+3&Yvt ;B $(|DFQ6#1x2;K) f .,,Yr@pqo,PJ]B=z#B_~d%!H*5#8NG]4b im$'`9iQjސyIY8n"@RI❤9~PK 7$PKO-%opale/m2d/component2d/Frame2D$7.classSmOA~,=W"^ xK!1Ec M7Gڻv2JGgD+nr;o̳;>z>n8>qm,펏E,3%Iؔ%3}V'P$Ɛݣ߈N %WSc<|eG풍;\yvK`58s{fL"`gOPڐ86O0/ %TT%j +XXSxPPb] M}>"K@wW_w:dLy^x}I,L2o:`Y>2Sd ]v{]5Ż]^c)iȶyЬ-^TG{eF'KpM&*Wevmk_!j+_Pa0c(;Ɣ9}鑘B'.q PKqPKO--opale/m2d/component2d/Frame2D$DrawPanel.classSkkQ=7mֵָy1IjjkI(/F,QML,,wf9̹?~~08cwT$JuT@ 1<֦H7"G 1e{z^0:E0Nu;X2ď%|ۤ]۱=djJ^ CZ!3o 7oxe^Si Kj(^&wDA{8Wksë)(Ҟ,jXA#hYPXC%8)b]AY%aO z|>W/+d;f>}}JyuPd7pd D%Cp4d!]M:APK"PKO-#opale/m2d/component2d/Frame2D.classWwUM20MP@HA,EVKh!X,C2m35R@}_HS+3&i/w߽wC?7O/b LIDcr> $,vJ`;.q&2"PldrWk$\뼸70w$bq[%np;Ӌ;q[=&bJx@B2y"0xL468OxJB5)<#Y sDPó="P˹pIv a?DyIq{1rHx0$jB@^$ht*1*Z$Uk7wFg&Ly61"n{:TkەJmV.)}#zR)edY  ƌfjNFSHc7rJRg=TMZJ3P QV۪vsUG$g+`d ]|Bdkx\fPD5*`\ Y: R| G:%UiqJ8XסhTQ5V͸Zf%%QӧOPȈ?btt:'!tPAz[uM5H TeNf|);b'w)Fq8[FhEv&sN@CFhge, +JF3ՠ&daZ"mTV6̊**eWe7e5 #~G!=" Jx_Azi_0,#v)e`5k3Ƅm_d|<Q2C&\EHҎ|EJN|ȕ2|ifbL7-Y j}v8#2~r/pe D&w!`Qp7HKN=>4gk)TZֶѲ@(0_,fPU4Eh<:6qKV7"0' MJMth5j7:AM:1(Qݤ+dM@yVN$5jخFNZ).5慛/4K_~(KZbMÈ%*nVR ?ЈFШlF&t/e],s<[L'O?6ȱ/?axC|W @9;}37֋"'FjNRQ?DQN^ EHpAk{zF.klvՎ|3_k!fKUE/Ċ>x{DpbY_-LE4[RĨba %1bIb !JٱIGXKf`m =pt"Y<B^$IEy\ĹIT䃘+&1u7o3]43YVRӱKGI _0}f73ES-aOESl\C N%lyIjY~-/`I}_&2D]/x$1y^L#|6QG͡v*Zrݶ9G]Jir9vpZ?͸,3I4}X`؄Xeas^/Bxȸa{137*?unnT^6*QDW+9@B&H@#ѹ8॰Ӝ8c3?PK"?.IFPKO-0opale/m2d/component2d/DefaultStyleEditor$1.classQMK@}ӯmZECL)QPUtkSݒl+Y7^C}yfY4k!J6P6ij`PP ܎{㓾D .W|y@`B |p@\K9|HqãƼOw:#6c{Ri "KmXضa`@ֵe[׏ B816 x#+޿:A$ddgپrǻ?#@M^*('Dr2:,&5<}qAnEXSYpLJ*PK(:?PKO-0opale/m2d/component2d/DefaultStyleEditor$2.classQMK@}ӯZiՊ衇R"*B=WYӭMIwKg ~?J܄z]͛ٯOd袋R"TZ 2&S;% ɴ| ?'nE.spD4-Q1Q@&j 4 lԘ'cw #2ozxFR04b#: P-B9\5fZ .:Gw AKq⑌, 8p:}Rk Q)֥6,0f`[ `q/Ij0ѻy0_at%AIpVKМ\ΔEq?}tm"=9S5t nES_rLz&7PKiA PKO-0opale/m2d/component2d/DefaultStyleEditor$4.classQMK@}cblk=SJD)B֦%V??%nB. fy'haBeT,j`@aI ¤qDpr"ϗ\(xM"SwP`fB }pPZwB[Pf q_#MǞǧZû(R6mX6ec%m֍7 >h`1݀ 5u0ۀiĄ\ rt0πY,| t4iv@1@ 5,2`>A:p0P8>12#tɓuh3Vc5<΀pDq4 J p2Ͼ'06d`9N6bxG2U bx2[BSY4֟t3Xu 5@98)k pZYR d/ :0p%p5W3t\ZlqhXc::6جc!Aǰ:FtttlqQisCN$0ivy9vvGP^S[wK0`mzkU"n4i&K^ä5P*m.u|ZRmodj/Q{>&R(M*]׉,ـPSE HPnkP ş!"9j8 qr-';Q;0*NUH,;>S[[!:sPz-1F70!-vÆ gs"}=]2ѕNkC2 etrJ'PŅOԆlۛy!;ܨz:MHk`F(rOGH/)]Q4ڼ*b߹xo1]'ƕ|N.BFߧJkL֧gs`EEْ 'hvɉ4ȒdMv--U2.ClR3W<4IJ3Zexf}FCX&\A8`VG<  Ǩ)9'B</!gGE7W8]IM41.Ұ]&p-UP'27Ppncu/ċx0ωP愬L%‹^"-٠eeɞopZۜTk-a[K' PVE"v2lbvnx9^«iJ+`)k^n>uOx=[5NĉY ܷO A7ހ7͒8rY;sj!˯I䜏'i5Umx;-Ex'teiN\x7CQVĪd (I{np}/p> AECH}Q |)O3xgq'%p7>Ǧ{ش  }|LpXn0i/h_|IA.!|!&is#);k. ZpF -v9:]“]jeFH_VxvC%T\+,yU;M4B5-+wJjs|mN7饊 T ܚ mVc o m-NdZ9++R'-P+(W nlBp5VDhGooV5:kH2)MnZ q4/St+d^j{[N%wx^*jذH ;Qr Gw E@HZ۪+LyS0F<>R\u#LL}ۥQS#Gy5ajQCҒSnszxQ+b5gA Q"ͯ<ھZa[N[#߆Zڭ~=iIj *G/j7GKDR}dj]*S !=q˦IJ{㻙~`aispU1 :C_:%>d6Q RirʩLŢF"8KWV<֛z)iK!9HSV/a@> D&1 u@N` =8nZG)D {p* G9iJ9t 3*I>>SA)|\J %(`ڱ?^+.fbN7యi<=}f'Lur!dK\Y golŝs[}(~}+c1f/??Vr҃sftDI}_+q| J6*|~^tN;d%ntں ںLںyMmf^[[ j uFYM f-y+6;w,0"h 0&8м`y/">q0h s*4友PKU<1 ~PKO-)opale/m2d/component2d/JAxisEditor$1.classP]KA=ׯmMͰ$L^ćB(ziw1g}@~T4K6pss{??6dQA,J,[X tWDFG Y{`$惈ځ*'Rw)!a!R'gaB6ިxJr >m?Q>7C!>"ݽ$d:*PoxF7`{{ҍpœUMDJ> YPLLzgk=int=N5ӐPeax|WĦYə*ţF|RQ >yia)<؍gHPWfIoPK㶹7PKO-)opale/m2d/component2d/JAxisEditor$3.classQJ@[Lm^X$HD>(Wj%Y~|(qus9_bu yLP05Kɑ2w`Bi|~q7JFQ>SC.:"l9n_r0BE72s{岱Mڰde+(S=!X 8f1:uϮW?{n|"{t|jng"؆"_ulgE_—5|EWut\`񛌾ی軌{DC#?O")o~#E+M~>?pOy/L&ZܻӎtzɑyfosY`cO)D#$<<_e,^h953 ޿>؎2^ɊUhU2V|~8M['ஙN[ScTV4Z'ԒeG-BV5 \^pChT4jfz`ii~O; ²3EcaΆVPn*ݠa4j.Lخ7Cݐ*XG<̾7_Hwr)|f9^缇7屛C)QrzeHF5`qKJ.AnzzzbmY !l aeϢ +g*-!l ajkf6mg4"rh?Cx!lToQA%Zw̡3e9ln<:)'7na+ytӊp!UыjXWGJ.Kr8.ޘÓs5yE+bG37R۬T8r9 *h)D*[k54ebCʶ6:6lsel W<+k>] x\-5ќ:XUwЧ[A+iq#+iqg1>]ҷ*kexXTz;~7^rxXbL^&g.U{6)kɨԍtŕTJ#t q ~,5| %^O`Wݾ6oWQPKQGPKO-/opale/m2d/component2d/JFrame2DKeyListener.classRN@=6,R )ŎAx%-i*B/:vd[ ~M>QU (tWc3/ÞB 3XRXFYa /$6$6%PifEDiÁa{m`BX}P_P/n7Z=<2L32BCp~|&*&f%^¶oNbDŽ GjŮ2EXC-53 ;2n2jz l<-[fNTGіL=C9p㥽kcDwf*g=H(ɣ;P@ڟx9)A` [d31ǙgQ͵;K`=f-LjqiarCb`[V0@q/a)K 0="/PKpPKO-(opale/m2d/component2d/OIJListBeans.classuKSAL+`eQ4&H|_*61SֲKeŋ?g[x* VYRVyɯl$$\=ud~Ń811G a"őa$ ?q06 @&C8܎#8ڎc8qZ>J!-aj6$QW011nŞOՊU.gt\׵W%i.ȵdE[lR긆Coә؁:1cS7t-dJ-u:q[U1h)dIxV%ϵtWźmA|~0u6Rݹyב_+[6pLZMu:Y((Xlu|a9FR2AŵZlB8bVVC WVQ.3i󫔹T CO`M*|&^mgYߥՉ a<:(vG.RUQ^I©9ʝ~珄7lA~j:ε tz$YJ_.MszH8Jz,-3mUDfe*bkYF#G'G?a C6F:3 ^о+M@bI0;b@5@5#bFY (lDQXF m +jD,È*,nop\i!ܯ= 2*m+ {PB 1*(ju_ PK/PKO-5opale/m2d/component2d/RotationTransformEditor$1.classQMK@}ӯZi衇R*Ud[ݒxM҅ay3Dml8ȣd#eT,XYX%@č]W6OR|4BˈVE^( œE`dٹ"* MϧF?J)R.,,XXs12WDJuG,yL(]GL7Ch濃E$dI{愺?~Z?ޱm7LT涑 L4A+2)Sq 27d)T, PK>1PKO-5opale/m2d/component2d/RotationTransformEditor$2.classQMK@}ӯZi衇R"*Ud)nH֊?K<Qn҅ay3D]l9(bU,YhXX'(J[(c6Rp4HN&A)'F\E9D=oAkB/CN0ybyHc6c>{T>i!8 ֥.ldbemdT',MyJf]'Lgc( Tq]I{Iw&cz]E=ZIGXԷ sr:,5j<{iڝW3a9>:oRꙔ@PK~NF>2PKO-5opale/m2d/component2d/RotationTransformEditor$3.classQJAkuMb$D9AXGEАPTʸ; ;F,x(qvfgOdEA%9baB:G"n{^j2UKmL %"&;M*: ؗOR9R#BN뚐뫀JO3BqJ$ؔp’M[(# o@pOQ?dqcB92yݎ 2榒m&N 5'PAk%oǮYX W0QILFr2&,'T3y~;<, sNuα/tސTS)4PKs#I@4PKO-3opale/m2d/component2d/RotationTransformEditor.classWW\W<x I $ 4i&XՄJ!ĀIjy/VWZ.ΠET[ոfa'n{{GE/a"yg ,b%Lc2xD uD33b/1V/e2/ ;Jf^ ^^gb7^ ،- ުn7(o3 ]=&ށwx7n{q1~?o&> 1qIqOh/%ia Lgycg&M|_e_i_5 7ge\_*6N;Y{"oek0Ym(n^CJ9ܬ72Td^Dxi7Kdsu֊Y ~lbg*cނݮĤ`r%dgf%w'W) ;*OErТԎZ٬mͧPTbKNlژSF*C;CJ[dJ|yMrQCgP=ou3^lgs {vL4oXl&fš12:"SWj˛~M%~EƩSfuZ7- '{<*QO,g\7s{*F[s-:idD¡D('&f5!9R}+yH1XJVNŸs*U#4UJY1sΩP$p|4 ]y LC[;Q>[XK!ORVdV֚!cӞO[KF&G%}X ǣpfm22KҰ5e켥Z;XU;6}Nܶg֜ȚHH8 |Aht~$ NK閪E(9L}ewa7\ Xn-uɦJ)x9*]6I͐D0=`z$/[/q*viK<`Gzqq`]-!3 -pmhXF:'`TȆ iH(`Kl"y>&W Fɭ2 Yf:=fG1Ru(`_T+Ѹ(cF=Dh`-bEL2 Ȃԑ_/OV r$[.y03$5d 5Ow/(ƢqcRMפ6Zi_X͓E<؆%oXA+Eb,+A1k 0mr%(j{#L?N&X{?U]U]%]i[X5" UE_sWma>4t t^e?t5<2$PJ#uEp>N'x4WO%K˄R߮2r>wr˹YNUB-BPKM3PKO-)opale/m2d/component2d/ScaleEditor$1.classPJ@=[LmZET,R[$"H  ʚdS~%NB}. ;33|~ lXȣd"eT Xe(行 p}Ǟ8TBi.uat` -]J%^\'CZZDaa wvĄy &9QmXXa`@:dxf R" @c l@0႟ Iq%v$H7 wr=qzs{uL>L>L>|ʄLa&e9&g _Uk&|a7[>x kj}ɏL1OMx~惟 %o$e;~o& lV [cwF`OFbo^LD01LJ|}g` =hŰЇL%Qp6 bZKL8~s}XJ`KXiGXL2YĤU3Z¤&`K \frA;n#Tu81+b7 6`̉Qp{k[ @!'$3wwVۊ&eEҎ5ҐGڥf9F!ʥZ56l͘\5":qeEkZN>!u*鵕ѡЛ݈R ,;ӆ Mk8ivxobӭ^C}mx84]MYjL[O itQm̲Z5Z5"‘p4bّ)`iVi ۑb]5alj$Zcr^)[#ڟڰp[GbOz\ 7aG젋 6aRnݐf'%^]0Fr<4v t,e:A$>BHm>*j]1:\bvr퐀p?v Q*i/R7i.zjrxpg'^+.Qݬy{~xɃj x^CLf(&. 8QPG,2M 1k Dr WJ؀Bn.9OAvF+f2p:W^u/&+InkA [bȨxː*}ѹ. ܂[ l؂x;nqF;=¨cp:z'J5ov:Q'+v =UY#Nd®_JmѨoX`; "7iC.cEsv\nQB9&mpvw ܋~x ^+:ZLXip@*>&l?Ӷ޷*(Cqgآnk-~mmnro:aᣤVѯA9^Q 2m'GՒy(}$z%7ҎU<-̜8`ܦm0N\@9#E]+,RHPC)Yɘ Ks'brBN!,dY+\$NdhL `$e?S}WP`$GYI"{f%K4 eyB{ƒ <\J .IB=XZli}^կHr ׹2ugq;I5<ܢI۹JK\/RrgCr9t%XY`E V`U4^1hL'$l?K8 F .&,/IAĠ>/U3L)_Z_WBy rPMUo Wp^c- Z#[ܦ+$UߙW,Ơ+X2 TOwK9*{hX3UƿWNSsn+7[ʇN՜5)VN 8KsHed%Ї~ $iO}K$['k ܊|9xGNƜ ܞ@c|m`|F/._UPQJy3M!+=j,]p@s%>)8K< qćdaQ_ ")Us eOʬ9~DI귴:s[F=:HPKg PKO-*opale/m2d/component2d/ScaleEditor2$1.classQJ@=[LmZE)H PP(*k-ɦ$K%x?J܄"B]vf8gΙϯdq- yLP55넂qHh t= I(T: 1>J5J{"Pf?kBzPb]#c6e{PjsBI6,l0dncEmyh}!%z>cʩsy;"l>Iȶ{ Yfͯ5 tTem"9::@ 2O)Sc32Wd t~7PK]-`8PKO-*opale/m2d/component2d/ScaleEditor2$2.classQJ@=[LmZE X[$WERA((|5YdS~%nB}. ;338Ė"*& ZXEuBIDA4awîzQ8$JCOwPQ=&ÙT#'B uJo|pM("*S"W<`̦eSv2H?5Ն  4ml-/u )y XPͤ&1aOHLB[HhBx.xZ OIG-]F&ғaa9N +(19l?#yERFj|PKy8PKO-(opale/m2d/component2d/ScaleEditor2.classWwxAB{Z=X  j @H ^qB6nqqpIIlpI8p+%NoN^)vfSA_f~o̼>ʩ!VM:S0 Nµ~ >t9x5Ra >23Oj)fKO3yg|||ɗ4W|ט|7|ɷt";:|uC?C V/WL~7L~O!2yK!['y?4ҡN1:" q<0<;4F!Ft B(t:p^ , Rp:c25.B N\ %!ER*\:hx&E,g&g3Yd%è*vbu:pcVBhfԪՅk{XŽ[qI3f5#ڑ>;C&QokI9 Onƭj9-!s65Ĥ0Nd9l8V՚NmC`wUP?jf-۳rǎgTkK1/nQ+ћD 9vr:3оnx͘Z:Rwf]C}MmQo2(f9ZˢY!6XuP,Vt ^lX0\֐H5sHy2)W/}ȔMYQǡ"؋P)8[Rm4aN)vAw3yGȫ桾mJ8;B(˦>eVrY%YsVOecoeـ.|xD3p_^7SMX}^ p k̞nUScLm3=p{s=)+-Vg bs!-n G;YڜhǭdcL!'Yw:a841؏|}Sa7/Fl['FƐʛ9M&d2c)3:|C8(p0Lab\8!:& ox#${lx 68aZqN@KڃfwCNc؝4Y0_=,3rJ/[^^駑ܙ +9,̯Zm^YQRY-{fS;zXb g8SO)/.ٹ82f/v}oN90'p(!72`qfpx}TNhxKю_] IP@_$WZ1Qljd8,>r 6s#'s'eT7ct[JQ=^>,J'8:&e3W/gMR֠Lt4i rRΐGe|MOw!nۘs RZϗ1yS˱%QNE5hp"Z #&E5ɝ"|? @o0.ɀ|$3(r9#R MT&Doq R9f E $p$k!Qq2Da‘TNYPA렊qBgE[Ԙ^PoW CT[qz2x^=T!Vz(8=<Sj?O=ˆjgD+5#(L4N / ,$ 8# 3}Xl I\<_ԇ}XB.a9‡K}X*lYM~Ψ9; gR(:]+\X, a1PM="O"hLZW,7_D)|y y9隅8ۅ5y.1qVuG. k`}s! kNUͅsW$L<3`6/6L)1Η%07WEywVPNo WpFdvata p ## ;I؅w[I:~[@S_ i? e/#p e[jtɹQEyr WаrjqT?We\%:FaZ)2 &_Bʃ΄.Vld@o>#"wယ52r*މ|9Wpk@LaNn,P*;?˧RL+ T|ɦޗ&7R1G9 ծQQz[Wr\]H>qЅR=Gxyi3WpȅAjCraSZ\sS*9/8jGA{TD ^}PKҾ wPKO-4opale/m2d/component2d/ScalingTransformEditor$1.classQMK1}ӯu׵֪z֫"hA((TJ6uXg ~?J."^&yf^4 QbbaC]5aƇ}W㉒\j{> \LFw*wB`r-|r,'V}>kBP`J^0}V;bSGNJ'Ʀԅ \#olӾ"KvGb4`r]܎ 榒FvM槲fR62`1ڠɓ;|E9aq3xA/HOrPKb@-PKO-4opale/m2d/component2d/ScalingTransformEditor$2.classQMK1}ӯuJUD=V]U *^%ncMXg ~?J."^&yf^, JVPjjaP# ={$TKmpg^E@h#oTNpԘOf'W'Y3$؃5@ \A^Ƃm%cofNﰛ!Pw'pP/᠆u6a\/`6ewia$F@}Ts.|\溩L&,~ʻR=q^:^xK.;zUC u!&ޢ?8҅7Ymܬtctriu-k ͮl6=X X-st3I̢\_jQ82]tE8ob-~ؙ3(=:h36` ,A̯ќ3a, x8Jq$.ƪA?`cVH勪BtǕ@;h{̩nopk}3 cB VǨ9BsMeE]R/ƗS 4`&jm2ֿL,JHUJiOhʙYB65󏢳pX 5cf̜Ss3`^dA 1ɖ:$A0HGqK2zh4s%.m#Ut+zdzIӳȤ>-E$ &iYZY @vGXOJ ilJHOH8k}H}H^Bu>-C&%Qf!EQ$:@ldZdUC%b<G֖Q:BEKh=ˆXG!⟗NJ2XF]9ܘƪ"7ڹ"z*9{2=jOwR 6.]XXbE3μ{S)y YPNLyg7#k^"Tdμ uu򠵒^\D%61`11nPIj"K(8n ~CRM79~PK,@@=PKO-8opale/m2d/component2d/TranslationTransformEditor$2.classQMK1}ӯu׵Vz-I wM&n??%fz/ yy&DrPDFUYXаN(HZ=B"ro<_M#%_L&!B ީx: V!|z̵ґBڋK] pB)=;ф͘gF;(R6\XXtgQ >LJB$PKO-8opale/m2d/component2d/TranslationTransformEditor$3.classQJ1=qƱG]t2Jt!g2MLYpQb2ԍiss=7D{;ȣd#UT,YYX'(L]Bo(,ޤxLBi|3DLRNƓA*'F\V: E ťZׄ\_Pba\ٌyQy|20Xp’M[(q' ~Ē'r8b;s_2 u%!4tOLRRyk3m`xרjw^yNYc_!KR'?PKO9A@PKO-6opale/m2d/component2d/TranslationTransformEditor.classWy|UNl&i(ilR`5ɦ4rLvgIwgITPBij"Qx"Z<B<#G?z{vԢK}q$+ Y x*91sć X`#Gƙ,2v')|Zg b>2;]>u|A=f*i8#fʹt'Xc9ɧ\;CjIssU 7uV3Td^(v\ȵi5gJ=7ya\gmg2zJ͖ti7o8#mλ3JjPV..AR12gRR[(pֳ+E9;Y6m*#b ɡ&5Rٰ_r^ihut>:dzSsܘ5t5ԥ _+nNXr/ۭakI7~4Oq:wҠ3g %,Yt^^n&X4bТ>:L9D{򞯴n(%cF Ϛ EqT <.eph:V WnB+F K `7[N>li}`{ x@l;> bL }SMYJ_ uWt|]~|VNl^kWC%M[|ߣ>?W*eiA:t[y~ӌfG⸛y8~RgocJ~XK+_7CC:~/uQO,UCkeF~L*e\;9/7?m'asc=OٞVlOoU=6+K~EWMTΝ5'vmQL<Vՠӛ2jc@MRdGT@I:f{,i~*(Ojs#^L:5VJ"OYJKɆLǜ$cyJJG^'O[}L4nNn nے4HcVʜI{r⇳VTW-܎ n]266OȡOc5!i;)̃$ V54@ /%Sz`&$Cy-Ԗso;IwJ3z_Q3 TO"u{xb'Y zGEx^O@.M 2`+}BVUϊHLxJ|/1>Qbz%NxIQK>ޥPKÔDPKO-!opale/m2d/AffineTransform2D.classW{Wm^;bN9X>WdiڹC׶bYH)W G @!4CMP}]G͛7f̛'?FqK^,iXֱK!<XrL^L^N&/e2&/g &drWx5^nL^3Q'kw1ySo[xN3L0ygnh!yx!~8h8c;x}Lub)Ox'u܇A\~f] s]dC.YY&5MKQ yƯ.m(nVNF{2Vs[!sC*%h3$'݇A2P-#B# >h-z1^ #-Ph(bkc>f8复/b>"MI2ڧhE4N=v3xR`dg N)5&ZJ'[ZɾDLʏ19)b*t2b]A'he"Tlf"` +3#f1D &<[)jH5^DkgK3R"]\5.bKVy9h1ژ>f;)O&?O"f6[*9U gS.Z7O];Ve 5 VFm:( CTA<A}\Zü!N]TIq%E咎kh]I$-tN:rUE,njVIi(ެD@"0Csf"2/-fe\A?63V֋l7"4ŝw+u87 G qgԻ)]] :ygq(t]vj=}Q-u;f`O(|MR9d)2JJ%է^`V)E#~3偫؝0;cE}L-1ȍV,vЏs^/{PKjk`PKO-opale/m2d/Object2D.classUYSW.в J05 eIP#*,ClcV/1dU'`fLUw{w{jFjq/"y;ጊGp(8`" #*.".T*/"ôl7#"00""BȰY6 +|-/%c-l;irRv|dΑqcygfOhEt8@/ieZLD}H_!_%5_N>M"ps:|[u{:|_8#^ ?vOLӊ_K^tr8ï(*7:ouwt!_H_INë:Kt(0F[1܄5ُ[LљJF Ȯ1Mc:c0^78pU <x6=t98F D>+b)+mgǒ \|w`[|G;ϥו \ *(J BQMQguۣҚl 8 eVe8_ڇ+ҹtt%ڀWGɹj<-E`k9o-Z*YZ]k 9-|RaOng5[%Mr ;Etx*>.q8HH6^,Sh`P)k]M-h^ TJ|.eM`!J礹E;ziWQ:*Yq/_qn'TbjKӶ.Kdxh[i# |>[d;a'gcH Ys,֘7NdʐŘ}i<5%a̳:(77.}E"ˋـw% ZjPd]7b3c/ vaEGFbz [W Χ |a 2 @m>i qS# %s tgH=͇ai8QeSJw_PIYJ}FƧU[V:FaSpyo>u;dALbC ƜQyOVHkB|#qF@ 8lNXĘ.7 Ν?HB { ay+."bC }wdwHwy6ML{DB6=cp7XZF^5E&v:)Qwe - Smb_ ;ҟi@&Dc2W2Z BXSX5r4HP %-k;a Rlȯ4WF,2U>VXQye:K:SpI4< '/+N(gW/ˑ,n굙UR1W.EARD2{MY =*dvJlz U4(|}OI2\T"@/"*WV+6U*e|""ZQgeU)o)ZԊU  ח _E|-]waDuLj5]ɍP5.T9TMn,-F_B{2q'UeZV%[U"jjfj[bc4.&e8)ʒQv#E~0U䆹#-6;WtGzh~@67` aɀie{}7V^+rl뢛gbJ=5uKk$Z$N0$NJ `|PxuUkw^ ٺGVً3 B T}\q(Fk D$$Ո9^"z3wF'}o3N pUF wYㆳ֍jO7>YN<,MbjYS \ 5hvn]cUZԉoJ:l ˭N]iq DNa32ldRf$j}bLͨFj6iɉvW#yfH%oF8ږ SŞ~2{Y@ktd DڹH ϕeY>&2n56f ќCV ` `Uu8 :b ܞ&k`e-U//a$mo AJ~lЁ!Np!PA~pȇ0=i`xzyLF̶"Kvͽ#{Xf0,r6xg XYL,xXXȵa#}Ӑ<v,T*ڭbPK\ZF ~PKO-opale/m2d/Point2D.class}UWW If0"m.`$`*6`JEX%mC Xo|i{NzNOTO,lɻ7ǟ`?p֏s2q75xKL/x/򢌗2/:ogK/y%,Ye€Y^,IX癚XlK2Ǫkx%!M*&@H y HuQ2ftEVG@-̕OщՔQʕ$E,iE8'DpHfKx['5Nsk IxG ^Q^ 8!}Sa| > 7|C >S(FS>Wpԃ5 Ye/𥂯o8x1F;[;M}$ )x㴛铰6&ɪ KA8DkN =F;jq'9]_scUJ0>Y'mwY7KCm Ԃ.B5]L%g(3O)CnD]MitR^yKKE* Gj]vJ/4dO;|v*R\,,ۏ? H,ىz`#[ai @/`mIq%Qm=1:oZqskhBZ<@ѨM; :DnQY !t?[pJ$n4{bt5M C !uw؁XuiAr]Ɂ#id~rKXQ0{@mO F5HF/4OD4LEEq] $ؘ8135 ;S(15"mAn#lϪlL}=l)̵1RtM9TsfTX7+je6j kGGNGН䑺$;JUBW̏S&1w%҂_x:˫ĪLhځG("]tMp‘2# e=sKDS+Xp-:~]v"9̔/9C/sN 5sǭgW8?; y׳Yw1btrz(p0f^d2v%qidcn\ c5)fw 8IO |`85l(%lz8 =MU, PKhi PKO-opale/m2d/Transformable.class;o>f]v.vnFΒļĒTFV 0F3 r4| sRsR2RC`F. pĤYe9yIY%l L t" tf %PKyAPKO-opale/m2d/Matrix2D.class}TKOQimhiL;X[EM |ДG[a07$h%Qc_/0;sl337ϧ100TA:LK&7ܟ 3L8 B9墊K*&$kCbABZVuԍ l^ lDwŲ]s3(݀\J<%ˇG USJBsc+bh9c$+'&f*`w;-l3BMNMtǴfXqq:_n 6ox>_mO+z @5g#24z`Lawk K_),hSX%}ᦰS[0yWPKQ&XPKO-opale/m2d/OIJException.class;o>f]^.NfYb✟ ᓕX\Rn"8 sRsR=\+S J2 @Y@d d4#f$*glZ PKǐ/PKO-opale/m2d/Pack2D.classmnQ]JROQ0@bLHibDeR㌁*jjb꭯໨kϐ(-7{_$s7"k&i(.p:6a&%4WL\S<|7xxѷreWa(+yotZ]yIY,VXP5Y\nrb-A잶{{~XA5:&tmLq5:Rx\ 2UymAyXW2xv;</fA0*V'HQ YGvܢH'FKΘE\SgE5>$dPMdb%Ėȹ, W~c!e)L\srkdƇ -{=`tm,ncRMha*#,l~K~LSc2sPKgPKO-opale/m2d/GAxis2D.class}T]we~Mv٦i-T>& F֦b0|h&M[ݐl! xx-9GKuf]`zμ̼3O?Aw b!)#B6.>.bY^RpWXT!>bmZb2k >U^S}q\"w5X"cU"J+ nesl,smuV@%a7f˳7WVZUIkݬXu PR5󦙭jvk*6ðsc{O)^Ԛ-j;~PA3}MJy6Ԫ]붷)RAG啄_ۼ_b"F&? =3˕5<7H&]u?|:Oꦊ`x/{M4W#"4eT8NJY%>:N˨X…#*ZlMXkcSƗ*f񕊯 ߂ 0׶ZGryoaNHSk{7 YvjxKH㝰YMǬ/4nSBw0F64SɬVj|FpL V]Z*MZp!i>l^õ9*>m9&./8yyvEN)[+}5Hӏo4no'Kvc;c2Ex#I<H}IeFH"/Or$"nΗv~H{221X:b|șT|LJW @HP#/Bݒ6}C(Z 5mÆ$!i OGɱ]6& قB3\hmL9b[1_i 5LiDZw+l3yFڦ&u-F0E"c\dqt*<N5={OLn@өԇOUmw}S8-#$%QnG>! ^'$B97Yh@&ܧQ*$}AbqxGL!m  $O?PK"OPKO-opale/m2d/GObject2D.class]K 0'VG )t҂>(1)>x(o ]/?<_0Ar,dNcoyW+N2= %SR2Df OFt^$rmeQE-V兿2A2er! iHI:PgT@  h6PK%P˾%PKO-opale/m2d/CoordSystem.classmT]OQ=vRE*-mlwQ"JU($ &>mhWˢ512l$s93wtʟ?X #Q8zP` 0zE6E6KlYVDS ^ͬK ;.EJ{ΉAyg-% eKP7Fhu ~ˬJY^|m_).PҬY79gTv*1l%Nd(Pl,*.V\ݡNuQs5 z%uoa9Z,jDuߍ8qH`:Zk ThQ [æT2DEw\Ĭo"'y2,z#cB:s &fG`c5 jm)]W+U-DŒ:y2_`@awL<42H&&}sv[EZ/|&.? rYEWfe t+:Awp\%q+ȋ ?_ֳԫwUomk$U6ԡmmC;)"m0P*IٔQq=RP }A*_}Ó]'r[tХocFГD+RH3Mtqړj[O7q݂Y؂cAyIw'}ƥᾠiܼ_#9DRaQ$9qŰPKfuPKO-opale/m2d/Legend.classmR]OA=2PZZ!-PJ0Ƅ&IMHmNv /w~1GnP&ssν3_Pu%,HXBG4 ,4P%*aYŠ:l2ZvڟSkl0S g 7{={ \5"mT=)t |lF"ePJ#6D! GGp<*GSy8qL#cW:^sA.᭄w(3L$k]r8'si@t¨* J cwl@aErkA tվs:Zy~j_=$=lV)d S#dȟ"X?)KB,x@*KI"}2x*}Bfӣ('aYJˆw<{LMN͘dIAsբ,%R6f+{R3 e˶9 7JA3_,+F 5?_*0¾|)S /p&',2/ˆi7 "QWf݂lȧ̢ Ļ}|+df aNkD٣TB[')̨ >b9m!z&ѐYRɤ%fKbFM`v aº6-[-Z;>A1hu=`ùbs G3D:R9 o/8⼆qAC6hxjx\PqQ%6BZ`񑆏Oq0ԙ +\U _K _5ioyT|a7kX. _&h.] pxԺII?h ;b[fuLFIqʰT9HWiW6L&š9e &Oc>|W}!,ɝdg-}kFͨ3n w{K$WzNҏ)ٴ|jZާOY5CTYpYJԿKG,whI&֢4DAA_CZ-!y#P7︃ƛb :iBT!߀g~R>Ke5*% '%&O t%ꏷclTd#]f4f"ވ*e*gG" T7t*;#\,a Fh4$!f[h6B' Y;&lv[|FטQ!Rn[rUI~F&7L/"-59I;ݫ{+h#lÓ2&9k:@,︍;h)FM`~,F\u'PSDt9*}]%V{)w3t*3, ӄ,d>0[x|wҫ7A&,)PJQ~ߎ%'ԏ(DYѧǑ< 7QԳzcߏ86ؘEFM6ml<Ē@Yiv؏^ɘ~I]x" l0o+A Dd4V(6!;GQy:P?1T% w,a9*&kIk0J1p2}ܴH5FNߛJ˜^J[9}2zJ>F'Sv$-i>ڱEfk]VmػԣTW?PKűdWPKO-opale/m2d/InfoObject.classV{sUmf7Rx iA@ZPii16B!ٖnlZ[~ #錝g/y4m3s=ϻ_Cc;p,<V<%㸂#Bg~PHd8P`IX,`TRGF&B6O+pd):`32F <gSoW#x /+xE ^cY7y[ f(xyO2>aqLG2>QC}R[,i\iP;X+aqA{-|B"y̚!B;M6'Mh-ets%a;Ɛ櫸9 }D6K}QG: t쬌O$Ա}ÎK6;c߷$(q(E{ӲyN}`X1^?Kr,gK Ufs (B+٨,-sž?fvT-*+BJ!\!˱[,hW)V Ts]&u;{vFY6TUч~HaI pQʔ&12];{KXY(pEZta;5ESUN #ٝS.IX8;'֗DN%s)MtC'LiC۾u ='FܘnfŰh9Wܺ,,]Xk08?ez-ʢ'F\=s<36-t3nzNN <.aܶ熇 *sd>lZPfrYBL_3Wx\qvDPД.?GyKv%e|;<'hÜLҕ~:q/B ~`nS\.fl✊x:+ aLxrןd3^>ilf^fM$+ Z) +n6h!!tNsF<ձ{7(1z>BD"3|QmsK^]Wy,RҶ݉.0oiƠ 4SXr4:lF%sBa3-VӐOe!PjD[H,I+';p7;k qOeliJM^MDVkѦ1HD[C${RA~B{/D?FqHzrijUۇy*g։.h\kfZr'ņYB+7Z-zq(n,ӂB8eb%PrblP,N P \V)%^*@^Ѣ|m%4׻*M6PK`Ѻ PKO-'opale/m2d/DefaultGraphicalOptions.classV[wUNf)&%MZ *T#-\-^pɜ03~WP}Ҕ%K͵ }f&ʹ mW䏿 aP +( O(8`XCUQixG5q'SxJ* U3x^ &TU4K|Lj8 K9 aHGN *\ _2Ԋ?~i|e{)?Yw3$X?К=ɐ8 J9esfU4Ѫo -ۊp$zwyۦ38Nj>OGK.[3%c䒻;J a{Qlmh\ .7KS-1 ebَ79lܬOQPp=K>Uf4j:&~+iMu< K($6=* ں!}_0v1c1zToCt:=¥ \洠;z!CNjxI:^ ^:(xCǛxwA;<91нX'S!N{hVp+?w 'v IAHӒJ>v)RWΎP,*Cלճ.%\hSN)VPfF<c\/0(J$g87[%)64}"X`F1, St5&l|-SĐR#֪{x{Aqs NYȰ,N [+ $k Z!iVܡ6k҆LţKӵP!Hc:IH` L 1+D'?6 aT:ǘI`UV4Ch”i{ bLfXoFQ'T)h:ZQ "  ;2[h oi&iilMU 8{iz]oi: )LL 3=YIЕB,ZFG?PiB ˳Yes?!QC7w3Nzùl< үn(!][蠲Tg KB5tMT5,QeaE67aU{蓠$=N%dSi\jU ԚŮH3^}/e%uaY ]o¨!jaCF71)n-?h΁g.}1ֆKu"Df'|L#א _G^Ryxbx sLEbnPK{Gv < PKO-opale/m2d/MarkType.classuTkwE~&Iv%%-ME $hi6Iaf7n _z9gwҤ퇙y<^Qy\ >T jyCn }>&K;!eBb6839$$8.N}:! ^0şxJVbTyBsafNnxU2C NU~liK$Yع=P7|LPKTPKO-opale/m2d/GPoint2D.classTmSW~. YXдDq jCB%Y²7O?8SIδ~֘Ndr99=Ͽ~1,W1CXE|"Øu|gPI9kTˊU|0喊2q[AuKwO|R{ [Ύ+0Wv6|ܑ}*J÷\YH\˿.3]rk@J+M E]b5=X]d|(tcg-hjzf,^k7Yf;1W5>o~!SPUN|;C5ףX.Xn~X(Sj3E:i89Ѣt3rk? k?5`e aU 5 v4q_] 2h/@I-K%H{\r)^(p4hhxOCkh⒆qI ڬGnt0\Ľ۶ٕRKf8vb!883O Fl,xvj" 'me_ ~_x|hOf6 &1|?}M,l>15ZP_. 2Ȇ(F9-h1hit-Dz1%[HuC'IڹRl4TCubޡBD9a⢠eL&uJ)N:Bq'B oŞdBo? ~ B-"y 0E rȵ(#ԳcTsh pFc?]NvPKn֯PKO-opale/m2d/GVector2D.classVWWB&*h&E[k]Z$Pmq 8fp2}wVma*?3NO.>uT 6hKxxLBGh1 Xi^ex$ bHq`I^ecF&Fx8[KBvaN3mW|Rc|F":!<))<͘τtR])d\o2~e6_QzELp0#qBstpP=f*(.b^iԢ..bu 婔l%U kJլeZê]"TW*FGf,P\,o2sJ<)98_9;üB(xtzamyrbsa=ׯt7ԗqWzt ]fִg^]cqY3!\Aci\&l'#.e[SR"RKB !Byle*f'ʹ%cIy)xکQ5+K߫p]H: s4\ IaLȈfJ2] Jj0 sCwzncKʼQjXMfTl@3@Fk [f DgP3 -EZ cN_3FvͫZ3ʵV;Gmg`>66f f Ve7yy(S:X\DHyA,<Q"S-%~7vYԺg?&ԟǡ˜2śA:(mW4L;y_e:9M5,tg ᳷yPoEs?jr<]iR2~E[G^ѷT[ۇ^_5NBcn9Uqײ Ewm^'r;˯B\S(yls{==~mc8ůaU{w2 AGdca@[E&fp傅a3!]';.NYHPKm PKO-opale/m2d/Vector2D.classUWW If0Eh B2Iւu Q6*vC $`}fi{N_GYT~wy…nх^<Ǔx Շ&xI19)>Z&x!Y"i^.1Ӵ9|2c< ~ly6_;8gxxދ/2^U/^u [ޖw "@U؃2>1A k:Cz^Od qǣp12's'X7R :%5ܲG禦< MH7+,#jU2~U",𣄟dCD&[MZfzDEo*rDLQfǔ:$1\m4kspU3a9f4f6PgV?e*ټa1CAm:OٳψZ(iJ}3`>=3e}_Tgf5|tLװK[(E,jJ^R@FEY#E~Pnsо[ Q[hh+5+p:=NPjh2ey-N?" \ ݂Gir߂XV=`$UjV"EH .VXtGpTq!:ȕ~l}y;=6|+I=ךJJ)~RaWwAWRTﺎڨuW}b H)m‰Գ6窘A'GJ픽i-f~KyKХ# Gk`5`K K'g\_,bOX\6йE-Br߀۵Z1'ln7Q3m3T:9M;\nHfEo×LyMC" w-7k~Ķo#`+ṫV#LgG$FmhMIݎd(u\Myb.k`Į+]1{c 8÷={9h[m=n0݄Kn-PDL?x6>m 1hvXg!:(4ΐ%c`oQ dSr$2%B?9x=H0VĮE)dIr-ETDRR K$ PK PKO-opale/m2d/InfoVector.classuTkSa~e-K*fb,5,ä4,I58S3~T9(!9<=?)S~Hfq=ݗCX 3dL,g,Kü ^ )a/E-L]@r& PYy@Qg#5,9GfIյxq:O;暶mV!fgDI1HdP:\?+۶u ow$UոxfknLP`k˦EH Q0+Ve%Tm ]M5`ijnI;Z7dႬMsɦU\ʕZ.FYkK2q]Fe DZ02FY Jjkɥ P$۬Y PNђI{ZCv4[㞪87]\vh05 o =PUO[FrЭBP'p) 1V"=NѦ*2$Ҿ$ͷ):v#鸃NXpuhKN՚Z=uxkY9~.j7/دj<UλIb? o=xwtV0AoW&! vUD=Ti$'H8PKwmPKO-opale/m2d/ILegend.class;o>f]nvNv.FrԼF ĜT\<#kOO0F2 MIJDļt̼tkbQ L c{ T'e&1202013 #н, @ L3pPKtPKO-&opale/m2d/ImpossibleAddException.class;o>f]^.NfYb✟ ᓕX\Rn"8 sRsR=s 3rRSR\+S J2FEaa&Fy@Ҍ@Uk;F4TZ Hiiog`3PKrPKO-opale/m2d/InfoPoint.classuS[SPҔ( xX0ii@G>w-t{wvs_11`1LfؽacPtRrH+:[%2j`;ˎi{YFtnQ rbUJOa W{*8\uT,Ǧ\RK7#cF)*^?' Za:e:[ᔛ ǪgJ.fqWwboqɼֲA#Z j.g噎]WR+T@$~6x*FT&nI@d l6:.V|`^r *.V\;_S:p%6,q% 1$L[w ˬ.:nZ@gGpHtYemi۰Zv$-vL-GK0K OqIqh$#H|>̫>ap "?С ѱzw uD@Gt 5v!N5~1NEW,*D"'9.g#8Io/J;^cy$H'd(ވCGPK'"PKO-opale/m2d/LinLinCS.classTmse=dd&@M (bK^(@ŗ!hqIvl,ώ38?xi ŝssr>;? 4*&c]S2`8.X/ Ռ^ *%z[*XepsBK7 |AfCVU~S<6Fp ^ / UU! S`p*sjmbonRňNBi@/Vl; :&Y aŒ3 8m}ݹӴp_[8"oA kܲ-n΂;Zm ]f% >yzN༅.MGy w5-{]bGGwºL:#΋L޺SAIxca 8noW6[Y59VO&]Få~ks_c"uk0; N1Sю:am%ekCk]M>ES>iXQDv^ٓ@Ϡ(Xr[,?V=O`'Rl6'cw03 #ɛ0$ʪґ u:LDᩌ.6( |<$v/-Ӊ3#!W*No փ fƈ]!| PKo PKO-%opale/m2d/marktype/DiamondPoint.class]AK` ]uչc7N2PAz/m;fA_ ?%:Cބ<$o783 2k ޥls%8Q u*:{&Mɲ˜8 CF}C8Nv`Uu/k[5xG*qkG,s u]n#cq)~Fihi7Ry>vZA0C..wyh2 `hhJ6@Ky-[\Q)ExPK(ÂSPKO-opale/m2d/marktype/HVLine.class]N @5gNcDT$`xE IHFA, ?7Fbg!, %e `N$>N 1ۅCxNv`Q.dZ|yUf>r'lTq V*B]Hu.,V&r1߿.;n2j;n.PKD4'PKO-%opale/m2d/marktype/TriangleDown.class]JPF4iƫQKw.H[ōwSPpQ$HMJ,}+A\>8Q,a3||p(NW eϧ,F^VYFW*]r7y9gF7 82}Qb%H .~8QApsg̝oh:(I8FF`u`WbƫuP*ʞ~(`pQ$3.t}U0MuC>3BL2B(FpI#Bͭm<)G~6L~((7ŹĝJh{e8qQUz-Cƅ PK|L0PKO-#opale/m2d/marktype/TriangleUp.class]JPF4ikkn\K*Vqc65@.l o% '*T|3||{Q@&Mϧ#xEY'R=_V%{a^la4l9MN$J agװǾpY}~la0pȑpyZb^U# ٍf {(uH mY;SNp};mk.dB/+ꫛhN^R|PK1PKO-opale/m2d/object2d/Conic.classUSU-lyZXZiB$XLvdCAU_o_A ;c7;x&plfi3H8+d^8p֋tEz)Z,TEk.+nd'ZSF OR1ii+i_ȸ~I]S>bXq@KI6+Q\Pb\zFr{IhT9gM9R TM۷m,luڊڬ֭ S\+ ^VŊtJ4[XȎS~~yѰB >H4j+u)Mtz0!z0)Rw:b-1 ǚ!MjV<(b]Pz"P:(Ec2Y/ X+f}Zd`b_`BnC%ʝ̱6-9eQ6@S0ͤa)0=y"cpj{;RE!JhQzeQުd/ I/ o%rU0꽬DƐ I(ވG,4xUx: 3HZp};\qz eC!ʬ=V _[ƽirH8\qfG7>PKl@3 PKO-opale/m2d/object2d/Data2D.classixWqZiZYq u1Tv(&j88i֊j[Hn )P hHҔL۴=9 PZ}Sa潧Î?_ޛ7o7z俧TU kwpCIZK,S\G>׻CD}>솏QQ "^$Q-V3*4 |Vp ׭}Lp|/+MhWi];N.&COrR-mmͦ3Nv e z fLqmdŤ ,v Z6 c+ Z p`:cn/܊x{0& 2(>*N/K\0Xס+\(Bd,=8HR hFbD% G_n HVX5^0;: Ĩy L3?FvQ Ԡ6KpB?׏ ]P7qo! oip)\Fз5#oMi^= 'qniR< JlsM$)|MOkp5 ) ~"'zV41?!mϒg%XŒm;9+K<_3bIaHE ^5)L%&oh-Gk0 ~ NR f#7&O/ЫHKXHQy[+Sl_E,BPl M?{mfͱlSȅ 5\?5{1]J30+K@c+>c8&hZ[` 2FG uKv3ϫ!?mmA1s` _sZPPWbFP?ˊhLyϊEke)ΐdbGCyY#88)fRGGZL z_ =FvkX_(טj kt"-l])&;1KX$*Gz^PvFٶO9y퀕EoЍ_2uW0A<]-株urʃ,xIP=ξHJ҄RpGf@[z^g$¤327 ~x7#y{awq œ$RW)Hvc{rj/;qI]y{ +P +KhN#΅<`ŴKtnkeQqcjh f&"Y1U*NktT7C.G`T֕x%[t9!+vt(Sb)ArHw%UJcW9oR 7RaUsp?ڣ::3@ghϾ=D|{Iq'Røz7J}y㋺|Q/7ݺx_{"ݬU(p*i>1*6iP4:RV\wAÂq".\#xӴ}Q/_xX;uYJ{^P-TNVKypAI trt:,TA{Q.4vbdk;k.Y݉i."PK7+ PKO-opale/m2d/object2d/Line2D.classW{W~'ٙl6@B&OmI)l I4R'aY ZZ/R-ް-z?>~ߙ3dyy=9{>;G7axa;q<\ 3?k]:>@6 _IZyK໌?u(K<@u?H+guXO~|z=^6X`KHh ѱȰ%鈓laٴgo~IlpPA}(y.8N&31 }9ۚRpoh¶t~OWN99UC'8A 1  hx=xҭFJePbfӓۜ$nn.͹,r9k&0sw̴p7k' lSм&H]oa1")k8%3Ojo񶂾͛n"bO/6an>g kJM+K9s ~7=Qп\e@OnqqY- "A1jDa]_ΝsT'q>3?O<5iNnLA%^gB$%I)[Q'7c*jGdX^.7 U!v/5esp#ۥNT>ѼqP 4dS&ܤEkR rBiKM"W{.:sSV+Ԯئ^9O2g_N8w5/4RMggHA'i͜.Y;K'V5[nڧU^ iV'W\־\;s~lPp>t Z:C>nbNy+ݡI =5ӬЬF_[|<$鳯mhuKD߂o>EٿYtXtu(ɅnAkiJ_e&Z 1c|>" Qs 'O _C?鐡Oӓ?Bڗ;I-=M_qN'eNVZ=ژաy%ʖJUڅ*^M"=@{JJjE?,R]upM@A(C}X%\={I  rKCrVsm\gֳA|IؠaÙgCųA]kYÆG2֣u A/a2gKm]g+x A=tu{;zUCu;Vܓ4IR&S-@' =rT%^5(``Q9ܭAHJDҜB`:U0wRxVU»dm=ws0qg>{{Uʞ'zW1%!1wL‚W#c™[Ҙ#|c1"5\~P ںL䆳u to.(mo3x&$"¥܎eM`WdWTSeD'c]U=-ݵ=뽴.^3ʶ~(|$W#"/+:X=Yٟ{G|DcKx RQ~Qw/wc" x ochOdd(8rKcdsG[q*"/r D[Ry[u7J&x/PKhk VPKO-&opale/m2d/object2d/LineException.class;o>f]^.NfYb✟ ᓕX\Rn"8 sRsRRK ̼T׊Ԃ>AN=B\oP2-s `zX_me i[ʪׄO6'co#tMb8F#z1:+c~[ fZ|p`qʗeyU;D|Q{;ZohVxΙ6]PK8fPKO-!opale/m2d/object2d/FPolar$3.class-N @5jb|EHgc!9Vl!VΜ Ub%X~, =x.khbJw.vgAȎZH͢=LJ!OJka{LFss@:"He+dёn+K| `+YN z B:h1:pOe.c毝PK0bPKO-opale/m2d/object2d/FPolar.classW |Ovgg3rlBH j&Dbm5EX(+!D@(ҪCv6̄Y m{ho ֶXAӪz-7fA{w'ztJ[q0[㵼NU8¸Umx7P7fxy{hMWy)s+x&fRтɶVp8ȡ_yyW8⃸'1OŇqܯT$GeI f 0ha0>19'|2Oi,/|___VW/1ޯ+o*m HhG5b{]R6P6]Y:k$cx* Qəsy~A6`g%][R~XOJg.?J}/E/Xw5;HN,VeKJ7=K~#K.b8 LWX$)Pc|ݹEX2)@:=O7k/UاEiKRPoR:'㚛m Oܝ,rV<4[{sVNBcM恝CEZ_,Gg#[f)ߖvbNh!>Dw$1F鮵VVnёFtfcZnfp`ͱݕa'4N /. f5E4\kX\w4|$}K*w5|4أj\Z\#m_IYcCJ͚#+NZ ܤfAf p:UTIҐulsE\+G%UQg5{I%}㍜Yؓ54oR[J46iӅGy"3htz7Enl 4+ߗqNJC@;b ˟޹/")h%ݔ\\7MԗH\sFٓ+K TMD1VY9*"jg)]4KxQӢQsF(a_XQal%ܗ7yrWeN2ܤMd43UPs>ʚT{r~fPm{յ!*Qz3gCPҋA4ȓ^k}J"C&qW>=@تOB#U )Ȼ& @5*5" k'P7aմ<-@1cmXUD7I,* 0O;B Ghaȏp#y=QYAC8D9NfS)q h;lLzFFù~F+Dob}v9StBY[=0I/r{Q*KdVg3ϤEm+Yhί=J=3YЕ8WƋj 2:!|./ @,Ps%xhc| -T#T"hz/_aU@ND{P)o,=Ƨ=OO8YE#Xiegv~桘(,Omn1){鳦kF}M|ԜmzW}mk'}SޛнMtiKwj3͚{?~Hܵ"O%T Q"$(BGf9+ X1-$\X&y'i+ȓ=cb:IR 1 s 2; V:x"#\Z#CX}:eSXyo/$.{U`u=!5T@01 p"6j WOg|^*riFk1gCz7i 2W/~EEqcQ|3/@6P*TA\Wl㛟UxuN]>lںںI:!/&l.^-Ayl*!Z"MZ|I'PKW#PKO-opale/m2d/object2d/GConic.classUSed&m B MMZb5 {Ia!ٙ<;IOԱ3'yy%DLy{zw營(>W0+!d\2HYɖk,⳷Y1ISk᡿oG__*xM̜ `ﲯzbQƒeܒdٷfTX9]Yrm=HS6z6|0eۙCs@TαucK7ocy*WL9Q7usgɩ&UcHW ^p]Lq >31Y_0l Ll̚k9vCƇ2>o-לuy1gKl:Y:ə&l%!z>'uGKxYdް{2>V >%GB x:TXVQBY6**V`X%cMEUVqwXѠP sEu*<*v𪊋,^%SvZv7*U*M0X~Ku.[-8^肽iTS_76P77*ԇK ~Ĝp؃ [Eayu ѐ未S;7rdb~ 炀Awt Xg wm,SiXENJ%[5cz~p߼aT%&? 6ZAJs @!0(h'w!z:"ҭ]t>A1p݇h2 Hh‡& C# %S#؆K"$D{-*M M>H9ًHݥ)Ѧoڲd$M+OC1|tBDZDj&)}kt)z2+)"V^I^*bUĚf̘EEW|2*3m)ŻZNѳEG3 {\kWtͬ+JRWci[.j\tt̵qld+jaϊ]D*ΒiLFȳn3OU 7HGJ_PXF4S++Bڲ4G5- F3Ybѡ8 yKμjx1si,5\?K Xy͹ރ&2c3d::y5c!UmW+`ȮCMʾm *i#cQiŰDc"eeU2`ę$dq%37QaQqLuV2Ƙ8ؐ-2v+HU&3 m u)ɔض7"q_x8qxń96lR[Ol믬jKzPL8 FPZ]٠? Ehsa;Zf:*vYQx4 pǍQ5[ssC ykNi5$]}AvM;_03Q^Xw(t6rZOh!Z!i-xBg"pOhy1<3(Cl M46xA0Mz@RMgp%DW[ CDh #e?vo!qѬ{"t=?) <\K=w!^Y·(&*ۮa=sD.+'ZK8"t<?zgEwnwl %jL :'lR:s}~C:^7B( $ЃKykxdiLcoeWy[XlRW6c;l]cq]ƻ2ޓ$f ϚeR#TZ[S gRzN5eG7K^ҝKX|f^ /Z!cfz4TEHyKh.h quyBh{+njPKԒc„tLӰyMS7Yzl/iD<#i;P ;ڜiuyfjpVxtƜa4iK]E,OY<'МVK/[ U*r}Y&gaXhXSP261`ɢ12n*@vla[v#*ѾUtZjPm[-+Jf~Ss_K0`ŋxI!yvINjPrێ3ԎTLVTʔUCO֦ԁZAimu@,s"'tWĦy1O[e2lRŏΩ:jÑ̙l:Ye\t^h 4 :OqRݩccG h'xdgunf9/h9':V^J]UF?6ՠ-KvsK5cƈ/,k 0CCN8AEΐ%H,MsIytA:؇7ҵ}4=4H&Ou8/:B}~jTP /I[xFy="݊6sD4PS`DC7HF1Y5[+1{&0i[$+hѥVYB.3TWQ߇Mbлo+ix#sӣBbwI+ަnpNDrph]w]V>?^0EȋM5nabrg{5Dxmjjӿg6yx0̈́ {k?1@Ũ/PKMl0PKO- opale/m2d/object2d/GLine2D.classUWe- ِnCC &҂l044XJn6]rw}o_ꡞIs>O_xlBBgvf~3˟;\7>”Q1#b7ЃgYc28y."dpx><<vo%q+L,xw/3yͽ*5vJE҇Uظ«KMĚܚ~7֕ΎFrM]h#Q\ IM׬\r`PSFJ!Wh4bnipBeMF'YÐm)P)X04"D ]"(S% TLVN_Th0/aO9_65eS g=.,fJ\h.fF&`!~%|»O<5qpl/1R+i4L:mLBg>WĄqNYu` hۓksMq#( U;(\Dw^1}Sh*VRKRTMn ׹0>a\ZK-喴fMC}E~pZK-lYaG ݴoR+#zIq/yźFdNd{XQH]UVYrQSPԕۇ^7Y+^t.1ҽ6ckOdr8C.`L߳LAS~8:2MkO! QD@}~D+)$,PƑc} 'rmRzCѦӧhvu˨ߝNwh\rZ6mLe`2^Sdx] ,&LW-ԯ qlPbM'*RHȲaW Kі#[F#gDuLH- 5V(r!@ nz(SF W0M!4i@z&&}bٓ2ZmV{GɄ>'Y8!짷I_.If^][.w֗/|1KҮ}yz PKPKO-opale/m2d/object2d/GxyFt.classU]Se~^ɲRBA-ŖMUKA`]%,,twʙz+o:S;#^x3R 㘙=9g0Jo(ƈQDЍyŵX1ƎqLT.2,np2Lc&Yǘ9̳uY,X2>-7etHicY߰IG/9ʖ<. W͢]iyCU!g37FSh/9 KyGhš ֩jiC4vm'/0Mzҋhlryc8{lt23*7qGG-iۡ^1,-xte iKmʅQq}jZ/g\i1 gTA/9 K*r,0d,(2VUR [E T8 6N춮;kNHY뚹Y..cSE?Rff"+c[>S9P/R!\R'pUzs䶕4x:A㹹[N۵Ƽpf1m{(%{oGKmp !HPȦ $*Kϵ A=E(#{ExH{CzjpF8-eBK57 V$62W58YHgo\.V I:aXGЏЁֈe\ȪRRR?Md,JL& 'Mm68B rŨ{rbfXپu6=PKQ7PKO-opale/m2d/object2d/xyFt$2.class}OMK@}G+=$YU"Bkw)ͯ"xIȵ07?_pq]>|fpI8+_dh!ǥ[^JL|΂\plT37.@k$0"G}ăhzeݥ\IQH$6Hٲ,r37=<rF\!;p8p yoX|v[ŇZo,gvXquPKPKO-opale/m2d/object2d/xyFt.classWUNvvgv3imKaBv7mE$&iZ'ٛtf6MCRA@/|_sl7ɦ?~{Ϲy<,"؆':f o6^ަ ûxyw-|z&Є~q;h>L:|w&!|w cx`:ۈI^>Ś?! Ir0/K>|Qǜ/xTǗuO+Oǘf<:XHf-򤎧t5' 60*o+ /+ s6T!PHqPpE㈲c},Zf(; >L[,kT8fnKHQ\[j##ej$ uZ,f-aİםj`J\-F&_Q+Wr5Hg\OL&S45հyh#lN4Qš6ⱊ8Dem:dye$Mf3H[L{RY-=RM?iLxXQ㼉7)_ϛ=Pp#8RyϤ-Q窤ӼIG3a:=߸&%lX@Dj&h2$Ls~zf♍H,,ik<T6:ӵU:kaueߓ3]geJdDU ËظVњlsv3BGYzTgD ACo e&ݗWȗ&ծ>Z2)vNn }uo*5! Bhq+f+SUC& +0q>`w"̭Tn;z'pQEbIKY].·W4mU؉}-@ڈr-㲁|ƚdA/XYJ%\NaL*HiLU6_` I/1VK%T*䕴rs\B1Ppx:ѝ]ɫ*x,e{f"]ɝwXuXkfy[3Z%1}o{눩̻NW-ӡq+$tha/5*}& f^2" ('dlQP';u 1d/[~Zh! <"y ĥb#Od Pv.LS7g:Ӳ̉eT FBPn]=קpbŢxh HPKƽPKO-opale/m2d/object2d/GyFx.classUSem%OZB ZrRR*^`Z 7o]-ݒdd)`z֧݇tF;ӆ:?3X]BJ8&sܾso37Tx:g4 !%0%0{Ai pXL0-`Rsbi G<,|qwBआb/ix̩eFC9 N 0*PiKAטUFЗK|-3fVgJi+ DA_̕I͢i*GcGҐ3u2CZOfYK#[un4})=Hvq6 2-$CeC6Y圂Y]6mY 0E:FnNӆ=K+І9BٴqL!1$ac}Q( ټU48X E:KqI"D1.+;9mј@AJǮ,nt^%s( Ƽy,J,1x$^%E )ޖx${P zy^*ɡ^I!DSP鉑'3#xTKJkX8 1 6ߧiq-$3yJt˪Ԋ,U-XAg}z̍Xn 5 Yjuw;+3LЏzmÚP ,j ok @Ӻ.Ý4άV&.VKr 4:?gHEDPǮ7w4 fY1\ yr}N:44P[kٜ1DDSab{=FMpW&~d<|/.эkE87+kj (Q/ ;nkPNE]Aj;jߢQW{Oyf\8W|i'J_'nb4\OoVUO.cu~~L5*mĔiNKN>o8p"bSZ﵋xvxLޚ#{/PK_]PKO-opale/m2d/object2d/yFx$2.classuAK@411Rkx!J/-BA Ib* 8rԅao󵃇K#HBt6/μRRǕZX1!|j+[,]lN'fZ,i6$FgMFuRʪRk)J}m&^SVb4Aqu]} >DO8l< ;ܦv7fU?̽E[4fddQw0sTXûdܣ`w=|/z|A78P!`e{aPࡨ`pG|xԇ!#x\x҇2}WN1>|Rz|> >| uQ q}RJ鱮mLD536'A#͜aJX9̖t BLr\Bci_Ok(S4ٓ<4_L' L BU,[^7M8&釢a2G1PF4e$$Y` 9ڞP4*< }}EolN2iͲPbÐ>xEf2fLC&v'3]Äedxd{3m%+FJf9 'wfLJҦ5Cx,l"&1umۇyonUi0]2G^ $)'$J TP U^ K攛:.= I28"@W1]B[\M^iܘs9#F*v`'-أ;k*^ R=8CfrNNDU?T#XOS? f|2~_8_SI1iI+8SJsA4l,qToUW$%v\$>V*?'7㐌?S!$aFy44^ vP2o'b!?Fpae%)I-/Mi{)="&'9n 3K &23.C0N$O4̎哩1aX M*Kł{%{h2\GI0$IŁRaMG6Jus"䊂HOtNql䎣*5P@sebH.'mf>FKWtfWO$vT KZ{+W?^X㙉l"/7Z;!iY$Ŗx} X&D2Rt8]-4Hn]:7;ijɝm!zeh#n3Ӄ4$-PWKsf= orw ZSEР-Zv4&Oo} yWwXnwږ; vVUKp9݁"]֑YH"U?2[ƑpWJ:1^Ovs4d!B:TPkO)K.KzlICVI|e[x6 zя$Srǣ*F)rP,4]#^fR_ˠW{(V`v/`۞UO{ݼv;Q^Yky[$,/PR%xrd^"W4ix9WKq,bW_jRm\־ȩRϛ=r)z8*סQ:5[y!o줢9-k AjZTCE tOcp$fj1ls`C?PK·PKO-!opale/m2d/object2d/InfoData.class}UkSg~^6fKS/հ,H`"AzqVB,fQwC>茆v?͆l49}y 7 0@_17,VwLn{3*nACq2OL4c!niX88(5=[ݚ S gsgG7pY%3P Vx-[vWsmt6ݼ[3<%J$S-/ܰ|Y%H˘le7{%J7WFPCٖ+Peϼ/\ S6^e7滮ȕ\~PQғV[u=JaזdY&rG 7dݯNCŒ{:ゎQ|#S&Qqtd gUXv\O`p󻛛zbe\xSˮUoގG@F 8`ҡM3#vghsҴ'kۖ޼qȮ uٔqPTcײl:5 ||<ϻAN%BF#$=-%1^2! (F b?Fh}/}؂F׈؝ 'XpA~5rBP*t>`J걮bеWáaDSĤ.,(Mi #tAk#$u/8$} k4x:kSZpt:7\X2'>MZ8 &[:4^²^YLi-+!_:PKugPKO-opale/tools/OpaleObject.classUmsU~n.ەҔVbDA|I*(hll"7mv7lO> )cgosI3&=m?0i&! 1}tyW,㬉S7M$|ll7R4) ,t6dbwsw ,B踧K_8 otg0W Npd6<]TK23D C&#jv)mJ،U]m֫HhU:r25PGSB > m2I?ߟ`=*z`{nCǷ l^n/{>a o6eoXE/Zv gKSp Ǯ 5a"lVyE[Vy W8}SxP|]nopW!^[x1$+,(Ϫ-xftN\W8s*<5(0m>'(9*,vŋz]4Sv*5_hP#FL`KIC=*, b^0ܝ Y$]6"<:&=yuG5vĕDL>Nq'=-Ios@Zh%IԆ5COHH^HSDv1-m"nBo &=3gXH0Iu> 'mEdy/Hg(/$`D/i;'›ὰ-`7&)2e%i"ƵH'Dn+S;HQ}/$R/j|`#d mxcNHz ,(a\eXIFpw@cӥr.ZxP:Oc1tS$v,LfRd(h8hJ yO[a(3E6'W<+_)^Iea(e@",]Hl '$vBDW G!3nt}Q@#i # i]Gv *a@qo}1,)-,ɾi"IV+r?`mM`O0?Ea3{zP.]?΍O=uPKP;PKO-opale/tools/OpaleSet.classW x>L6CX 0$I%j"@$ ⊯$Y̬;޹?{^g_}iA3#A8  a^7psLGI `\ TA8 `2!x>Ot >g\95"xG'E_gy/ e&JZ9AX/5:77;|q}n^C?'AhCqsn~g>_¯D a+DxI ^? fYȿ M )¿"ʠ8%"a; !>GL@x3A bRFR!Ea30 y1Y;iKQ..U#Y[zDx\5+V@x(_5;=ff2.& >uR L³Ri$x=-pHHb!4Rud6aa{١!5&l%"݅-5L"bf9hG [U*O_tSҳZEM=Md6 σIx>^ a;vHx!!dn@!1w}H&Jg3 ۼ%([fjL,wŔIGܜw$\ 5أVRDO"EK$GG)(UYdBP2$:gTi$SQrRcPMyl~RE4Y˦RS6`j\% JV܎$p#n kM^F p 'fRC;(])criٰ|Bn%rϖ 7wvLŠpJ4U|azCl3Ydm.Mߣ~[#q@+1FLkdp^-x›):V^ knR^-C N)ѧطKNLBNaE7i-%Ѕ0SR`'"v/f #I?f 5EmEKΎ/qӧ;G+|+9.]I9GԌA8NÝ^ώT;$n %L {$4"τqn7pڜ5(I],0 G8]Wr%L⥔D8+{ervyd4mOt'G$w#~>@5Mm w9,KY1-Pɫɻ_)\%Jݽեq"ӝf)t[%yk`apDU5l&v9/J搜xY83L(fyLSd%z}=Q2\4s״Mqf##}kkyE~B<׈խNRMa5  {ٳRi2:bV%u3+ v;OO#ե.2jղ]>˱Kj.ɈeԻ2eilA&%B_}3vL{z |t- J]/{ I =vʏS?_I,SJ-{l!眡@<&2 2{xR5^O$y[Rp$n[,^zdyFJ 0ĘA#u߮ Y%2@KiXL ~GXN7PqMiq({P, Cz}M9I9lc{ LYI0s&! ìyjB9gLp`j8p8ygz`,3{y׆b`, }̟AF*MF'aQ7rФuFf9!sak]X u-2HB1h# z8. ]F cp$1D$lvRbkBD\Q@# Cտ s~+"tџ*}G- XOvm{,40WXrU>WπpM?75WQ9$DO{z7G'z_%]5ET))6({mi.T^>:hgb->@"D)[qlɓ0p$ĢcoI]R"QtÃA4W&azɳuF(O^ǷA90+ʰv_h$A vW76nuG{/Q'\|G(|r_I b2 \lm;9mm!sTd_]vJPK/" PKO-(opale/tools/InvalidFormatException.class;o>f]^.NfYb✟ ᓕX\Rn"8 sRKs=s2SrK\+S J2ENaa&F@Ҍ@Uk;F4TZ Hiiog`3PKagPKO-opale/tools/StreamReader.classTkOA=C[<A-PET| D˷ZvvK@"&&7IQ{w-=wι701\麂*& pJ !eLjȗN rGjӧ8gGwZ4џ}ޢUNyvQ'Uq/FO%U48$;!&IΓ$aԢk& TII$*좙Ve!ӠA1kLxuPp/v#{vdp>ZЖWq:х :?-0l=ѓ&iDhon)._-LmU[`ӬwfhoPK&!0PKO-opale/tools/WFile.classuTio@m8[І4hZZ iP$$);J!~HH QGH"evw~B P<#Ր?_n4g.97kq%,3O3 wXF?PKBVPKO-opale/tools/Chronometer.class}SKS`=_6mB *hy7 WA*  LtTǽ+7\90S::\&;8|o??EXQJ WqlnSoS_8} &_PAM8f$JGepo3hd SHGpỌ܋>'"Ȱ1#cV oy51L] X/Uh|6È}ӄїGI"UQXUr }6IUH~-Dk_?*8QA4X@c;h QFs-e:Rh=DԙZY:WSoPKlޙPKO-opale/tools/Debug.classTmSQ~ SWqRJM-z3KT,-e b.KS͠3t.K# ϹQ7|Vª9WyVwY(GvDk˵ZDE$8q^U6Y6͒ibR I1˳b]"JFn̓A o)PLX^c;Hx0_mQSGl㝈|@?rP8pHr@m WUV|e%rFF*߼ m)%]O6HcQu1aDDʃ4&t9EeaCBvkMOֿ %E;ze5*S^\iTq;2KFeY]qiu%S/x]v.F벉:\ݴ7'XMzp }_! L>` +m=i V)pnIn.uq[R~@,-c~%H%\: UD"$ >X H#BZBUB *4HF%\ 7Q6D5j hP*n`δEEzm~Jq>߾h&v߹h&6@MδyK,"mz yS;B[PKdnH PKO-opale/tools/Field.classuRN@='vp-B N7BEH">-dAFƶj6ZЏ:P)%TΜ9;^0%OJF,"9`IVĪĺu>?'P@i$qۨR[`Bs,~q{d! M윫+G*>M+6 M>i :eu">C#HUKGM0 !I]7xI Iz)a«\!| \Lc}Y Seۗ9^t$UMDm]?C[q[SK0pk'6bQ^Cܥ ')f< پL#<,,Ogcc}2<_+#(V!z zy7 nG^R程" UJ }`sPKNPKO-$opale/tools/InvalidIdException.class;o>f]^.NfYb✟ ᓕX\Rn"8 sRKs=s2SyAO`VJ[uܳ"/v\?i!T"3"? ];=`24[ː l}`0|zPKٰVPKO-opale/tools/ORunTest.classVyxeM锐Mv'*4Is` UtkhҺtMژledgݙ-mP# ^(+G7u%R'޷_n7qgッo}B7#cVFC"8k{2x/Fo' x3cL^[yyxnnbNywDq3on eIx8[yMY>$#̒&qƇyS1pQ/wKȋ{d|7'%+S>GY a-9!s>yp5_$dxS̉%q%{$E _I|JD|]ƒ" >SIJ1 GzXzM'vqB-%mx\3dNY)w'$CLkx;I8)wɷHPDwHt我Ze;9kDS% {mIf%@*B\;c,M҉=1] gsV/+ǯ1 SH=K,o߽84m\X,g%@/sE.Բ U o)؍gvKk]IR"~%(a$S??V)m^H!+)9~Qq|2 ~ rUOR ӑF ~ hu"د!!-47jU.22uWcV"eh_}Si*p:K*aҨAf`&j_ `(nK(۲FFZKΫ9ڡp+$9xFimZ=qFbd~{5!=#6[44mH׆ZbCzl4V=U]AtB8؄SI"&g:<{  ꗫhKfDtȹYZ n94N,.w47Kub+7 f4OB@ zO{iEE,wݧG u<x4Ǧ=BCGDx%jt\n ׵>,?ce %A@j [ZXu%\4--"{G!t4SL/Y8Ar*i  X{vV5|~ BT%\̱+XO1ju<[9_Ҡ$D7}qtK>wb}=6eӄ25ﮓ_HNWʭ]O)2B = vR{\ yXg")'/^)SpbKR91w.UN)' B6PJqn$[oq]8Bb鿬MYΛDŽc؎;9>`:hK@t PyA݈UB۾ҴWx:CnW&rکi?T HĿ*-%la/WcVFLd#3\6:: z.m`y CP"(Xm>Nm&i v0){Į6%xӆ2&(jrIڮG ;Z>Dg :CPKB\ݍ'PKO-opale/tools/ListOfTest.classeJ@4mjJwmTܸ-tTt#eJf{ ւCwZP/ ܟ33_oppC h+]."{ ^.'D' X>I|$.T/&-L&fFeb=%~reΐzI⣉} p௖ >0DQf0Zg .?[nL{$ܶ.ܗ^Gb@٬:Mlac Xܝù^:GxDyZ PK;~PKO-opale/tools/OTCG.classX |u+iFbc$l",a [ #i$;+7MGHlz,4- 4$mS# iӴ}7={jeyvfī%x>? /K^’Qx^e~V'pŀ&x> W x>)S|(_`O E:j %Qֳ:_  YoߊoU~> h_0~7 g@?|G~_(?6.*OL ɴJ_ _N _I? N M )"M@F`D`z @C`&[ ln`;v \+0)&x[*A` M.)i+OF7 ,p;%n8(pHVG+pCNGG> ]>jBV7G"a)nsCL;ivn`fXuvҙ/g(AGyc Zlg)Y/|k::3-r=8Xs>+ERr`.5Cq5-!|Ɲ2[J򔵭1\H\Bq?Y٬3cgf>X-WzEsdԌ>ff}-)KzHJ>3=c;4ol=5=<[fYRSkR9NaC7M)JM_̓=Fe[G z`UUㅪD+O}W--:~z@©EWdd21>єIEt>ks<SNeN ^X?ܠDP˟*kMIqf.܄ST֕OT= Gsv)I!mK$qKPV.AًjeYeHWl&njwd8`%x~i+wY>"&`x?L;uΤBy $ڱ3TG;sr+Sjr; R*Rr߯a"\JiM^N֣b.gD'˯ Mrkvϴ3ν_5MRfO,+l$^#KmfԔˤ' 2#!AIwv[hu!9O!PGT>9:j}xxKr8|a?SQdS7YpeCe  edu: tOL2.FrڪưVźU/rVwoY`,O:Af g?$*7Zy E#ޥnBSl qV@J<)F ";P_ŹAʘ0)TV) s fJ92t)DګT2b'žj|nXpS(-Ǽ=?胉NMq[`.^щ\7??稀;T|s^љ#N`"u칡ǐJ8o٥jM9뒿(E ҠbGeLGjr=Y*SN6+=?J8:Ƭb9lQ?XVS9:QRZث2c#c :R@}O\"ӯWҸ1$1y5 tV Ҵ*It=gq([CYx~N{. bQIR/C=$ŞW럆aM"uk>N-c=u[ W z2Dl ^BqW̓r26$ꖠ, RH6,Aͭ_ynG} x3ѥ.O&^`}`sZ(q{jUly֓̓Q'ѤxnQI%}nR'%,r!'u/Æ<@n_T/EmAVt[S]2o?Rꚭsl9)YC!j1Y]d|\;htĊ %(*dIO`@]GdE躉~v%E5O 7~2ddi^M,\44E/]r귯\sCU'qg  FHܳ; |Vy #5e:-P 4Q{0^6&vz_e~_v ȋh6>S;2Gr`z?)qF3-~he藮h*N 7 :+䫙l~UvϛM610[%gU&汁6!ٿXWn}%FA2CaPs4٤q*A-{H( W x &;&Ҳ㪵f׌fn/#4o)UufKGnAEOnO3%?:NON `t&x o{dh-FJm6 3H:Les*y>JpY7_Kw>W}n!Y7uȜT*ɩV㗮̫HTf vZ&fu95JCSs6]D2i7>uk7]eiڴ@mVMjCkIMzYmʙ:<=B:i2U]UQ`x*tO;:G/;V tOLO)Yg?]ebHS0; ]zQd{Vmtw{Wi؁zҵ^Jݤn/Kh5 !w&;9.K5GC1k e&?L:u0n5|c&s@1"%4E֩#Jvqdk͵sU{t/{;Ҏ |v\?*P\? N4;u\\=-*6 K }jKg]hviWGk$-%hG^D| QJOUGPKKf&PKO-opale/tools/OTest.class;o>f]NvvvFWp +QBEFD]}˰;ܜEv.5@ZZ*D6q,EB.Z$a}SZ)41uq"r)O8E =E{.n@DCǾ> Lq.k{x6pCg]<:0"NZ49Eţ)M,@%/<PK5UPKO-opale/tools/Stdio.classVSU-Y˲PTG J*  iy)Mօ,461YU~_ d:?~o@#=&p _+82i1a\CxughVM1&dLg,1%aZy$qF," x ٔ1 2.|CWEOzc?_oZ F_9JE% W%,43;uG|>z03߼ 3g|*p `uuBb7p ѻ=+`g|”6ٗ\ܯx%:֒zJ%Tx"%jɮS59jwkm^} @M{I& :NF\@jo;Qnr3߉k jz} LV@A䫭^nYW%yZ7I-KWYJm.y"ۓh[CЎ5DFJR{ƴy~a?E.bTdo^E`na];̂!}o͚y9ǰbAz!|@~ :w*K@c7I4 ۲{뻣% 6˷QҲ *"B\u;D9#r(]G9(W̗0y'1 ې!/,YO8؃VB ʉQTа9 v4f8Cf&1 -2ԚCU\:ģ{X ZwNB-ꈄF:p!&$\^XјۋhL9j'`(vdV0@-vVо?@7?PKԴn PKO-opale/tools/name_object.rscv0Shn85v$=1iN X-;`CiPgGZ`VeLNd(\\W!t!IGDÀ[l>Pg{|Gtg;ɦ|iB+C&L0"rr3mgS^2!+`mfZ*S'`ٲڔMX?d&LB @&zn~/KN`Zj z!d?²(`O[Co%Qﺫh⤮YI.nf Le=xH)E3cHOW{'ňx4vK>K-4vK{;6Y^xgs"/wr؞2x>0# Oo) G@;QG{q" ww7QjoxF$ c8R :$0Ht5:>j)y,fFd1xѼgbmaPK5tPKO-$opale/swools/MathExprTextField.class}S{oP]`c̉ '+L[aˬ)mSƇZ2IHC-eYs;w^?G$VPqGu! `J)dpO& %A&% $,Vn}6?1#C_o:A>aV q&%D:2(;ߣ.TX'*♀UcX2L{Ҏ,$PQ^2TZncmi+7I}йOaC{O D3N}#i.Z^ƫ5^wCV%K/N4lw鹎M;C:\äeGŏ kvz֊dL:}#AX>#Hl ,C V"Ji @""FEʗ(MEsߐP\K!M3VQZD%`5{[4rwPK(APKO-"opale/swools/DoubleTextField.class}Rn@=]-!m]/ER%ET(Ĭ㴈Ҭg9;;c44Pױeen)0pu4510g`5j4 ~ Eݵ ۢiRډ'{^7 HòO|#Gt\I<[ ?8ː HxpjqeL%^&MTbXSf$نDÀ%&<%ƅ^?|5H"dXG촓^_fJ^5w_[Th*RrեGi!jȥ3kL&=G"+@TrQb7C9x 5墉9z]+S**y+([g`OG(P| kJRkeqvU9#f%Q $1 q; Z)3x#3I{d@KPK}e`PKO-%opale/swools/DoubleTextDocument.classR]o0=^ҺJa --[AT!GJPTG`m0 lG?`~#S0xFEL!bɚ߰pX.Vc_e7xsaPK,7lPKO-"opale/swools/IntTextDocument.classmR[o0=^Ӻ Jn0HKJc:ĸH*41n땠6xK@jtZ9_AL\eWPԯ%fVqM55ck mrWO2v,lI#AavDv'WZJTNT|oHapQPm  +gmz2cEjt.3= %,3O ^  PVHt$j}6{](gvL)hær6h$*Sam2hO{ ]r g9Iz{s"dbpd[gUxlT,N9jl˘NE"N?0@U?s4*al00oI;t{90Le!25'#dF4Dn(b=dX2'w{_)9orJkyJ)0YPK, \YgPKO-opale/swools/IntTextField.classuRMo@}'І6 vh1ߗ"T2 \@Ep[Mdؖ"*QYM ^y<'4l㉎&lM(sUf㺉%&nউMq[e> @>c80w Z/\=1Y(_QH?7DCO^6aЃ>d"|BNodJ)gH- w̶|ی p|Kҧ:[xOC Zp:}~|1DqXp?a_u@EPk+݅Ƶ ~PKVPKO-#opale/mathtools/parser/Parser.class8 |U4ǷdFm4iV`mMEk7:p#kvity#"DU25E*0P"*>E௨(sw$}⯿s='}'9 ./c0*zB<4hשPB :Q&C vV6FŋTl b,}T:Uܬ%*^;y*xF8sX5ºU4TQ׹Uf{(x ݮbԹvk٦kpip '_5aB&50m 0 4 0ܩ] wip7*^**^{Zk^u*^ <7M<]Y!8B k:!fix:g6Fb A=.#;"hz}$=3fII+!$(c0n6z"ա  kV׷3Dpái=ɴdljhcb IYʨv54$UITKVҀPјHFbFu$=HH*m[F*ILfb"D*!.BL $Y`O%it6'96t6#{7dRx/^G3i7O b6vDbb'9D׊ Uv3S& NڵL̚DuYϘdar+R֤nL@%f 5~o'Kxd~+~ )x=aD{W]<|Dǻqt/+xGMUT:~T}xVpK.:~T|PoOt~RAܫx4>0*̨HY0B5 ÛLlOt{v≝q)K㭨>B[t )b _#:<tE <|!̕@,SlM)G R0x~P5vebfw$Rh@!E a[ $ $b~{щ\ Dl$·  6~^s\K{g"M9y')DTg[H{hNvODYBnй0#g$imOfv#[PaMѴIL ~|Jǧ:gHLSB.V,m$:|s[CZdTi(^q 3E&#⋍-.]R|o. bF_ߺz[]VT]Lm[{*V&yʷrKM/J9^9Zrٕ< ":::v];Tds&0Mkvѕ1{ni+"d'yfk06}@6#E;T}$m46,GܣLN dr7h1L!#ɤߚ0eu-_y&<Qd*<FR gmqTÕm\l@)k+#:1RL DyI4Z"5I:9GPU//w~(*;L-IХb=M Nm"gNZBCN+ ڑ1=9=I/F'=d͊0yA샇,@ Q%(}Ԣ %&Ws`q?[@?AH9,"( DS$>/%/He "` RwMp.ɤomCP͏C`lCк*&TA pN!Ɓe*ga>pBig`N&}7FrSog,ÂY!X=3;Q¦(i0yfwZǞN4&[( $!B&炗iArV=@0y=uNi!?^2½ ( gam9- ;pQٲPy˝d@rG};-Eely!~´Z!zY81 _;V"Ofrua~TƜ(ɲ PȖBv.B 6Y9^.^2buO,#.]r'nweai}.M +h 燡iݗWj'b RpWZ"?"C$ܱ"ƉxWO_ҷ Kԝ Ԯ0ugG ,J,OgA8/$8' H!f{T*iNe2#GEx>tFltU:CZgH%1va];ɸ\幰ն4]7qYЖso~soE]Y6=,h<f[*)jNZ-=ᬾ8_`w(Yw_Y"1&L?N~"ޓ kM:B7Do"&z33[Do#&z;0;ILt6ѻM^B9SPߘdV;\-"lD\cwC4F`_{0pߛ}3p?x }O`S*jݜ,|nr ݢH@_ORaX-&<b'DHLy"(&'&Q)uu n %PKR{G_"PKO-%opale/mathtools/parser/Operator.class}.`:V630tݤ@\pDH\6mƴ_"{ ĺx(q!49眾A6 T,kHbQ4ʲV4J&zU*6p>n{ N~3C8 :^`/[^aPx 9or@Ŭ9:1 şM&j4LE KG Ru̡/."nn}$x~/C[\!GmN i $E^AEz!e PFu2QP~El }T^"d"h&cp `)bA珉UIo$Fm|PK5}PKO-#opale/mathtools/parser/TypeOp.classJ@Ϥibb;*HWЂ 15fC(}+EI[H3Ͳ_h>lt<]t]RU5WK]ey͜h4\=̜͊Za` ^f4gK MKðt_VsE'OJ]գrUѕ"p zR$l.1>!][eI%JʹzAS6|,Q' yb~PKQPKO-"opale/mathtools/parser/PNode.class}T[sV%[PBj -8Qcc[P%qH[[ L`ea{0@4~{9{>p D[E,J,tY_1H||k:QcO]C@?&t\g=Yh2㖎y?0#_\* *%넶6mwQ^'7'nseB@2W+V5)Y"(˳eiP묄G~`NaBw;nwvQQ*n1}SOST(Ax7 t}.Z[*Eg.V8N6)DI{Wev^ -o5_aO:䡉 g\&W&FqI8zAm6iSCLce 0Z}<[3 ŊUhaA`r&.`JS<'e[]@68ׄQ}qY>Wrw;Aor@oOB{;t v8޲weFrtj[wv=4g{u |)zq~"8Ad"|:'YV>ImRjRݔBW$X$1 6B[PX V2VVۂ~_E\FP)҆г}ͩ@gP[# iIj.HZ嚤3\yZؗ(Mo8%eF#%so?/b~dXPEy~ ЏJg"| حq Ʉ;F6G#{^V9vi56+PK-igPKO-*opale/mathtools/parser/UnaryFunction.class;o>f]>. fYb✟UP ʤ%) MVFĜTĒbĢ"мĢJҼe,sƫ5iO ;4ü2*&P5ٲCbNR=ӽ$H{#3? WA[?7Ey犠c]S &C@ugSszWJfzo @`-jorH%EbKdPKE=PKO- opale/mathtools/parser/Cos.classuPN1@a]@QD 1/Aୁf]]n(>zAe]i3||}|.L0oTM,biVsQP {p>\r514G-3c±U g!b6ФhYDB >!A]=S7JJ/}<3r;,? WAK?7A+%ydp(kuLhg[g9}*k$37H@`Mjwr;HyEbu)63*ٗPK/8o5=PKO- opale/mathtools/parser/Tan.classuPN0=e@aDE5q=B»F9U S7h|(c3^I|ml(`D5s´,РXhw<]^dk#kG v𖍘3:g*۷PIla-U khSt,dvWL4e|3u#'`aC|Jnq-yoO> 㼘VVR]P$CRb7)$F=xKaim?>t7`+6%9.OCVbM@o#kp#RCPK^y3PKO-"opale/mathtools/parser/Log10.classuPN@ű#!< HؑI BHDTBП]t1A*(XbfvCh@'8롊Ut6"Bp<%xqrCh۱f3U0dHzlݘ^TZ(WMv,ٯ)% I {v >򮴶ڥ%6/m[Chd)GWW!H~V k5F >l_j:Z]x]uPKMPKO- opale/mathtools/parser/Exp.classu=N@dl0&@FB{ *T(+ km@NE(8BL, *F74_80FtI%inpFivCha1 ]lDf0L^hUh;Svv)J]]pRbކYB/ꊭG_ؔP%˒lh᫢/b#^m$Bk<DnfXR,8Y8?# ^/*I𹝟%hAJ'!P-taԣwT KդGЩ~uloC,-f+'Fr-m|+a7@tFƻHjܭb *_PK5PKO- opale/mathtools/parser/Abs.classuMJA_38N~ʕ A Wf%oMGӉT*x(2 x߫z'0^}Đ:mN "ns75,f t ѬFivZU'hAJ$#C$캹.z>8Wj}i:~uw!w{h  B+Fk[e l!ōj!:xGHjܫPV?PK+ao3PKO-!opale/mathtools/parser/Acos.classuPN@=CB- "*h%1M|,M`RӴç ?2^jN299d]lkaQC KjXFmޮPWb!gvϠt+ 1Aw` ;1}5ow-eWdrlbAG eXBuV.gQXXe۵][1h%CI9Ig0;9yC=ca:µ3خ7Q7PCc@64BDh u4Q焦/P~n'&= /8&w>ϐ:'edp hdW<)C/ϖFy:Hi B*jߑЦH?!Kef~1_KdPKš0@PKO-!opale/mathtools/parser/Atan.classuN@PpDD4'1}MYȤVk۴#G) >eWdrlbAG eXBuV.gQXXe۵][1h%CI9Ig0;9yC=ca:µ3خ7Q7PCc@64B.C#{n9  +{l eh$O|y3,N+& Ey;H++@ʐi䳥ѦaN%RF齁F|lw))ORcb8<PK@PKO- opale/mathtools/parser/Rnd.classuJ15mSDZ?cuʅ yMWQtPNJJ]).|J\wNrN=H %B笴e8'4#Ʈ0,f+4rճafzUD_iNv!oٹ2jCpZ o'{Jg ees@4d%;6658X[o"5/PKCPKO- opale/mathtools/parser/Rad.classuJ1iM]zApW<@ŋœ^jtMJ6VTIPtY|}|B)lŦ@bHYg1A5}⧆,tɒO AޛS(/BR8CRb+) ;~KtޗP.VpxtX>h#:g+a-z[*Jp t5`% Z8@sב5ߤP?PKBK?PKO- opale/mathtools/parser/Deg.classuJ@ƿ6ckkx x1xғ}1KݲY+}*x|(q|؎a#!6%&SาU8!4&O]aXB,iyoOYV QVbT6A\ݨ*_~yhoB,a[ k`}~gaՄX7k>Ŀw;-⥅PKu?PKO-3opale/mathtools/parser/ParseFunctionException.classEAƿ9߂D R6YTPba<; ^Jj!J%͈PZZlO\mRmqRC3 fkN,AllzT+#W"s ߷8*#ѱp z{]K_ܴqz]}8^PKPKO-+opale/mathtools/parser/SUnaryFunction.classQMO@} TPR$'&DmAT_&|$Qق&;og( XئpnJ0avd2Cbiܽqml- G?XO -pVCNjPB3Sg7{W 5Ԯ ?&Z.ja eQDlB0s ` { $4܌ ;ݳmCv-1yX50=(Cz]Yiedh @KvyP44򢄌pNBZ&%BMb>R4=W}3O$V5TO=Gćzxi|PKDGW|PKO-%opale/mathtools/parser/Variable.classuQN@=C[ "++h_Q# 6XRZhM?x jw,3N?>_!$(%uؔ@vXaّQQe& ?+8czAݤCZ 'H N*JSuE>lɒ7H3bC>st@=~s(D|=OSo3/u* _PKEcb'PKO-opale/mathtools/IyFx.class;o>f]vvVv6FF MFĜTĒb}J FIJDļt}>F&`dbPKֆY]PKO-opale/mathtools/IxyFt.class;o>f]v6vvF F M A4 1'U?7$$??X߳ҭA +,Q?'1/]?)+5 Xf00iVPKDTahPKO-(opale/mathtools/AnalyticalFunction.class}UmSW~. ˲ZƗPۼ- bQ!m*-T,&`؍|?/δ0#3{T$M=y}l+0]qL =ᮊ{:/3fْa9`)KvaNW:0kL4|5<% =T' ?x)yNE^EATQ;/۰tٲҋ[&zs*VY7-wnZ FaWzU1CQJvɿ-'r)HՓ~ʥǏbGuq.8Nh*SLh4to%JKNz,2{<ˋoTuU/w 0{ ŒNZ(Y}؞5շ60F:H"E]XǘL6@F@gjȗ㵄9eqTE)3FZ~v t@mmgmR!t'<뺎kr KHFS 5j>llV=I3Zҗz񷥴X~1 eN;UKyp>s24vgw25YηRBaɢ6@FToƚt Yi&ە#MOaj |R^6:XxҼ@[֨K LItϷ\?pR^cNFUs^Дx6{̢cRq}Lx! NN\%;-я qZt' J`F!VGn}G:zXHա7l)ꟁSPKʹ:$uiN|2N;s#\g":rbuK*M`2AućSuZDF.6m"gك⿥"긼:L(QTSzb`UŤQk 6k`on\T pk 5%, HMpysGS(3PK'^PKO-opale/mathtools/Bernstein.class-J@g&&Bڠ੩B.j.TE0EBIW@8 `A]A2h2&$' zBl ëdv~'a 3_ "frD}WiDs0i8 Mxl_Na [(\)a$HqK5PgЋwy65 sԕs Ѥb,AGlXL&\67np(K95I,GS$Usشx St341=)S WPX\ѥ~ŧ\PKӫ7HPKO-opale/mathtools/Bisection.classmQK/Qng̴Jq14BPM&J5BbaUCuD'/xFba!+)6$|so/0a Ese5Ckj T ApK? # lC18|bw|+Ix<IrԃB7GzUq9?YJ siS488d7Ğw٥;>繾w~T+Rq%7JU6W$r^ANcGVxt"PK7]&8PKO-opale/mathtools/DArray.classV[ten6[,- ,M E+mX)RmHwCA~]x뛷#)x7w}W&M;3|3gW*a,B{sqrX}d<( &dLh+)&4ᨌc*ZXiDw2s\ YL(ȱ;4''wK~~C)3I :yʨ{%.DĤ-N C|)*݄u:Spmmm.#  m$L;E2H  攕ht jF)%ٕϛgOiw>-rN޵R5w]+oف|ޡU*]N1G2.h B×L^,dZ]mN׶E3HZ**=&O;ďB\x%'L]MgDlkRY(w!o6Nqr elВ-MU_hhk13[HhވF495W~l虂k"^%m?R49WSmr6 `;w ICē4QHjdCݤ}1 CgOೕɍD>?'"DZbHGx,Bv D[FC xxrYhhŲސ{{FBM4彊{tMGC)7Gb籶qVjFJЧeAb(<;iH羦*]>e( yM3#+!޼%Ezm~; (3úbtWpu AWtܟ~ ?J|'(&g$ Kq+U W2aHWhȣ*TEmӚ`DF]#Z=eFX32ox 0##o;_3_@ya! EP4h-xp-ܺߤ$ZoMM|;pn,m,OXO,N9>ANQ*qvfвX`qnqD\iÓ_WN" (uJU&JZبY]@9ԾBWgƏ[ˈgh٨ݲi0Uْ h ׳R+ _Hn(]Dw{^:$ȋNys?l nN W䈟HӣG^]zȠGJC/wn˝ 3dm}m:PK8 PKO-opale/mathtools/DComplex.class}VmWW~6. MEZP[6 6Wb+Jk m KdC־v/KksJ3ggysν wT\0C:6ϣT1bNU #>Uaבtl_?SZ8Љ+߁:Q5EVb2O]yS؊XRQ,Z5_4'sskW,n % }9nWgʫX-[5Z67+2&!6^t Bނ-!jr<7el-,IɅⲄfYF ̅2ZhU`mY&MF׫$jfI{3~$$hֲu, 3{n95 f{zRTh\=^hŲUt%2>iy'W5pY c,tP/ۮv%oWG=rFÁ770D5: ƫ>sW{gꋋv 4L1͆[y-+ -inًUrV^s=s_/ |9q0b&oq@'xzÈU-+kޱNh܏󵰁R(cVbԦ}d~'$ޒ̍osUaL^l< w.i7ͫgGjx|7`0>ht/a?IA85H>tG/ct7CIB #3#Xr&|Xޗ%(󌧉1gZ -AǚAǡRqiO"QC"%3?֤OT_9Q#IU:ٞb#Ip2hL*X)?q z /ƤmfP *)b=Va{lEl~_@{bsq{WO>-oOp_X#;t>-cfEŷ\39hE 9N_00-*(sD@T8I@}m3XPc!q$ :5,4`0t"@H 'DGÙ/gB Gi,XUVw;{2"깟l1Lea]Ys]3֑L{7ΠpAxTi&ɯ#>ke؛y^3V!,M^l`ɷ0RW !{cpz=ONw1oBPK)h PKO- opale/mathtools/FixPoint$1.classuJ@M;UV+xH=qI(=PSFL(oS(lTt`߾^ 0c`,)^As ,2軱}n;!AO$ [Az#ȽeIaw&1P3K&X6Cm׶`RF^",'DȎ{tޥ p%%-ajމ 2e; (hS"_MmNЏ&av@Sm~ އ~eh1|}Pȕ|PK(PKO-opale/mathtools/FixPoint.classuR[OQNwmBER Ҋb qr /+lvK?HV &9ߙ37oǸtp\P 0EB0 Tѩ!@?T /3X~WvSk 陱6MM2͍͌ ;)_ƴMwAu3ҒANZ#7/ꖑ(3T6ni7tu.{_ۅĬ[6BZ,ZQ8h$C~I\i78RV&nq"&VϧKv 0dl(g-q Y"z0zLsI\7ZrL$ǠJֵ֣D5boX‚xR7 5to$nmf)1M[pi^#`eU,+dN,0@?e @l@쀢XCG^&idO8yZ=;`j"~ ?.m;6 )Ŀ@PQJIy$@&ÜīF:Vw)8 h^z= QV^ONx'4KE|򛽗a-ҦYpgD>&.˽}tfbtO "@hi PpJ>XPK[PKO-opale/mathtools/IFnn.class;o>f]vvVv6FF ĜTĒb}kM "nyy Ye9yIY@@;@h PK(aPKO-opale/mathtools/IFn1.class;o>f]vvVv6FF) ĜTĒb}kMFt)Of]. fYb✟ J.a< , 9%%9yũE%y`" aC&} 2Hy@Hjmg`V *e.,KY3˲Z.geaIA-,EYf38` jaf^tPK~CPKO-opale/mathtools/Sort.class;o>f]~. fYb✟ MO-M24<]4]"y@E%00VFĜTĒb`"IJDļt}E&  $ـf]. fYb✟W^Xdh$&d{VUXxj0022c *"X\¢t010l@ fҬZ7Y8@,PKJa7PKO-#opale/mathtools/ParseFunction.classZy|T̛!uؓPԠȐ02$/a`2&U[[kĵnqAP^hRERֵ 0L|s={}O>J= aZg8:$&q8I'$PS/g_,Do|ൂ ~LB+J~ ~7Y"VofoVov{C;K&=o| ~ Kw K݂|sH"a7Ȳ?qǟ ɼ_' r[[Ÿ9Gw<,S_e"? JJ!5}foJ3]y.)XOݷj^6g?%+s1SJĶ?XW=cO緿zIa13n1u_,h]fnmyї.O77($JM"|V=ZI|$o )$ %H|M_o oIw$81FAIEB'&!/<͚!!KK< ' 1@h6Э5gƆ8aU&]H<0[k:r3Q]_%}k9BUU:Դ`Vsc3*0\UMֺ̅yKXPCkXTHDp dW\Blh" 9$๘<(2z(KI18sT1$PsF?Bo W5$od"ѣz\!4VׅU XPW"2Bdv?rF&IC> ::"H}4K;!d.'M449D$?;TIjʵ&8Ƅ*}XƺP-y ᦦzZʙ[q\9'4_6R#21r4.]سjYD9 $_;4Y5GP}\b8Ԇk47ͫox5gMճCr(20nhaCMx\jBM MXQZJr&gjYIL%D9G'o5;Mxuxw/~v/}xrs\抵ՄOƣE i``|E"gFbx{YS*OfWg$u2dNj40^TUUUs4Q6oF:TŨfI79RV>TQH'}pVet*gRAR| cc9JlڛEo4/_Ftk$0[-J댙mn>_:-JFWLuN%pwG#zҤtT+4[X%;ĝ4;cfX !l?IžiYw6< 6{m%m?_  7;'6Om__c߂ƿ?h7Wٸi.ps=6 ~y6ܰ6>}l|0/j6> oXq6>|O/bKl|Or)6>?|~^aOg3m<RǗj(SUX+W a9|2d|W;v1|bҜ$\$tn"% 3fyN K]B[@!>22,`#G#ȕ8Jf8ܘ*q'q_(Ð7HmKc 8(8Io 8,q1DbQ(&1` 4FH,1FJ,5FId%%N6H,7Jb8/ccE3%o$`%V%O4&I<ɘ,qQ&d\LcĐaJeI4%V+%VQUk1aC)F\\#1nm 6Kzjȹ.ě|vg9ڈ)kXͣ]{\mZ6~֘ߴ5S+6ּL/)c07DŴh?[=C8yD(93BKUQnT&"hu;J媇NzSiy>lUͬClɒ{زJRl9aӜ=lh,G>g:zNs{1jUӎ6Pip:zXq=N+\HBg_2lgPL Vt'H-tLf:BW_ETf&l3ue%;{رH]N{Tb%2vI%P3ύ)Գ3^[ɝ=I{agmЁjzsPM7_h]th='w'ݾt{4}:z/ݾvv0b>Gt-(jgLsʊPbT-Y+fbܚJܺ7m9MVJ[TVUVG;o+˷RCn9΀ys<4/).ZR+piˁݫ<+4P *,@{U> 8X! UIy W G*( G+pq +pSx€ 2+pZIzmv  /UiTcǁq s,-ұA\,SKdYdY,k,geY,dYͲe ,O,eY.e.X|0Ǝԭa@uf)kn$hEq5;I2RP}J`pmeÃ%؆A!6JG\1:Zճ>PJ. [>{ 9llp'KwMF;JRJ!:kPq9žλYƫT=v,-f]EP\c8h69X[;{%eR39+2;mQ}D9j =PcHcVvb nZBݞ^Wfç$5.P@y`ڽ]zkwIwvz#[o-#(ڊ*#T5y'}6R 'CRޔw)>u@O^·׋zu>E29קwtͰX^{rOg94̚] W{M+b+km]ٕ9KS#YjdyG7}G1^%/N {Z^54Ҧ'QZFOsKVn3 k!ROZFx JJl!UAecO#[zi m&Mz!n &}h~wۗAґ&,ADHs#FEkC6:*ؿؔ`!)caVw_o+8{ol ^j= uZ3P`u4t43ƬŶEd`}_x`K J:QH4 0<繻vgI?rTVPGBA/jT8Q+ (.ZViXi#+W \!0#ߡ8xSر:an{sHw02 Khn Lpu01%0-4qKfPIt&JX5!>bOCбB{NS7ʕ_4u6Mla"=$a硼0wujǡ_,}긾N?궳q-< ǁӵpw!cǸ 9m+\:N+Z!Vr/^>j^auT&v\T~i&xQΑb-1~<ɭ$4P@]wH=ѕ+.7S};VS'%+R'PV K ) MY#H[=$Qs L<ك\3seLO53R6!hRVi)Hjg6yvƓ}L'O3t ZS55oe{0 <+=8^aAHHȏy? 8!%7cѧtQ>VbïEé(ņ_&Ia1Yc ~iCQPKr_rPKO- opale/mathtools/Polynomial.class}T[OQNw[PZo[ ^" WXv ,Mx I_LDD?C^MfΙo3_@B фq$d SlN8G'bhcp:ٜ+s1]7=*.Rt 'T/jp8zqM_+ 0*ƭIQPlkbB 2#m/VNlqFa5cveƙsHbr|"%J3QG4)֜YbF3b=L+T6isfdV&s~eXjG`@C`}ONLXp2jHCGlz)dʦȱLn.=Yv3ZT0[*nkhFVnSSVe\ׅst 5 =q25cRK)?h(4,SBJ@k󆅚Nаy+z%o_!C1(Y."AepѯG"4BRP'dOhFUBѝ/3ϐ/P*6^kZX"-.x|c-V_Ѱj UhBc %hF=yc(\]ӠIJϲS^J'O)ye%^YN]/!y;o,BM\d$q\h}rG0j_0cs3C6Dm[P#bGEo e }YY9{%m?a;5V_쒠"\PKN'PKO-#opale/mathtools/RectangleRule.classmJ@g4MS?=/BP1 ˶.itv[. ^agvyy{x%LCQ`Cyd0ÈQi4kau-d7CF`A yqkIrVh$Jtdey#ڣNRonbu`-&1S_N괒N(snTgmgn.}lBX`0)o.ȿ@ ˭vic,[Q.[rehte@nH7,HX 0PQz`gݠxq gKMzxZ]PVkl}6*ㆧۆ5<$iWﯶ~PK{wPKO-%opale/mathtools/SpecialFunction.class8 xSUMIZr u^-buJ RqXAfF˾AU 8 ,&(`眛Z;9{^.FUmbVpS/nSEyea1}j?M LHZd$|Z}`gڂUi}r㜦si;O&p Ñ7ظ1?lG+׭uwReʻ/4<_jg͢C~3kZ܋`Y!4}O/%JviC=l]}.ME>5'j.*3ǡqwD3qPWζ=[n߶35%gΧuuژ4C|ݕT'SkU~Ȟv*Kθx' ~bAgu>sޣ*g?uY72E]o.R{UCC96i/d]VtӯEUdIJV *bh3O8NH?򭍸;{˂ZxU1ǸۭV?|*%K_d [fEP=?~D*K^eC#ݱOhmՅPS<ꕖ_ڿpڃZۺ՜B; ogSC/lz*l!JMpdPEGo(pQSV{ #䉗Tvֳw ޴hwn6Pe*or=cdX3o_U-Ye {4syy%{D}vhR%a޶sQEtHTkgݢJ^_tTH^zԶ50|΋Y)w^&Uv>߻2\\F _}mpɀϭH*p}/*GcAESɺn}ʼC˜ٗ2"l쑝v|}Io}CnBawBZwFN}~XO}g=9֧]aIFPy=v/"Wiݡ#_xl_Vy; I3|K>41ZY@5kDC:P7۵:*] K}7 M/i0aNIߎ(jkJ@-ȱ|I{VתЁ}"d $";pr’NJˑq3?qv &м>:^#;whfof3/M'w#?9 _ɞ|ii`c(|.|H+),5 KFUp(Fpu} 8;k@L芴~}u5KiYIœJKm5-7y;(eRar,%Jc]>X7x"W@Fb~y)ALQS#u (B,[>ssj)hC`Rx+H*t$0$6aDEnF\!S/ _CoL !V:_|=CMo -!o ^ !k& !; kw'Ki@$Iz "\/|LQM+בDU&Q׊5Dc%[+X@@PX":'Hkt9R ϱd.OSAy/]4U&+16گ݌ޏz 67ഩCAIr͸!`{;1zŊ*S$'Z@$W، jqOEs:b$n3.6pP9CL0@_gM4Ym% @KZ!h+OVit@A"SCt2Bj<27nYgf#A T݂z+達^d"qVbP {@;2Z#7_&m:fMG}!Wj%dx+*3jXCʪm|V^ @'k'il *ד 8OLLr8V^EZ^pl`Zxi„ֶM "UqYm ZєL4J%GFFiAkeZȓBJAFI8q@yǃf_f7͆b0d)<g9<+ =O*g<f Ɨs"\; _<]tG&2 hy>x|^]:zpWFFa $z-ki38#.iͬJԐ-VҜI|W(z֒b*bkU{BV +;dƢ}G[f%/9 ۜ^T; ,Zkpg-:-νs˹k9w=r[aКd/>pDqx^T^gnvd%=pun*0ܕ ˴ >cE} *=^䪨}6*!LWʵ ׫HWQǼЋ=.)PA;4l^(֡_q\@ej$NNLhqwݼ][(1Ӄ' $+{ uGlLpgW67WB1l*T`o믌6?HctlVJ \1Foy|n:-ÂI"6?' Ppṱn`.h| pQQǏreA++hZ- @ we[0ŅH.ނG[cikZs\[.׎up9g" L)3ՙfE?Ri G9[u8>N*`J.&łM2J0a1bM*'R.>f:>c5Ņ`{ߗݹ=喦qK{;Ө%(%dq~4-^xl?kc)/0ѢY$5-KMuƄNaZݓBQfj)BͣB4m\զ..~-EPE=s9gE0~ⷿ???۟Lyrg$OQ4C9s8x9\ !S />l@ȑ&&[%5PKn9|]EȄ$5 :_K FIO}ժq3@&â3x RNWpa!( tbS#BS LBkۢ*ʁ QmTB/L\C^a w#`AX="'4w6“ o^^>o#]ڰdMjCXzAý͂ iGaռnZ 9EZA3و XU?Wʌ>)h0K g=2\f( Vd@|ljĞd&(~C+Tz7 οUMa& \)ol+?SoA-hW J^uU7^u"[_8b"mBzjޤ,|a%Ta^([!|r(34fxd 2cb1˒YnֳUYtc6hW X3C?@3a°8kぞ+ῖ1aӧz=b-ڻY{,Od"KQ&UZKCFhcq@cmYyÐ\,7F?`ܣp@`1@3kDO"'쓀2)Rz̥r5g!^`|㕂Jxa|BkHsck+'"#׉%_"NG+szRK!T_RKm\?ryοkȑ/7,[8&/6z-$L UE:1EoW^m"3q1(eSɌ6⎣#[N /޴X /|5kH]b e -/W_Zy~;gʿW$^Ji\T$IǛAFPKfg`d&PKO-opale/mathtools/Stat.classu_oPƟXe)MGgPBL$Mمa FkPsjdbୗ/s-=9y~=y[q$f>EuSK)PTɖH@?w(b3 y7k5k/Er9pK/frf|z8K[urO?k׾nO؋ٜ̌=\;󳢴E1;bs+Lqri //!aƒ7ò g3d ։DMdDE DŽueTԾ%DL v.S8Wέmǻps.yy :-Ul6Y%v4k/qhw7P2ew^˺k֙L6$>1)>-|AGVO[+&N!i50#|yad񃔿J~=g{|-mb+i&p˙ KwUϔJC;gOMϩṁEA{I?8PoFZjkThi[v4,\/{\J($=aiFS+6}bd kUwW8M3E>Ǫ Kՠ^Ї~zB| 9]4wD_% ?R}[P=‹(_zv6܅>Io,=)-]/kKZҗF[ĐPFFm*ܐ4˰;'f"-_)-Nh&ܩMXӻscSW,=jֶCuMѴ=G{4SC=5? з8ٶ[h}k8<ȴYMRu߱DbPZG#Dzt'li+cSS,͢"hpb;Dn٤~srm>?D)|H,ڱw;?6^)[=8VqǟS_^|bufӳ:ф8SVX#^FǬ#ۈ9.j;XP[|&2Ԁ5]$ ha؎(-x6N~<7,:w eF66$MFNӮ!Vv=PK{ o&PKO-%opale/matrix/solver/SolverCrout.class}U]SU~ٯZNK) )%UbC[jdI&L0r7\ұӆpqP//x%l(JS3y_9P0X w4%i &2:. ˌYhs6gk& 5baYW-}|cB bYQuqSG },-D?J#6˥Wm.k`AI2 ~#ku_w+^W꒔2;+;{׉Nf*mO3ѢPo[ dWCe|b=qSVJPZblL ic+61nx#6Vqz&>a=[)u\6Da?4R+6žבڧ5 36\ܶҦ"Vl*ϓF\V w81&&Fdž)IrYyn3Dj_on݀H{n5pՅVy"ͭ׽Z!qO͈Ϯa _T?G=/e4ex*F%II$ig }'_=lG="P}hm|5;rkGWkFh7nDl%FC0J-e2nqcז(w@q6R&28n2,i7҃V׉Ҡ,"AKc\#w4LF._hڤXCZ 'Ԙ΍ƍlлԖҤdUV=1Cg0(tMZt6%+(EqQQђ UƣE#n}s1Mz]ih4,șEe "M<.[ =9m- oE>t,\PD;xfBUHP%D"x'Z!>O1 1%*!"F~?wbj.u0pPKaJt"PKO-+opale/matrix/solver/SolverGaussSeidel.class}U[WUNg'.bP@[ےFF dC'3ifBA_ .\^^xAK .}f`hY+{;'?7HcC 0 .xU4*"a\TpICK+\p sSKeFJGM`}b^n;FEcxOAUA!~v2_d缆=gܼ62YXQr-(3X=~kUױ|5. X¬r4X=P>é2 ʋDEV#@1HB-tdH:13 [_nް":A ò /RSfs-7L깓N·?{&tfqŤ;]A LpN⮆;Q<"&(m.]Uen rvr 'D*,DxQa($|òpsBͦq^%l i1qL4p2oB zeezHJ]=gzÐη9K7G*f4oW_?zx~:!#Moa@/H8y/+u)R\.)D6.^XǙ:)Ç'H^Jp6/'cxi&Mr$HPKJI,PKO-&opale/matrix/solver/SolverJacobi.class}TMsT=-ۑ%;MCQ:u8 !m܂KRL(ĊT[Nf0 XɐR~Î@OJ&6ŋ{=Ksǿ>,6c .7"x3x/JWbc p>CX]`gܺ囙Yefixmk37#ps]+/ދ`_iX욱aliIiP]EX=ù#RŶ͆a_k7Mnl.-rI-c]t׶n5[)f]w{K_qzgkM=hS ?a,té%qη8LXħ23 %,˨<: ]ﮬmhX~U2,Ix F(ny{@i2Z,3 9Y;b^t%d-#CW2r~ N0$^2 ZF 0|òoOA&dƵMIæб$Įиoآ{]H{pq͊DkHY%XpvW*lZSg?`| gHՈ`y1}s2D qh3f~pK2Za\dLI'd<3`dq*t:;(}@8N$eF9tqg - "|fSQ) !EwMA&f5"GK!J,RZzX*EbоbPk 鰦䋪PH R!M%iƒFQN2-?<+ANE/FM!?ܡ4s P*T^gJmjd*C{q5Mо}!%"kR90-.x z,ՄA\ju&kVPmll,}CI:4zx-+*1B}/ҡlZxZPK1/>v"PKO-"opale/matrix/solver/SolverLU.classuUsUfdI-&BKåV.Ec4۰4 ɶP08<8yqёoߠ>8 M[RJ;}e7?gЇ;cHdXƈW5H889.姳5 +uoDNnd\q<&-9䲌5tcH;8.?MqzcPCGn!455:Os!;%׮ڵ"'G"u2t+ڄiReHr^*ל[ qhɉZ/yW's|+ӣiYȧb9T5o˖[JO3Dr/#*u1Ͱo]i\KVT4W]i;9;4!өT6ײfoY5 *l_G/H J:G5Y6yr_籸OMܗ䤌 uo&=)gcq'j2:|M6gb.`IGpںff욘o:naA1 mc:q0l]zXC } jQ"ֈVT'W4R “ 9׬ZAu5rl]:FJu6m{-3X]jLx"Bݷyk !K_l|ɶ*CT&0ũ[PI2QIn<1=bU[d8YOA(nRagi!~tRyM < >鶍8hw;b Tĉm=lYT^B>G(=K444'b k_/46DX?lгte@kؚ\['ϾD8iË3 o]zs?.X8OZ)4lDdmƚ(*DlVoz^h8&2 -N,3[/ƘУ]2#?]THW:z[S;JSջC# :꾻pwfbu9m-Y\P[H3,>(q D8||0ZEўdtV+IJ-LB#̈= JeCn&529ָc;V$R!M;Y * "?P\Ķ|A' Ʊ2vz2-A{3zZY+NLR|X0$ < "a dS7`&rpt+H6kbz)g݋+sv8TۿD[Ɯb,!YcVю7f\^ёk` 샞Y6:VT2pox[x xGD/w11)Qx ۉ] c@>0PƇ *v ǯߠ&+d89m[Zp gDHv)//Zh3N:Y'Vg(MQD̰XA)g*F.yey|\'&T IB܆䭒k 3N*es)m5:!e;:a<6U(:ߥ'KkZN}bQVJ N*"ώhęvxL,ofI,6ꮢ INIGm rFkPR:`Hperpj)iVgLf/7ﻋ~7 -)!ޅ Ev8 䰩 )&#ޑaqqo``L;ľm=bzx}]a<"NMMkvdCzW@%>DB_}^7 IIW::г} Wku~̧oە-?/=U_ :|M:"8PB)U0e׸ $CbZCaGuo\[A*-Zxꄘ(.˩^A7ę\ FHLQVFH9MQ2k5GޞL?}z'?` YkTNot1i=-hw|9ՂBlS_,AmӍc@:PT6pxz%Pȑ ᡦcU<=REg*G*M6:PK,XD PKO-opale/matrix/SymSolver.class;o>f]vvVv6FTFO ĜTĒ \_0!QS\KX3A ݤ`E Ye9yIY@@0201# #e, &PK;pPKO-#opale/matrix/SymDecomposition.class;o>f]nvNv.F GgWF(F^ļĜTf `d`KIM-`d/HIM,)ʬ5d\3K2sRK؀v20:HyL l ,@1pPK/PPKO-opale/matrix/SymMatrix.class}UmSU~nv q)^ d4UQ5Xc"T%,H$8n;#Gq:?x(/&=ss^s7O>Z(G>{*喝V1b‡:A &Y_) ?P1bև 23L>S'=̐VؼffTo8TbM!-i¶pd*Y33̣vn^%(XY/8Rn++pԞeeK䌙.'"TlFvX47Ƕ%֔iJ_hj7OXȯ+AyY+ou?Xp29#Ck/h "![xEŒtq.j!!`ٴ[fQU:חxA >Џ <'V`裴Y(g,jd[uŢUwTk`CŦ, g$pL"c9k<#ntt*"*n7m:mlv)F`m$>Lg|KenmQ1~'&c&)LaKTz,X|4}zMxt9=[Fl8@NtnD }xCF ztWI ^upu#\d"':R K 0E.wgUƮRJr^?D8pWhvTdGnS6=F["KZ5'ܜt_tcAy?]=Zt-sh \ 37?Su$WЦK&\WnBHu<7-ACPKoc{$PKO-"opale/matrix/IterativeSolver.class;o>f]~vv^v>F΀ Wg`O?FFF^ļĜT6;A=jצ22:Fxy230002$&eV{%d甥12d%%$'e&02(d@Rfs2p@PKhiPKO-opale/matrix/Solver.class;o>f]vvVv6FTF7 ĜTĒ }_0e()w KM.% bL0"FIJDļt},ZՌ L t PKU3mPKO-opale/matrix/Matrix.classVsUmv aӤPS]*PW` dinV:#_:H2:A3?l&)-2#޻{=w< d>DoxTZŐyyG|8G}FREG~V1(/i^QdXk#Xy (Pq'8Cc^<^ }cmz*%=]$'V ic/0LAB &c%(Z!CpR5>~~&loVa Yϊ:WI@ XՈ =$0aucBNZwE^@p˜-O,hr2 %Ja`'-ěwT .V3W_U{V{DcCli ؗX$ⵚş2_jvequt 7 laS5ED}J J~Ap?7G^ir5'լS{д~>A;Oh ;J]M;)>qYl57֔֔ wA}O ȓQrYng%yE=A (7cP*q"OyyF~ (^tԿQgQ6˵iȷUx7.pD(i ;6'W^z#!#tJ0~8Ldv{p sѫIviR,VWP:1]ˤPKI-D PKO- opale/matrix/Decomposition.class;o>f]nvNv.F GgWF(F^ļĜTfFFF ĜTĒ }_0e "֐_Y X\ d:$9,@cb`c`dcPK/PKO-$opale/matrix/BandDecomposition.class;o>f]nvNv.F GgWF(F^ļĜTfFFF ĜTĒ }ļ_0Z3AC18$3?A +,Q?'1/]?)+5 h+IX4+tPKS^PKO-opale/matrix/BandMatrix.classVoSe{nF[ؗAW/`0wZzk|o0bFEY`~xνk7$?s?BN|FG° 8ݐqĉGdc8ഛhgOq1yuqiL&oI‰$t'84R λG|_B3nda()xC ; җu:礖M {tO#08#y$eZ/b H !ODqd:8/0d䴌ъ\]VדQHF֎%%@pMgJ%)u<3Y*Fb &*x0[Y-s0רL)d@UҘ~xgdi-tE-ѲKJWM2I3Z08spLEyE̪؅*:&f<[ݾ]EdN^RpIe%`qNN[&8lwTWe6<yHd!9Ksȑ ੕g|%*í1a ) K>CQYI.tmJ1 Yw&r{cҒ @@iO,:_2yiF4J"áE^"-@Ps侄<_'|!!]6w /Biv.~ -s; x !}cTe5M~Y^^I1L&.4rq߲KĭenG'x,^:J*x)-cx;zb^|OSһS(C/֧ac"*%Uz7,}ogIC1ܝa&"+`9U癈"Q~%/JrF臘;Ek4v"L,ѿn⟛*ቪA"6 cu9.y'#{%4c| $k[[.%DbW -03υD2<.Ճ:Oh =8"-p?Mzv[)q=IO'?$:;~ *a* %[^)yÒ- 7K-;:Jx֚ePKە PKO-opale/matrix/BandSolver.class;o>f]vvVv6FTF/ ĜTĒ }ļ_0!QS\KX3Aè`-E Ye9yIY@@'0201# #m, &PK4yɈqPKO-$opale/ode/scheme/ExplicitEuler.classmN@c'إ.KK EV eCĎm5cU}Vl&H,or1 ,?g|տ˿0qY$k6#TŜ8C}}jzv1<% sOg:)ıڼ)$^|G֚Cu>Dc1~[Qxm^rxw^Dci̔^ePKzPKO-opale/ode/scheme/Heun.classSMo@};qHJC @t MIAHTT%5Moę#n\8p T@N`qS;Yކ#(o$ɿģ6{WIG0ȧ=x!RŘY渕O0u,\o3a"iSٺ{}QytDjRx,u*;aPK-PKO-)opale/ode/scheme/ImplicitEuler$func.classT]oA=lZhmcEPm Ij(.HW(>Q; I'ٹ3s9s7 +6QBuУzѣ*j;j 7T_ ~EW0!7=ᶏǞ˨Tc(Gݾ JbD %oWR5Eˇ &t 5'Aj9a6x' Ũ{Q$"BxN8 X]qNJ{CGx;y3xa%EaqHAKʑ7\ ߹);_E)o ALC//9Ies#Azb詘EDJj5F#9|՝&䝤cQB29zpnL:5Ѭ@3]9Q~1b}ӀlW>!E9ř)ҧ30S;)4V&k1bJlƕ3^ЍuaPK +v GPKO-&opale/ode/scheme/ImplicitEuler$1.class;o>f]NvvvvFĜTTT}܂Ҝ"CFFϼ"bFIJDļt}F90(MabF6 PK}svPKO-$opale/ode/scheme/ImplicitEuler.classT{wEM6ɦ6EV^i(@4mJ FR[[Q&da_n"QzM{?ÝMsgݹͫ&< bRC  ">OT|*m ᎆ,>g_ "nZݗ]4 VRޗ˜\5< _i G9,VEUw ``6P fǭ3(g3]|enjڑaGdz QmሲU-+aSkE38L d@B*Ԧj "+܋Y[nrWm1./<3f6Vy[[Ḏ">渊k%iT85,c+˸±*5?q`EɱJ4"`8YRnK9rir|GCmEcؘD=ˍtGDm7<#]z$M+Dx-CwR<$,Gb~L'4M带["QuF]kP u[8sJjMhP FD(\;[^ !FxA91~o=oʪҝhy8Ha̻n8hL. DqpXgC) ŵ#N&dbCԢ1h0!ٟF3;$)9&d4zhȗ6JZ-M(H19 1vfWK==617'^n`"&/*'ʴ2C6yH8)wog_cxu{=.d{(pf g ?˟>|YoX$*St:H88K9I4%7qe.PKPKO-opale/ode/scheme/RK.classTn@=;i@M)O'M0QhSҔEDPT&vMX#&E`>̽gs|f?@@ `^yZMhLRSM"Ej2"d\a0HeAn1^f{f0׽ٲ ^2sKT*ZZ ͠M0{2ݦ%H3LGfx^7[IeTƒ;ŲJXUqK2*PQ F|kniۛھ XA%QCKjf]NvvvvFĜTTTԒ`0[Ő3//9'8A +,Q?'1/]?)+5A) @3 HriF[PK\ qPKO-"opale/ode/scheme/ThetaScheme.classSNAv۲E("E.ZR.bKm&`ߦ`MمRO-FIgQh&;gΙ\;s Q![*fc@"Lx'4CŜ܎!(6SƐ=/l"x⑊*0A+;oq!uB-V!]q7:7fU ~F8‹c ٠Xy BS;YgOE[?|urc[S#MfH[e 6֜kdgYTULhHaak;6C(<Դqϑ}yf5 \v0wk \s-Φ,'WSIPNSmWpTLG@<wA2D@ݔ:2#6 vD ?2sIBr)i9D*ɼ,!it=Dl!l|Fp!!W䶃 \T _ C* T{K\fna"%;5Nː&0/PK"_PKO-opale/ode/TimeScheme.class}W |eOdMB))0)G6&TԆ"B&,u3Llw'GKDO""Xh)MhãU޷{l6ɦ{{{{}Ï v)`3nPp6nM n-}-uncV&ocv&w?n=]Lngn&wIw2.&Qp7=L >|Hka8i^}W`Vbe|RA;n!3LLfVpG| `o 1&Ls 62Fp,/("D_I>/+|5oH9Vr$H AgLPHn s+KBB̑ra 휞1;msKB5k쬓3t(X{͍$]97 f_ΨcۙBgbrH' 1J!C;? =;jFI$AIdeݘг)bScvX]H) 97IXk]6awhݥc`rD=Dhe/KtIB(!R駤UBc)Ey'ܿ:Z)%gQ!$;A4>bgQy9ەGԍ=mLOl.}B4.ϗ$L}l+٘HLӣLߡ 㛔ɼ>;-Rae,^m*Vq,·U%;*wU|UTTы>L^V&WUlId'|?PC&OG)&U JvLWOTpfD4je Z!5jZs2عT+<װ9͗^T(3$Vo md{ğTY\KGF̼ԸZ/FkNjxf8Mş&U7<+47zeC?/V.JKf'e\j& d6eA;Xvme z|ֈe5 ualSVњOӃ^%h k;.. 2mtFmΠ(*$4SīzR@³ԲIH u]Rb$ k%zHwv4O#4j+jM>\G:_dugQw<ٞN,%޵;PreY;;I]퉧Uxdy- \B9eL6kN9 {*›R./7ne;@VP_ sh/m$&;0yZ8Lf ~֠9ab)rk92t7_-\L{p|J8FW0W'0 aS})w uzpEX:[_[-@[KY/ Tk}|kk|}O;: KA1 NQV5f5C4~kϤn!)=H|9 %zno!\ds=4A;r!ֲ5q N[q_<zh B´f].. fYb✟ _OJM.wqedIE& @$'30jmg`VPK.BttPKO-opale/ode/Equation.class;o>f]NvvvF\ ZYV`_XQS\bCA"ZXX XTL,@{X4+HPK 1PKO-opale/ode/Problem.classW xVzc9r85 b1$P.Ąc-Ikkcsh҃J!ҺB吴Ҵ >)tfY73oW>hE]$OKp"|JY> >+Xs_"|I~ ]_|7X-;ߑ^we|~y*1DglB$/_k ~+$ eM5U[e]?%S-#+pQ 2 bPCQ%DP OqV\ kD KX+<#X'| 7.`6HHFoR5U{|XWEB+* :? T)8>H ($P0EBVﴫ&2~Fik4G"qيwkJô6 H<ί`M˙4cl#e[~ Ce3bNFH[RNtƖ[IKݸ=@ہQ<XN_#=H]EFȞ^ڰyɊL8F7QFi:JڎN9j 153fZZ\> 2 M(c=EYQev^ mdžcC%ߕ;sUҩN^!NInh实#ցB|}R|֧Qe1}ht}ɛjT{QX95#c͒J{.ֲ8Cu e@'sh7cQtVa6=Գnv4a#lAtINuxN_IU 5cRU\G8y93L-3Ԍ:3L*͵ZWH3@/h`s`*x4$$Ah{qHlPAsK9 ]˛}uf*psh #wam$ BGs#]mۧ>  ,bݍ4NbDE"rl⾣/Xd6row-S&a錝eᨇ&iZ~6 ~Z-;Ȋ)hyr@qN3UHHxzK!Th^ {;:uVM޵ǩ6? gUkQ{lX5v􂰖sxXG 9BݖiL |k7MLky5ShdK]bhM0J%܂`Dp_([X `}G9$wGeRj}.O?=H9{wݥR.5 )A1ܛ7k\Ty_vcz1،j}pվ}=|OiGq_`_>xg o=ܒMw̬fe씈9R/3g9Fԭk 9x(GXrzwn/ _^) if0`;[c%/3_Q\>^rûͫcruq`/,-4~p y $™̺\̃]eKՇ!9X|1 N)l-@qF4?b+& p%}t^NMa.{aNPw=݈ ߂j2Y*PK_ PKO-opale/ode/StepsizeControl.classuN@)*[)1< r3PDj6tThL8<q 堗vlWkpK eU5ueRB!NF3 9)`Et %HP=!|6Ðptoddx'ă-b14;Y3B _yl}Ք9'3HҒE(oYT7 #:0#^Tf|gE-Wź"_PK" PKO-opale/ode/UpdateODE.class;o>f]vvVv6F҂ĒTF1 ĜTT\k0Fap(X+#@VbY~Nb^RVjr ,F&`daZbPKbqPKO-!opale/ode/NoStepsizeControl.classuN1 Dk $:qqC0!1b q8 PȍM\>`ԙ|;F1dO 8m,1/>C._S\ʶh_( V{\SkekWNCҿ( R^o$u7. T~ƲP۝T1)LF=XMa ?2yZy/סF ݫM2lW.{6cM?6`fq{&v1Af> Im_{sH 9ňc )Lъ! ٴ!6Y"sQ-Jq ZL[4PKmXPKO-opale/ode/ODE.classmPNAE|'@${5hqj^0x0x#0j0؈"!d 3H 0 @N``츞… AswuL`ǂ<M`Q׶t,_)ٱl9g>!1찏uVM\ |ְNv=BjanBPÀ,/jxI%q Ry\u(s,w"*JmJԉU1- Ly"W4S9{.:L-Rn, O}n)M ZŴWxwG2Zl7 )j5oZ {=k"4u]v$ě:Q 6E;ʩdb1,gMrHn\vsPK药%oxlfn|Y Nv\hx9+֫⠎C~p,>/_ͤc3bGIzֱ_:^sx6i9% hW;:2g+4;&c{c:^y9as/0~euDtݐ^ml4Hi9Xӊ3G; ՆFgω -{!N䊅EU\s meV؅X1+RY˛eT,E ve||`.S+ ϙ1hP,]-|w$\2R7V+ʵ՝{][rQ;Ie{Ws.Eh21Jv&lӉIc*1mN:Jr:akUǧq7K GQ="+w[=߷Ij.YܹJ ݫw B& ć0Kh:\cr/\/_S:ZS1)beU*nY6c&FI [P\C{lzIb,E4BR=Zj=#oVSۤoYд mMƮk{<ŝj6Mv zJ_FgCi/Ifj}P ^t>_.o"i~XO#d,B %yxyȎxN'רC äʭ^:J:!쉛\1MNJNxP4Oܼ,.#Yk%1h@je_rrΧeCLz~ܵLDW.KcT&;9 %VOޔ pθv8qy֕R W JǠ'eYnddݿg`Uv1!6#$}sRٰ* 4&@VV9̦lRJ}Sm?~oEZ2\\yW/bwհ! QfyUmB^acuwY|G,MW{Ǩg;4ӈj%f㸦!k]"bKeu`iOVY^Ndm-H;dbJx.;z݁E`n)[QYШDz/a2J neQu[l!^PKW3PKO-#opale/ode/StandardStepControl.classuT]oG=8fD`H4&W֔8$B;8 e=ЪTR^* *RyGޱ<̽s?Μ9]Afӯn> :c4O hL٧ ؿ͡/7/xeKL I_ᬁ1|91caRtQMb(긬 C6][%W:3,0|_ڞ[1ca`-l/?KrXkH}08ʝsAQ\08$ĕ[Z.e-eqLպjb:1q %s(nb q"n-u62ݻ" m&n pxiJ@=@blgřkuVtc[;MBѭәEÐ# &Ү)$CFi.@G1{6#!= 7)zRhN#⑜eGtP!+WCK_Q9IopU5c bv_(xWEQwMun2u,?K*&4ᶆ;x_Eehyj`FGc***s̓V>Hd 6Yܶe$m; a{{?Xft\Bct\d0 Tˎ#sot .PX\FݪoxuȖQ|_VYn4;XFkہ!9ԊxSs_UTtH4tV+TB"4o8:X8:Ijp1hxmm4;rҟj4𽂶 Nv0Ў6 ˱k=i l-I6dXds/a|6 wtזbEyhdb|%! q ψ`^#᤹kgcO3f~1shq6(P$dЏ?s+c;4/;G0E(]B_{.N!/}w"!b)^'[|O+KqCܡI|zOlSY|+J0klKo"݌QϯPFkxOL92+;8~swT"IH%i`8PKڷşPKO-opale/Info.classTRGE-k$8' acH \T+ivT#T9HN)S/wIҳUe3t%D`܀Qy$G! &ܵ`>1|f s&|=7/lŠ _j—&| k&a¦ l`ۀv=rS%l@*Fw$&Y>WD3]5ZLts0y"W3CD.'7:R$܊{01!<2/8n1xEZEaߌ֮י$}qC!_m-ԽL[_hv$WX_]E sUmOj0+氡Tk)t:IKFR M!rMWi_C%P [RT< g/HK0uq%[ƮhcjD&\i0R׻ZkL)&zx-3zXhW<^2( VӬ5<;5d]Ul4@R6 W%4CYvѣŸKZǫF5 }6Dh4p vmo ^ ӻe|.ӻ2!UC7['DFw6ۄOesRYɖv73".{t {BLUטrG?^߭ܧ\xZ\XX4`5`(k‚KZt8="_= S) qVG .=d;`Y?Tu*3Y-SYs!CVU5iVP3%(E6OP>yKį07pA{T4@o_q(iCZ?ICkg+o>}xh>_֏!q9l#Da jFm.QZO ~t94n"Ynq31E?4ѿl15Y!QcOÐ}j9b_sQSv#;N9fCPK߉!PK O- AMETA-INF/PKO-C65'META-INF/MANIFEST.MFPK O-Aopale/PK O- Aopale/cst/PK O-Aopale/cst/chemistry/PK O- Aopale/m2d/PK O-AEopale/m2d/component2d/PK O-Ayopale/m2d/marktype/PK O-Aopale/m2d/object2d/PK O- Aopale/tools/PK O- Aopale/swools/PK O-A0opale/mathtools/PK O-A^opale/mathtools/parser/PK O- Aopale/matrix/PK O-Aopale/matrix/solver/PK O- Aopale/ode/PK O-Aopale/ode/scheme/PKO-ks3%Gopale/cst/chemistry/AllElements.classPKO-[znopale/cst/chemistry/Field.classPKO-a=*n!~opale/cst/chemistry/Element.classPKO-FMtopale/cst/dummy.classPKO- x@15opale/m2d/component2d/AffineTransform2DEditor$1.classPKO-1k@25Qopale/m2d/component2d/AffineTransform2DEditor$2.classPKO-e B45opale/m2d/component2d/AffineTransform2DEditor$3.classPKO-lpH;!opale/m2d/component2d/AffineTransform2DEditor$Delegue.classPKO-m\@3J%opale/m2d/component2d/AffineTransform2DEditor.classPKO-=ƭ5(.opale/m2d/component2d/AxesEditor$1.classPKO-5(/0opale/m2d/component2d/AxesEditor$2.classPKO-d7(1opale/m2d/component2d/AxesEditor$3.classPKO-svLd&G3opale/m2d/component2d/AxesEditor.classPKO-&A<opale/m2d/component2d/JFrame2D$1.classPKO-<ۯ&=opale/m2d/component2d/JFrame2D$2.classPKO-I27)&#?opale/m2d/component2d/JFrame2D$3.classPKO-y\8)&@opale/m2d/component2d/JFrame2D$4.classPKO-:HO8)&:Bopale/m2d/component2d/JFrame2D$5.classPKO-K9)&Copale/m2d/component2d/JFrame2D$6.classPKO-l G$SEopale/m2d/component2d/JFrame2D.classPKO-3\&Lopale/m2d/component2d/JPanel2D$1.classPKO-U F $Nopale/m2d/component2d/JPanel2D.classPKO- o5(RVopale/m2d/component2d/AxisEditor$1.classPKO-YU5(Wopale/m2d/component2d/AxisEditor$2.classPKO-x}7(hYopale/m2d/component2d/AxisEditor$3.classPKO-2B8&Zopale/m2d/component2d/AxisEditor.classPKO-%copale/m2d/component2d/Frame2D$1.classPKO--%dopale/m2d/component2d/Frame2D$2.classPKO-x2$6$%^fopale/m2d/component2d/Frame2D$3.classPKO-޺-H6$%gopale/m2d/component2d/Frame2D$4.classPKO-;1H%piopale/m2d/component2d/Frame2D$5.classPKO- 7$%jopale/m2d/component2d/Frame2D$6.classPKO-q%_lopale/m2d/component2d/Frame2D$7.classPKO-"-nopale/m2d/component2d/Frame2D$DrawPanel.classPKO-"?.IF#qopale/m2d/component2d/Frame2D.classPKO-(:?0!xopale/m2d/component2d/DefaultStyleEditor$1.classPKO-"?0yopale/m2d/component2d/DefaultStyleEditor$2.classPKO-iA 0[{opale/m2d/component2d/DefaultStyleEditor$3.classPKO-gA!0|opale/m2d/component2d/DefaultStyleEditor$4.classPKO-U<1 ~.~opale/m2d/component2d/DefaultStyleEditor.classPKO-77)&opale/m2d/component2d/JAxisEditor$1.classPKO-㶹7)opale/m2d/component2d/JAxisEditor$2.classPKO-Ðd:)Bopale/m2d/component2d/JAxisEditor$3.classPKO-QG'Ӑopale/m2d/component2d/JAxisEditor.classPKO-p/opale/m2d/component2d/JFrame2DKeyListener.classPKO-/(opale/m2d/component2d/OIJListBeans.classPKO->15Copale/m2d/component2d/RotationTransformEditor$1.classPKO-~NF>25opale/m2d/component2d/RotationTransformEditor$2.classPKO-s#I@45opale/m2d/component2d/RotationTransformEditor$3.classPKO-M33(opale/m2d/component2d/RotationTransformEditor.classPKO-҄m7)֫opale/m2d/component2d/ScaleEditor$1.classPKO-+r7)dopale/m2d/component2d/ScaleEditor$2.classPKO-g 'opale/m2d/component2d/ScaleEditor.classPKO-]-`8*>opale/m2d/component2d/ScaleEditor2$1.classPKO-y8*κopale/m2d/component2d/ScaleEditor2$2.classPKO-Ҿ w(^opale/m2d/component2d/ScaleEditor2.classPKO-b@-4?opale/m2d/component2d/ScalingTransformEditor$1.classPKO- @.4opale/m2d/component2d/ScalingTransformEditor$2.classPKO-҂B04opale/m2d/component2d/ScalingTransformEditor$3.classPKO-vK2'opale/m2d/component2d/ScalingTransformEditor.classPKO-,@@=8opale/m2d/component2d/TranslationTransformEditor$1.classPKO-О@>8-opale/m2d/component2d/TranslationTransformEditor$2.classPKO-O9A@8opale/m2d/component2d/TranslationTransformEditor$3.classPKO-ÔD6zopale/m2d/component2d/TranslationTransformEditor.classPKO-jk`!opale/m2d/AffineTransform2D.classPKO-Zs opale/m2d/Object2D.classPKO-\ZF ~opale/m2d/OIJ.classPKO-hi opale/m2d/Point2D.classPKO-yAopale/m2d/Transformable.classPKO-Q&Xbopale/m2d/Matrix2D.classPKO-ǐ/opale/m2d/OIJException.classPKO-gmopale/m2d/Pack2D.classPKO-"Oyopale/m2d/GAxis2D.classPKO-%P˾% opale/m2d/GObject2D.classPKO-fu opale/m2d/CoordSystem.classPKO-%opale/m2d/Legend.classPKO-?؄q8opale/m2d/Pen2D.classPKO-űdWopale/m2d/InfoAxis.classPKO-`Ѻ opale/m2d/InfoObject.classPKO-{Gv < '"opale/m2d/DefaultGraphicalOptions.classPKO-Tr'opale/m2d/MarkType.classPKO-n֯w+opale/m2d/GPoint2D.classPKO-m /opale/m2d/GVector2D.classPKO- 5opale/m2d/Vector2D.classPKO-wm;opale/m2d/InfoVector.classPKO-t ?opale/m2d/ILegend.classPKO-r&?opale/m2d/ImpossibleAddException.classPKO-'"@opale/m2d/InfoPoint.classPKO-p.4mCopale/m2d/LinLinCS.classPKO-^'$Gopale/m2d/marktype/CirclePoint.classPKO-o %Hopale/m2d/marktype/ClassicPoint.classPKO-5UW)%Iopale/m2d/marktype/DiamondPoint.classPKO-(ÂS Kopale/m2d/marktype/HLine.classPKO-Lopale/m2d/marktype/HVLine.classPKO-D4'$,Mopale/m2d/marktype/SquarePoint.classPKO-.%]Nopale/m2d/marktype/TriangleDown.classPKO-\.%Oopale/m2d/marktype/TriangleLeft.classPKO-|L0&Popale/m2d/marktype/TriangleRight.classPKO-v*#Qopale/m2d/marktype/TriangleUp.classPKO-Ц=%Sopale/m2d/marktype/VLine.classPKO-10Topale/m2d/marktype/XPoint.classPKO-l@3 VUopale/m2d/object2d/Conic.classPKO-7+ oZopale/m2d/object2d/Data2D.classPKO-hk Veopale/m2d/object2d/Line2D.classPKO-@d&nopale/m2d/object2d/LineException.classPKO-3`f!oopale/m2d/object2d/FPolar$1.classPKO-8f!(qopale/m2d/object2d/FPolar$2.classPKO-0b!qropale/m2d/object2d/FPolar$3.classPKO-W#sopale/m2d/object2d/FPolar.classPKO-]-|opale/m2d/object2d/GConic.classPKO-k* ,opale/m2d/object2d/GData2D.classPKO-Ml0 opale/m2d/object2d/GFPolar.classPKO-a opale/m2d/object2d/GLine2D.classPKO-!opale/m2d/object2d/InfoLine.classPKO-%a&opale/m2d/object2d/GxyFt.classPKO-Q75opale/m2d/object2d/xyFt$1.classPKO-opale/m2d/object2d/xyFt$2.classPKO-ƽʘopale/m2d/object2d/xyFt.classPKO-uM!_: Ҡopale/m2d/object2d/GyFx.classPKO-_]opale/m2d/object2d/yFx$1.classPKO-ߪ]Xopale/m2d/object2d/yFx$2.classPKO-OJPopale/m2d/object2d/yFx$3.classPKO-·opale/m2d/object2d/yFx.classPKO-ug!opale/m2d/object2d/InfoData.classPKO-sopale/tools/OpaleObject.classPKO-P;opale/tools/OpaleSet$1.classPKO-/" opale/tools/OpaleSet.classPKO-ag(Lopale/tools/InvalidFormatException.classPKO-&!0Popale/tools/StreamReader.classPKO-F.;opale/tools/WFile.classPKO-BV=opale/tools/Assert.classPKO-lޙopale/tools/Chronometer.classPKO-dnH vopale/tools/Debug.classPKO-Nopale/tools/Field.classPKO-ݒ칱$opale/tools/InvalidIdException.classPKO-ٰV(opale/tools/MalformedFileException.classPKO-B\ݍ'opale/tools/ORunTest.classPKO-;~^opale/tools/ListOfTest.classPKO-Kf&opale/tools/OTCG.classPKO-/popale/tools/OTest.classPKO-5UMopale/tools/RFile.classPKO-Դn Ropale/tools/Stdio.classPKO-5topale/tools/name_object.rscPKO-(A$Kopale/swools/MathExprTextField.classPKO-}e`"opale/swools/DoubleTextField.classPKO-,7l%!opale/swools/DoubleTextDocument.classPKO-, \Yg"h opale/swools/IntTextDocument.classPKO-`V opale/swools/IntTextField.classPKO-V% opale/swools/OGBLayoutUtilities.classPKO-R{G_"#opale/mathtools/parser/Parser.classPKO-5}%opale/mathtools/parser/Operator.classPKO-Q#!opale/mathtools/parser/TypeOp.classPKO--ig""opale/mathtools/parser/PNode.classPKO-dг*&opale/mathtools/parser/UnaryFunction.classPKO-ʱi 'opale/mathtools/parser/Cst.classPKO-E= (opale/mathtools/parser/Sin.classPKO-/8o5= 1*opale/mathtools/parser/Cos.classPKO-`(< +opale/mathtools/parser/Tan.classPKO-^y3 F-opale/mathtools/parser/Log.classPKO-M"w.opale/mathtools/parser/Log10.classPKO-03 /opale/mathtools/parser/Exp.classPKO-5!0opale/mathtools/parser/Sqrt.classPKO-+ao3 2opale/mathtools/parser/Abs.classPKO-vOB\@!Q3opale/mathtools/parser/Acos.classPKO-š0@!4opale/mathtools/parser/Asin.classPKO-@!o6opale/mathtools/parser/Atan.classPKO-C 7opale/mathtools/parser/Rnd.classPKO-BK? :9opale/mathtools/parser/Rad.classPKO-u? r:opale/mathtools/parser/Deg.classPKO-3;opale/mathtools/parser/ParseFunctionException.classPKO-DGW|+<opale/mathtools/parser/SUnaryFunction.classPKO-Ecb'%>opale/mathtools/parser/Variable.classPKO-ֆY]N@opale/mathtools/IyFx.classPKO-DTah@opale/mathtools/IxyFt.classPKO-'^(Aopale/mathtools/AnalyticalFunction.classPKO-ӫ7HEopale/mathtools/Bernstein.classPKO-sGopale/mathtools/Bisection.classPKO-7]&8"RIopale/mathtools/RootFinder1D.classPKO-W<  Jopale/mathtools/DArray.classPKO-8 Qopale/mathtools/DVect.classPKO-)h Vopale/mathtools/DComplex.classPKO-( (\opale/mathtools/FixPoint$1.classPKO-[]opale/mathtools/FixPoint.classPKO-(a`opale/mathtools/IFnn.classPKO-7s5`s2aopale/mathtools/IFn1.classPKO-~C#aopale/mathtools/InsertionSort.classPKO-:a,bopale/mathtools/Sort.classPKO-Ja7%dopale/mathtools/IntegrationRule.classPKO-Dm'#eopale/mathtools/ParseFunction.classPKO-\ wopale/mathtools/ScanString.classPKO-r_r|opale/mathtools/Node.classPKO-N' opale/mathtools/Polynomial.classPKO-{w#"opale/mathtools/RectangleRule.classPKO-fg`d&%opale/mathtools/SpecialFunction.classPKO-Q[oKԜopale/mathtools/Stat.classPKO-S&8%gopale/mathtools/TrapezoidalRule.classPKO-{ o&(opale/matrix/solver/SolverCholesky.classPKO-aJt"%ާopale/matrix/solver/SolverCrout.classPKO-JI,+5opale/matrix/solver/SolverGaussSeidel.classPKO-1/>v"&opale/matrix/solver/SolverJacobi.classPKO-~j " opale/matrix/solver/SolverLU.classPKO-,XD &eopale/matrix/solver/SolverLUBand.classPKO-;popale/matrix/SymSolver.classPKO-/P#opale/matrix/SymDecomposition.classPKO-oc{$opale/matrix/SymMatrix.classPKO-hi"copale/matrix/IterativeSolver.classPKO-U3m]opale/matrix/Solver.classPKO-I-D opale/matrix/Matrix.classPKO-/ opale/matrix/Decomposition.classPKO-S^$opale/matrix/BandDecomposition.classPKO-ە opale/matrix/BandMatrix.classPKO-4yɈqopale/matrix/BandSolver.classPKO-z$]opale/ode/scheme/ExplicitEuler.classPKO--Oopale/ode/scheme/Heun.classPKO- +v G)opale/ode/scheme/ImplicitEuler$func.classPKO-}sv& opale/ode/scheme/ImplicitEuler$1.classPKO-$opale/ode/scheme/ImplicitEuler.classPKO-[2 opale/ode/scheme/RK.classPKO-Fbd''opale/ode/scheme/ThetaScheme$func.classPKO-\ q$opale/ode/scheme/ThetaScheme$1.classPKO-"_"opale/ode/scheme/ThetaScheme.classPKO-a|XLRopale/ode/TimeScheme.classPKO-.Bttopale/ode/ObjectODE.classPKO- 1opale/ode/Equation.classPKO-_ ropale/ode/Problem.classPKO-" Bopale/ode/StepsizeControl.classPKO-bqopale/ode/UpdateODE.classPKO-mX!(opale/ode/NoStepsizeControl.classPKO-TNopale/ode/ODE.classPKO-W3sopale/ode/SEquation.classPKO-*R# opale/ode/StandardStepControl.classPKO-ڷşopale/ode/StepControl1.classPKO-߉!opale/Info.classPK MOpaleV1b8/tests/m2d/frame2d/description.txt100644 0 0 204 7553047147 16106 0ustar 0 0 Ce cas test montre la mise en oeuvre de la class Frame2D qui simplifie la cration d'une fenetre graphique contenant des objets 2d. OpaleV1b8/tests/m2d/frame2d/essai.txt100644 0 0 701 7553047150 14663 0ustar 0 0 OIJ rep1 { O 0.0 0.0 I 2.0 0.0 J 1.0 -2.0 } Point pt { OIJ rep1 X 4.5 Y 0 INFO { NAME d COLOR 255 0 0 } } f(x) f { OIJ rep1 f(x)= '2*x*x' Xinf -10 Xsup 10 INFO { COLOR 100 100 100 } } r(t) r { OIJ rep1 r(t)= 't^2' Tmin 0 Tmax 10 INFO { COLOR 100 100 100 MARK_TYPE XPoint { SIZE 5 } } } Line d { OIJ rep1 a 1 b 2 c 4 INFO { VISIBLE YES COLOR 200 255 0 } } Vector vecteur1 { INFO { COLOR 0 255 0 NAME d SIZE 10 } X 4.5 Y 5.0 OIJ rep1 } OpaleV1b8/tests/m2d/frame2d/frame2d.java100644 0 0 3556 7553047150 15234 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.m2d.*; import opale.m2d.object2d.*; import opale.m2d.component2d.*; import opale.tools.*; import java.awt.*; import java.awt.event.*; public class frame2d extends Frame2D { public frame2d() { try { StreamReader f= new StreamReader("essai.txt"); getPack2D().read(f); getPack2D().legend().setLocation(200,50); getPack2D().legend().setVisible(true); getCS().setOIJ((OIJ) getPack2D().getObject("rep1")); GAxis2D axes = getAxis(); axes.drawLabel(false); ((InfoAxis) axes.getInfo()).setTick(0,1,0,1); } catch ( java.io.IOException e) { System.out.println(e); System.exit(-1); } catch (InvalidFormatException e) { System.out.println(e); System.exit(-1); } } public static void main(String[] arg) { frame2d t = new frame2d(); t.show(); } } OpaleV1b8/tests/m2d/pack2d/essai.txt100644 0 0 1203 7553047147 14533 0ustar 0 0 OIJ rep1 { O 0.0 0.0 I 1.0 1.0 J 0.0 1.0 } Point pt { OIJ rep1 X 4.5 Y 0 INFO { NAME d COLOR 255 0 0 } } f(x) f { OIJ rep1 f(x)= '2*x*x-4' Xinf 0 Xsup 10 INFO { COLOR 100 100 100 MARK_TYPE DiamondPoint { SIZE 5 } } } Data nuage { OIJ rep1 N 7 Points 0 0 1 1 0 3 1 4 4 2 -5 8 -3 -4 INFO { COLOR 200 0 0 } } Data nuage1 { OIJ rep1 N 7 Points 0 2 1 0 1 -4 -3 4 4 1 5 8 3 -4 INFO { COLOR 100 100 100 } } Line d { OIJ rep1 a 1 b 2 c 4 INFO { VISIBLE YES COLOR 200 255 0 } } Vector vecteur1 { INFO { COLOR 0 255 0 NAME d SIZE 10 } X 4.5 Y 5.0 OIJ rep1 } Conic parabole { INFO { COLOR 100 200 255 } e 1 p 2 theta0 0 OIJ rep1 } OpaleV1b8/tests/m2d/pack2d/pack2d.java100644 0 0 4407 7553047150 14700 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.m2d.*; import opale.m2d.object2d.*; import opale.tools.*; import java.awt.*; import java.awt.event.*; public class pack2d extends Frame { OIJ repere; LinLinCS vue; GAxis2D axes; Pack2D pack; public pack2d() { setSize(400,400); pack = new Pack2D(); try { StreamReader f= new StreamReader("essai.txt"); pack.read(f); pack.legend().setLocation(200,50); pack.legend().setVisible(true); repere = (OIJ) pack.getObject("rep1"); vue = new LinLinCS(repere,25,25,350,350); axes = new GAxis2D(vue); axes.drawLabel(false); ((InfoAxis) axes.getInfo()).setTick(0,1,0,1); } catch ( java.io.IOException e) { System.out.println(e); System.exit(-1); } catch (InvalidFormatException e) { System.out.println(e); System.exit(-1); } addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent e) { vue.setSize(25,25,getWidth()-50,getHeight()-50); vue.normadjust(); repaint(); } }); } public void paint(Graphics g) { Pen2D c = new Pen2D(g,vue); axes.draw(c); c.clip(); pack.draw(c); } public static void main(String[] arg) { pack2d t = new pack2d(); t.show(); } } OpaleV1b8/tests/m2d/pack2d/description.txt100644 0 0 212 7553047150 15723 0ustar 0 0 Ce cas test lit un fichier de donns qui comporte un point, vecteur, une droite et un nuage de points; puis dessine ces objets l'ecran. OpaleV1b8/tests/m2d/regression/regression.java100644 0 0 4657 7553047147 16745 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.m2d.*; import opale.m2d.object2d.*; import opale.tools.*; import java.awt.*; import java.awt.event.*; public class regression extends Frame { OIJ repere; LinLinCS vue; GAxis2D axes; GData2D data; GLine2D regressionlin; public regression() { setSize(400,400); repere = new OIJ(); vue = new LinLinCS(repere,25,25,350,350); axes = new GAxis2D(vue); ((InfoAxis) axes.getInfo()).setTick(0,1,0,1); try { StreamReader fichier = new StreamReader("data.txt"); data = new GData2D(repere); data.readData(fichier); data.getInfo().setColor(Color.red); } catch (java.io.IOException e) { System.out.println(e); System.exit(-1); } catch (InvalidFormatException e) { System.out.println(e); System.exit(-1); } regressionlin =new GLine2D(data.regLinear()); regressionlin.getInfo().setColor(Color.blue); System.out.println("Doite de regression : "+regressionlin); addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent e) { vue.setSize(25,25,getWidth()-50,getHeight()-50); vue.normadjust(); repaint(); } }); } public void paint(Graphics g) { Pen2D c = new Pen2D(g,vue); axes.draw(c); data.draw(c); regressionlin.draw(c); } public static void main(String[] arg) { regression t = new regression(); t.show(); } } OpaleV1b8/tests/m2d/regression/data.txt100644 0 0 54 7553047150 15311 0ustar 0 0 0 0 1 1.2 2 1.9 3 3.4 4 4.3 5 4.7 6 7 7 5 OpaleV1b8/tests/m2d/regression/description.txt100644 0 0 176 7553047150 16750 0ustar 0 0 Ce test dessine un nuage de points partir d'un fichier de donnes numriques : data.txt et effectue une rgression linaire OpaleV1b8/tests/m2d/pointvect/pointvect.java100644 0 0 5620 7553047147 16422 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.m2d.*; import opale.m2d.object2d.*; import opale.m2d.marktype.*; import java.awt.*; import java.awt.event.*; public class pointvect extends Frame { OIJ repere; LinLinCS vue; GAxis2D axes; GPoint2D[] tabPoint; GVector2D[] tabVect; public pointvect() { setSize(400,400); repere = new OIJ(); vue = new LinLinCS(repere,25,25,350,350); axes = new GAxis2D(vue); ((InfoAxis) axes.getInfo()).setTick(0,1,0,1); tabPoint = new GPoint2D[10]; tabVect = new GVector2D[5]; int i; DefaultGraphicalOptions infopt; InfoVector infovct; Color color; for (i=0;i<10;i++) { tabPoint[i] = new GPoint2D(repere,-10+Math.random()*15,-10+Math.random()*15); DiamondPoint dp = new DiamondPoint(); dp.setMarksize(10); infopt = (DefaultGraphicalOptions) tabPoint[i].getInfo(); infopt.setMarktype(dp); color= new Color((int) (Math.random()*200),(int) (Math.random()*200),(int) (Math.random()*200)); infopt.setColor(color); } for (i=0;i<5;i++) { tabVect[i] = new GVector2D(repere,-10+Math.random()*15,-10+Math.random()*15); infovct = (InfoVector) tabVect[i].getInfo(); infovct.setSymbol((int) (Math.random()*9)); infovct.setSize(20); color= new Color((int) (Math.random()*200),(int) (Math.random()*200),(int) (Math.random()*200)); infovct.setColor(color); } addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent e) { vue.setSize(25,25,getWidth()-50,getHeight()-50); vue.normadjust(); repaint(); } }); } public void paint(Graphics g) { int i; Pen2D c = new Pen2D(g,vue); axes.draw(c); for (i=0;i<10;i++) { tabPoint[i].draw(c); } for (i=0;i<5;i++) { tabVect[i].draw(c); } } public static void main(String[] arg) { pointvect t = new pointvect(); t.show(); } } OpaleV1b8/tests/m2d/pointvect/description.txt100644 0 0 223 7553047150 16574 0ustar 0 0 Ce cas test consiste dessiner dans un repre orthonorm une srie de points et de vecteurs de couleur et de formes difrentes tires au hasard. OpaleV1b8/tests/m2d/fonction/description.txt100644 0 0 114 7553047150 16377 0ustar 0 0 Ce cas test trace les deux fonctions suivantes f(x) = sin(x) et f(x) = x-x OpaleV1b8/tests/m2d/fonction/fonction.java100644 0 0 5317 7553047150 16027 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.m2d.*; import opale.m2d.object2d.*; import opale.mathtools.*; import java.awt.*; import java.awt.event.*; public class fonction extends Frame { OIJ repere; LinLinCS vue; GAxis2D axes; GyFx sin,x3; //deux fonctions y=f(x) GData2D xy ; //une fonction paramtrique //Gexp exp ; //une fonction exponentielle public fonction() { setSize(400,400); repere = new OIJ(); vue = new LinLinCS(repere,25,25,350,350); axes = new GAxis2D(vue); axes.drawLabel(false); axes.drawScale(false); ((InfoAxis) axes.getInfo()).setTick(0,1,0,1); sin = new GyFx(repere); sin.set(new IyFx() { public double val(double x) {return Math.sin(x);}},"sin(x)",-5,5,100); sin.getInfo().setColor(Color.red); x3 = new GyFx(repere); x3.set(new IyFx() { public double val(double x) {return x*x*x-x;}},"x*x*x-x",-5,5,100); x3.getInfo().setColor(Color.blue); xy = new GData2D(repere); xy.set(new opale.mathtools.IxyFt() { public double x(double t) { return 7*Math.sin(t);}; public double y(double t) { return 7*Math.cos(3*t);} } ,-9,9,100); //exp = new Gexp(repere,0.1,-1,-5); //exp.set(-10,4,100); //exp.getInfo().setColor(Color.green); addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent e) { vue.setSize(25,25,getWidth()-50,getHeight()-50); vue.autoadjust(); repaint(); } }); } public void paint(Graphics g) { Pen2D c = new Pen2D(g,vue); c.clip(); axes.draw(c); sin.draw(c); x3.draw(c); xy.draw(c); //exp.draw(c); } public static void main(String[] arg) { fonction t = new fonction(); t.show(); } } OpaleV1b8/tests/m2d/transform/data.txt100644 0 0 26 7553047150 15143 0ustar 0 0 3 0 0 3 -3 0 0 -3 3 0 OpaleV1b8/tests/m2d/transform/transform.java100644 0 0 5262 7553047150 16416 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.m2d.*; import opale.m2d.object2d.*; import opale.m2d.component2d.*; import opale.m2d.marktype.*; import opale.mathtools.*; import opale.tools.*; import java.awt.*; import java.awt.event.*; public class transform extends JFrame2D { GPoint2D p,pp; GVector2D v,vv; GData2D data, datat; public transform() { OIJ repere = new OIJ(); getAxis().drawScale(false); getCS().setOIJ(repere); try { StreamReader fichier = new StreamReader("data.txt"); data = new GData2D(repere); data.readData(fichier); data.getInfo().setColor(Color.red); } catch (java.io.IOException e) { System.out.println(e); System.exit(-1); } catch (InvalidFormatException e) { System.out.println(e); System.exit(-1); } p = new GPoint2D(repere,2,2); DefaultGraphicalOptions info = (DefaultGraphicalOptions) p.getInfo(); info.setColor(Color.red); DiamondPoint dp = new DiamondPoint(); dp.setMarksize(5); info.setMarktype(dp); v = new GVector2D(repere,-3,6); vv = new GVector2D(v); datat = new GData2D(data); AffineTransform2D t = new AffineTransform2D(); t.rotate(Math.PI,0,0); // one rotation t.translate(3,-2); // one translation t.scale(1.5,0.5); // one scaling pp = new GPoint2D(p); pp.transform(t); vv.transform(t); datat.transform(t); getPack2D().add(repere,"repere"); getPack2D().add(p,"point"); getPack2D().add(pp,"point_t"); getPack2D().add(v,"vect"); getPack2D().add(vv,"vect_t"); getPack2D().add(data,"data"); getPack2D().add(datat,"datat"); } public static void main(String[] arg) { transform t = new transform(); t.show(); } } OpaleV1b8/tests/m2d/transform/documentation.txt100644 0 0 106 7553047150 17122 0ustar 0 0 This example shows the affine transformation of a point and a vector. OpaleV1b8/tests/m2d/marktype/marktype.java100644 0 0 5034 7553047150 16055 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.*; import opale.m2d.*; import opale.m2d.object2d.*; import opale.tools.*; import java.awt.*; import java.awt.event.*; public class marktype extends Frame { OIJ repere; LinLinCS vue; GAxis2D axes; Pack2D pack; public marktype() { setSize(600,400); pack = new Pack2D(); try { StreamReader f= new StreamReader("essai.txt"); pack.read(f); pack.legend().setLocation(200,50); pack.legend().setVisible(true); repere = (OIJ) pack.getObject("rep1"); vue = new LinLinCS(repere,25,25,550,350); axes = new GAxis2D(vue); axes.drawLabel(false); ((InfoAxis) axes.getInfo()).setTick(0,1,0,1); } catch ( java.io.IOException e) { System.out.println(e); System.exit(-1); } catch (InvalidFormatException e) { System.out.println(e); System.exit(-1); } try { WFile f= new WFile("wf.txt"); pack.write(f); f.close(); } catch ( java.io.IOException e) { System.out.println(e); System.exit(-1); } catch (InvalidFormatException e) { System.out.println(e); System.exit(-1); } addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent e) { vue.setSize(25,25,getWidth()-50,getHeight()-50); vue.normadjust(); repaint(); } }); } public void paint(Graphics g) { Pen2D c = new Pen2D(g,vue); axes.draw(c); c.clip(); pack.draw(c); } public static void main(String[] arg) { marktype t = new marktype(); t.show(); } } OpaleV1b8/tests/m2d/marktype/essai.txt100644 0 0 1020 7553047150 15212 0ustar 0 0 OIJ rep1 { OIJ OIJ_ABSOLUTE O 0.0 0.0 I 1.0 1.0 J 0.0 1.0 } TriangleUp cp { SIZE 8 } Data nuage { OIJ rep1 INFO { NAME Sans_nom COLOR 200 0 0 MARK_TYPE HVLine { SIZE 5 } } N 7 Points 0.0 0.0 1.0 1.0 0.0 3.0 1.0 4.0 4.0 2.0 -5.0 8.0 -3.0 -4.0 } Point pt { OIJ rep1 INFO { NAME d COLOR 255 200 0 MARK_TYPE XPoint { SIZE 10 } } X 4.5 Y 0.0 } Data nuage1 { OIJ rep1 INFO { NAME Sans_nom COLOR 100 100 100 MARK_TYPE DiamondPoint { SIZE 5 } } N 7 Points 0.0 2.0 1.0 0.0 1.0 -4.0 -3.0 4.0 4.0 1.0 5.0 8.0 3.0 -4.0 } OpaleV1b8/tests/m2d/marktype/wf.txt100644 0 0 1020 7553047150 14522 0ustar 0 0 OIJ rep1 { OIJ OIJ_ABSOLUTE O 0.0 0.0 I 1.0 1.0 J 0.0 1.0 } TriangleUp cp { SIZE 8 } Data nuage { OIJ rep1 INFO { NAME Sans_nom COLOR 200 0 0 MARK_TYPE HVLine { SIZE 5 } } N 7 Points 0.0 0.0 1.0 1.0 0.0 3.0 1.0 4.0 4.0 2.0 -5.0 8.0 -3.0 -4.0 } Point pt { OIJ rep1 INFO { NAME d COLOR 255 200 0 MARK_TYPE XPoint { SIZE 10 } } X 4.5 Y 0.0 } Data nuage1 { OIJ rep1 INFO { NAME Sans_nom COLOR 100 100 100 MARK_TYPE DiamondPoint { SIZE 5 } } N 7 Points 0.0 2.0 1.0 0.0 1.0 -4.0 -3.0 4.0 4.0 1.0 5.0 8.0 3.0 -4.0 } OpaleV1b8/tests/m2d/polarf/polarf.java100644 0 0 3644 7553047150 15140 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.m2d.*; import opale.m2d.object2d.*; import opale.m2d.component2d.*; import opale.mathtools.*; import java.awt.*; import java.awt.event.*; public class polarf extends JFrame2D { GFPolar card,bidon; public polarf() { OIJ repere = new OIJ(); getAxis().drawScale(false); card = new GFPolar(repere); card.set(new IyFx() { public double val(double x) {return 1+Math.cos(x);}},"1+cos(t)"); card.getInfo().setColor(Color.red); bidon = new GFPolar(repere); bidon.set(new IyFx() { public double val(double x) {return Math.log(1-Math.sin(x));}},"ln(1-sin(x)",-1.57,1.57,200); bidon.getInfo().setColor(Color.blue); getPack2D().add(repere,"repere"); getPack2D().add(card,"cardioide"); getPack2D().add(bidon,"bidon"); } public static void main(String[] arg) { polarf t = new polarf(); t.show(); } } OpaleV1b8/tests/m2d/polarf/description.txt100644 0 0 166 7553047150 16052 0ustar 0 0 Ce cas test trace une cardioide d'equation polaire r(theta) = 1+cos(theta) et la courbe d'equation r(t)=ln(1-sin(t)). OpaleV1b8/tests/m2d/data2d/data2d.java100644 0 0 4310 7553047150 14657 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.m2d.*; import opale.m2d.object2d.*; import opale.tools.*; import java.awt.*; import java.awt.event.*; public class data2d extends Frame { OIJ repere; LinLinCS vue; GAxis2D axes; GData2D data; public data2d() { setSize(400,400); repere = new OIJ(); vue = new LinLinCS(repere,25,25,350,350); axes = new GAxis2D(vue); ((InfoAxis) axes.getInfo()).setTick(0,1,0,1); try { StreamReader fichier = new StreamReader("data.txt"); data = new GData2D(repere); data.readData(fichier); data.getInfo().setColor(Color.red); } catch (java.io.IOException e) { System.out.println(e); System.exit(-1); } catch (InvalidFormatException e) { System.out.println(e); System.exit(-1); } addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent e) { vue.setSize(25,25,getWidth()-50,getHeight()-50); vue.normadjust(); repaint(); } }); } public void paint(Graphics g) { Pen2D c = new Pen2D(g,vue); axes.draw(c); data.draw(c); } public static void main(String[] arg) { data2d t = new data2d(); t.show(); } } OpaleV1b8/tests/m2d/data2d/data.txt100644 0 0 107 7553047150 14307 0ustar 0 0 -8 7 -7 4 -6 2 -5 2 -2 0 -1 -3 -0.5 -0.5 0 1 4 -1 5 2 7 3 8 4 9 4.5 OpaleV1b8/tests/m2d/data2d/description.txt100644 0 0 132 7553047150 15717 0ustar 0 0 Ce test dessine un nuage de points partir d'un fichier de donnes numriques : data.txt OpaleV1b8/tests/m2d/line/description.txt100644 0 0 144 7553047150 15512 0ustar 0 0 Ce cas test trace 3 droites dont deux sont parallles et l'autre erpendiculaire aux deux premires. OpaleV1b8/tests/m2d/line/line.java100644 0 0 5676 7553047150 14257 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.m2d.*; import opale.m2d.object2d.*; import java.awt.*; import java.awt.event.*; public class line extends Frame { OIJ repere; LinLinCS vue; GAxis2D axes; GLine2D line1,line2,line3; public line() { setSize(400,400); repere = new OIJ(); vue = new LinLinCS(repere,25,25,350,350); axes = new GAxis2D(vue); ((InfoAxis) axes.getInfo()).setTick(0,1,0,1); try { line1 = new GLine2D(repere,1,1,1); //x+y1=0 line2 = new GLine2D(repere,1,-1,0); //x=y line3 = new GLine2D(repere,1,-1,6); //x=y } catch (LineException e) { System.out.println (e); // ne devrait jamais arriver. } line1.getInfo().setColor(Color.blue); line2.getInfo().setColor(Color.red); line3.getInfo().setColor(Color.yellow); addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent e) { vue.setSize(25,25,getWidth()-50,getHeight()-50); vue.normadjust(); repaint(); } }); System.out.println("Droite bleue : "+line1); System.out.println("Droite rouge : "+line2); System.out.println("Droite jaune : "+line3); System.out.println(); System.out.println("Droite bleue et rouge parallles : "+line1.isParall(line2)); System.out.println("Droite bleue et jaune parallles : "+line1.isParall(line3)); System.out.println("Droite rouge et jaune parallles : "+line2.isParall(line3)); System.out.println(); System.out.println("Droite bleue et rouge orthogonales : "+line1.isOrtho(line2)); System.out.println("Droite bleue et jaune orthogonales : "+line1.isOrtho(line3)); System.out.println("Droite rouge et jaune orthogonales : "+line2.isOrtho(line3)); } public void paint(Graphics g) { Pen2D c = new Pen2D(g,vue); axes.draw(c); line1.draw(c); line2.draw(c); line3.draw(c); } public static void main(String[] arg) { line t = new line(); t.show(); } } OpaleV1b8/tests/m2d/conic/conic.java100644 0 0 3454 7553047150 14557 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.m2d.*; import opale.m2d.object2d.*; import opale.m2d.component2d.*; import opale.mathtools.*; import java.awt.*; import java.awt.event.*; public class conic extends JFrame2D { GConic ellipse,parabole; public conic() { OIJ repere = new OIJ(); getAxis().drawScale(false); ellipse = new GConic(repere); ellipse.getInfo().setColor(Color.red); ellipse.setParams(0.9,1,0.78); parabole = new GConic(repere); parabole.getInfo().setColor(Color.blue); parabole.setParams(1,1,-Math.PI/4); getPack2D().add(repere,"repere"); getPack2D().add(ellipse,"ellipse"); getPack2D().add(parabole,"parabole"); } public static void main(String[] arg) { conic t = new conic(); t.show(); } } OpaleV1b8/tests/m2d/conic/description.txt100644 0 0 166 7553047150 15662 0ustar 0 0 Ce cas test trace une cardioide d'equation polaire r(theta) = 1+cos(theta) et la courbe d'equation r(t)=ln(1-sin(t)). OpaleV1b8/tests/m2d/Transform2D/Transform2D.java100644 0 0 6470 7553047150 16674 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.m2d.*; import opale.m2d.object2d.*; import opale.m2d.component2d.*; import opale.m2d.marktype.*; import opale.mathtools.*; import opale.tools.*; import java.awt.*; import java.awt.event.*; public class Transform2D extends JFrame2D { GPoint2D p,pp,p2,pp2; public Transform2D() throws opale.m2d.OIJException { OIJ repere = new OIJ(0,0,1,0,1,1); OIJ repere2 = new OIJ(1,2,1,0,0,1); System.out.println(repere.toLongString()); getAxis().drawScale(false); //getCS().setOIJ(repere); getCS().normadjust(); p = new GPoint2D(repere,1,0); p2 = new GPoint2D(repere2,1,3); DefaultGraphicalOptions info = (DefaultGraphicalOptions) p.getInfo(); info.setColor(Color.red); DefaultGraphicalOptions info2 = (DefaultGraphicalOptions) p2.getInfo(); info2.setColor(Color.blue); DiamondPoint dp = new DiamondPoint(); dp.setMarksize(5); info.setMarktype(dp); info2.setMarktype(dp); AffineTransform2D t = new AffineTransform2D(); t.rotate(Math.PI/2,0,0); // one rotation // t.translate(3,-2); // one translation //t.scale(1.5,0.5); // one scaling pp = new GPoint2D(p); pp2 = new GPoint2D(p2); pp.transform(t); pp2.transform(t); getPack2D().add(repere,"repere"); getPack2D().add(repere2,"repere2"); getPack2D().add(p,"A"); getPack2D().add(p2,"B"); getPack2D().add(pp,"A'"); getPack2D().add(pp2,"B'"); getPack2D().add(t,"transf"); try { WFile f= new WFile("wf.txt"); getPack2D().write(f); f.close(); } catch ( java.io.IOException e) { System.out.println(e); System.exit(-1); } catch (InvalidFormatException e) { System.out.println(e); System.exit(-1); } try { StreamReader f= new StreamReader("wf.txt"); Pack2D pack = new Pack2D(); pack.read(f); AffineTransform2D tt = (AffineTransform2D) pack.getObject("transf"); System.out.println("avant change oij"+tt); tt.changeOIJ((OIJ) pack.getObject("repere")); System.out.println("apres change oij"+tt); } catch ( java.io.IOException e) { System.out.println(e); System.exit(-1); } catch (InvalidFormatException e) { System.out.println(e); System.exit(-1); } } public static void main(String[] arg) throws opale.m2d.OIJException { Transform2D t = new Transform2D(); t.show(); } } OpaleV1b8/tests/oul/ode/wfile.ode100644 0 0 636 7553047147 14176 0ustar 0 0 StepControl1 ctrl { ymin 0.0 ymax 10.0 ratio 1.1 } ExplicitEuler sc_ee { tmin 0.0 tmax 10.0 N 1000 stepcontrol ctrl } RK sc_rk { tmin 0.0 tmax 1.0 N 100 } Heun sc_heun { tmin 0.0 tmax 1.0 N 100 } Equation eq2 { f(t,x)= '-x' } Equation eq { f(t,x)= '3*t' } Problem pb_rk { dim 1 y0 1.0 sch sc_rk eqn eq } Problem pb_ee { dim 1 y0 1.0 sch sc_ee eqn eq2 } Problem pb_heun { dim 1 y0 1.0 sch sc_heun eqn eq } OpaleV1b8/tests/oul/ode/ode.java100644 0 0 3760 7553047150 14024 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.*; import opale.ode.*; import opale.ode.scheme.*; import opale.tools.*; import java.io.*; public class ode { public static void main(String[] arg) { try { OpaleSet ode = new OpaleSet(); StreamReader rf = new StreamReader("file1.ode"); ode.read(rf); //ode.solve(); ((Problem) ode.getObject("pb")).solve(); //System.err.println(((Problem) ode.getObject("pb")).printSol()); rf = new StreamReader("file2.ode"); ode.clear(); ode.read(rf); //ode.solve(); ((Problem) ode.getObject("pb_ee")).solve(); //System.err.println(((Problem) ode.getObject("pb_ee")).printSol()); WFile wf = new WFile("wfile.ode"); ode.write(wf); wf.close(); rf = new StreamReader("wfile.ode"); ode.clear(); ode.read(rf); ((Problem) ode.getObject("pb_ee")).solve(); System.err.println(((Problem) ode.getObject("pb_ee")).printSol()); } catch(java.io.IOException e) {} catch(InvalidFormatException e) {System.err.println(e);} } } OpaleV1b8/tests/oul/ode/file2.ode100644 0 0 701 7553047150 14054 0ustar 0 0 Equation eq { f(t,x)= '3*t' } Equation eq2 { f(t,x)= '-x' } StepControl1 ctrl { ymin 0. ymax 10. ratio 1.1 } ExplicitEuler sc_ee { tmin 0 tmax 10 N 1000 stepcontrol ctrl } Heun sc_heun { tmin 0 tmax 1 N 100 } RK sc_rk { tmin 0 tmax 1 N 100 } Problem pb_ee { dim 1 sch sc_ee eqn eq2 y0 1 } Problem pb_heun { dim 1 sch sc_heun eqn eq y0 1 } Problem pb_rk { dim 1 sch sc_rk eqn eq y0 1 } OpaleV1b8/tests/oul/ode/file1.ode100644 0 0 255 7553047150 14057 0ustar 0 0 Equation eq { f1(t,x,y,z)= '3*t' f2(t,x,y,z)= '3' f3(t,x,y,z)= '1' } ExplicitEuler sc { tmin 0 tmax 1 N 100 } Problem pb { dim 3 sch sc eqn eq y0 1 1 2 } OpaleV1b8/tests/oul/m2d/essai.txt100644 0 0 1246 7553047150 14167 0ustar 0 0 OIJ rep1 { O 0.0 0.0 I 1.0 1.0 J 0.0 1.0 } Point pt { OIJ rep1 X 4.5 Y 0 INFO { NAME d COLOR 255 0 0 MARK_TYPE DiamondPoint { SIZE 5 } } } f(x) f { OIJ rep1 f(x)= '2*x*x-4' Xinf 0 Xsup 10 INFO { COLOR 100 100 100 } } Data nuage { OIJ rep1 N 7 Points 0 0 1 1 0 3 1 4 4 2 -5 8 -3 -4 INFO { COLOR 200 0 0 MARK_TYPE DiamondPoint { SIZE 10 } } } Data nuage1 { OIJ rep1 N 7 Points 0 2 1 0 1 -4 -3 4 4 1 5 8 3 -4 INFO { COLOR 100 100 100 } } Line d { OIJ rep1 a 1 b 2 c 4 INFO { VISIBLE YES COLOR 200 255 0 } } Vector vecteur1 { INFO { COLOR 0 255 0 NAME d SIZE 10 } X 4.5 Y 5.0 OIJ rep1 } Conic parabole { INFO { COLOR 100 200 255 } e 1 p 2 theta0 0 OIJ rep1 } OpaleV1b8/tests/oul/m2d/wfile.o2d100644 0 0 1655 7553047150 14042 0ustar 0 0 OIJ rep1 { OIJ OIJ_ABSOLUTE O 0.0 0.0 I 1.0 1.0 J 0.0 1.0 } Conic parabole { OIJ rep1 INFO { NAME Sans_nom COLOR 100 200 255 } N 100 e 1.0 p 2.0 theta0 0.0 } Data nuage { OIJ rep1 INFO { NAME Sans_nom COLOR 200 0 0 MARK_TYPE DiamondPoint { SIZE 10 } } N 7 Points 0.0 0.0 1.0 1.0 0.0 3.0 1.0 4.0 4.0 2.0 -5.0 8.0 -3.0 -4.0 } Vector vecteur1 { OIJ rep1 INFO { NAME d COLOR 0 255 0 SIZE 10 } ORIGIN 0.0 0.0 X 4.5 Y 5.0 } f(x) f { OIJ rep1 INFO { NAME Sans_nom COLOR 100 100 100 MARK_TYPE ClassicPoint { SIZE 10 } } N 100 Xinf 0.0 Xsup 10.0 f(x)= '2*x*x-4' } Point pt { OIJ rep1 INFO { NAME d COLOR 255 0 0 MARK_TYPE DiamondPoint { SIZE 5 } } X 4.5 Y 0.0 } Line d { OIJ rep1 INFO { NAME Sans_nom COLOR 200 255 0 } a 1.0 b 2.0 c 4.0 } Data nuage1 { OIJ rep1 INFO { NAME Sans_nom COLOR 100 100 100 MARK_TYPE ClassicPoint { SIZE 10 } } N 7 Points 0.0 2.0 1.0 0.0 1.0 -4.0 -3.0 4.0 4.0 1.0 5.0 8.0 3.0 -4.0 } OpaleV1b8/tests/oul/m2d/m2d.java100644 0 0 4533 7553047150 13651 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.m2d.*; import opale.m2d.object2d.*; import opale.tools.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class m2d extends JFrame { OIJ repere; LinLinCS vue; GAxis2D axes; Pack2D m2d; public m2d() { try { setSize(400,400); m2d = new Pack2D(); StreamReader rf = new StreamReader("essai.txt"); m2d.read(rf); WFile wf = new WFile("wfile.o2d"); m2d.write(wf); wf.close(); m2d.clear(); rf = new StreamReader("wfile.o2d"); m2d.read(rf); repere = (OIJ) m2d.getObject("rep1"); vue = new LinLinCS(repere,25,25,350,350); axes = new GAxis2D(vue); axes.drawLabel(false); ((InfoAxis) axes.getInfo()).setTick(0,1,0,1); } catch ( java.io.IOException e) { System.out.println(e); System.exit(-1); } catch (InvalidFormatException e) { System.out.println(e); System.exit(-1); } addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent e) { vue.setSize(25,25,getWidth()-50,getHeight()-50); vue.normadjust(); repaint(); } }); } public void paint(Graphics g) { super.paint(g); Pen2D c = new Pen2D(g,vue); axes.draw(c); c.clip(); m2d.draw(c); } public static void main(String[] arg) { m2d t = new m2d(); t.show(); } } OpaleV1b8/tests/tools/StreamReaderTest/test.txt100644 0 0 75 7553047150 17076 0ustar 0 0 1.2 3.4 -12.4 1.34e5 -12.34e5 -45.32e69 342.44e-2 -12e-34 OpaleV1b8/tests/tools/StreamReaderTest/StreamReaderTest.java100644 0 0 2744 7553047150 21504 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.tools.*; import java.io.*; public class StreamReaderTest { public static void main(String[] arg) { try { StreamReader rf = new StreamReader("test.txt"); int cpt=0; while (rf.hasMoreTokens()) { System.out.println(rf.nextDouble()); } rf.close(); } catch(IOException evt) { System.err.println(evt); } catch(InvalidFormatException evt) { System.err.println(evt); } } } OpaleV1b8/tests/tools/RWFile/RWFile.java100644 0 0 3407 7553047150 15325 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.tools.*; import java.io.*; public class RWFile { public static void main(String[] arg) { try { WFile wf = new WFile("test.txt"); wf.writeString("I"); wf.writeString("SQRT(I)"); wf.writeln("I*I"); for (int i=0;i<15;i++) { wf.print(i+" "); wf.writeDouble(Math.sqrt(i)); wf.writelnDouble(i*i); } wf.close(); } catch(IOException evt) { } try { RFile rf = new RFile("test.txt"); int cpt=0; while (rf.nextToken() != StreamTokenizer.TT_EOF) { if (rf.ttype == rf.TT_NUMBER) System.out.print(rf.nval); if (rf.ttype == rf.TT_WORD) System.out.print(rf.sval); System.out.print((cpt==2)?"\n" : " "); cpt = (cpt+1)%3; } } catch(IOException evt) { } } } OpaleV1b8/tests/tools/RWFile/test.txt100644 0 0 527 7553047150 15032 0ustar 0 0 I SQRT(I) I*I 0 0.0 0.0 1 1.0 1.0 2 1.4142135623730951 4.0 3 1.7320508075688772 9.0 4 2.0 16.0 5 2.23606797749979 25.0 6 2.449489742783178 36.0 7 2.6457513110645907 49.0 8 2.8284271247461903 64.0 9 3.0 81.0 10 3.1622776601683795 100.0 11 3.3166247903554 121.0 12 3.4641016151377544 144.0 13 3.605551275463989 169.0 14 3.7416573867739413 196.0 OpaleV1b8/tests/ode/Pendule/Pendule.java100644 0 0 5316 7553047150 15445 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.tools.*; import opale.mathtools.*; import opale.ode.*; import opale.ode.scheme.*; import opale.m2d.*; import opale.m2d.object2d.*; import opale.m2d.component2d.*; public class Pendule { public static void main(String[] arg) { // Rsolution des problmes du Pendule amorti avec 15 conditions initiales diffrentes Problem pb = new Problem(2); RK ts = new RK(); DVect cd = new DVect(2); ts.setNstep(1000); ts.set(0,100); pb.setEqn( new Equation() { DVect y = new DVect(2); public int dim() { return 2; } public DVect derivs(double t, DVect x) { y.set(0,x.get(1)); y.set(1,-Math.sin(x.get(0))-0.1*x.get(1)); return y; } } ); pb.setTS(ts); // on rsoud le systme du Pendule avec les 15 conditions initiales diffrentes double[][][] sol = new double[15][3][1000]; int i; for (i=0;i<15;i++) { cd.set(0,(-7+i>0 ? 1 : -1)*(-Math.PI*7)); cd.set(1,-7+i); pb.setInit(cd); pb.solve(); sol[i]=pb.toArray(); } // A chaque fois, la solution du problme i est stocke dans la variable sol[i] // On affiche le rsultat avec le module 2d d'Opale JFrame2D jf = new JFrame2D(); jf.setTitle("Systme du pendule amorti - Opale-ODE 0.1"); jf.setSize(600,600); jf.getAxis().drawScale(false); OIJ repere = new OIJ(); jf.getCS().set(-20,20,-8,8); jf.getPack2D().add(repere,"repere"); GData2D[] gsol = new GData2D[15]; //chaque solution est reprsente par un objet de type GData2D (nuage de points) //affichage des 15 solutions for (i=0;i<15;i++) { gsol[i] = new GData2D(repere); gsol[i].set(1000,sol[i][1],sol[i][2]); jf.getPack2D().add(gsol[i],"sol"+i); } jf.show(); } } OpaleV1b8/tests/ode/Projectile/Projectile.java100644 0 0 5524 7553047150 16656 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.tools.*; import opale.mathtools.*; import opale.ode.*; import opale.ode.scheme.*; import opale.m2d.*; import opale.m2d.object2d.*; import opale.m2d.component2d.*; public class Projectile { public static void main(String[] arg) { // Rsolution des quations de de la dynamique pour un projectile Problem pb = new Problem(4); //problme en dimension 2 RK ts = new RK(); // avec la mthode de RungeKutta classique DVect cd = new DVect(4); // vecteur pour la condition initiale ts.setNstep(1000); //nombre de pas en temps : 1000 ts.set(0,10); // tude sur l'intervalle en temps (0;10) pb.setEqn( //on dfinit l'equation du systme new Equation() { DVect y = new DVect(4); public int dim() { return 4; } public DVect derivs(double t, DVect x) { y.set(0,x.get(2)); //x'(t,x,y,z,w) = z y.set(1,x.get(3)); //y'(t,x,y,z,w) = w y.set(2,-x.get(2)); //z'(t,x,y,z,w) = 0 y.set(3,-9.81-x.get(3)); //w'(t,x,y,z,w) = -9.81 return y; } } ); pb.setTS(ts); //on associe le schma en temps // on rsoud les quations de la dynamique double[][] sol = new double[5][1000]; cd.set(0,0); cd.set(1,0); cd.set(2,10*Math.cos(Math.PI*0.33)); cd.set(3,10*Math.sin(Math.PI*0.33)); pb.setInit(cd); pb.solve(); sol=pb.toArray(); // On affiche le rsultat avec le module 2d d'Opale JFrame2D jf = new JFrame2D(true); jf.setTitle("Mouvement d'un projectile - Opale-ODE 0.1"); jf.setSize(600,600); jf.getAxis().drawScale(false); OIJ repere = new OIJ(); jf.getCS().set(-1,5,0,5); jf.getPack2D().add(repere,"repere"); GData2D gsol = new GData2D(repere); //chaque solution est reprsente par un objet de type GData2D (nuage de points) gsol.set(1000,sol[1],sol[2]); jf.getPack2D().add(gsol,"sol"); jf.show(); } } OpaleV1b8/tests/ode/PredateurProie/PredateurProie.java100644 0 0 4067 7553047150 20343 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.tools.*; import opale.mathtools.*; import opale.ode.*; import opale.ode.scheme.*; public class PredateurProie { public static void main(String[] arg) { // Rsolution des problmes de Vander Pool avec 15 conditions initiales diffrentes Problem pb = new Problem(2); ExplicitEuler ts = new ExplicitEuler(); DVect cd = new DVect(2); ts.setNstep(1000); ts.set(0,1); pb.setEqn( new Equation() { DVect y = new DVect(2); public int dim() { return 2; } public DVect derivs(double t, DVect x) { y.set(0,5*x.get(0)*(x.get(1)-3));//-0.1*x[0]*x[0]; y.set(1,5*x.get(1)*(3-x.get(0))); return y; } } ); pb.setTS(ts); // on rsoud le systme de Vander Pol avec les 5 conditions initiales diffrentes int i; for (i=0;i<5;i++) { cd.set(0,5+i); cd.set(1,3*i+0.5); pb.setInit(cd); pb.solve(); try { WFile wf = new WFile("resu"+i+".txt"); pb.writeSol(wf); wf.writeln(""); wf.close(); } catch(java.io.IOException e) {} } } } OpaleV1b8/tests/ode/ee1d/ee1d.java100644 0 0 6652 7553047150 14115 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.tools.*; import opale.mathtools.*; import opale.ode.*; import opale.ode.scheme.*; public class ee1d { public static void main(String[] arg) { Problem pb = new Problem(); ExplicitEuler ts = new ExplicitEuler(); pb.setEqn( new Equation() { DVect y = new DVect(1); public int dim() { return 1; } public DVect derivs(double t, DVect x) { y.set(0,1); return y; } } ); pb.setTS(ts); pb.solve(); try { WFile wf = new WFile("resu1.txt"); pb.writeSol(wf); wf.writeln(""); wf.close(); } catch(java.io.IOException e) {} // resolution de y'=y, y(0)=1 (sol exacte exp(t)) pb.setEqn( new Equation() { public int dim() { return 1; } public DVect derivs(double t, DVect x) { return x; } } ); DVect cd = new DVect(1); cd.set(0,1); pb.setInit(cd); pb.solve(); try { WFile wf = new WFile("resu2.txt"); pb.writeSol(wf); wf.writeln(""); wf.close(); } catch(java.io.IOException e) {} // resolution de y'=-2*ty, y(0)=1 (sol exacte 1/(1+t)) pb.setEqn( new Equation() { DVect y = new DVect(1); public int dim() { return 1; } public DVect derivs(double t, DVect x) { y.set(0,-2*t*x.get(0)*x.get(0)); return y; } } ); cd.set(0,0.5); ts.set(-1,1); pb.setInit(cd); pb.solve(); try { WFile wf = new WFile("resu3.txt"); pb.writeSol(wf); wf.writeln(""); wf.close(); } catch(java.io.IOException e) {} // resolution de y'=2*ty, y(0)=1 (sol exacte 1/(1-t)) pb.setEqn( new Equation() { DVect y = new DVect(1); public int dim() { return 1; } public DVect derivs(double t, DVect x) { y.set(0,2*t*x.get(0)*x.get(0)); return y; } } ); cd.set(0,1); ts.setNstep(5000); ts.set(0,0.9); pb.setInit(cd); pb.solve(); try { WFile wf = new WFile("resu4.txt"); pb.writeSol(wf); wf.writeln(""); wf.close(); } catch(java.io.IOException e) {} // resolution de y'=-y, y(0)=1 (sol exacte 1/(1+t)) pb.setEqn( new Equation() { DVect y = new DVect(1); public int dim() { return 1; } public DVect derivs(double t, DVect x) { y.set(0,-x.get(0)*x.get(0)); return y; } } ); cd.set(0,1); ts.setNstep(100); ts.set(0,10); pb.setInit(cd); pb.solve(); try { WFile wf = new WFile("resu5.txt"); pb.writeSol(wf); wf.writeln(""); wf.close(); } catch(java.io.IOException e) {} } } OpaleV1b8/tests/ode/ee2d/ee2d.java100644 0 0 3513 7553047150 14110 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.tools.*; import opale.mathtools.*; import opale.ode.*; import opale.ode.scheme.*; public class ee2d { public static void main(String[] arg) { Problem pb = new Problem(2); ExplicitEuler ts = new ExplicitEuler(); pb.setEqn( new Equation() { DVect y = new DVect(2); public int dim() { return 2; } public DVect derivs(double t, DVect x) { y.set(0,-x.get(0)*x.get(0)+x.get(0)*x.get(1)); y.set(1,-x.get(1)*x.get(1)-x.get(0)*x.get(1)); return y; } } ); DVect cd = new DVect(2); cd.set(0,1); cd.set(1,1); pb.setInit(cd); ts.set(0,100); ts.setNstep(500); pb.setTS(ts); pb.solve(); try { WFile wf = new WFile("resu1.txt"); pb.writeSol(wf); wf.writeln(""); wf.close(); } catch(java.io.IOException e) {} } } OpaleV1b8/tests/ode/VanDerPol/VanDerPol.java100644 0 0 6662 7553047150 16146 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.tools.*; import opale.mathtools.*; import opale.ode.*; import opale.ode.scheme.*; import opale.m2d.*; import opale.m2d.object2d.*; import opale.m2d.component2d.*; public class VanDerPol { public static void main(String[] arg) { // Rsolution des problmes de Vander Pool avec 15 conditions initiales diffrentes Problem pb = new Problem(2); //problme en dimension 2 //ExplicitEuler ts = new ExplicitEuler(); //RK ts = new RK(); //Heun ts = new Heun(); ThetaScheme ts = new ThetaScheme(); // avec la mthode de RungeKutta classique //ImplicitEuler ts = new ImplicitEuler(); // avec la mthode de RungeKutta classique DVect cd = new DVect(2); // vecteur pour la condition initiale ts.setNstep(1000); //nombre de pas en temps : 1000 ts.set(0,10); // tude sur l'intervalle en temps (0;10) pb.setEqn( //on dfinit l'equation du systme new Equation() { DVect y = new DVect(2); public int dim() { return 2; } public DVect derivs(double t, DVect x) { y.set(0,x.get(1)-x.get(0)*x.get(0)*x.get(0)+x.get(0)); //x'(t,x,y) = y-x*x+x y.set(1,-x.get(0)); //y'(t,x,y) = -x return y; } } ); pb.setTS(ts); //on associe le schma en temps // on rsoud le systme de Vander Pol avec les 15 conditions initiales diffrentes double[][][] sol = new double[15][3][1000]; int i; for (i=0;i<5;i++) { cd.set(0,5); cd.set(1,-3+i); pb.setInit(cd); pb.solve(); sol[i]=pb.toArray(); } for (i=6;i<10;i++) { cd.set(0,-5); cd.set(1,i-5); pb.setInit(cd); pb.solve(); sol[i]=pb.toArray(); } for (i=11;i<15;i++) { cd.set(0,0.1*Math.cos(i)); cd.set(1,0.1*Math.sin(i)); pb.setInit(cd); pb.solve(); sol[i]=pb.toArray(); } // A chaque fois, la solution du problme i est stocke dans la variable sol[i] // On affiche le rsultat avec le module 2d d'Opale JFrame2D jf = new JFrame2D(true); jf.setTitle("Systme de Van der Pol - Opale-ODE 0.1"); jf.setSize(600,600); jf.getAxis().drawScale(false); OIJ repere = new OIJ(); jf.getCS().set(-6,6,-6,6); jf.getPack2D().add(repere,"repere"); GData2D[] gsol = new GData2D[15]; //chaque solution est reprsente par un objet de type GData2D (nuage de points) //affichage des 15 solutions for (i=0;i<15;i++) { gsol[i] = new GData2D(repere); gsol[i].set(1000,sol[i][1],sol[i][2]); jf.getPack2D().add(gsol[i],"sol"+i); } jf.show(); } } OpaleV1b8/tests/ode/StandardControl/StandardControl.java100644 0 0 5070 7553047150 20654 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.tools.*; import opale.mathtools.*; import opale.ode.*; import opale.ode.scheme.*; import opale.m2d.*; import opale.m2d.object2d.*; import opale.m2d.component2d.*; public class StandardControl { public static void main(String[] arg) { Problem pb = new Problem(1); //problme en dimension 1 ExplicitEuler ts = new ExplicitEuler(); StandardStepControl contr = new StandardStepControl(); ts.setStepsizeControl(contr); DVect cd = new DVect(1); // vecteur pour la condition initiale ts.setNstep(30); //nombre de pas en temps ts.set(0,10); // tude sur l'intervalle en temps (0;1) pb.setEqn( //on dfinit l'equation du systme new Equation() { DVect y = new DVect(1); public int dim() { return 1; } public DVect derivs(double t, DVect x) { y.set(0,-x.get(0)); //x'(t,x,y,z,w) = z return y; } } ); pb.setTS(ts); //on associe le schma en temps // on rsoud les quations de la dynamique cd.set(0,1); pb.setInit(cd); pb.solve(); double[][] sol=pb.toArray(); //System.out.println(pb.printSol()); // On affiche le rsultat avec le module 2d d'Opale JFrame2D jf = new JFrame2D(true); jf.setSize(600,600); jf.getAxis().drawScale(false); OIJ repere = new OIJ(); jf.getCS().set(-1,2,-1,1); jf.getPack2D().add(repere,"repere"); GData2D gsol = new GData2D(repere); //chaque solution est reprsente par un objet de type GData2D (nuage de points) gsol.set(pb.getNStep(),sol[0],sol[1]); jf.getPack2D().add(gsol,"sol"); jf.show(); } } OpaleV1b8/tests/ode/Volterra/lotkavolterra.ode100644 0 0 337 7553047150 16750 0ustar 0 0 StandardStepControl ctrl { tol 1.e-4 } ExplicitEuler sch { tmin 0 tmax 10 N 500 stepcontrol ctrl } Equation eqn { f1(t,x,y)= '3*x-2*x*y' f2(t,x,y)= '-2*y+x*y' } Problem pb { dim 2 y0 0.7 0.5 sch sch eqn eqn } OpaleV1b8/tests/ode/Volterra/Volterra.java100644 0 0 3771 7553047150 16054 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.ode.*; import opale.ode.scheme.*; import opale.tools.*; import opale.m2d.component2d.*; import opale.m2d.object2d.*; import opale.m2d.*; public class Volterra { public static void main(String[] arg) { try { ODE ode = new ODE(); StreamReader rf = new StreamReader("lotkavolterra.ode"); ode.read(rf); ode.solve(); Problem pb = (Problem) ode.getObject("pb"); System.err.println(pb.printSol()); JFrame2D jf = new JFrame2D(); jf.setTitle("Systme de Van der Pol - Opale-ODE "); jf.setSize(600,600); jf.getAxis().drawScale(false); OIJ repere = new OIJ(); jf.getCS().set(-1,10,-1,10); jf.getPack2D().add(repere,"repere"); double[][] sol = new double[3][pb.getNStep()]; sol = pb.toArray(); GData2D gsol = new GData2D(repere); gsol.set(pb.getNStep(),sol[1],sol[2]); jf.getPack2D().add(gsol,"sol"); jf.show(); } catch(java.io.IOException e) {} catch(InvalidFormatException e) {System.err.println(e);} } } OpaleV1b8/tests/ode/file/file.java100644 0 0 3162 7553047150 14310 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.ode.*; import opale.ode.scheme.*; import opale.tools.*; public class file { public static void main(String[] arg) { try { ODE ode = new ODE(); StreamReader rf = new StreamReader("file1.ode"); ode.read(rf); ode.solve(); System.err.println(((Problem) ode.getObject("pb")).printSol()); rf = new StreamReader("file2.ode"); ode.clear(); ode.read(rf); ode.solve(); System.err.println(((Problem) ode.getObject("pb_ee")).printSol()); } catch(java.io.IOException e) {} catch(InvalidFormatException e) {System.err.println(e);} } } OpaleV1b8/tests/ode/file/file2.ode100644 0 0 676 7553047150 14207 0ustar 0 0 Equation eq { f(t,x)= '3*t' } Equation eq2 { f(t,x)= '-x' } StepControl1 ctrl { ymin 0. ymax 10. ratio 1.1 } ExplicitEuler sc_ee { tmin 0 tmax 10 N 6 stepcontrol ctrl } Heun sc_heun { tmin 0 tmax 1 N 100 } RK sc_rk { tmin 0 tmax 1 N 100 } Problem pb_ee { dim 1 sch sc_ee eqn eq2 y0 1 } Problem pb_heun { dim 1 sch sc_heun eqn eq y0 1 } Problem pb_rk { dim 1 sch sc_rk eqn eq y0 1 } OpaleV1b8/tests/ode/file/file1.ode100644 0 0 255 7553047150 14177 0ustar 0 0 Equation eq { f1(t,x,y,z)= '3*t' f2(t,x,y,z)= '3' f3(t,x,y,z)= '1' } ExplicitEuler sc { tmin 0 tmax 1 N 100 } Problem pb { dim 3 sch sc eqn eq y0 1 1 2 } OpaleV1b8/tests/ode/VanDerPol2/VanDerPol2.java100644 0 0 3754 7553047150 16311 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.ode.*; import opale.ode.scheme.*; import opale.tools.*; import opale.m2d.component2d.*; import opale.m2d.object2d.*; import opale.m2d.*; public class VanDerPol2 { public static void main(String[] arg) { try { ODE ode = new ODE(); StreamReader rf = new StreamReader("vanderpol.ode"); ode.read(rf); ode.solve(); Problem pb = (Problem) ode.getObject("pb"); System.err.println(pb.printSol()); JFrame2D jf = new JFrame2D(); jf.setTitle("Systme de Van der Pol - Opale-ODE "); jf.setSize(600,600); jf.getAxis().drawScale(false); OIJ repere = new OIJ(); jf.getCS().set(-6,6,-10,10); jf.getPack2D().add(repere,"repere"); double[][] sol = new double[3][pb.getNStep()]; sol = pb.toArray(); GData2D gsol = new GData2D(repere); gsol.set(1000,sol[1],sol[2]); jf.getPack2D().add(gsol,"sol"); jf.show(); } catch(java.io.IOException e) {} catch(InvalidFormatException e) {System.err.println(e);} } } OpaleV1b8/tests/ode/VanDerPol2/vanderpol.ode100644 0 0 267 7553047150 16171 0ustar 0 0 ImplicitEuler sch { tmin 0.0 tmax 20.0 N 1000 } Equation eqn { f1(t,x,y,z)= 'y' f2(t,x,y,z)= '5*(1-x*x)*y-x' f3(t,x,y,z)= '1' } Problem pb { dim 3 y0 2.0 1.0 1.0 sch sch eqn eqn } OpaleV1b8/tests/ode/Implicit/Implicit.java100644 0 0 5222 7553047150 15775 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.tools.*; import opale.mathtools.*; import opale.ode.*; import opale.ode.scheme.*; import opale.m2d.*; import opale.m2d.object2d.*; import opale.m2d.component2d.*; public class Implicit { public static void main(String[] arg) { final int DT=31; // Rsolution des problmes de Vander Pool avec 15 conditions initiales diffrentes Problem pb = new Problem(1); //problme en dimension 2 ImplicitEuler ts = new ImplicitEuler(); // avec la mthode de RungeKutta classique //ThetaScheme ts = new ThetaScheme(); DVect cd = new DVect(1); // vecteur pour la condition initiale ts.setNstep(DT); //nombre de pas en temps : DT0 ts.set(0,10); // tude sur l'intervalle en temps (0;10) pb.setEqn( //on dfinit l'equation du systme new Equation() { DVect y = new DVect(1); public int dim() { return 1; } public DVect derivs(double t, DVect x) { y.set(0,-x.get(0)); return y; } } ); double[][] sol = new double[2][DT]; pb.setTS(ts); //on associe le schma en temps cd.set(0,1); pb.setInit(cd); pb.solve(); sol=pb.toArray(); // On affiche le rsultat avec le module 2d d'Opale JFrame2D jf = new JFrame2D(); jf.setTitle("Systme de Van der Pol - Opale-ODE 0.1"); jf.setSize(600,600); jf.getAxis().drawScale(false); OIJ repere = new OIJ(); jf.getCS().set(-1,12,-1.5,1.5); jf.getPack2D().add(repere,"repere"); GData2D gsol = new GData2D(repere); //chaque solution est reprsente par un objet de type GData2D (nuage de points) //affichage gsol.set(DT,sol[0],sol[1]); jf.getPack2D().add(gsol,"sol"); jf.show(); } } OpaleV1b8/tests/ode/Control/Control.java100644 0 0 5047 7553047150 15516 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.tools.*; import opale.mathtools.*; import opale.ode.*; import opale.ode.scheme.*; import opale.m2d.*; import opale.m2d.object2d.*; import opale.m2d.component2d.*; public class Control { public static void main(String[] arg) { Problem pb = new Problem(1); //problme en dimension 1 ExplicitEuler ts = new ExplicitEuler(); StepControl1 contr = new StepControl1(0,10,1.1); ts.setStepsizeControl(contr); DVect cd = new DVect(1); // vecteur pour la condition initiale ts.setNstep(3); //nombre de pas en temps ts.set(0,10); // tude sur l'intervalle en temps (0;1) pb.setEqn( //on dfinit l'equation du systme new Equation() { DVect y = new DVect(1); public int dim() { return 1; } public DVect derivs(double t, DVect x) { y.set(0,-x.get(0)); //x'(t,x,y,z,w) = z return y; } } ); pb.setTS(ts); //on associe le schma en temps // on rsoud les quations de la dynamique cd.set(0,1); pb.setInit(cd); pb.solve(); double[][] sol=pb.toArray(); System.out.println(pb.printSol()); // On affiche le rsultat avec le module 2d d'Opale JFrame2D jf = new JFrame2D(true); jf.setSize(600,600); jf.getAxis().drawScale(false); OIJ repere = new OIJ(); jf.getCS().set(-1,2,-1,1); jf.getPack2D().add(repere,"repere"); GData2D gsol = new GData2D(repere); //chaque solution est reprsente par un objet de type GData2D (nuage de points) gsol.set(pb.getNStep(),sol[0],sol[1]); jf.getPack2D().add(gsol,"sol"); jf.show(); } } OpaleV1b8/tests/ode/Lorenz/Lorenz.java100644 0 0 6311 7553047150 15173 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.tools.*; import opale.mathtools.*; import opale.ode.*; import opale.ode.scheme.*; import opale.m2d.*; import opale.m2d.object2d.*; import opale.m2d.component2d.*; public class Lorenz { public static void main(String[] arg) { // Rsolution de l attracteur de Lorenz 5 conditions initiales proches Problem pb = new Problem(3); //problme en dimension 3 //ExplicitEuler ts = new ExplicitEuler(); RK ts = new RK(); DVect cd = new DVect(3); // vecteur pour la condition initiale ts.setNstep(1000); //nombre de pas en temps : 1000 ts.set(0,10); // tude sur l'intervalle en temps (0;10) pb.setEqn( //on dfinit l'equation du systme new Equation() { final double s = 10., r=50, b=1; DVect y = new DVect(3); public int dim() { return 3; } public DVect derivs(double t, DVect x) { y.set(0,s*(x.get(1)-x.get(0))); //x'(t,x,y) = y-x y.set(1,-x.get(0)*x.get(2)+r*x.get(0)-x.get(1)); //y'(t,x,y) = -xz+x-y y.set(2,x.get(0)*x.get(1)-b*x.get(2)); //y'(t,x,y) = xy-z return y; } } ); pb.setTS(ts); //on associe le schma en temps // on rsoud le systme de Lorenz avec les 5 conditions initiales diffrentes double[][][] sol = new double[5][4][1000]; int i; for (i=0;i<5;i++) { cd.set(0,-2.); cd.set(1,-2.); cd.set(2,6.+1./(i+1)); pb.setInit(cd); pb.solve(); sol[i]=pb.toArray(); } // A chaque fois, la solution du problme i est stocke dans la variable sol[i] // On affiche le rsultat avec le module 2d d'Opale JFrame2D jf = new JFrame2D(); jf.setTitle("Attracteur de Lorenz"); jf.setSize(600,600); jf.getAxis().drawScale(false); OIJ repere = new OIJ(); jf.getCS().set(-30,30,0,100); jf.getPack2D().add(repere,"repere"); GData2D[] gsol = new GData2D[5]; //chaque solution est reprsente par un objet de type GData2D (nuage de points) //affichage des 5 solutions for (i=0;i<5;i++) { gsol[i] = new GData2D(repere); gsol[i].getInfo().setColor(new java.awt.Color((int) (255*Math.random()),(int) (255*Math.random()),(int) (255*Math.random()))); gsol[i].set(1000,sol[i][1],sol[i][3]); jf.getPack2D().add(gsol[i],"sol"+i); } jf.show(); } } OpaleV1b8/tests/mathtools/Fixpoint/Fixpoint.java100644 0 0 3034 7553047150 17313 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.mathtools.*; public class Fixpoint { public static void main(String[] arg) { DVect x0 = new DVect(2); DVect sol = new DVect(2); System.out.println("Fix point of (f(x,y) = 1+0.1xy-y ; g(x,y) = 0.5*x+0.5*xy) : "); FixPoint.solve(new IFnn() { public DVect val(DVect x) { DVect y =new DVect(2); y.set(0,1.+0.1*x.get(0)*x.get(1)-x.get(1)); y.set(1,0.5*x.get(0)+0.5*x.get(0)*x.get(1)); return y; } },2,x0,sol); System.out.println(sol); } } OpaleV1b8/tests/mathtools/bernstein/TBernstein.java100644 0 0 6541 7553047150 17767 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.mathtools.*; /** * This class provides methods for testing the Bernstein class. * Initial version from R.P. * @author OpaleTeam */ public class TBernstein { private static void primaryTests(double u) { System.out.println("\t Proceeding to primary tests"); System.out.println("\n\t with u = "+u); System.out.println("\t Output format is B[i][n](u)"); System.out.println("\t Testing B[0][1]("+u+")"); System.out.println("\t Should be equal to "+(1-u)); System.out.print("\t Result is :"); System.out.println(Bernstein.getValue(0,1,u)); System.out.println("\t Testing B[1][1]("+u+")"); System.out.println("\t Should be equal to "+(u)); System.out.print("\t Result is :"); System.out.println(Bernstein.getValue(1,1,u)); System.out.println("\t Testing B[0][2]("+u+")"); System.out.println("\t Should be equal to "+(1-u)*(1-u)); System.out.print("\t Result is :"); System.out.println(Bernstein.getValue(0,2,u)); System.out.println("\t Testing B[1][2]("+u+")"); System.out.println("\t Should be equal to "+(1-u)*u*2); System.out.print("\t Result is :"); System.out.println(Bernstein.getValue(1,2,u)); System.out.println("\t Testing B[2][2]("+u+")"); System.out.println("\t Should be equal to "+(1-u)*u*2); System.out.print("\t Result is :"); System.out.println(Bernstein.getValue(2,2,u)); System.out.println("\n"); } private static void testGetValue(int n) { // u = 0 and for i=0 to 4 System.out.println("u = 0"); for(int i = 0; i <= n; i++) { System.out.println("B["+i+"] = "+Bernstein.getValue(i,n,0)); } //u = 1 and for i=1 to 4 // u = 0.125 and for i=1 to 4 } private static void testGetValues(double u, int n) { System.out.println("\n\t Proceeding to getValues' tests"); System.out.println("\t with u = "+u+"and n = "+n); System.out.println("\t Output format is B[i][n](u)"); double[] results = Bernstein.getAllValues(n,u); for (int i=0 ; i<=n;i++) { System.out.println("\t B["+i+"]["+n+"]("+u+") = "+results[i]); } } public static void main(String args[]) { System.out.println("Testing the Bernstein class"); primaryTests(0.0); primaryTests(0.5); primaryTests(1); primaryTests(2); //testGetValue(2); testGetValues(0.125,5); System.out.println("Test is finished"); } } OpaleV1b8/tests/mathtools/root/root.java100644 0 0 5125 7553047150 15664 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.mathtools.*; public class root { public static void main(String[] arg) { Bisection solve = new Bisection(); System.err.println("1) This test case is a good example of bisection's method. F(x) = x*x-2 has an unique root (sqrt(2)) between 0 and 2."); System.out.println("ROOT = "+solve.find( new IyFx() { public double val(double x) { return x*x-2; } } ,0,2)); System.out.println("NITER = "+solve.NITER); System.err.println("\n2) In this test case the bisection's method converges to a singularity.\n F(x) = 1/(x-2) and 2 is a singularity of the function."); System.out.println("ROOT = "+solve.find( new IyFx() { public double val(double x) { return 1/(x-2); } } ,1,3)); System.out.println("NITER = "+solve.NITER); System.err.println("\n3) In this test case the function F(x) = sin(50*x)/x has many root between 0 and 2. It's difficult to know the root computed by the bisection's method."); System.out.println("ROOT = "+solve.find( new IyFx() { public double val(double x) { return Math.sin(x*50)/x; } } ,0,2)); System.out.println("NITER = "+solve.NITER); System.err.println("\n4) In this test case the bisection's method doesn't converge because the function (x-2)*(x-2) has a double root 2 but doesn't change of sign."); System.out.println("ROOT = "+solve.find( new IyFx() { public double val(double x) { return (x-2)*(x-2); } } ,1,3)); System.out.println("NITER = "+solve.NITER); } } OpaleV1b8/tests/mathtools/Function/Function.java100644 0 0 3520 7553047150 17265 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.mathtools.*; import opale.tools.*; public class Function { public static void main(String[] arg) { AnalyticalFunction f = new AnalyticalFunction(); f.setFunc("2*x"); for (int i=0;i<10;i++) { double x = 1.5*i; System.out.println(f.val(x)); } try { OpaleSet set = new OpaleSet(); set.add(f,"function"); WFile wf = new WFile("wf.txt"); set.write(wf); wf.close(); set.clear(); StreamReader rf= new StreamReader("wf.txt"); set.read(rf); AnalyticalFunction ff = (AnalyticalFunction) set.getObject("function"); for (int i=0;i<10;i++) { double x = i; System.out.println(ff.val(x)); } } catch(java.io.IOException evt) { System.err.println(evt); } catch(opale.tools.InvalidFormatException evt) { System.err.println(evt); } } } OpaleV1b8/tests/mathtools/PBernstein/PBernstein.java100644 0 0 3170 7553047150 20036 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.tools.*; import opale.mathtools.*; public class PBernstein { public static void main(String[] arg) { for (int i=0;i<11;i++) { double x = i/10.; for (int k=0;k<20;k++) { double[] value = Bernstein.getAllValues(k,x); double sum =0.; for (int j=0;j>Warning abs(sum-1.)>1.e-15\n"); Stdio.printerrln(">>n = "+k); Stdio.printerrln(">>x = "+x); } } } } } OpaleV1b8/tests/mathtools/sort/sort.java100644 0 0 2563 7553047150 15677 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ import opale.mathtools.*; public class sort { public static void main(String[] arg) { double[] a={4.3,23.4,56.4,-1,-45.5,-10033490234.4,2340539050.45345,56.55,56.54,-123.5}; InsertionSort sort = new InsertionSort(); sort.sort(a.length,a); for (int i=0;i0 ? 1 : -1)*(-Math.PI*7)); cd.set(1,-7+i); pb.setInit(cd); pb.solve(); sol[i]=pb.toArray(); } // A chaque fois, la solution du problme i est stocke dans la variable sol[i] // On affiche le rsultat avec le module 2d d'Opale jf.setTitle("Systme du pendule amorti - Opale-ODE 0.1"); jf.setSize(600,600); jf.getAxis().drawScale(false); OIJ repere = new OIJ(); jf.getCS().set(-20,20,-8,8); jf.getPack2D().add(repere,"repere"); GData2D[] gsol = new GData2D[15]; //chaque solution est reprsente par un objet de type GData2D (nuage de points) //affichage des 15 solutions for (i=0;i<15;i++) { gsol[i] = new GData2D(repere); gsol[i].set(1000,sol[i][1],sol[i][2]); jf.getPack2D().add(gsol[i],"sol"+i); } jf.show(); } public void stop() { jf.dispose(); } } OpaleV1b8/otests/m2d/Transform/Transform.java100644 0 0 5304 7553047147 16500 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ package otests.m2d.Transform; import opale.tools.*; import opale.m2d.*; import opale.m2d.object2d.*; import opale.m2d.component2d.*; import opale.m2d.marktype.*; import opale.mathtools.*; import java.awt.*; import java.awt.event.*; public class Transform extends JFrame2D implements OTest { GPoint2D p,pp; GVector2D v,vv; GData2D data, datat; public void run(String path) { OIJ repere = new OIJ(); getAxis().drawScale(false); getCS().setOIJ(repere); try { StreamReader fichier = new StreamReader(path+"data.txt"); data = new GData2D(repere); data.readData(fichier); data.getInfo().setColor(Color.red); } catch (java.io.IOException e) { System.out.println(e); System.exit(-1); } catch (InvalidFormatException e) { System.out.println(e); System.exit(-1); } p = new GPoint2D(repere,2,2); DefaultGraphicalOptions info = (DefaultGraphicalOptions) p.getInfo(); info.setColor(Color.red); DiamondPoint dp = new DiamondPoint(); dp.setMarksize(5); info.setMarktype(dp); v = new GVector2D(repere,-3,6); vv = new GVector2D(v); datat = new GData2D(data); AffineTransform2D t = new AffineTransform2D(); t.rotate(Math.PI,0,0); // one rotation t.translate(3,-2); // one translation t.scale(1.5,0.5); // one scaling pp = new GPoint2D(p); pp.transform(t); vv.transform(t); datat.transform(t); getPack2D().add(repere,"repere"); getPack2D().add(p,"point"); getPack2D().add(pp,"point_t"); getPack2D().add(v,"vect"); getPack2D().add(vv,"vect_t"); getPack2D().add(data,"data"); getPack2D().add(datat,"datat"); show(); } public void stop() { dispose(); } } OpaleV1b8/otests/m2d/Transform/data.txt100644 0 0 26 7553047150 15262 0ustar 0 0 3 0 0 3 -3 0 0 -3 3 0 OpaleV1b8/otests/m2d/Transform/documentation.txt100644 0 0 106 7553047150 17241 0ustar 0 0 This example shows the affine transformation of a point and a vector. OpaleV1b8/otests/m2d/Marktype/essai.o2d100644 0 0 777 7553047147 15206 0ustar 0 0 OIJ rep1 { O 0.0 0.0 I 1.0 1.0 J 0.0 1.0 } TriangleUp cp { SIZE 8 } Data nuage { OIJ rep1 INFO { NAME Sans_nom COLOR 200 0 0 MARK_TYPE HVLine { SIZE 5 } } N 7 Points 0.0 0.0 1.0 1.0 0.0 3.0 1.0 4.0 4.0 2.0 -5.0 8.0 -3.0 -4.0 } Point pt { OIJ rep1 INFO { NAME d COLOR 255 200 0 MARK_TYPE XPoint { SIZE 10 } } X 4.5 Y 0.0 } Data nuage1 { OIJ rep1 INFO { NAME Sans_nom COLOR 100 100 100 MARK_TYPE DiamondPoint { SIZE 5 } } N 7 Points 0.0 2.0 1.0 0.0 1.0 -4.0 -3.0 4.0 4.0 1.0 5.0 8.0 3.0 -4.0 } OpaleV1b8/otests/m2d/Marktype/wf.txt100644 0 0 1036 7553047150 14650 0ustar 0 0 OIJ rep1 { O 0.0 0.0 I 1.0 0.0 J 0.0 1.0 } TriangleUp cp { SIZE 8 } Point pt { OIJ rep1 INFO { NAME d COLOR 255 0 0 } MARK_TYPE XPoint { SIZE 5 } X 4.5 Y 0.0 } Donnes nuage { OIJ rep1 MARK_TYPE CirclePoint { SIZE 5 } INFO { NAME Sans nom COLOR 200 0 0 TYPE_GRAPH 0 } N 7 Points 0.0 0.0 1.0 1.0 0.0 3.0 1.0 4.0 4.0 2.0 -5.0 8.0 -3.0 -4.0 } Donnes nuage1 { OIJ rep1 MARK_TYPE DiamondPoint { SIZE 5 } INFO { NAME Sans nom COLOR 100 100 100 TYPE_GRAPH 0 } N 7 Points 0.0 2.0 1.0 0.0 1.0 -4.0 -3.0 4.0 4.0 1.0 5.0 8.0 3.0 -4.0 } OpaleV1b8/otests/m2d/Marktype/Marktype.java100644 0 0 4442 7553047150 16136 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ package otests.m2d.Marktype; import opale.m2d.*; import opale.m2d.object2d.*; import opale.tools.*; import java.awt.*; import java.awt.event.*; public class Marktype extends Frame implements OTest { OIJ repere; LinLinCS vue; GAxis2D axes; Pack2D pack; public void run(String path) { setSize(600,400); pack = new Pack2D(); try { StreamReader f= new StreamReader(path+"essai.o2d"); pack.read(f); pack.legend().setLocation(200,50); pack.legend().setVisible(true); repere = (OIJ) pack.getObject("rep1"); vue = new LinLinCS(repere,25,25,550,350); axes = new GAxis2D(vue); axes.drawLabel(false); ((InfoAxis) axes.getInfo()).setTick(0,1,0,1); } catch ( java.io.IOException e) { System.out.println(e); System.exit(-1); } catch (InvalidFormatException e) { System.out.println(e); System.exit(-1); } addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent e) { vue.setSize(25,25,getWidth()-50,getHeight()-50); vue.normadjust(); repaint(); } }); } public void paint(Graphics g) { Pen2D c = new Pen2D(g,vue); axes.draw(c); c.clip(); pack.draw(c); } public void stop() { dispose(); } } OpaleV1b8/otests/m2d/Transform2D/Transform2D.java100644 0 0 6204 7553047150 17046 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ package otests.m2d.Transform2D; import opale.m2d.*; import opale.m2d.object2d.*; import opale.m2d.component2d.*; import opale.m2d.marktype.*; import opale.mathtools.*; import opale.tools.*; import java.awt.*; import java.awt.event.*; public class Transform2D extends JFrame2D implements OTest { GPoint2D p,pp,p2,pp2; public void run(String path) { try { OIJ repere = new OIJ(0,0,1,0,1,1); OIJ repere2 = new OIJ(1,2,1,0,0,1); System.out.println(repere.toLongString()); getAxis().drawScale(false); //getCS().setOIJ(repere); getCS().normadjust(); p = new GPoint2D(repere,1,0); p2 = new GPoint2D(repere2,1,3); DefaultGraphicalOptions info = (DefaultGraphicalOptions) p.getInfo(); info.setColor(Color.red); DefaultGraphicalOptions info2 = (DefaultGraphicalOptions) p2.getInfo(); info2.setColor(Color.blue); DiamondPoint dp = new DiamondPoint(); dp.setMarksize(5); info.setMarktype(dp); info2.setMarktype(dp); AffineTransform2D t = new AffineTransform2D(); t.rotate(Math.PI/2,0,0); // one rotation // t.translate(3,-2); // one translation //t.scale(1.5,0.5); // one scaling pp = new GPoint2D(p); pp2 = new GPoint2D(p2); pp.transform(t); pp2.transform(t); getPack2D().add(repere,"repere"); getPack2D().add(repere2,"repere2"); getPack2D().add(p,"A"); getPack2D().add(p2,"B"); getPack2D().add(pp,"A'"); getPack2D().add(pp2,"B'"); getPack2D().add(t,"transf"); WFile f= new WFile(path+"wf.txt"); getPack2D().write(f); f.close(); StreamReader fr = new StreamReader(path+"wf.txt"); Pack2D pack = new Pack2D(); pack.read(fr); AffineTransform2D tt = (AffineTransform2D) pack.getObject("transf"); System.out.println("avant change oij"+tt); tt.changeOIJ((OIJ) pack.getObject("repere")); System.out.println("apres change oij"+tt); f.close(); } catch (opale.m2d.OIJException e) { } catch ( java.io.IOException e) { System.out.println(e); System.exit(-1); } catch (InvalidFormatException e) { System.out.println(e); System.exit(-1); } } public void stop() { dispose(); } } OpaleV1b8/otests/m2d/Function/description.txt100644 0 0 114 7553047150 16524 0ustar 0 0 Ce cas test trace les deux fonctions suivantes f(x) = sin(x) et f(x) = x-x OpaleV1b8/otests/m2d/Function/Function.java100644 0 0 5352 7553047150 16121 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ package otests.m2d.Function; import opale.tools.*; import opale.m2d.*; import opale.m2d.object2d.*; import opale.mathtools.*; import java.awt.*; import java.awt.event.*; public class Function extends Frame implements OTest { OIJ repere; LinLinCS vue; GAxis2D axes; GyFx sin,x3; //deux fonctions y=f(x) GData2D xy ; //une fonction paramtrique //Gexp exp ; //une fonction exponentielle public void run(String path) { setSize(400,400); repere = new OIJ(); vue = new LinLinCS(repere,25,25,350,350); axes = new GAxis2D(vue); axes.drawLabel(false); axes.drawScale(false); ((InfoAxis) axes.getInfo()).setTick(0,1,0,1); sin = new GyFx(repere); sin.set(new IyFx() { public double val(double x) {return Math.sin(x);}},"sin(x)",-5,5,100); sin.getInfo().setColor(Color.red); x3 = new GyFx(repere); x3.set(new IyFx() { public double val(double x) {return x*x*x-x;}},"x*x*x-x",-5,5,100); x3.getInfo().setColor(Color.blue); xy = new GData2D(repere); xy.set(new opale.mathtools.IxyFt() { public double x(double t) { return 7*Math.sin(t);}; public double y(double t) { return 7*Math.cos(3*t);} } ,-9,9,100); //exp = new Gexp(repere,0.1,-1,-5); //exp.set(-10,4,100); //exp.getInfo().setColor(Color.green); addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent e) { vue.setSize(25,25,getWidth()-50,getHeight()-50); vue.autoadjust(); repaint(); } }); } public void paint(Graphics g) { Pen2D c = new Pen2D(g,vue); c.clip(); axes.draw(c); sin.draw(c); x3.draw(c); xy.draw(c); //exp.draw(c); } public void stop() { dispose(); } } OpaleV1b8/otests/m2d/Fit/data.txt100644 0 0 54 7553047150 14032 0ustar 0 0 0 0 1 1.2 2 1.9 3 3.4 4 4.3 5 4.7 6 7 7 5 OpaleV1b8/otests/m2d/Fit/description.txt100644 0 0 176 7553047150 15471 0ustar 0 0 Ce test dessine un nuage de points partir d'un fichier de donnes numriques : data.txt et effectue une rgression linaire OpaleV1b8/otests/m2d/Fit/Fit.java100644 0 0 4632 7553047150 14013 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ package otests.m2d.Fit; import opale.tools.*; import opale.m2d.*; import opale.m2d.object2d.*; import java.awt.*; import java.awt.event.*; public class Fit extends Frame implements OTest { OIJ repere; LinLinCS vue; GAxis2D axes; GData2D data; GLine2D regressionlin; public void run(String path) { setSize(400,400); repere = new OIJ(); vue = new LinLinCS(repere,25,25,350,350); axes = new GAxis2D(vue); ((InfoAxis) axes.getInfo()).setTick(0,1,0,1); try { StreamReader fichier = new StreamReader(path+"data.txt"); data = new GData2D(repere); data.readData(fichier); data.getInfo().setColor(Color.red); } catch (java.io.IOException e) { System.out.println(e); System.exit(-1); } catch (InvalidFormatException e) { System.out.println(e); System.exit(-1); } regressionlin =new GLine2D(data.regLinear()); regressionlin.getInfo().setColor(Color.blue); System.out.println("linear fit : "+regressionlin); addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent e) { vue.setSize(25,25,getWidth()-50,getHeight()-50); vue.normadjust(); repaint(); } }); } public void paint(Graphics g) { Pen2D c = new Pen2D(g,vue); axes.draw(c); data.draw(c); regressionlin.draw(c); } public void stop() { dispose(); } } OpaleV1b8/otests/m2d/PointVect/PointVect.java100644 0 0 5661 7553047150 16400 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ package otests.m2d.PointVect; import opale.tools.*; import opale.m2d.*; import opale.m2d.object2d.*; import opale.m2d.marktype.*; import java.awt.*; import java.awt.event.*; public class PointVect extends Frame implements OTest { OIJ repere; LinLinCS vue; GAxis2D axes; GPoint2D[] tabPoint; GVector2D[] tabVect; public void run(String path) { setSize(400,400); repere = new OIJ(); vue = new LinLinCS(repere,25,25,350,350); axes = new GAxis2D(vue); ((InfoAxis) axes.getInfo()).setTick(0,1,0,1); tabPoint = new GPoint2D[10]; tabVect = new GVector2D[5]; int i; DefaultGraphicalOptions infopt; InfoVector infovct; Color color; for (i=0;i<10;i++) { tabPoint[i] = new GPoint2D(repere,-10+Math.random()*15,-10+Math.random()*15); DiamondPoint dp = new DiamondPoint(); dp.setMarksize(5); infopt = (DefaultGraphicalOptions) tabPoint[i].getInfo(); infopt.setMarktype(dp); color= new Color((int) (Math.random()*200),(int) (Math.random()*200),(int) (Math.random()*200)); infopt.setColor(color); } for (i=0;i<5;i++) { tabVect[i] = new GVector2D(repere,-10+Math.random()*15,-10+Math.random()*15); infovct = (InfoVector) tabVect[i].getInfo(); infovct.setSymbol((int) (Math.random()*9)); infovct.setSize(20); color= new Color((int) (Math.random()*200),(int) (Math.random()*200),(int) (Math.random()*200)); infovct.setColor(color); } addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent e) { vue.setSize(25,25,getWidth()-50,getHeight()-50); vue.normadjust(); repaint(); } }); show(); } public void paint(Graphics g) { int i; Pen2D c = new Pen2D(g,vue); axes.draw(c); for (i=0;i<10;i++) { tabPoint[i].draw(c); } for (i=0;i<5;i++) { tabVect[i].draw(c); } } public void stop() { dispose(); } } OpaleV1b8/otests/m2d/PointVect/description.txt100644 0 0 223 7553047150 16653 0ustar 0 0 Ce cas test consiste dessiner dans un repre orthonorm une srie de points et de vecteurs de couleur et de formes difrentes tires au hasard. OpaleV1b8/otests/m2d/Line/Line.java100644 0 0 5757 7553047150 14336 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ package otests.m2d.Line; import opale.tools.*; import opale.m2d.*; import opale.m2d.object2d.*; import java.awt.*; import java.awt.event.*; public class Line extends Frame implements OTest { OIJ repere; LinLinCS vue; GAxis2D axes; GLine2D line1,line2,line3; public void run(String path) { setSize(400,400); repere = new OIJ(); vue = new LinLinCS(repere,25,25,350,350); axes = new GAxis2D(vue); ((InfoAxis) axes.getInfo()).setTick(0,1,0,1); try { line1 = new GLine2D(repere,1,1,1); //x+y1=0 line2 = new GLine2D(repere,1,-1,0); //x=y line3 = new GLine2D(repere,1,-1,6); //x=y } catch (LineException e) { System.out.println (e); // ne devrait jamais arriver. } line1.getInfo().setColor(Color.blue); line2.getInfo().setColor(Color.red); line3.getInfo().setColor(Color.yellow); addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent e) { vue.setSize(25,25,getWidth()-50,getHeight()-50); vue.normadjust(); repaint(); } }); System.out.println("Droite bleue : "+line1); System.out.println("Droite rouge : "+line2); System.out.println("Droite jaune : "+line3); System.out.println(); System.out.println("Droite bleue et rouge parallles : "+line1.isParall(line2)); System.out.println("Droite bleue et jaune parallles : "+line1.isParall(line3)); System.out.println("Droite rouge et jaune parallles : "+line2.isParall(line3)); System.out.println(); System.out.println("Droite bleue et rouge orthogonales : "+line1.isOrtho(line2)); System.out.println("Droite bleue et jaune orthogonales : "+line1.isOrtho(line3)); System.out.println("Droite rouge et jaune orthogonales : "+line2.isOrtho(line3)); show(); } public void paint(Graphics g) { Pen2D c = new Pen2D(g,vue); axes.draw(c); line1.draw(c); line2.draw(c); line3.draw(c); } public void stop() { dispose(); } } OpaleV1b8/otests/m2d/Line/description.txt100644 0 0 144 7553047150 15631 0ustar 0 0 Ce cas test trace 3 droites dont deux sont parallles et l'autre erpendiculaire aux deux premires. OpaleV1b8/otests/m2d/Conic/Conic.java100644 0 0 3530 7553047150 14631 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ package otests.m2d.Conic; import opale.m2d.*; import opale.m2d.object2d.*; import opale.m2d.component2d.*; import opale.tools.*; import opale.mathtools.*; import java.awt.*; import java.awt.event.*; public class Conic extends JFrame2D implements OTest { GConic ellipse,parabole; public void run(String path) { OIJ repere = new OIJ(); getAxis().drawScale(false); ellipse = new GConic(repere); ellipse.getInfo().setColor(Color.red); ellipse.setParams(0.9,1,0.78); parabole = new GConic(repere); parabole.getInfo().setColor(Color.blue); parabole.setParams(1,1,-Math.PI/4); getPack2D().add(repere,"repere"); getPack2D().add(ellipse,"ellipse"); getPack2D().add(parabole,"parabole"); show(); } public void stop() { dispose(); } } OpaleV1b8/otests/m2d/Conic/description.txt100644 0 0 166 7553047150 16001 0ustar 0 0 Ce cas test trace une cardioide d'equation polaire r(theta) = 1+cos(theta) et la courbe d'equation r(t)=ln(1-sin(t)). OpaleV1b8/otests/m2d/Frame2D/description.txt100644 0 0 204 7553047150 16157 0ustar 0 0 Ce cas test montre la mise en oeuvre de la class Frame2D qui simplifie la cration d'une fenetre graphique contenant des objets 2d. OpaleV1b8/otests/m2d/Frame2D/Frame2D.java100644 0 0 3627 7553047150 15212 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ package otests.m2d.Frame2D; import opale.tools.*; import opale.m2d.*; import opale.m2d.object2d.*; import opale.m2d.component2d.*; import java.awt.*; import java.awt.event.*; public class Frame2D extends opale.m2d.component2d.Frame2D implements OTest { public void run(String path) { try { StreamReader f= new StreamReader(path+"essai.txt"); getPack2D().read(f); getPack2D().legend().setLocation(200,50); getPack2D().legend().setVisible(true); getCS().setOIJ((OIJ)getPack2D().getObject("rep1")); GAxis2D axes = getAxis(); axes.drawLabel(false); ((InfoAxis) axes.getInfo()).setTick(0,1,0,1); } catch ( java.io.IOException e) { System.out.println(e); System.exit(-1); } catch (InvalidFormatException e) { System.out.println(e); System.exit(-1); } show(); } public void stop() { dispose(); } } OpaleV1b8/otests/m2d/Frame2D/essai.txt100644 0 0 565 7553047150 14752 0ustar 0 0 OIJ rep1 { O 0.0 0.0 I 2.0 0.0 J 0.0 2.0 } Point pt { OIJ rep1 X 4.5 Y 0 INFO { NAME d COLOR 255 0 0 } } f(x) f { OIJ rep1 f(x)= '2*x*x-4' Xinf 0 Xsup 10 INFO { COLOR 100 100 100 MARK_TYPE XPoint { SIZE 5 } } } Line d { OIJ rep1 a 1 b 2 c 4 INFO { VISIBLE YES COLOR 200 255 0 } } Vector vecteur1 { INFO { COLOR 0 255 0 NAME d SIZE 10 } X 4.5 Y 5.0 OIJ rep1 } OpaleV1b8/otests/m2d/Pack2d/description.txt100644 0 0 212 7553047150 16042 0ustar 0 0 Ce cas test lit un fichier de donns qui comporte un point, vecteur, une droite et un nuage de points; puis dessine ces objets l'ecran. OpaleV1b8/otests/m2d/Pack2d/Pack2d.java100644 0 0 4425 7553047150 14757 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ package otests.m2d.Pack2d; import opale.tools.*; import opale.m2d.*; import opale.m2d.object2d.*; import java.awt.*; import java.awt.event.*; public class Pack2d extends Frame implements OTest { OIJ repere; LinLinCS vue; GAxis2D axes; Pack2D pack; public void run(String path) { setSize(400,400); pack = new Pack2D(); try { StreamReader f= new StreamReader(path+"essai.o2d"); pack.read(f); pack.legend().setLocation(200,50); pack.legend().setVisible(true); repere = (OIJ)pack.getObject("rep1"); vue = new LinLinCS(repere,25,25,350,350); axes = new GAxis2D(vue); axes.drawLabel(false); ((InfoAxis) axes.getInfo()).setTick(0,1,0,1); } catch ( java.io.IOException e) { System.out.println(e); System.exit(-1); } catch (InvalidFormatException e) { System.out.println(e); System.exit(-1); } addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent e) { vue.setSize(25,25,getWidth()-50,getHeight()-50); vue.normadjust(); repaint(); } }); } public void paint(Graphics g) { Pen2D c = new Pen2D(g,vue); axes.draw(c); c.clip(); pack.draw(c); } public void stop() { dispose(); } } OpaleV1b8/otests/m2d/Pack2d/essai.o2d100644 0 0 1204 7553047150 14512 0ustar 0 0 OIJ rep1 { O 0.0 0.0 I 1.0 1.0 J 0.0 1.0 } Point pt { OIJ rep1 X 4.5 Y 0 INFO { NAME d COLOR 255 0 0 } } f(x) f { OIJ rep1 f(x)= '2*x*x-4' Xinf 0 Xsup 10 INFO { COLOR 100 100 100 MARK_TYPE DiamondPoint { SIZE 5 } } } Data nuage { OIJ rep1 N 7 Points 0 0 1 1 0 3 1 4 4 2 -5 8 -3 -4 INFO { COLOR 200 0 0 } } Data nuage1 { OIJ rep1 N 7 Points 0 2 1 0 1 -4 -3 4 4 1 5 8 3 -4 INFO { COLOR 100 100 100 } } Line d { OIJ rep1 a 1 b 2 c 4 INFO { VISIBLE YES COLOR 200 255 0 } } Vector vecteur1 { INFO { COLOR 0 255 0 NAME d SIZE 10 } X 4.5 Y 5.0 OIJ rep1 } Conic parabole { INFO { COLOR 100 200 255 } e 1 p 2 theta0 0 OIJ rep1 } OpaleV1b8/otests/m2d/Data2d/data.o2d100644 0 0 107 7553047150 14273 0ustar 0 0 -8 7 -7 4 -6 2 -5 2 -2 0 -1 -3 -0.5 -0.5 0 1 4 -1 5 2 7 3 8 4 9 4.5 OpaleV1b8/otests/m2d/Data2d/description.txt100644 0 0 132 7553047150 16036 0ustar 0 0 Ce test dessine un nuage de points partir d'un fichier de donnes numriques : data.txt OpaleV1b8/otests/m2d/Data2d/Data2d.java100644 0 0 4365 7553047150 14750 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ package otests.m2d.Data2d; import opale.tools.*; import opale.m2d.*; import opale.m2d.object2d.*; import opale.tools.*; import java.awt.*; import java.awt.event.*; public class Data2d extends Frame implements OTest { OIJ repere; LinLinCS vue; GAxis2D axes; GData2D data; public void run(String path) { setSize(400,400); repere = new OIJ(); vue = new LinLinCS(repere,25,25,350,350); axes = new GAxis2D(vue); ((InfoAxis) axes.getInfo()).setTick(0,1,0,1); try { StreamReader fichier = new StreamReader(path+"data.o2d"); data = new GData2D(repere); data.readData(fichier); data.getInfo().setColor(Color.red); } catch (java.io.IOException e) { System.out.println(e); System.exit(-1); } catch (InvalidFormatException e) { System.out.println(e); System.exit(-1); } addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent e) { vue.setSize(25,25,getWidth()-50,getHeight()-50); vue.normadjust(); repaint(); } }); show(); } public void paint(Graphics g) { Pen2D c = new Pen2D(g,vue); axes.draw(c); data.draw(c); } public void stop() { dispose(); } } OpaleV1b8/otests/m2d/Polarf/description.txt100644 0 0 166 7553047150 16171 0ustar 0 0 Ce cas test trace une cardioide d'equation polaire r(theta) = 1+cos(theta) et la courbe d'equation r(t)=ln(1-sin(t)). OpaleV1b8/otests/m2d/Polarf/Polarf.java100644 0 0 3712 7553047150 15213 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ package otests.m2d.Polarf; import opale.tools.*; import opale.m2d.*; import opale.m2d.object2d.*; import opale.m2d.component2d.*; import opale.mathtools.*; import java.awt.*; import java.awt.event.*; public class Polarf extends JFrame2D implements OTest { GFPolar card,bidon; public void run(String path) { OIJ repere = new OIJ(); getAxis().drawScale(false); card = new GFPolar(repere); card.set(new IyFx() { public double val(double x) {return 1+Math.cos(x);}},"1+cos(t)"); card.getInfo().setColor(Color.red); bidon = new GFPolar(repere); bidon.set(new IyFx() { public double val(double x) {return Math.log(1-Math.sin(x));}},"ln(1-sin(x)",-1.57,1.57,200); bidon.getInfo().setColor(Color.blue); getPack2D().add(repere,"repere"); getPack2D().add(card,"cardioide"); getPack2D().add(bidon,"bidon"); show(); } public void stop() { dispose(); } } OpaleV1b8/otests/mathtools/Integration/Integration.java100644 0 0 3132 7553047147 20645 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ package otests.mathtools.Integration; import opale.mathtools.*; import opale.tools.*; public class Integration implements OTest { public void run(String path) { AnalyticalFunction f = new AnalyticalFunction(); f.setFunc("x*x"); RectangleRule rect = new RectangleRule(); TrapezoidalRule trap = new TrapezoidalRule(); Stdio.println("f(x)=x*x"); Stdio.println("Rectangle rule : "+rect.integrate(f,0,1,500)); Stdio.println("Trapezoidal rule : "+trap.integrate(f,0,1,100) + " NITER = " + trap.NITER); } public void stop() {}; } OpaleV1b8/otests/mathtools/InsertionSort/InsertionSort.java100644 0 0 2746 7553047150 21547 0ustar 0 0 /* * OPALE is a scientific library under LGPL. Its main goal is to * develop mathematical tools for any scientist. * * Copyright (C) 2002 Opale Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can visit the web site http://opale.tuxfamily.org to obtain more * informations about this program and/or to contact the authors by mail * developers@opale.tuxfamily.org. */ package otests.mathtools.InsertionSort; import opale.tools.OTest; public class InsertionSort implements OTest { public void run(String path) { double[] a={4.3,23.4,56.4,-1,-45.5,-10033490234.4,2340539050.45345,56.55,56.54,-123.5}; opale.mathtools.InsertionSort sort = new opale.mathtools.InsertionSort(); sort.sort(a.length,a); for (int i=0;i" echo "where is the list of modules to build." exit -1 } if [ $# == 0 ] then usage fi echo "The compiler is " $JC if [ -d $DEST/opale ] then rm -rf $DEST/opale fi mkdir $DEST/opale/ #tools,swools, matrix, and mathtools cp -rf $OPALE_DIR/opale/tools $DEST/opale cp -rf $OPALE_DIR/opale/swools $DEST/opale cp -rf $OPALE_DIR/opale/mathtools $DEST/opale cp -rf $OPALE_DIR/opale/matrix $DEST/opale cp -rf $OPALE_DIR/opale/cst $DEST/opale $JC -d $DEST $OPALE_DIR/opale/tools/*.java $JC -d $DEST $OPALE_DIR/opale/swools/*.java $JC -d $DEST $OPALE_DIR/opale/mathtools/*.java $JC -d $DEST $OPALE_DIR/opale/matrix/*.java $JC -d $DEST $OPALE_DIR/opale/cst/*.java for i in $@ do echo "building opale.$i ..." #Copy all the files to be sure to have resources files. cp -rf $OPALE_DIR/opale/$i $DEST/opale # compiles find $OPALE_DIR/opale/$i -name '*.java' -exec $JC -d $DEST {} \; done # delete *.java files find $DEST/opale -name '*.java' -exec rm -rf {} \; echo "Building the archive opale.jar" cd $DEST jar cfm opale.jar $OPALE_DIR/utils/sh/Manifest opale OpaleV1b8/utils/sh/ocompile.sh100644 0 0 2603 7553047150 13612 0ustar 0 0 #!/bin/sh # Compiles all files. # NOTE : It is possible to use a script more light with the command 'find ... -exec javac ... ' but the result will be slower !! if [ -z "$OPALE_DIR" ] then echo "OPALE_DIR not initialized !" exit -1 fi if [ -z "$JC" ] then JC='jikes ' #Jikes #JC='jikes -encoding iso-8859-1 ' #Jikes #JC=javac # or javac (Sun, Ibm, Blackdown ...) fi echo "The compiler is " $JC echo "OPALE DIRECTORY : " $OPALE_DIR $JC $OPALE_DIR/opale/*.java #Compilation de opale/tools echo "building opale.tools" $JC $OPALE_DIR/opale/tools/*.java #Compilation de opale/swools echo "building opale.swools" $JC $OPALE_DIR/opale/swools/*.java #Compilation de opale/mathtools echo "building opale.mathtools" $JC $OPALE_DIR/opale/mathtools/*.java $JC $OPALE_DIR/opale/mathtools/parser/*.java #Compilation de opale/matrix echo "building opale.matrix" $JC $OPALE_DIR/opale/matrix/*.java $JC $OPALE_DIR/opale/matrix/solver/*.java #Compilation de opale/cst echo "building opale.cst" $JC $OPALE_DIR/opale/cst/*.java $JC $OPALE_DIR/opale/cst/chemistry/*.java #Compilation de opale/ode echo "building opale.ode" $JC $OPALE_DIR/opale/ode/*.java $JC $OPALE_DIR/opale/ode/scheme/*.java #Compilation de opale/m2d echo "building opale.m2d" $JC $OPALE_DIR/opale/m2d/*.java $JC $OPALE_DIR/opale/m2d/object2d/*.java $JC $OPALE_DIR/opale/m2d/component2d/*.java $JC $OPALE_DIR/opale/m2d/marktype/*.java OpaleV1b8/utils/sh/onedit100644 0 0 247 7553047150 12636 0ustar 0 0 #!/bin/sh if [ -z "$OPALE_DIR" ] then echo "OPALE_DIR not initialized !" exit -1 fi nedit -tags $OPALE_DIR/utils/sh/tags -import $OPALE_DIR/utils/sh/nedit.opale $1 OpaleV1b8/utils/sh/ocleandir.sh100644 0 0 125 7553047150 13720 0ustar 0 0 #!/bin/sh echo "Cleaning all *.class files in the current directory" rm -rf *.class OpaleV1b8/utils/sh/documentation.txt100644 0 0 2177 7553047150 15067 0ustar 0 0 ############################ ## Documentation des scripts ############################ *) ocleandir.sh Permet d'effacer tous les fichiers *.class du rpertoire courant. *) ocleanall.sh Permet d'effacer tous les fichiers *.class de la bibliothque Opale. *) ocompile.sh Compile toutes les classes de la bibliothque Opale. *) omakearch.sh Compile toutes les classes de la bibliothque Opale et cre une archive opale.jar dans le rpertoire $OPALE_DIR/arch/. *) omakedir.sh Compile tous les fichiers *.java du rpertoire courant. *) omakedoc Gnre la documentation de toutes les classes du projet grce l'outil javadoc, et place le rsultat dans le rpertoire $OPALE_DIR/documentation/API. *) obuildarch.sh Cre une archive opale.jar contenant uniquement les modules spcifis en argument. *) ofind.sh Cherche un mot cl dans tous les fichiers sources d'Opale. *) omaketests.sh Compile tous les tests dans le rpertoire $OPALE_DIR/tests. *) oruntest.sh Execute la suite de tests automatique. *) omake.sh Compile le package dont le nom est pass en paramtre. Si aucun paramtre est pass, tous les packages sont compiles. OpaleV1b8/utils/sh/omakedir.sh100644 0 0 315 7553047150 13554 0ustar 0 0 #!/bin/sh if [ -z "$JC" ] then JC='jikes ' #Jikes #JC='jikes -encoding iso-8859-1 -nowarn' #Jikes #JC=javac # or javac (Sun, Ibm, Blackdown ...) fi echo "Compilation du rpertoire courant" $JC *.java OpaleV1b8/utils/sh/Manifest100644 0 0 104 7553047150 13112 0ustar 0 0 Manifest-Version: 1.0 Main-Class: opale.Info Created-By: Opale team OpaleV1b8/utils/sh/ofind.sh100644 0 0 1154 7553047150 13102 0ustar 0 0 #!/bin/sh # # O.C. 01/2001 # # Find a string in the source files of Opale # #if [ -e type grep ] #then echo "bonjour" #else echo "bye" #fi if [ -z "$OPALE_DIR" ] then echo "OPALE_DIR not initialized !" exit -1 fi if [ -z "$1" ] then echo "String to find in Opale ?" read WORD else WORD=$1 fi echo "==============================================" echo "Searching the word $WORD in Opale..." echo "==============================================" grep -ns $WORD -r $OPALE_DIR/opale #grep -ns $WORD -r $OPALE_DIR/opale #find $OPALE_DIR/opale/ -name '*.java' -exec grep $WORD {} \; echo "End of process" OpaleV1b8/utils/sh/omakedoc.sh100644 0 0 1255 7553047150 13567 0ustar 0 0 #!/bin/sh if [ -z "$OPALE_DIR" ] then echo "OPALE_DIR not initialized !" exit -1 fi echo "--------------------------------------" echo "Creates the documentation with javadoc" echo "--------------------------------------" javadoc -author -version -windowtitle "Opale API documentation" -sourcepath $OPALE_DIR -d $OPALE_DIR/documentation/API/ -version opale opale.ode opale.ode.scheme opale.m2d opale.m2d.component2d opale.m2d.object2d opale.tools opale.matrix opale.matrix.solver opale.mathtools opale.mathtools.parser opale.m3d opale.m3d.object3d opale.m3d.java opale.m3d.component3d opale.m3d.component3d.java echo "The documentation is put in " $OPALE_DIR/documentation/API OpaleV1b8/utils/sh/ocleanall.sh100644 0 0 335 7553047150 13715 0ustar 0 0 #!/bin/sh # Deletes all *.class files in opale. if [ -z "$OPALE_DIR" ] then echo "OPALE_DIR not initialized !" exit -1 fi echo "Deleting all *.class files..." find $OPALE_DIR/opale/ -name '*.class' -exec rm -rf {} \; OpaleV1b8/utils/sh/replaceall.sh100644 0 0 1050 7553047150 14102 0ustar 0 0 #!/bin/sh if [ -z "$OPALE_DIR" ] then echo "OPALE_DIR not initialized !" exit -1 fi usage() { echo "Usage : oreplace.sh str new" echo "Replace in all *.java files the string 'str' by the string 'new'." exit -1 } if [ $# != 2 ] then usage fi echo "You want replace ' $1 ' by '$2 '. Are you sure (y/n) ???" read REP if [ $REP == 'y' ] then #find $OPALE_DIR/opale/ -name '*.java' -exec sed -e 's/'$1'/'$2'/' {} > $OPALE_DIR/utils/tmp/{} \; find $OPALE_DIR/opale/ -name '*.java' -exec `echo $OPALE_DIR/utils/tmp/{}` \; else echo "Ciao !" fi OpaleV1b8/utils/sh/omake.sh100644 0 0 1055 7553047150 13077 0ustar 0 0 #!/bin/sh # Compiles the selected package. if [ -z "$OPALE_DIR" ] then echo "OPALE_DIR not initialized !" exit -1 fi if [ -z "$JC" ] then JC='jikes ' #Jikes #JC='jikes -encoding iso-8859-1 ' #Jikes #JC=javac # or javac (Sun, Ibm, Blackdown ...) fi echo "The compiler is " $JC echo "OPALE DIRECTORY : " $OPALE_DIR if [ $# == 0 ] then echo "building all opale ..." find $OPALE_DIR/opale/ -name '*.java' -exec $JC {} \; else for i in $@ do echo "building opale.$i ..." # compile find $OPALE_DIR/opale/$i -name '*.java' -exec $JC {} \; done fi OpaleV1b8/utils/sh/oruntest.sh100644 0 0 360 7553047150 13644 0ustar 0 0 #!/bin/sh # Run the test suite. if [ -z "$OPALE_DIR" ] then echo "OPALE_DIR not initialized !" exit -1 fi echo "OPALE DIRECTORY : " $OPALE_DIR java -classpath $OPALE_DIR:$OPALE_DIR/opale.jar -DOPALE_DIR=$OPALE_DIR opale.tools.ORunTest OpaleV1b8/utils/dos/omakedoc.bat100644 0 0 1004 7553047147 14074 0ustar 0 0 @echo off if "%OPALE_DIR%" == "" goto error javadoc -windowtitle "Opale API V1b3 documentation" -sourcepath $OPALE_DIR -d $OPALE_DIR/documentation/API/ -version opale opale.ode.ker opale.ode.scheme opale.m2d.ker opale.m2d.component2d opale.m2d.object2d opale.tools opale.matrix opale.matrix.solver opale.mathtools echo The documentation is put in $OPALE_DIR/documentation/API goto fin :error echo variable OPALE_DIR not set ! echo Please set the OPALE_DIR variable ! echo aborting :fin echo Script finishedOpaleV1b8/utils/dos/omake.bat100644 0 0 771 7553047150 13372 0ustar 0 0 @echo off REM Compiles all files. if "%OPALE_DIR%" == "" goto error if "%OJC%" == "" goto error2 if "%1%" == "" goto all goto fin :all echo "Building all Opale packages" ocompile.bat goto fin :error echo variable OPALE_DIR not set ! echo Please set the OPALE_DIR variable ! echo aborting :error2 echo variable OJC not set ! echo Please set the OJC variable ! echo The OJC variable is your Opale Java Compiler echo which must be define to compile Opale echo aborting :fin echo Script finishedOpaleV1b8/utils/dos/ocleanall.bat100644 0 0 1545 7553047150 14250 0ustar 0 0 @echo off REM Deletes all *.class files in opale. if "%OPALE_DIR%" == "" goto error echo Deleting all *.class files... echo Deleting opale.tools' classes del %OPALE_DIR%\opale\tools\*.class echo Deleting opale.mathtools' classes del %OPALE_DIR%\opale\mathtools\*.class echo Deleting opale.swools' classes del %OPALE_DIR%\opale\swools\*.class echo Deleting opale.matrix classes del %OPALE_DIR%\opale\matrix\*.class del %OPALE_DIR%\opale\matrix\solver\*.class echo Deleting opale.cst classes del %OPALE_DIR%\opale\cst\*.class del %OPALE_DIR%\opale\cst\chemistry\*.class echo Deleting opale.m2d classes del %OPALE_DIR%\opale\m2d\*.class del %OPALE_DIR%\opale\m2d\object2d\*.class del %OPALE_DIR%\opale\m2d\component2d\*.class goto fin :error echo variable OPALE_DIR not set ! echo Please set the OPALE_DIR variable ! echo aborting :fin echo Script finishedOpaleV1b8/utils/dos/oruntest.bat100644 0 0 1020 7553047150 14165 0ustar 0 0 @echo off if "%OPALE_DIR%" == "" goto error if "%OJC%" == "" goto error2 echo OPALE DIRECTORY : %OPALE_DIR% java -classpath %OPALE_DIR%;%OPALE_DIR%opale.jar -DOPALE_DIR=%OPALE_DIR% opale.tools.ORunTest goto fin :error echo variable OPALE_DIR not set ! echo Please set the OPALE_DIR variable ! echo aborting :error2 echo variable OJC not set ! echo Please set the OJC variable ! echo The OJC variable is your Opale Java Compiler echo which must be define to compile Opale echo aborting :fin echo Script finishedOpaleV1b8/utils/dos/ocompile.bat100644 0 0 2737 7553047150 14131 0ustar 0 0 @echo off REM Compiles all files. if "%OPALE_DIR%" == "" goto error if "%OJC%" == "" goto error2 rem We compile opale.tools package echo building opale.tools %OJC% -nowarn -deprecation %OPALE_DIR%\opale\tools\*.java REM then opale.swools echo building opale.swools %OJC% -nowarn -deprecation %OPALE_DIR%\opale\swools\*.java REM then opale.mathtools echo building opale.mathtools %OJC% -deprecation %OPALE_DIR%\opale\mathtools\*.java REM then opale.matrix echo building opale.matrix %OJC% -nowarn -deprecation %OPALE_DIR%\opale\matrix\*.java %OJC% -nowarn -deprecation %OPALE_DIR%\opale\matrix\solver\*.java REM then opale.cst echo building opale.cst %OJC% -nowarn -deprecation %OPALE_DIR%\opale\cst\*.java %OJC% -nowarn -deprecation %OPALE_DIR%\opale\cst\chemistry\*.java REM then opale.ode echo building opale.ode %OJC% -nowarn -deprecation %OPALE_DIR%\opale\ode\*.java %OJC% -nowarn -deprecation %OPALE_DIR%\opale\ode\scheme\*.java REM then opale.m2d echo building opale.m2d %OJC% -nowarn -deprecation %OPALE_DIR%\opale\m2d\*.java %OJC% -nowarn -deprecation %OPALE_DIR%\opale\m2d\object2d\*.java %OJC% -nowarn -deprecation %OPALE_DIR%\opale\m2d\component2d\*.java goto fin :error echo variable OPALE_DIR not set ! echo Please set the OPALE_DIR variable ! echo aborting :error2 echo variable OJC not set ! echo Please set the OJC variable ! echo The OJC variable is your Opale Java Compiler echo which must be define to compile Opale echo aborting :fin echo Script finishedOpaleV1b8/utils/dos/ocleandir.bat100644 0 0 120 7553047150 14222 0ustar 0 0 @echo off REM This script removes all *.class from current directory del *.classOpaleV1b8/utils/dos/README_FIRST.txt100644 0 0 1164 7553047150 14270 0ustar 0 0 ---INSTALLATION NOTES---- You need to setup some environment variables to run the script under Windows 95/98 NT or 2000. *) The OJC environment variable (Opale Java Compiler) is the java compiler's name path. For example : jikes or javac *) The OPALE_DIR environment variable which is the path where Opale library is installed. For example : e:\Opale\ WARNING : do not forget the second anti-slash in e:\Opale\ without it the script will not run !!!!!!!!!!! FOR MORE INFORMATION PLEASE REFER TO THE OFFICIAL OPALE'S INSTALLATION DOCUMENTATION OR VISIT http://opale.tuxfamily.org R.PacOpaleV1b8/utils/dos/omaketests.bat100644 0 0 3411 7553047150 14467 0ustar 0 0 @echo off REM Compiles all tests in $OPALE_DIR/tests. if "%OPALE_DIR%" == "" goto error if "%OJC%" == "" goto error2 echo Compiling m2d tests %OJC% %OPALE_DIR%\tests\m2d\conic\*.java %OJC% %OPALE_DIR%\tests\m2d\data2d\*.java %OJC% %OPALE_DIR%\tests\m2d\fonction\*.java %OJC% %OPALE_DIR%\tests\m2d\frame2d\*.java %OJC% %OPALE_DIR%\tests\m2d\line\*.java %OJC% %OPALE_DIR%\tests\m2d\pack2d\*.java %OJC% %OPALE_DIR%\tests\m2d\pointvect\*.java %OJC% %OPALE_DIR%\tests\m2d\polarf\*.java %OJC% %OPALE_DIR%\tests\m2d\regression\*.java %OJC% %OPALE_DIR%\tests\m2d\transform\*.java echo m2d tests' compilation finished echo Compiling mathtools tests %OJC% %OPALE_DIR%\tests\mathtools\Fixpoint\*.java %OJC% %OPALE_DIR%\tests\mathtools\root\*.java %OJC% %OPALE_DIR%\tests\mathtools\sort\*.java echo mathtools tests' compilation finished echo Compiling matrix tests %OJC% %OPALE_DIR%\tests\matrix\FullLU\*.java %OJC% %OPALE_DIR%\tests\matrix\SymChol\*.java echo matrix tests' compilation finished echo Compiling ode's tests %OJC% %OPALE_DIR%\tests\ode\ee1d\*.java %OJC% %OPALE_DIR%\tests\ode\ee2d\*.java %OJC% %OPALE_DIR%\tests\ode\file\*.java %OJC% %OPALE_DIR%\tests\ode\Pendule\*.java %OJC% %OPALE_DIR%\tests\ode\PredateurProie\*.java %OJC% %OPALE_DIR%\tests\ode\Projectile\*.java %OJC% %OPALE_DIR%\tests\ode\VanDerPol\*.java echo ode's tests' Compilation finished echo Compilation tools tests %OJC% %OPALE_DIR%\tests\tools\RWFile\*.java echo tools tests's compilation finished goto fin :error echo variable OPALE_DIR not set ! echo Please set the OPALE_DIR variable ! echo aborting :error2 echo variable OJC not set ! echo Please set the OJC variable ! echo The OJC variable is your Opale Java Compiler echo which must be define to compile Opale packages echo aborting :fin echo Script finishedOpaleV1b8/utils/dos/omakearch.bat100644 0 0 4325 7553047150 14247 0ustar 0 0 @echo off REM Creates an archive opale.jar with all modules. if "%OPALE_DIR%" == "" goto error if "%OJC%" == "" goto error2 echo "---------------------------------------------------------------" echo "Creates opale.jar in the directory %OPALE_DIR%arch" echo "---------------------------------------------------------------" md %OPALE_DIR%arch REM building opale\tools echo "building opale.tools..." %OJC% -nowarn -deprecation -d %OPALE_DIR%arch %OPALE_DIR%opale\tools\*.java REM opale/cst echo "building opale.cst..." %OJC% -nowarn -deprecation -d %OPALE_DIR%arch %OPALE_DIR%opale\cst\*.java %OJC% -nowarn -deprecation -d %OPALE_DIR%arch %OPALE_DIR%opale\cst\chemistry\*.java REM building de opale\swools echo "building opale.swools..." %OJC% -nowarn -deprecation -d %OPALE_DIR%arch %OPALE_DIR%opale\swools\*.java REM building de opale\mathtools echo "building opale.mathtools..." %OJC% -nowarn -deprecation -d %OPALE_DIR%arch %OPALE_DIR%opale\mathtools\*.java REM building opale\ode echo " building opale\ode " %OJC% -nowarn -deprecation -d %OPALE_DIR%arch %OPALE_DIR%opale\ode\*.java %OJC% -nowarn -deprecation -d %OPALE_DIR%arch %OPALE_DIR%opale\ode\scheme\*.java copy %OPALE_DIR%opale\ode\name.rsc %OPALE_DIR%arch\opale\ode REM building opale\matrix echo "building de opale\matrix" %OJC% -nowarn -deprecation -d %OPALE_DIR%arch %OPALE_DIR%opale\matrix\*.java %OJC% -nowarn -deprecation -d %OPALE_DIR%arch %OPALE_DIR%opale\matrix\solver\*.java REM building de opale\m2d echo "building opale.m2d..." %OJC% -nowarn -deprecation -d %OPALE_DIR%arch %OPALE_DIR%opale\m2d\*.java %OJC% -nowarn -deprecation -d %OPALE_DIR%arch %OPALE_DIR%opale\m2d\object\*.java %OJC% -nowarn -deprecation -d %OPALE_DIR%arch %OPALE_DIR%opale\m2d\component\*.java copy %OPALE_DIR%opale\m2d\list_object.cfg %OPALE_DIR%arch\opale\m2d echo "" echo "Building opale.jar..." cd %OPALE_DIR%arch jar cfm opale.jar %OPALE_DIR%utils\sh\Manifest opale goto fin :error echo variable OPALE_DIR not set ! echo Please set the OPALE_DIR variable ! echo aborting :error2 echo variable OJC not set ! echo Please set the OJC variable ! echo The OJC variable is your Opale Java Compiler echo which must be define to compile Opale echo aborting :fin echo Script finishedOpaleV1b8/contenu.txt100644 0 0 1276 7553047150 12116 0ustar 0 0 opale.jar : archive contenant les classes compiles. opale_src.jar : archive contenant les sources des classes. tests/ : ce rpertoire contient des cas tests. otests/ : la suite de tests automatique d'Opale TEST.TXT : informations sur les tests documentation/ : dans ce rpertoire se trouvent la documention de l'API gnre par javadoc ainsi qu'une documentation sur le module 2d (ecrite avec Latex et prsente ici au format ps) et une pour le module ODE. utils/ : les scripts de compilation , d'archivage et de creation de la documentation (Pour UNIX/sh seulement pour l'instant). BUGS : les bugs connus d'Opale. INSTALL.fr: ficher d'aide l'installation d'Opale. contenu.txt : ce fichier OpaleV1b8/BUGS100644 0 0 2407 7553047150 10362 0ustar 0 0 Liste des bugs connus : (liste TOTALEMENT incompltes, pas suffisament de tests effectus) *) l'objet 2d xyFt ne tient pas compte des changements de repre lors de son trac. *) Le fichier ressource name_object.rsc se trouve normalement dans le package opale.tools et est lu par le constructeur de la classe OpaleSet ou de ses classes filles. Ce fichier est bien trouv lors de l'execution s'il est lu par la classe mre OpaleSet mais introuvable s'il est lu par une classe fille (en l'occurence ODE et Pack2D) : il est alors ncessaire de placer une copie de ce fichier dans les rprtoires des classes filles (en l'occurence opale.ode et opale.m2d) -> Situation pas idale ! il ne faudrait qu'un seul exemplaire de ce fichier dans opale.tools uniquement. *) Dans la classe GLine2D, le dessin des droites dborde hors des bornes du systme de coordonnes (sauf si on fait un clip()). *) Gestion des repres incorrectes dans la classe JFrame2D ainsi qu'un bug dans le selecteur de repres associ (la classe OIJListBeans, a priori que sous linux??) *) Bug dans l'affichage des GAxis2D. Si l'echelle est trop large, l'affichage de l'echelle plante. *) m2d : Dessins des points en forme de diamand, cercle, sont pas 'nets' : pb d'arrondis dans les conversions des coordonnes ?? OpaleV1b8/INSTALL_FR.txt100644 0 0 7167 7553047150 12145 0ustar 0 0 ################################## ## Opale V1bx ## ## NOTES POUR L'INSTALLATION ## ################################## Selon l'usage envisag de la bibliothque Opale, deux types d'installation s'offrent vous : l'installation utilisateur ou l'installation dveloppeur. Essentiellement elles sont identiques si ce n'est que l'installation dveloppeur consiste dfinir des variables d'environnement afin de pouvoir utiliser des scripts facilitant les tches de compilation. 1)INSTALLATION UTILISATEUR Pour utiliser les classes de la librairie dans vos propres programmes, il suffit de placer dans la variable CLASSPATH le chemin complet de l'archive opale.jar. Par exemple en bash : export CLASSPATH=$CLASSPATH:/home/cioni/OpaleV1b2/opale.jar Une autre possibilit consiste indiquer chaque fois la machine virtuelle java le chemin de l'archive, par exemple : java -classpath .:/home/cioni/OpaleV1b2/opale.jar MyClass Si vous dsirez utiliser la bibliothque opale dans une applet il suffit d'indiquer dans le champ ARCHIVE du tag APPLET le chemin de l'archive opale.jar. Par exemple si l'archive opale.jar se trouve au mme niveau que la classe applet, on crira : 2)INSTALLATION DEVELOPPEUR (POUR UNIX SEULEMENT) Cette installation vous concerne si vous dsirez dvelopper vos propres classes directement dans le projet et/ou modifier, amliorer certaines existantes. Elle a pour but de mettre disposition du programmeur des scripts facilitant la compilation du projet, la cration de la documentation de l'API... Pour dcompresser les sources : jar xvf opale_src.jar On obtient le rpertoire opale/ et les sous rpertoires correspondants aux modules prsents dans la version courante de Opale. Pour pouvoir travailler avec ces sources il convient de placer dans le CLASSPATH le chemin complet du rpertoire opale/ par exemple sous le shell bash: export CLASSPATH=$CLASSPATH:/home/cioni/OpaleV1b2/ si opale/ se trouve dans /home/cioni/OpaleV1b2/. De plus pour bnficier des outils (scripts prsents dans le sous-rpertoire utils/sh/) il faut placer la variable d'environnement OPALE_DIR de telle sorte qu'elle indique aussi le chemin d'accs au rpertoire opale/. Cette variable permet d'utiliser les scripts contenus dans utils/sh/ qui servent simplifier les tches de compilation (voir utils/sh/documentation.txt). Par exemple : export OPALE_DIR=/home/cioni/OpaleV1b2/ Enfin vous pouvez rajouter le chemin $OPALE_DIR/utils/sh la variable d'environnement PATH afin de pouvoir acceder directement aux scripts de n'importe quel endroit. En bash : export PATH=$PATH:$OPALE_DIR/utils/sh L'automatisation de ces tches est possible par exemple en crivant les instructions prcdentes dans le fichier .bash_profile qui est execut chaque ouverture de terminal sous bash. Pour l'instant ces scripts sont crits uniquement en shell sh et fonctionnent donc sous la plupart des systmes Unix. Une version DOS de ces scripts est prvue. ** ASTUCES ** Si vous desirez travailler avec plusieurs versions d'Opale, il est peut tre bon de crer un lien symbolique comme suit ln -s ~/OpaleV1b2/ ~/Opale vous changez le lien des que vous voulez changer de version, vos PATH, CLASSPATH ET OPALE_DIR peuvent ainsi toujours rester sur ~/Opale de la maintenance en moins c'est toujours bon a prendre. Une fois que l'installation est faite, vous pouvez tester l'archive en tapant java opale.Info : si un message d'information sur Opale apparait c'est que l'installation s'est bien passe. Ensuite il est possible de lancer des cas tests ; pour cela lire le fichier TEST.TXT. OpaleV1b8/content.txt100644 0 0 1137 7553047150 12111 0ustar 0 0 opale.jar : archive containing compiled classes opale_src.jar : archive containing the classes' sources tests/ : this directory contains test cases otests : automatic test suite of Opale TEST_EN.TXT : information about the tests documentation/ : documentation on the API generated by javadoc can be found in this directory as well as documentation on the 2D module (written with LaTeX in the ps format) and on the ODE module. utils/ : the scripts for compilation, filing and creation of documentation. (For Unices only in the sub-directory /sh). BUGS : Known bugs of Opale content.txt : This file OpaleV1b8/ChangeLog_EN100644 0 0 5602 7553047150 12033 0ustar 0 0 =================== ***************** OPALE HISTORY ***************** =================== *) OpaleV1b8 *********************** ->> Modules and packages version : - Opale tools 0.15 - Opale mathtools 0.17 - Opale matrix 0.12 - Opale 2d 0.17 - Opale ODE 0.15 ->> New classes in the package ode for the step time control ->> New test case tests/ode/StandardControl *) OpaleV1b7 26/11/2001 *********************** ->> New class tools.Assert for the compatibility with jdk1.4 ->> New objects in m2d.componenent2d ->> little modifications in ode ->> new test case for the package matrix : Jacobi *) OpaleV1b6 12/11/2001 *********************** ->> no important changes : we have just cleaned the archive. *) OpaleV1b5 29/09/2001 *********************** ->> New classes in the package opale.tools : OpaleSet and OpaleObject. These classes define the object structure of the library : many classes of the library must derivate of the superclass OpaleObject in order to be in the Opale hierarchy. ->> New package opale.mathtools.parser : a mathematical parser *) OpaleV1b4 29/07/2001 *********************** ->> New packages opale.cst and opale.cst.chemistry ->> Modules and packages version : - Opale tools 0.13 - Opale mathtools 0.14 - Opale matrix 0.11 - Opale 2d 0.12 - Opale ODE 0.12 *) OpaleV1b3 13/05/2001 *********************** ->> IMPORTANT < COMPATIBILITY LOSS > : opale.ode.ker becomes opale.ode and opale.m2d.ker becomes opale.m2d. This is definitive. ->> New package matrix ->> New Classes for polynomials implementation. ->> Automatic tests launcher (by Java script and programme) ->> Modules and packages version : - Opale tools 0.12 - Opale mathtools 0.13 - Opale matrix 0.1 - Opale 2d 0.12 - Opale ODE 0.11 *) OpaleV1b2 03/03/2001 *********************** ->> New reorganisation , less important than the precedent but the definitive form seems to be fixed. ->> Apparition of utils (scripts for Unices and soon for DOS ) ->> Modules and packages version : - Opale tools 0.11 - Opale mathtools 0.12 - Opale 2d 0.12 - Opale ODE 0.1 ->> WARNING : ## COMPATIBILITY LOSS FOR THE POLYNOMIALS ## Polynomials implementation is at the prototype stage and the compatibility will not be assured in the following versions. *) OpaleV1b1 01/2001 ******************** ->> Important and more coherent reorganisation of the packaging. ->> Packages' names change. ->> Ascending compatibility is upgraded with the precedent versions. ->> Apparition of the swools package. *) OpaleV011 10/2000 . ********************* ->> Upgrading the precedent version ->> Apparition of the ODE module *) OpaleV01 07/2000 ******************* ->> First package version of Opale ->> Packages : tools and mathtools ->> 2D module OpaleV1b8/INSTALL_EN.txt100644 0 0 6512 7553047150 12131 0ustar 0 0 INSTALLATION GUIDE Two different types of installation are available, depending on the use you make of the Opale library : the user installation and the developer installation. They are mostly identical, but the developer installation consists in defining environmental variables in order to use scripts making the compilation task easier. 1)USER INSTALLATION In order to use the library's classes in your own programms, the entire path of the opale.jar archive has to be placed in the CLASSPATH variable. For instance, in bash: export CLASSPATH=$CLASSPATH:/home/cioni/OpaleV1b2/opale.jar Another possibility consists in giving each time the path of the archive to the virtual java machine, for instance: java -classpath .:/home/cioni/OpaleV1b2/opale.jar MyClass If you wish to use the Opale library in an applet, you must write down the path of the opale.jar archive in the ARCHIVE field of the applet tag. For instance, if the opale.jar archive is to be found at the same level as the applet class, you write : 2)DEVELOPER INSTALLATION (UNICES ONLY) This installation concerns you if you wish to develop your own classes directly in the project and/or modify, upgrade existing classes. Its goal is to give the developer some scripts which make the project's compilation, as well as the creation of API dcumlentation, an easier process. In order to decompress the sources: jar xvf opale_src.jar You obtain the Opale directory and the sub-directories which correspond to the existng modules in the current version of Opale. If you wish to work with these sources, the entire path for the Opale directory has to be written down in the CLASSPATH. For instance, under the shell bash : export CLASSPATH=$CLASSPATH:/home/cioni/OpaleV1b2/ if opale/ is to be found in /home/cioni/OpaleV1b2/ Moreover, in order to benefit from the different tools (existing scripts in the sub-directory utils/sh/), the OPALE.DIR environmental variable has to be placed so that it also contains the path to the Opale directory. This variable allows to use the scripts which are contained in utils/sh/ and which simplify the compilation task see utils/sh/documentation.txt for more information. For instance in bash : export OPALE_DIR=/home/cioni/OpaleV1b2/ Finally, you can add the path $OPALE_DIR/utils/sh to the PATH environmental variable in order to access any scripts directly. In bash : export PATH=$PATH:$OPALE_DIR/utils/sh The automation of these tasks is possible, for instance by writing the precedent instructions in the .bash_profile file which is executed each time the terminal under bash is opened. For the time being, these scripts are only written in shell sh and therefore work under most Unix systems. A DOS version of these scripts is being developped. TIPS If you wish to work with different versions of Opale, it might be usefull to create a symbolic link as follows: ln -s ~/OpaleV1b2/ ~/Opale You shall change that link each time you wish to change the version. That way, your PATH, CLASSPATH and OPALE.DIR can always stay on ~/Opale . Once the installation is done, you can test the archive by typing java.opale.Info : if an information message about Opale appears, the installation has been done successfully. After, it is possible to run test cases. For these, read the TEST.TXT. file. OpaleV1b8/license.txt100644 0 0 43661 7553047150 12111 0ustar 0 0 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. OpaleV1b8/TEST_EN.TXT100644 0 0 456 7553047150 11423 0ustar 0 0 There are two types of tests : 1) classic tests in the directory tests/. 2) test suite in otests/ that can be run with 'java -DOPALE_DIR=$OPALE_DIR opale.tools.ORunTest' where $OPALE_DIR contains the installation's directory of Opale. The result of the tests are written in the file otests/Test.log OpaleV1b8/TEST.TXT100644 0 0 454 7553047150 11037 0ustar 0 0 There are two types of tests : 1) classic tests in the directory tests/. 2) test suite in otests/ that we can run with 'java -DOPALE_DIR=$OPALE_DIR opale.tools.ORunTest' where $OPALE_DIR contains the installation directory of Opale. The result of the tests are written in the file otests/Test.log OpaleV1b8/README100644 0 0 772 7553047150 10542 0ustar 0 0 ================ ************* * OPALE * ************* ================ *) A JDK 1.2 or higher is required *) Installation Instructions Extract the files from the archive tar -zxvf OpaleV.tar.gz (UNIX) or extract OpaleV.ZIP (Windows). Then read INSTALL file. *) To report a bug, send an email to : developers@opale.tuxfamily.org You must include in the mail how to reproduce the bug. *) Web site : http://opale.tuxfamily.org to obtain information and the last version. OpaleV1b8/ChangeLog100644 0 0 6100 7553047150 11443 0ustar 0 0 =================== ***************** OPALE HISTORY ***************** =================== *) OpaleV1b8 *********************** ->> Versions des packages : - Opale tools 0.15 - Opale mathtools 0.17 - Opale matrix 0.12 - Opale 2d 0.17 - Opale ODE 0.16 ->> Nouvelles classes dans ode pour le control des pas en temps ->> Nouveau cas test ode/StandardControl *) OpaleV1b7 26/11/2001 *********************** ->> Nouvelle classe tools.Assert pour la compatibilit avec jdk1.4 ->> Nouveaux objets dans m2d.component2d ->> Modifications mineures dans ode ->> Nouveau cas test pour le package matrix : Jacobi *) OpaleV1b6 12/11/2001 *********************** ->> Juste un nettoyage de l'archive. *) OpaleV1b5 29/09/2001 *********************** ->> Nouvelles classes dans le paquet opale.tools : OpaleSet et OpaleObject. Ces classes permettent de dfinir la structure objet de la librairie Opale : la pluipart des classes de la librairie doivent hriter de la super classe OpaleObject afin de rentrer de pouvoir etre traiter comme un objet de la hierarchie Opale, en particulier etre accssible par le biais de fichiers de donnes. ->> Nouveau package opale.mathtools.parser : un parser d'expressions mathmatiques *) OpaleV1b4 29/07/2001 *********************** ->> apparition du paquet opale.cst et opale.cst.chemistry ->> Version des modules et paquets : - Opale tools 0.13 - Opale mathtools 0.14 - Opale matrix 0.11 - Opale 2d 0.12 - Opale ODE 0.12 *) OpaleV1b3 13/05/2001 *********************** ->> IMPORTANT < PERTE DE COMPATIBILITE > : opale.ode.ker devient opale.ode et opale.m2d.ker devient opale.m2d. C'est dfinitif. ->> apparition d'un package matrix ->> Classes pour la gestion des polynomes. ->> Lanceur automatique des tests (grce un script+programme Java) ->> Version des modules et paquets : - Opale tools 0.12 - Opale mathtools 0.13 - Opale matrix 0.1 - Opale 2d 0.12 - Opale ODE 0.11 *) OpaleV1b2 03/03/2001 *********************** ->> nouvelle rorganisation moins importante que la prcdente mais la forme 'dfinitive' de l'archive semble fige. ->> apparition de utils (scripts pour unix puis dos prochainement) ->> Version des modules et paquets : - Opale tools 0.11 - Opale mathtools 0.12 - Opale 2d 0.12 - Opale ODE 0.1 ->> WARNING : ## PERTE DE COMPATIBILITE POUR LES POLYNOMES ## La gestion des polynomes est en version prototype et la compatibilit ne sera plus assur dans les versions suivantes ! *) OpaleV1b1 01/2001 ******************** ->> rorganisation importante du packaging de faon plus cohrente. ->> changement des noms des packages ->> compatibilit ascendante plus assure avec les versions prcdentes ->> apparition du paquet swools *) OpaleV011 10/2000 . ********************* ->> volution de la version prcdente ->> Apparition du module ODE *) OpaleV01 07/2000 ******************* ->> premire version packag d'opale. ->> paquets tools, mathtools ->> module 2d ranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. OpaleV1b8/TEST_EN.TXT100644 0 0 456 7553047150 11423 0ustar 0 0 There are two types of tests : 1) classic tests in the directory tests/. 2) test suite in otests/ that can be run with 'java -DOPALE_DIR=$OPALE_DIR opale.tools.ORunTest' where $OPALE_DIR contains the installation's directory of Opale. The result of the tests are written in the file otests/Test.log