pQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/Mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/Mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`Y V6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_M sH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8 =l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$% 4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8h t^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z %$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z ~7YxD~Rf< (a@_y` literal 0 HcmV?d00001 diff --git a/Mobile/android/app/src/main/res/values-night/styles.xml b/Mobile/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/Mobile/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/Mobile/android/app/src/main/res/values/styles.xml b/Mobile/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/Mobile/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + ++ + + + + diff --git a/Mobile/android/app/src/profile/AndroidManifest.xml b/Mobile/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/Mobile/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ ++ + diff --git a/Mobile/android/build.gradle b/Mobile/android/build.gradle new file mode 100644 index 0000000..bc157bd --- /dev/null +++ b/Mobile/android/build.gradle @@ -0,0 +1,18 @@ +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +tasks.register("clean", Delete) { + delete rootProject.buildDir +} diff --git a/Mobile/android/gradle.properties b/Mobile/android/gradle.properties new file mode 100644 index 0000000..598d13f --- /dev/null +++ b/Mobile/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx4G +android.useAndroidX=true +android.enableJetifier=true diff --git a/Mobile/android/gradle/wrapper/gradle-wrapper.properties b/Mobile/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..e1ca574 --- /dev/null +++ b/Mobile/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip diff --git a/Mobile/android/settings.gradle b/Mobile/android/settings.gradle new file mode 100644 index 0000000..1d6d19b --- /dev/null +++ b/Mobile/android/settings.gradle @@ -0,0 +1,26 @@ +pluginManagement { + def flutterSdkPath = { + def properties = new Properties() + file("local.properties").withInputStream { properties.load(it) } + def flutterSdkPath = properties.getProperty("flutter.sdk") + assert flutterSdkPath != null, "flutter.sdk not set in local.properties" + return flutterSdkPath + } + settings.ext.flutterSdkPath = flutterSdkPath() + + includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id "com.android.application" version "7.3.0" apply false + id "org.jetbrains.kotlin.android" version "1.7.10" apply false +} + +include ":app" diff --git a/Mobile/build/1906162ccb255627e94d2d17da8fe11e.cache.dill.track.dill b/Mobile/build/1906162ccb255627e94d2d17da8fe11e.cache.dill.track.dill new file mode 100644 index 0000000000000000000000000000000000000000..7fa42604e9c5b5e01887a843880736237907de03 GIT binary patch literal 45119160 zcmb5X2Vj&%^FO}NB^;n2Q4j@zKtMsz6O^K85+M-Cg&awM5K17l5RP61MUhJ-h4eyt zyO3T+ S1f1>AfTWUu$TX5_IaLr?hbf=-+y54c4ud2XJ=+-%Tq4C{DU7E zW4oqKoIG{Pq{+`sp2XCueu4m;Drl;}REz~J6j%`QHsfuAZ164rO+(@tDMM+hsA8xo z7`|jIfS0ILHbTgSke ;|V^rbWr$2@o&@q +B90wKX(Ep0Er? 5WXK+rQ)6@c9b(< z>W78+9~0CG5Y}O!ppXAauA6WV;izr`$vOylqvT>tJw!<8O!zIaH!3|S=o7k3mHr|e zRZ65mV_9jakQ|mApInVfgHdRcoJMJ;5>(0A_ J+Uyv?D$l%|Fbk=ln^NH ^G?I>NVRPs&N)vI~?NSXF(mqZ*pY{`o zNmn*$7b(q&uj1RX3nPS#eHqCajUXN_=rdlI`<; nOO$ytHAWPF>PnUtnFIZN(VXOxipbM9YxkD|^ Gx$1qZUbHQ~DF7$q7pT!Z)u~b`L_@V`Nf6U-lq< z+cGIkavqNg<#Wot%cHiyGTwnk3r)} zu;Yosh~tTdKW&&z$MM7iKX>Beudd^X5xtrEN#S@D*!G~ClXw%x<7DOkUrh*xKP3f> zIBt}hDUVp#dHi_9%C6(@M(CM(snGCzgSNpF{s-eSn+DGYPkhs#f@BJjG&(jq znn?ISTp=`WZ!|Q Wm?*>{yiRC6*V@_oJxEAhHm%>ces4wcjL>$i?Von`BIYm$CqdtKokk9P(*`)T zh{xJdK&l_c2%m!lJ#swN%M>jp6UB1CD!>--a;656-X!LEvl!V-Jq46ArvY97AXYfM z2rMXP&J^=Bn2^!|J3|WBVsEAbJ*y4yCZGcqXNnbPeIVw=inG4Bt>QFPbiEGfX=iiL z3kMgmqU)bxUhLl-c)ZfTIep0zO8=e(k2&6e#elWoF-znzXSJ9|jxpZ9=RoQ9B;aYl zd{E97Dc#Ut%8O#U%|*(xf74OXJr8gg@D?h%iWS|Dh J*-X`XelkD*#C>L!9>;@!&a-K-J$ROrL?JNp6*Uq9?OYO`6kHsZ`O28TL@DO<{ zZWQyPtczhZE7QzG#U(}nDld5t70Iok)+NWqyjXF`soN^LpyJZAfKLFJ@f^r=P;qIO zm=`N9{T*1# DMXdMTz{b0c+`=b5L<*5+DuGh>8ouiYtr6yjXGNk=rWHMMeMp zfKWgZDlQZ&`X`8a 7sXtg4y i`Xa^Qh=6 zRt!8T=EaJE=YYL~jXh9XUje8EkZUawYwO{Ylo$J~Z!_<+{vFFc>%e2vJAgBQE8wwI z ydJ zeg#(I@p>=lUfMi>#*TDv+CFf(7J_HccmT#~5Jj=EBF`XKF)zv$L?cb&85DrDg X)!PAB-jb{1dI99hblrL!GE^1kfEq}A4t%l5CY`IiXj7TtGE~y zL(T)bu-rx;9acycuZwx9;vctF^hL$c(*US3^e0qYDOL>qLd=U5LoZraWUMz-&^rb2 z8Do8(1LOhT09<9PZ+`$rS6_s#zB>V_fJVUAfPWdgXB1!-U_GE3@C9S{J^*kB!~sBi z?+xsK;Ew&a0!jd#jP pn*S_}m8 h9Fx( zA3O|xnXSS{E)#kg3RJ<)!Lx%`_k}M6FA9d7WR+ly?>?p-(iY&HRegZn*1?kF`U=6b zgNmu$32K8uh1&Q>TO{&T8!;m@QMOscL>oL?un(Rs9s~x@PX3gscdCNd2ZskA6WB-` z(FF%`;fPIK@G)uvfBtkthq{TVTWt6jo1on+xKtBd$_3oPdV*_vg6o-jmnyh9_{)$d z!Kx2fwU}644uQ$|pUmoK!9GMSu?p#<2@(6cgY9M^4*~2nA$Ah;Rp4R_Dxs3c0QQ;? zd#e(r-mMCGI>bFB77efFItW=55^HMFU?k~7R-nn9a+5D c1x?fmqeD)EQ4^p}6H+HJlaFC1hP=n@Lp}^D z$NGM3$X9C_0(Z!7p#51B^0P#{PKC{SXn&N1&a@A;3mR$5Y HE2*y_6L|R2oXQa(7p>u;O$vuN|)i0|;7li7=?n4*X z 9o`QI3VT)IkB2*j zFNRin;cR}qtd(%r@WqN&^2o8n-M}y06X2!^cawO^Uafvr6}~)tdpM2)MmmC#pNY|H z;qlgt_7kIUz 9{si3Agx{2q za@^4$ut8OLoDLT)#xPrs7kUmn=5pXkc=3T*^zm%RfywD#Qs`mInA-$D?>R6B7#e0( zfV`k1%;|vkfWP2)<$!m_XsYVlNvTnwy?MabjMf-b$Fv6mgw6w-Ge)Zop{fI~9Y~JA z)H8Ckpg*t=+{7y>d4$6}X1fIgI~&sm6Hj|qQc7?-V2pUiMt7k3Ks&SDD$YwF6Ep|j za6543(F30e9S1(l_=XpthSPzI5d#G6fotT(2Yw%P;AX}*(sYK>ZGwPLVR8g6I- z#9t61&^Fu7TjL*sHlnxC8PPlQIqD4l1B?H13qePjvo_*E!9HSGP$Q#4EEf%7s)%PJ z+#@j0j@%*WBc79c7crl3=$;Vai!Sa2J{RR{>6_*y9(SE0Hbi`>a*Nn%7qPD+VrORF z*a(B9NO43oF>ORB94{hT6A>+$7eX8oMnvRn=*4=Wq)HP}C3`~zyegs{(5Q)MwDN|I zh||RX6B0UH74dDvjVP>MM(%=89VVgwBpjBfLgY| ow X#L9mnq0C>XCgy)aZ^V z`>aK<^Tnt!*;Ay}a=|!H8>InqO7;|I$E#7ZvLY@-d1Q6FMfr`23LFp>*cr7dD^MG? zT>y{Q2SvS{6)3>xB+rlsV=ls9R5-JbIw*#}s6%UEz5}YL%Bc2(2VuTfa6OU6Cm&H! z?-Gt&JL)XH_maL8UyJ(e;6Yo*5mA?dTG6|Xs9$pijg9(eFVjWaMGuzGvwET*c8kU= z9X%c}S`$55QivSsoT8^5bhFh(&y03swy&ZAM5btWDKbTSYofiS3O&(F!C@`HPZRAY zA$bJCibx;5iDZLiqa&hYnJvGHCiFzd>!P!x^O^0#REoUOCAtFEi9Y*7bbZbTlsefJ z-ITM-!qOu|OGkfXZRzMw54za6MSo)#eYrEbD`!SW^!GV~#E>SAF3dO4H^}@4u||vj zT@(Ggnfbd9-jmaM;o$u_AKb SH=7#UtUtF=k>=By{}#;6!5dY|aNT z=E3>Q{-A$QJH~Fu!GN4WnuD9i9^AQi!ok-%4+iJVfN>*K2NMo{7+V43;$rc^M5uxr z_ux6gk#P@pGJdfb(U4m=4_K#zzr|Mcay$6XsF {x8 -Neupw>v*maZ0XsiW_-BZ!k6@E;gty*Hv7JCay%P))QCL8CRFT3(Vf>ifhi# zl&uCeM5*FFkGq_J^O2GF;X3>|Sq*VN5suUl_t$M|i0_l&r`E+k5I;mwL%hRo7XOGQ z{t;_6#6KPHq^Kd@y(9j`g4MDb;uoXV`mXq81qCKG#BUQGkKg00iw}!WV79bkpeZFj zw<|uWpg 70 a$Yim_l^h!AX$J7vm^r$Ll(YBx)0)Fd>n4)9kQjJufwgzrc= zYrNc<@VW5@dW$WV4gD9!8-8S?6HX0CIMtPKs_@|nyz0e4l&1CI_@_a&6vINW8J+Nh zM0JlQ;YXslhbU|a)P{p9+-)%+F$P^4i!S{xcPa4^!cmtJ$I4wweBQcCiC)5##PCEc z3*{~)E;HqLmlBulW{F;!L@&8ZW2sAtfrZVTiQ5a`vh31zHac V9Qc1oej}xb) z2a=vuc_a;Gnxv81q$jYSOPZPF$!zzdHHtV%OFNRh564PFO_!uk+9nT}o}?XaN!SV} zMRz6bE9!5W-;)j{9}#9G<<3gVbxJBoPU)pfs!2M=Yz+qLfiNPeL5##nCpAeYC3(7% z-Yx3iopi1Ui-siZfRnz}Bw6o(nOoAYaKmKbLeif_{)Qk7$ev^yi$V4#o0+U;&K}7R zGW+C5_(>1dK$uK^LX-T2)EF(zx|1D?#$QODRphS>I-~jN0A}6fMMdMO`kD*LentK? zH-pd4uH R|bnH+6Fb&8EjF1AZ9?o7^st&+KHy>uxHQkIx(00~o8Ur1S2oM^QUa!c7mWkDBHUM;>LsyHRYO#Hl{H<>mi94byp zW%emqvWipcAxNbrrP5r*DJP1?Urc$c_`=;)obq2H`KI`S Xr*wGeYl9buO`t~=F%d?@v4zywX|1W6v*UY5$%rcOssQs*)I zRByQ_se060qe)#O_k`kp>aL>kck6`O5UWZJO-)Jt6GQr5L7y51)${dMY98Te`b*{O zE`&7GYD=4Xl45G=uOm`Vio+rGJx%I+Qlk*zd`IfXrK@ +22-J^&%bL{7R(%pz zC#ip!=}KIk1gX* ooYFkgciFn7`8cGlvrF^uNLyOk)04KwQjvmP+Sbmrz*4MY(hw2Sc4*S%!?C+) zJ}pS-Op7S}$JudoTIPVX%&xTLvc6a8!#*una`&_%O 6=5#8y7$~wdWkUr8vvxqV2qZyX&=@U!;=}v#Htb-~nxtzYBw1-k&9hBn! zo9<;+ll<2ZLP0BinHf4S=q;vAUn6v;>r4Mp8{$;yucXJPUx&?bTVgtGz_>4^Clii* zDLozEqUEq;qq*BDJum&b%5g+`t++2sf1|u|Z2G%{!1r_NZ~8Zy^luEIxOqe9NWV~C zDYb4yZ9^~?4#BGQp7eh*YRFGQxu0a%P>x#5=yO|Z83QtEY;+kzGVJA<0BvN9(qxQ+ zm(fi^8JdbmdNQU=$aoelVL^anR{~gtz70XlEyKkw!=p1}PQ~QiECZ{z3{Oplr geC)41?srQ(dQGsi>48P`M=XZ%xXH#V~uRGc}GRGc|flR4B7##Nj- zveM36#UW5}h${1`%;}luNyTAY#hK2Oqt-HK-PT&Bd**o?UFM=pglusqOKmLEWG<6b zoEcd8dQaxo37I?YrsB+fc9~(FnL(9@cC*YlK!heU;(x0+^N^s)%yHIcmI(Hl)v|^& z-$CVeO=i2SVHFPPGe7Fg{Iv4W-Ibi6%IwPgJ!c0xJXp|YcFRi65(r1joGdlI#hYKV z1|n&F^Q+*LH6&-py^bTY#)~@7dcNwVu~{=8Vs2TU1G0QOvldnvv{|c2{aJyUtU$@b zv$j;dWUl^T=IoZWmxzJ~WxZZy5NO!L3u!cDg_>x^Bg!|K<3!w+YM+%A^bWQ_gR%8_Tb$tdlX=(CVQx44tXV~%^ojkvL`v~vYoSC zO-qODxl%06p0CNCFIDNu#*oWi1z4)dUTWnN`fPrbkAs!$kZc^R@LL19i1C{2c**^; zv(c68!mjM%>JRSbfZ6qS*{8a*8)``C4*+j#vfs99%t{y8p9w>=zw3=Y{F41Ivz XHR%V2%K0VdFF6$V z dbYl-EBQ%<}RkPRb9EuYTLvaGk1*{3tBQdPRtEp_PLwHBgou6bloU7 zIXBHLy5;6~=4RZ1`4M8?)SY|m$V(FQmfM-Pf%#h!^AEw?Ew|et_l8~WwXWRnYTJ5p zf3kEmW|#YWckZntFYRV|xSX5&mnQcwEA3iV(B|DMX!0I#*5(Zp?DIy;PLuaM7);jW zO*V6yuDsc`ZQXhEj=Xetr%6)fEzR3ra1u^~+v)R`$xf5EmvH1XdANLUd3Y|*^?8R1 zPO9AUve9x0AYYT0FSTykfaTQ} yrTP2Feu{QD)3%YQQe8D`5*hlQT}DZ2cb`5tnp=*ge&lJ5(v z<-hiQzJL8BN^R}R53Kv!%5nH9N&bEdYvK}7esDpC$}RuksQmbSLVij|enK4{s-Q5C zk51>OYVuRf)O{hpxPC@=eqH^fyQy2WBtK4f%5N#yZR3`I+Aja|3;Ad2XY}NMX=UjA z^MWS-g0oxxO}he{3;Dm*&*&^r*L`M1RWL{xTJRVaBL&k0`vND~9}0YSvx51W0y)sq zV&p=BfBlTR$>!|%LxBPE7sS+00<$7;ZRo8wB&!PEE;wJ<0{_4x69sf16%Q%}mk3Ax zQSkTO{KIHd*rIYXV!v-31n93Z_P6#A M %yNFuq~!492$#^U<6Cj52<*PcWYAFn)UUi0BMPTn#pUp)tx=gL%L !u=|@!oGHegS!j+AJg>|4zV(G;V@xnp$29ybQbIjU1c*DuGq~A7i$U^ zoB3f+VPJRR#$&p>HSFy8ePJYoD@;D-1b&r*rm$XZNKqA@EIfCZ4ukLjQ{fx3p$pFw zjtpIR^KOPN{NwO`8{J{s!}l^ s{0& dPZD1 z7R_onF}BEk5OXV9Vpp`LqsXt}L{CwGm9>jD2%4g8&Td6}ceA1}!0VbK`GTS;wiYFn zJZ7sa$}TDt#}2MQ78OZXAd6}>MYWPopgOLi7By;$tgoW>6rI)=y^n6t)Lryl(NFSN z0r~HM8=9gU5)*l>xfJ(?ZHotW6yMiyLY&cy2U`pk%;?2Kia%88ipLf|DGx@fGqtn$ zsm4hbgKaW%D|V-{Mcu{o8{g+)xY+#aJHN U~v!Kpa2__UxcE*6FsH}-ZbK1UTUb`^i!xL1< $sx%QCi9n+m94hbl^iQ+HJQJpO)`JU zdzupE0H@>&u=rS0^0AdIdrCU>B^M;~m$Fi|Y^|QsKDyEeOK~+s-0|&Zr8wOyeMD1g zeY)pTIuU9uU3j(h+2&U$HK()m#pa1tM&@=cU2LIlOs}O&%a*I$O4p7m4csS`Ztf`E z&~#0VsHIpAm2T0LZjmG=)pwQdZ+@k_G`u Jx}l}FdfS)XEBi{>=-sSr zn5Jx)nZP||Pj;70yt}v*pAd`7+?pf1%H}t};;bzT6o!`Vh3llN$|A~gE4tx2!|(uJ zr0hCn#e^f*DWhXN%ScmJSJ90~Q}(79Y05rp9XGb@Yebr|t9E5KJIb!Nj_WD=)v_Df zvOk2O<^8ZREPrS>D~FZKAJLS{RyO%sxu)W*t*(4}`3#e !fa@I_{Jx z_tBJF-zm{kzD{3GH#JhIDGx1=lh W |km#eBDl%|!oNSH$ zi=x ~hFW$}Hot?E6pQ6dH z)P@XI#pQ~BtA2pPjKrgkS7e8&>_<3qn99+2i#3&xSN))Jt9)uVtDFvaMpOBWB!S8P zm9ABv+v+O4D{%-!%QQ?imCGdiR|aS*15Ea>#K^7OqN$Wet~_t_RPNJP8YKHyW>pr* z=IW^|)K%729+!8GsE*mHvQblMJzKd{o`qs7Z(ObXZ`(ymUF@v