From f0a83df66741df912b3b9774ff73cad66cb640be Mon Sep 17 00:00:00 2001 From: ml Date: Sun, 20 Sep 2026 17:23:55 +0200 Subject: [PATCH] Replace the logo and icon with QuestShock artwork; add a GitHub release workflow --- .github/workflows/release.yml | 123 ++++++++++++++++++ AGENTS.md | 3 +- README.md | 25 +++- .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 12957 -> 3719 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 6484 -> 1966 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 21348 -> 5773 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 44453 -> 10682 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 74894 -> 16503 bytes res/logo.png | Bin 1595205 -> 251204 bytes res/logo_small.png | Bin 642567 -> 105796 bytes 10 files changed, 149 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..ad8b977 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,123 @@ +name: release + +# GitHub's build. The Gitea build is .gitea/workflows/build.yml. +# +# Pushing a tag vX.Y.Z builds the Linux and Windows packages and the Quest APK +# inside the build-image and attaches them to a GitHub release. A manual run +# builds the same files and keeps them as a workflow artifact without +# releasing them. +# +# The build-image (build-image/Dockerfile) is published to GHCR, tagged with a +# hash of the files that define it, and only built when that tag does not +# exist yet. +on: + push: + tags: + - "v*" + workflow_dispatch: + +permissions: + contents: read + +jobs: + image: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + outputs: + name: ${{ steps.name.outputs.name }} + steps: + - uses: actions/checkout@v4 + + - name: Name the image after the files that define it + id: name + run: | + set -euo pipefail + hash="$(cat build-image/Dockerfile build-image/docker-entrypoint.sh build-image/build-engine.sh | sha256sum | cut -c1-16)" + echo "name=ghcr.io/${GITHUB_REPOSITORY_OWNER,,}/questshock-builder:${hash}" >> "$GITHUB_OUTPUT" + + - name: Build and push the image if it does not exist yet + env: + IMAGE: ${{ steps.name.outputs.name }} + REGISTRY_USER: ${{ github.actor }} + REGISTRY_PASSWORD: ${{ secrets.GITHUB_TOKEN }} + run: | + set -euo pipefail + echo "$REGISTRY_PASSWORD" | docker login ghcr.io -u "$REGISTRY_USER" --password-stdin + if docker manifest inspect "$IMAGE" >/dev/null 2>&1; then + echo "$IMAGE already exists" + exit 0 + fi + # The image is large and the runner's disk is small. + sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL + # The label links the package to this repository, so the build job + # can pull it with the workflow's token. + docker build -f build-image/Dockerfile \ + --label "org.opencontainers.image.source=https://github.com/${GITHUB_REPOSITORY}" \ + -t "$IMAGE" . + docker push "$IMAGE" + + build: + needs: image + runs-on: ubuntu-latest + permissions: + contents: read + packages: read + defaults: + run: + shell: bash + # The job runs inside the build-image, so `make` compiles directly instead + # of starting the image itself (QUESTSHOCK_BUILD_IMAGE is set in it). + container: + image: ${{ needs.image.outputs.name }} + credentials: + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + steps: + - uses: actions/checkout@v4 + with: + # The version comes from `git describe --tags`. + fetch-depth: 0 + + - name: Build the Linux and Windows packages + run: make package + + # Needs network access for Gradle's own dependency resolution. + - name: Build the Quest APK + run: make apk + + - uses: actions/upload-artifact@v4 + with: + name: questshock + path: | + dist/shockolate-*-linux-*.tar.gz + dist/shockolate-*-windows-*.zip + dist/questshock-*-android-*.apk + + release: + if: startsWith(github.ref, 'refs/tags/') + needs: build + runs-on: ubuntu-latest + permissions: + contents: write + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_REPO: ${{ github.repository }} + steps: + - uses: actions/download-artifact@v4 + with: + name: questshock + path: dist + + - name: Create the release, or update its files if it exists + run: | + set -euo pipefail + if gh release view "$GITHUB_REF_NAME" >/dev/null 2>&1; then + gh release upload "$GITHUB_REF_NAME" dist/* --clobber + else + gh release create "$GITHUB_REF_NAME" dist/* \ + --title "$GITHUB_REF_NAME" \ + --generate-notes \ + --notes "Sideload the APK onto a Meta Quest (see README section 5.1). The game data is not included: you need your own copy of System Shock: Enhanced Edition." + fi diff --git a/AGENTS.md b/AGENTS.md index e9e0dd7..c139621 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -74,7 +74,8 @@ These come from the maintainer. Follow them without being asked again. | `android/app/build.gradle` | Gradle project; the `stageEngine` task stages the patched engine. | | `android/force-rebuild.sh` | Stops Gradle daemons and wipes staged/build output for a fully fresh native build. | | `build-image/` | Docker build environment (`Dockerfile`, `VERSION`, `prepare-android-project.sh`, `build-apk.sh`, engine build scripts). | -| `res/` | Bundled resources: `questshock.config.default.json`, `controller_profiles/` (JSON + PNG per controller), `assets/` (where the user's own game data goes, git-ignored), `run.sh`/`run.bat`. | +| `res/` | Bundled resources: `questshock.config.default.json`, `controller_profiles/` (JSON + PNG per controller), `splash.png` (startup splash), `logo.png` (1024x1024 logo, master of the launcher icons in `android/app/src/main/res/mipmap-*/`), `logo_small.png` (the README header), `assets/` (where the user's own game data goes, git-ignored), `run.sh`/`run.bat`. | +| `.gitea/workflows/build.yml`, `.github/workflows/release.yml` | CI. Gitea is the primary repository and builds on every push; GitHub is a mirror whose workflow builds and publishes a release when a `vX.Y.Z` tag is pushed. Each platform has its own file. | | `Makefile` | `engine`, `dist`, `package`, `apk`, `android-studio`, `clean`, ... (see README section 2). | | `README.md`, `CONFIG.md`, `NOTICE.txt` | User docs, config reference, license notice. | diff --git a/README.md b/README.md index 1e8409c..cfed678 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,11 @@ sideloaded Android app, and needs your own copy of the game data. (see [CONFIG.md](CONFIG.md)); `res/controller_profiles/` - the per-controller illustrations and labels shown in the Controller Options tab (see [CONFIG.md](CONFIG.md)). Both are copied into the APK, as is - `res/splash.png`, the startup splash image. + `res/splash.png`, the startup splash image. `res/logo.png` is the 1024x1024 + logo, the master of the launcher icon + (`android/app/src/main/res/mipmap-*/ic_launcher.png` are scaled copies of it) + and the image to use for store listings; `res/logo_small.png` is the copy + shown at the top of this file. - `Makefile` - targets: - `all` (default) - alias for `dist`. - `build-image` - builds the Docker build-image (`./build-image.sh`). @@ -211,6 +215,25 @@ package on every push, using the build-image as its container (so no extra setup is needed in CI beyond the image itself), and publishes the resulting tarball to dl.ladkau.de. +### 4.3. GitHub releases + +The repository is developed on Gitea, and the GitHub repository is a mirror of +it. `.github/workflows/release.yml` is GitHub's own workflow (the Gitea build +is `.gitea/workflows/build.yml`): + +- Pushing a tag `vX.Y.Z` builds the Linux and Windows packages and the Quest + APK inside the build-image and attaches them to a GitHub release with the + same name. A manual run ("Run workflow") builds the same files without + releasing them and keeps them as a downloadable workflow artifact. +- The build-image is pushed to GitHub's container registry (`ghcr.io`) when it + does not exist there yet. Its tag is a hash of `build-image/Dockerfile`, + `docker-entrypoint.sh` and `build-engine.sh`, so a change to any of them + builds a new image (`build-image/VERSION` is not used). The first run is slow + because it builds the image. +- The APK is built with `assembleDebug`, so it is signed with the debug key of + the machine that built it. Android only updates an installed app from an APK + with the same signing key. + ## 5. Android / Quest build **Prerequisites:** diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png index c6187878edc0b5521b9d80966edbe3f07ba699ed..d5ad60549b142faeafe2b8522321979ce8968224 100644 GIT binary patch literal 3719 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 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png index e6e0e7a4edcec0881fe24ae6efd8a02607b0fe72..a27e2439549944735a991d1e00af28b9c2391953 100644 GIT binary patch delta 1963 zcmV;c2UPgfGOiDh8Gix*007uvZqNV#2X#qAK~#9!?O0iCT~`%d`7BjLK7aeHz4p-q7O;Q?EMNgM zK=-(aMN5gKlmd|V;Kcw|u_G7xi6o=~%CzVb2mv1mXWxKTyg0ys5C9MY9uUm89iRJW z9Y_LkAQRJTlBv3M8on=uAV30QmTYt&4kQ7c5Cf`{i7Hi9e4hc{e05Uhu1yR`0Wlya zWv%aXDdSS)0e`Dft>BJ=Yd``>0%@RuSamX?=-PG9=ZujM4q(r6l6fkm07)QAs8^Jw znzoh1_JapDb?@X?u2Q)SAOOOd7e{~&B!GHNTUS@xMe_6O9(?#Kk0nRPN;hu!pqRo# zAtd14M?xBqj6Ti|R;8Dw6LCLK$Mc$7uF~~uWycmG;(vsg=AuTI6^3mR`;vMLLcQ8= zn?{D12`YKM3+c>xacs6UH9!G0AQK9E%8V5!da7d&Cq&EWXsyaqoGE|~Xq6BgP=Oji z2N=<^Od?BSm1XScTD_5lONd&tX%Zp^Qs!jt-8m!x4-kM41dM6AR`$K&;k@YwzAws! zQqd1WKz~&FIpUKC*gy>MfDzlZbv_|wL+@qPa&+4%8J0`rNs0U8kOWkKfI!HmWGoQ! zZ#VM&6UGqegdgOkbO94^D$!-7w>iK8HwY#L`pd2}R_t}d%MzzuuOy`f8287a=sM#7 z0}RJAxPnDBg;3m(@?sE}Qbzp}%sj&_6}5#lg?|X+v0h^NFdPlSfgrGfdAp3}mV^XQ z1GEAYfTpQ36lNHf0S74GEp*iOF(6SfbVh-YF~9)|z|?$FG>=j%Kn_R%0l+Hq?*b0s z&LX=}PCB3h9FPD39Pj}PaOW(~J&g{f^0CU?2rD8qM^IiF9k(=n?rHO}hbvV=W4tAfAeYZj+Mewh`IH7!fr$H~jd8r&Fl}fPMRS|LNEt9)0W)06%>0$@cbT zMA0g`l~iO$wfV-kzIN!)mjQ~lzGJu&0e|@ZGf$RWYscQ*UHd-=DLId#KuQ^9B&C#6 zasq^qQf9L0onPFqa#9uk-6MxDTsr^lBZuo7tGDdg-PGJ5r36Sysd9ppkvr!U`L5~O z@|g_}0a8)eT{%R6>^{)*+8^K2V)2U?E_UzP-n^o1@BZD1nyhPD&;IJg?l0{<{eSKU z%`HvOy!_JUo!kET_xBDQdNkR#w7qj_@5$4hJGTAeM=ymkIDh(V%bEu_?(SZ)eDTTS z?{D7Qb>wHyt?XQJ;`n>*Th>1H^XE5j-+JQsyNg$^%8wV8t?yX7y5nCb&oah7;$lT7 zB!Hn(iR)U?vrW6KE?T7KGJ0d9)PK~^KCYW+jZvD zDVfnWc5fLe6pYZxeyYVJHl1iQo*#MBFkL4;{#&Drvl*^jynty}W6IG@a zgk{%c1v>W1(L!NTOC_(5jrE@C6@eHS8QyjHiRGux{q@(s$(!btzDwDaOTqcr4Dyut_6M+znC`70ybV%9w_!p+$e8=`(BJzA+3gP%J zqzpvJI0YgAgOF0=$ba?h(9d29Oe+@C0+O!l-u+D-0>Sx<)Uis9>yv#~gTDSmXGgp? zXI{AGUF=VHtYob%lfC^k{-L^YeX_2`85s6#Tbjk>KuAzD^$*!uciYMbBx-IzAm4Al)U;K?gbbm95?i?C( x*^EH9N6p;pX(SrvNdmO+2wK1b7V!U!e*-FdeUnb4qlo|j002ovPDHLkV1no2$1?x` literal 6484 zcmZ{pWlS7g(C-(DL-ECRu|-Gs%27$(%S%b%obh6j%TN;I)#Xoc4?7`p+=XUTy>Ae=z_6QjmkJ ztfm7L3IKr9g3|g_hNP%Q%uOn_YjBV0wo}Wzn&{ZJtM$M#QJU;6hZgP!oc0T;6&*rY zb*She9QxFzgIpywel$lMSRN+pJHvvqGhg*=b5l zQKrFq7`>oa3^aThQ>%{>Eb$J$$@KvUgn!PK(Z>E0)uZx&b*Khiu}zmHfeXHdi?PUl z&^DM|1?yb+JXe~OF?hG@=z?-TeJHq?oWCj0ZyVgGd1%#{V6>tcR}~A5uhHt2+;1B6 zOK3KRH{Xc=!yZEYV3YTkPa$;>luaiSnkd3nJtz~dpF~VV{!_yr5kuXl_%_cJ$mPya ziUv&IL4S_eT+bhwz!YRHMDaIwx@W*e@d?u(YU@k+(CvkcQXIw(->K&h%hOn(q<-U# zg5&&(beURhGj?9c)L z5Xl7qNL>rNw8UN#XjUo;axebn{FChtd2yJoibfs)z*~m@49T}r()%Td?x~~(K|e$% z!V?B}A1)dK03<*qIcZ({4YPcsMAPNG&5-@V?nQWO?Je`l8YC?f?ATl}-%HU3L{Ap? z-p*s>+QK1xH6aU_729P>Ca}05w&1}`jrqceA=Y?gF)A?1kYqgpUCFf8N@p^{hBPS& zOuUQl(Ovd$_vjT{TW#S%HPu~)AD)~RUOxApK0k+47Hi7`615kT2G9d5W8n-w;rgXo zV3arEG6X33#{qcU#g1->Qwch%-*m|vo*D2lm$K{0%Uz|JtDD?4!K+#chhiAVBCmoy zwd_9GcVv;2Vmj0H^2Zas7O816LIU}jGEF`)S+oj}5S?3cje#6r6G@V`edQdOuk@?k z^hwYhhOrcDl>U}5Mh5XuBwsWJ3pr^r3**f!IVu@9r z5hJ9??5vO3B1~-iml2_)zP?(DyMA(`rAY(J(Ne@(#7zi!0$D!vH3@zZ5@Ak+jOHC=)wln-PF# zUw@;h@BK$Ch*AW{(DxE+iEJ*P3(HLjO__j9?KOnzuA_ep1K-#4R8;DAfI&5|VbIA= zs)9Jk4aHdJ8yae2p@rryXi+Rlp1UFW2gw=o0Cv_OaDG*G0QgV znWo%h;#QVN2iW>}LTAc!QyQHHA>q7<?}zPW+^T(0 zV3Dj{cJ)Yh8oR~e-|a;pKHE5?nleg;+ckMnSf+9uh=IlFAydJR%bJWs?}6Jl4AqpN zWDUQ~V)jawqWhtg+w;TnG7NfkqpGdMzka~FbmG9JJ-FSSGeHSlqLqXMKqDOl&;RP( z!7-1VBL0_|BeIZtT znoPefOu@^6ob8SWo-%e^UGeS1<9nk&jJXHoPQ*GNAj4y%M&csaVCXD|B;+6If41z6KAQ@;8cb7R>|R#!E@j^XYd_6`9!F_nMrkQ!yJC+Wbs0Jn)*!GD3!*eF+tZ`-u#_md9I9?rxjt z^{MA}gDTQ-EyWKD`sP98Ff!${s@?|HWaijNEat1CBn-+*WwEyj@eqLc{7D6D7D(_3 zYpQu@iH-Ofi$9;c_08TjC^SoGd`D3%Obc<%nr{ViB*%$gGWsk#L;~vs0;A7UJ$7iX*L-asbT|N8HPR)-Kgh4ssRpav9q{w5U3LnWK z60K|HiOe|SY{t@gA;9Ea0nO;i&CiDjosHBNn*!p&($~3edtL|4tY{Q=xNdG&(IH627e$3m{U#!967oOJbo`$32g@xbjGAj7X9?fwJWPC12oL5FqFVweMA+l55 z8&UcP9tBmXYht9mwQ2wdM(Xz0xDT;*7-_jFYm*RGe(ekaeJUm6@s14D9&Ll79s-J)_w@Z3=tD?K?qLH6=hKt$>r)E6Pzqbpw zaBsC86SNZc!qR7sMnPB$gbN@nb4(dG+Wxio52r`&R7_DMXIY?9#H-R+L+mztMGB|m`~GidWFBrrvG z49{&g0}p>#c;H{{VkR;RBgha5Hee5VC%|2)n-+hqgSJ91!=|U zDyNegZ`r%Ax;r7C&BhkJ4}r0A(2 zXTCKwBjmyc_j$uXB6!D)xty(FI<*g%5Umx9#RVsx29`iQlT~h*v!?27q7PCC+KPY5PnRxJUiin z^CRRL^CAwbXYz01=AZfXp8$AuOM$1DrS+Rppy^m}O=_&BEAPIh@y@64;R6t(m^sjF zrV2yA4Z;&+!#mGZrUPQc=+vJw-xzk7Y#q@%>DWOTkSkgQ8^_!dZUA`%JNxUO_cbs? zF`b?A#KdNULe4lyMRJsu?{Nft&M5RKbku_H=lzZjaqsI+xE4!!W6Hrfv0GrQ#438} zhGaqsRF;dis;}u)@p7#s$YzR)QK|6_ZWhS{cIrGe2J;wW0pjlht~tWEsf^cD1Vkr~ z!h%d=4ai;UGODsWL>Xx-6Vti(1?n>((J%$vX6nx}%Z;9vdAyPVNjm6w8O8a#pQDW> zKi=)dsG1r>=6pYvUWChF`chb>6;Q0KouY1Xmk@GD;2+4O`GE-u^l3VhW+Hsf&KLB$ zgsjWe;aXMPE4vw$Dr;VcLX>?y;l>9GqJ8o%enn6BIsN^venlHG26R5v*pzYxU5up5 zoi=W1y!9o&$HO2u(^Ki-A3u+p7FOiMJ<*Mr=(@VptBG-4nMQdn#*CSRQab7Sb+otY zECLQcqGc2Mn6y({>HkFumTEStTBW)e{g?6wH(<@c+gxI$zsx@?wGhOMwF*Cok1RB@JoXzJjR(n7CY$`2nJf%jYtc@U| zc&AJaM}vQprw?Eh7>9FN_c;C=*Kbco)jEcz?_B!xEiTHFHlG~%m41@bH?Yw z;egdJ;k+_U&$x}|t0MG0_v%t%=Lmk1UfS?Y`T5w+E#wpBy@#(SML`^0u90M#JR>*0 zw%PqP;L*FN&P(@pnjpkIZ%L@EwIjxLmXE0DP2$p#=~1c+u4P-a{}uj$c)&_#qIxRt z{gs1lNl$^g+8?y!hmD|Ig%k@G*^5@1h{_LQm3ixH^tlDrR&KO9Zt@rBOpfTc3zKhP zpKQypl+!|TB;26z6{YBn+Oc_$%GuRp^*;gqp}SUo)vaH~NVZMto>oY!l#Le=f-4W#gvTt-mDl$^+}`Bp z?lD&|+#PIc^%9AhG#GmIy~OvDVoL>%l|f?i_?tAyMG?|Q{RZs7A`-eAdC;%GhXeT< z+=%^fLH|1{d}3?RL0Lm zekIugSJ?*k58r0bVdlN+AYo?~X@Cx9s_C3OED=P@0;bhvU>paU2mT3O=<|(>>+$d$ z;r4p|px7gy&KL=cgrD~G!yj{5;Rgx$*h26hZpk>+zWJv8&6P_nl>_fvK?W31zMq0q z5Q*cB+?3v1&`MJzUZIQ=|)@^e&Nqe!rluBmK2)q{(KPsA4CF%qDRAL?q+HL2dIGO#s=yCGZ9SfWQfBR7e9 zPaxn(D{AshSIcFq72}{GRUC4aXD3D{`IlE;8i~YEY7?^IiG#Jix+yb+G&AR_?71YxCaOWno8*t?xw0F{%GjqvVwr6W!)LT?({t*9l zTcS;bS`|Kelh6nL(Zp6rq~+dh?C+(MDgYxcYel$4Q`jX&Lq7{nTpb1ay<#c58sCo7T|SbU%&!uHt3Ta$%-uW+GStF$}CTS1!v#mFB4r9p0F~Zno9LHWa02O zVyw;V(VFQfr^0XI?dl<3F=7)!_ZcM%$DfIoK!xbrtg3{~H#s5Gy6N;n6cnEJLY`L` zTDoNmb>~|-5;44}A+!9xFam>+2b~5?ty=kHrW~q-k@yjZAHmoBZ=VrofGNRFG#KE`SUKY;$y7VqS_JQ0o7`|et~Vd>YI?Qr%! z(h9krQk!-M7r|$k;occt+JRSg&k@*@27V7F&xJy>!k0dM6&p@l|In(a^o@8pJ|Um; zy|1mkx_@PRA~Lf;S-)dBzEJ3tnT5~Rk?LJi^J(N9qZ7l(cIC2voyzYIZ{jw0S!=}s znWS3h{jH?N<=neb2UU;^voHz08g#F&{+l|XzUcdhWAn$?L%wpKf#`jAsD}yIj1H=M zJa-WidAqw-6NOBqDvml|#w3OoCH2tiYW;UjoXPC?+S8v6EgD^w(OpH$SE0^QBB9a z<9L3+xwz)!(j0_qi1!!2!nUrF#Bdgn#>OPE_W;I*O0BD&<%s!_5`zDpBeC7plTpEZt7&^svXU zlvDprqG=pmGB|HKC1*Tn=;tae;c?M`WJCYOp~!jV`(2ly*aF8!uRTGh56<7jzT~tA zU+@$xFBzH`+j{s#Rkll%im&f|f4C4 z^Vajlc}@Az9KM$Zudivdi<9d3dpEu@Mzn?1^rNIYs;SUJRy z5hyXZr_y!TuFKkQdoL)~{}%A^j>)Ijc<(2 z_2Y8_$UscY!ng2@<5h9Gfk2{j=E=Qyzco00PWHzAQW4imXe5Hs~CGQsy zhN)r?EUsMR3uk~S6*l~i{8d?N8hjjN>mnLXi<)?m_|(cTHp`U^9o^5Kzb&yAqxkl` z%cIYcc24%Qu)1QLoH*HYubMe~Ac=kzmZ=%pK?>zaH7@k1{PmFlo^E+0PFIC}zQ-EAyAZLH~h96asm6qM974Z?8$+f_6D2U)+QM41~1m187zTpnLN<`v=PXXoM);o=$*XdU{01Rq?i9c=yn|ALnHum9U;Q~p=s zf-9>?qFx{3DESia&myu$+>*6bZ~A<<2HH0K>v$b+jv0T9b7#fT$};_HA-jY z<>2J`#=)7+Lt8;c)lQn|g$DjF{lU`N%hnR=>E&+Y{y(^Caq8C>0Qdg_F4i_qfd8Z> T7D}=&8GsT*U9L{XBK-dVJ@p(6 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png index 27757bb4dc2eb0f63818197a34ec0d477b71808c..c3953a248a2feaf2fafa67ced9db9e0f016697e2 100644 GIT binary patch literal 5773 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

`z_QV%5hp!bouR=LXJ}aqLX)vc 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

$ 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