From 1cb87a4fb78dfc4fd1e6f3ca023d19a474677b41 Mon Sep 17 00:00:00 2001 From: Ilyas Hallak Date: Tue, 29 Jul 2025 21:26:32 +0200 Subject: [PATCH] feat: enhance UI with improved label management and splash screen - Add new logo and splash screen assets with multiple resolutions - Implement paginated label selection with TabView - Create UnifiedLabelChip component for consistent label display - Add manual tag entry functionality with validation - Refactor BookmarkLabelsViewModel with dependency injection - Update launch screen configuration and color sets - Add new localization strings for improved UX - Improve ShareBookmarkView with better label selection UI --- Localizable.xcstrings | 45 +++- URLShare/ShareBookmarkView.swift | 106 ++++++-- URLShare/ShareBookmarkViewModel.swift | 2 +- readeck.xcodeproj/project.pbxproj | 11 + .../green2.colorset/Contents.json | 6 +- .../logo.imageset/Contents.json | 59 +++++ .../Assets.xcassets/logo.imageset/logo 1.png | Bin 0 -> 16328 bytes .../Assets.xcassets/logo.imageset/logo 2.png | Bin 0 -> 16328 bytes .../Assets.xcassets/logo.imageset/logo 3.png | Bin 0 -> 16328 bytes .../Assets.xcassets/logo.imageset/logo 4.png | Bin 0 -> 16328 bytes .../Assets.xcassets/logo.imageset/logo 5.png | Bin 0 -> 16328 bytes .../Assets.xcassets/logo.imageset/logo.png | Bin 0 -> 16328 bytes .../splash.imageset/Contents.json | 26 ++ .../splash.imageset/readeck 1.png | Bin 0 -> 15329 bytes .../splash.imageset/readeck 2.png | Bin 0 -> 15329 bytes .../splash.imageset/readeck.png | Bin 0 -> 15329 bytes .../splashBackground.colorset/Contents.json | 20 ++ .../splashBg.colorset/Contents.json | 10 +- readeck/Info.plist | 4 +- readeck/Splash.storyboard | 67 +++++ .../BookmarkDetail/BookmarkLabelsView.swift | 231 ++++++++---------- .../BookmarkLabelsViewModel.swift | 39 ++- readeck/UI/Components/Constants.swift | 18 ++ readeck/UI/Components/UnifiedLabelChip.swift | 97 ++++++++ 24 files changed, 564 insertions(+), 177 deletions(-) create mode 100644 readeck/Assets.xcassets/logo.imageset/Contents.json create mode 100644 readeck/Assets.xcassets/logo.imageset/logo 1.png create mode 100644 readeck/Assets.xcassets/logo.imageset/logo 2.png create mode 100644 readeck/Assets.xcassets/logo.imageset/logo 3.png create mode 100644 readeck/Assets.xcassets/logo.imageset/logo 4.png create mode 100644 readeck/Assets.xcassets/logo.imageset/logo 5.png create mode 100644 readeck/Assets.xcassets/logo.imageset/logo.png create mode 100644 readeck/Assets.xcassets/splash.imageset/Contents.json create mode 100644 readeck/Assets.xcassets/splash.imageset/readeck 1.png create mode 100644 readeck/Assets.xcassets/splash.imageset/readeck 2.png create mode 100644 readeck/Assets.xcassets/splash.imageset/readeck.png create mode 100644 readeck/Assets.xcassets/splashBackground.colorset/Contents.json create mode 100644 readeck/Splash.storyboard create mode 100644 readeck/UI/Components/Constants.swift create mode 100644 readeck/UI/Components/UnifiedLabelChip.swift diff --git a/Localizable.xcstrings b/Localizable.xcstrings index b4211b9..a541074 100644 --- a/Localizable.xcstrings +++ b/Localizable.xcstrings @@ -25,6 +25,9 @@ }, "%lld min" : { + }, + "%lld minutes" : { + }, "%lld." : { @@ -44,11 +47,14 @@ }, "Activate the Read Aloud Feature to read aloud your articles. This is a really early preview and might not work perfectly." : { + }, + "Add" : { + }, "Add a new link to your collection" : { }, - "Add new label" : { + "Add new tag..." : { }, "all" : { @@ -61,6 +67,9 @@ } } } + }, + "All available tags" : { + }, "Archive" : { @@ -73,9 +82,18 @@ }, "Are you sure you want to log out? This will delete all your login credentials and return you to setup." : { + }, + "Automatic sync" : { + + }, + "Automatically mark articles as read" : { + }, "Cancel" : { + }, + "Clear cache" : { + }, "Clipboard" : { @@ -85,6 +103,9 @@ }, "Current labels" : { + }, + "Data Management" : { + }, "Delete" : { @@ -194,10 +215,10 @@ "No bookmarks found in %@." : { }, - "No labels available" : { + "OK" : { }, - "OK" : { + "Open external links in in-app Safari" : { }, "Optional: Custom title" : { @@ -239,18 +260,27 @@ } } } + }, + "Reading Settings" : { + }, "Remove" : { }, "Required" : { + }, + "Reset settings" : { + }, "Restore" : { }, "Resume listening" : { + }, + "Safari Reader Mode" : { + }, "Save bookmark" : { @@ -263,6 +293,9 @@ }, "Select a bookmark or tag" : { + }, + "Select labels" : { + }, "Server Endpoint" : { @@ -284,6 +317,12 @@ }, "Suche..." : { + }, + "Sync interval" : { + + }, + "Sync Settings" : { + }, "Theme" : { diff --git a/URLShare/ShareBookmarkView.swift b/URLShare/ShareBookmarkView.swift index c20b7e5..61d07f5 100644 --- a/URLShare/ShareBookmarkView.swift +++ b/URLShare/ShareBookmarkView.swift @@ -49,11 +49,53 @@ struct ShareBookmarkView: View { // Label Grid if !viewModel.labels.isEmpty { - LabelGridView(labels: viewModel.labels, selected: $viewModel.selectedLabels) + VStack(alignment: .leading, spacing: 8) { + Text("Select labels") + .font(.headline) + .padding(.horizontal) + + let pageSize = Constants.Labels.pageSize + let pages = stride(from: 0, to: viewModel.labels.count, by: pageSize).map { + Array(viewModel.labels[$0.. - private let columns = [GridItem(.flexible()), GridItem(.flexible()), GridItem(.flexible()), GridItem(.flexible()), GridItem(.flexible())] + @Binding var selectedLabels: Set + @State private var manualTag: String = "" + @State private var error: String? = nil + var body: some View { - LazyVGrid(columns: columns, spacing: 12) { - ForEach(labels.prefix(15), id: \ .name) { label in - Button(action: { - if selected.contains(label.name) { - selected.remove(label.name) - } else { - selected.insert(label.name) - } - }) { - Text(label.name) - .font(.system(size: 14, weight: .medium)) - .padding(.vertical, 10) - .frame(maxWidth: .infinity) - .background(selected.contains(label.name) ? Color.accentColor.opacity(0.2) : Color(.secondarySystemGroupedBackground)) - .foregroundColor(.primary) - .cornerRadius(8) - .overlay( - RoundedRectangle(cornerRadius: 8) - .stroke(selected.contains(label.name) ? Color.accentColor : Color.clear, lineWidth: 1) - ) + VStack(alignment: .leading, spacing: 4) { + HStack { + TextField("Add new tag...", text: $manualTag) + .textFieldStyle(RoundedBorderTextFieldStyle()) + .autocapitalization(.none) + .disableAutocorrection(true) + Button(action: addTag) { + Text("Add") + .font(.system(size: 15, weight: .semibold)) } + .disabled(manualTag.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty) + } + if let error = error { + Text(error) + .font(.caption) + .foregroundColor(.red) } } } + + private func addTag() { + let trimmed = manualTag.trimmingCharacters(in: .whitespacesAndNewlines) + guard !trimmed.isEmpty else { return } + let lowercased = trimmed.lowercased() + let allExisting = Set(labels.map { $0.name.lowercased() }) + let allSelected = Set(selectedLabels.map { $0.lowercased() }) + if allExisting.contains(lowercased) || allSelected.contains(lowercased) { + error = "Tag already exists." + } else { + selectedLabels.insert(trimmed) + manualTag = "" + error = nil + } + } } diff --git a/URLShare/ShareBookmarkViewModel.swift b/URLShare/ShareBookmarkViewModel.swift index b01f36f..a03a01b 100644 --- a/URLShare/ShareBookmarkViewModel.swift +++ b/URLShare/ShareBookmarkViewModel.swift @@ -52,7 +52,7 @@ class ShareBookmarkViewModel: ObservableObject { let loaded = await SimpleAPI.getBookmarkLabels { [weak self] message, error in self?.statusMessage = (message, error, error ? "❌" : "✅") } ?? [] - let sorted = loaded.prefix(10).sorted { $0.count > $1.count } + let sorted = loaded.sorted { $0.count > $1.count } await MainActor.run { self.labels = Array(sorted) } diff --git a/readeck.xcodeproj/project.pbxproj b/readeck.xcodeproj/project.pbxproj index 9bb6f9c..60c7fac 100644 --- a/readeck.xcodeproj/project.pbxproj +++ b/readeck.xcodeproj/project.pbxproj @@ -86,6 +86,9 @@ Data/KeychainHelper.swift, Domain/Model/Bookmark.swift, readeck.xcdatamodeld, + Splash.storyboard, + UI/Components/Constants.swift, + UI/Components/UnifiedLabelChip.swift, ); target = 5D2B7FAE2DFA27A400EBDB2B /* URLShare */; }; @@ -447,6 +450,10 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; @@ -476,6 +483,10 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/readeck/Assets.xcassets/green2.colorset/Contents.json b/readeck/Assets.xcassets/green2.colorset/Contents.json index 8b258f9..7110ee9 100644 --- a/readeck/Assets.xcassets/green2.colorset/Contents.json +++ b/readeck/Assets.xcassets/green2.colorset/Contents.json @@ -23,9 +23,9 @@ "color-space" : "srgb", "components" : { "alpha" : "1.000", - "blue" : "0x5A", - "green" : "0x4A", - "red" : "0x1F" + "blue" : "0x4B", + "green" : "0x41", + "red" : "0x20" } }, "idiom" : "universal" diff --git a/readeck/Assets.xcassets/logo.imageset/Contents.json b/readeck/Assets.xcassets/logo.imageset/Contents.json new file mode 100644 index 0000000..3927227 --- /dev/null +++ b/readeck/Assets.xcassets/logo.imageset/Contents.json @@ -0,0 +1,59 @@ +{ + "images" : [ + { + "filename" : "logo.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "filename" : "logo 5.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "logo 1.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "filename" : "logo 4.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "logo 2.png", + "idiom" : "universal", + "scale" : "3x" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "filename" : "logo 3.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "template" + } +} diff --git a/readeck/Assets.xcassets/logo.imageset/logo 1.png b/readeck/Assets.xcassets/logo.imageset/logo 1.png new file mode 100644 index 0000000000000000000000000000000000000000..dcff68b217db5ccf8b6f3b8b172fd06cb009c098 GIT binary patch literal 16328 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 T{hK%bRnf~zDoIp}nFRk2T@(J+ literal 0 HcmV?d00001 diff --git a/readeck/Assets.xcassets/logo.imageset/logo 2.png b/readeck/Assets.xcassets/logo.imageset/logo 2.png new file mode 100644 index 0000000000000000000000000000000000000000..dcff68b217db5ccf8b6f3b8b172fd06cb009c098 GIT binary patch literal 16328 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 T{hK%bRnf~zDoIp}nFRk2T@(J+ literal 0 HcmV?d00001 diff --git a/readeck/Assets.xcassets/logo.imageset/logo 3.png b/readeck/Assets.xcassets/logo.imageset/logo 3.png new file mode 100644 index 0000000000000000000000000000000000000000..dcff68b217db5ccf8b6f3b8b172fd06cb009c098 GIT binary patch literal 16328 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 T{hK%bRnf~zDoIp}nFRk2T@(J+ literal 0 HcmV?d00001 diff --git a/readeck/Assets.xcassets/logo.imageset/logo 4.png b/readeck/Assets.xcassets/logo.imageset/logo 4.png new file mode 100644 index 0000000000000000000000000000000000000000..dcff68b217db5ccf8b6f3b8b172fd06cb009c098 GIT binary patch literal 16328 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 T{hK%bRnf~zDoIp}nFRk2T@(J+ literal 0 HcmV?d00001 diff --git a/readeck/Assets.xcassets/logo.imageset/logo 5.png b/readeck/Assets.xcassets/logo.imageset/logo 5.png new file mode 100644 index 0000000000000000000000000000000000000000..dcff68b217db5ccf8b6f3b8b172fd06cb009c098 GIT binary patch literal 16328 zcmX|IWmsInl7(Ri9^BpCg8Sg^?iO4V+%32hB)EI9Ai*sV9D=)BaCh6A_jdQk{l?Bz zcUMbrU(Nt8OcJHO1A|+4~Fq_zfw|6dPR>3pGI!2Mz99VQJfk*E5UTQ4M8n zO>Hg7k5Uq^TUX_$-$x@ne2pbKhZ#SRVWHJVLgu^kvHtwBpGqDbQ{yCBL{qWbYeI9N zmK;z&3m#yug{29ENaR7iCo{ngf*6k6e#{jF%R%%D;)w%GYMJL3OcB3B1$~1+p^=%O z1oeC5iid9LH4Vi1+FRp&%lSZ^uFGVPXzN2%!V*_bpB;(+=H8Z3|&Prv| z*aGt~bon;fUVae-vY>l>?WYb~*7mQlf{UNUPugNV1Z%(2Tk`oM%>@RUf@H|Tpv8S* zL92wfn~mC<3ucQ9Eifa)ZMC;MuGswwcLwoiWG2Z_7!j)NXh!MXwN&wbj8647RY;|^ z6h@;T%xp0Q7m{EAF?{epG+Er&{V5?*5A@EGGC1=*#riQ(^7>2F2gKI9a$;mpyIC4iu*60pd`VKG&v*9ImuiMDZ& z_TwOUtQ>JVZIT3Yt+G({7p?d_KfiZwDaBs+;@#%5AaW5mG)m5!64^ zRpztg8Fh<+ih~d#efzri9>p){#GT2jwx3+toPzXj7+Gndmk1UdgVBxtPa#T%cFLt> z&rUR(Yw;paP8-Av24iZ|n0G{7n1;gRIF_XS-MVll z&AWgOnNSnz_p$??u+&_u>TlI+Lryb=i2Ob-&Qh=^=m3(S0Y$#c6Qjb!%eYk)e&iiB z#Hl!*(R}z}NAd}|K&RP~=h!U>m`)_s&ttzO?cNvW-J{Qsl9)R^wEY=L8_@W?6Wu3f z77PMq02;S`hxkb$@6T{)b@FnlBFHPkxgnYL%wT^eAWjksvot2G?mZd=^odMHDScs@ zCoMRTHAleMoffU&(t?Nh>o*yD6$pe9nhGtJ&4tyrh2gv&?(=f>)6ckf79PeatZjrl zWKpqw@UUP`bcody7{lyacUaHQ^Yv*VQ&s;N)z0G|KBe)$2Q5fV+9dxC9WiXWgsCOG zltJ}XAy?IZv)y;`fGqNYsE|%;TmS?ItaPxMC|WyPe#6VO@5wfV)fb(1m^CYnwe2*o zPsS`11R?;Im381ZAM{nixJ}~IC!uW>|D_7wML!;DEesAUH0vZN44JP`lLqj}Bhdv* z?PmGIECp$-Pn%Q&3{mN%Yu(YKfP{}>Ync6pFPBkENP-t7E3ub_ahJQ7{4A`-kWa@3 zx6n;i3c&K-hT^U2EUXC)?!8fZQW?9yJR;d0nLTW4HZr4Smw*m>2Pl{m{{7fDi2k`_ zXXQQ>t8VhTmuBa2NIctd$y7AUKJ_zD9$&-Nm@mxpRdv_cyOPcM3uZYkc|6 zD{f?d9|kO#02uca6ep)Ch`CDpV%@LZLiIm`5(&S7m>Pv=>8pt0JnsK6E@Q zAarg2Q+~I!YB@PxHa1@^beFgFo|Ug~El$UF>#tdB8I<8Fv-2 z>P{+Q4U31o;$olr<9a{*n9p&sFU0dXp~{+;fkKd=R5+6iRTt_0DnWeGk((H@>tU3_ z`gANbz#UaLA>7N84RpzM>RNYhsxz(DC--u(zpfK|q&g^>HNI+h^QW>ZksYdGhG$=)OCB>!;`4Czu;7+h2%l%cZ{QNvwB+9$t*iceM?8C z5(3y23UAB0>uU-9=tc(7=dxrbhN>&#F)pk-==GN`0Vo&{kPVsvOUB8uAA@`T zxuI3uKOQwT4UTtOB5Ci7n^Er%h}&&508!KMLfEy|tERq(hm<+qJc;@#aoh}5nKE%t z%f+ZN#t`VBf0M}o>0zKzVKS74Rvf2|mP387rI!Z7KLuCBnimLx1qO+ox8twr@g`{L ztm??8k>U4qs`VMFHDXIRku-kO#t;y3*qdA^H?r%#8tAmVyB+_WDpy*`P&I-?eu}h0 zThN(^o3?2s^bePxT*^=Q#A@YXoJgBC@T7O(s#)x|t?%8whmCcI5^wm$P8QHU74@FW zi=>?;2KMWm74FfMqGt1U#Z>EK(Sv&Qlhlm#^96hkr!*8o5ud+*qod6er+{mou@cvY zVt((WRIwXMgnRo?5Y`>~z-r(_D`1L$DGpk*`e6o=3hr7?!$_VqLyw44<_;$JlCcgb zr?gcdfk2~qgni&BD%L1lnD^u=|LIpt(X7-bgV?*X$7g(s^SvfXSCT`rR}<%X7dn<)QK! zh{aU%n^ya@uxFcHw0r--WLH--INDcc`3Zb#INKR@Xx3K(hL$C@mWuoO(O9kLvb{y9 zuIs;3r;{|#RdgmpDmKInG`13!L+rHr%Jbd`X#`Wu08km_;jw_fKj>)#_?ZQ8>aRZQJeCdeHTpq*G@ zp31A{UQP>mYGwlx-MIZ7buW+H5rbJD4zgHkqOjv23{}&`6EJ*JrA1EpJ5d0rx_4|m z_4O`9Q1waG%S9luE41kXp=hdALQJTJ$xrSPN3I%}z#aOP)eyK(m-ioY3>*jN9hQIR z_Et1hlW&snBz02zAye}J#`PKVaB!0KeEs0zGhf|LabPKasMc(Ev|jQ4PDe}TC;x~i zr}R%2)t{N^fOn*R?R>1K+^1Gm`$D!3b_Rvo%*FAt#^OV;fMN~4=)yktJ;Xk*z-p& z{$yECak1r27&E){YGuY~a4D(JE?Is>bzl69F6lSPQfLxO0tocxU81&F9Fr8jZ0=zx zG^i_?v#HQqHn?Dg5h!Mr%ayo@19k}>2T0a?nESjJHf zxtm>Z_j_8luVuB~No9@9Trk<1uHDw_u5-|M!Z}bFgPt^})w-?jIB!#JQ-*L%we2dN z)fL!{O_~m0P}&fj*JB?4o^t7Y&IBYbUl7{)(LWRl}%?fr(_o^W#1 zghpfjTvJ7CZ9XUnlkT)0o7*%+9?WLdB|lm5@#w+tX)>;tvfbuPF0+mWJ?Nyt`xUDb zT~yPt|E&2hN%H)vQbjwl9VVJ*+)}TutB=*qmuv`Lg{3%@G})r_e5srC<`on2kT{a+ zjl|6kIU-e^3^5i8_;!y}c*;YSh$axc<$PXdb-ru=ip|nyl713DZ>lWhc8C_jps*1& zDU6I42Sk=noX&}ha;x2M(f`5RP=$LR>g=U9?qNN+!Aym#5>W$ktT)Q6HpI9)rZuma z8{2YrRFsM3SL>&~k56{m7k^@_;0D&ulJD`#(j-qLmfw)lwn3BJY$DNN`SynpCVSLQ znW<9MEJ{F-!QjG%Y(MJdI;A1!s%<9B%@M*$W$E}AF%?r}=;AnnlWB9U?dTU^g&fCE z>LB6P_|WI_yzVTd+?Rv~+CJ=l`FvQ;k&mW>q%cv(rYtQV4P_JWSL1L>7ZYMp_9HUWmmkQjZ zj+O(d3u$bFY&G>fbJ5ud9;7Z6=xkNKuDeSjYnFM*6z5i< z#wB=4CX>_mLNPoB8Xt*H3oxp>4@~wmdob(21C$$Q1)Yw!M)o=DZ%QLy61k^v`ZUSf}iJAzG!l}$g?kRz{#*gZf`w4gLf7E*z8 zO33|R90F)d5@f}gLtA-4ve2K+upN4=T2PXt&74uVn%nZVJ{4Lnap!Y;DBhKND(sAZ zS|*kP)iH|+9mQ?8DX-aO>aHze#&PC=Gi;8SRn+4yzD4{Fqkl+Ph6fB-sw~|eGqtl9 z6{RUd1A4Iy-o7~X*2laeameqm7<4QUL*Lf@zAoR;scZ~?!5UXf&@I^uZJJAGk#S8u)hT*_QaGf%St z-xqeCHnX27sD|1X&t*G9FJGve6O}}&_rX%-11)fnaD#81&*>f7KGDrg6nK$4SUxyP zPHBU1{;iF{#}}YW2c~ogtBa0x$XC06bZjsUdg9M$>71PlU+PT^w-=fQDl`elvG7mt z6z?eaGOnc;+;j>;Y6pA=(%{#teZreZ6f^- z)hSvsbJ^cma)&^(YSQC~`ua6{UDH2QvVF2E&YgbaeM@#2wPpn?6B4T%@opz!dM2=) zSi4pEQNwOZX(8R()YE!LXtDB6mMxtI8UJ|3j5!QEmjh#!_Yxgu-+h%MtQ$v$CJOqt zsV7;1$m_K-NSG*Cf%c(I&u`+pZ(>f^`zs^fGE-Ok3p{bzSRfwTmg%bAZ4^J>rPx$_ zsWt>lSvOy=8m=oa_wipFo3mTg7=JeA*&C0?CdI)o0h9u?Sn{nlgNJ*MtAF+}~qS95hsJJBP z>pdKyrB_*m)R`O=T8H3({L$&zPKw|@wwx5$sL1)=Sbd)O$d}!%L#6p^_Yob5k3iRU z*MCzKrx-2AmO1PV&M(zxI)lO8KmU&RXR2!x9X)Fudgs^1K*e`hBd1pN7H9!ZSnty* z`SC-VLC*y2MmDUEiR_tOZOBBZ)m_em49{|45;`=A&&1h;Ia)s!u%%M}XgoboQ>vNE zK~3`ch#bv7m$gXPNLi86jbhavMlKADm|JMgWN95dP>~2xfc4PdbkezgE$I_Kl>i4P zXe>8k&VJ|=`Vr(HIuzCYiWT4g{o1Dr_vb|hyp#6&1s0b7c!9oRMEEE_JlzfD;Yo9C zT*h9d>&^Nw$4%#4JB4+bn8`Pd`_G3bzRkn#-yIWxbP@qryIxl%;p$X|go_-1O{ey6 zc|fK;d(5iZMb&c%OPif(s@S9{4o1ZLsND~(XTtGaEcC{qyE6#S-?ZFTGF#_t5zY14 zI%K(o5560V3BkxutEP}L%aHM#cO36=7o@TtVIk;7BAhqIpHD~Xr#qr8f3YJk;hRsY z39k7gz`Z#NVU|MpNghN6)~bI*f@@DZYv-@FB(~>NfUNfIw+5K%$bP;^RJ11qwBu>mpSPP1sQR+kS<3gQ3rKw)nybTy#AE}O`?zV`;}f!4lKJy z1jmFS*q0=lDs82vE&RSN)v6wSTjbsRB%+GIk!Av`=40wls%r$W7@^cBvJ-;$gLu}XGBiU?Q98E(IRit zO+Kfl*gOgNLbBH@ux`_bSP5pahhRST(l(lY7>sq1{$hoemxpxZ57?+l%>;yy>gLZmvw3vs>k^fMC$_v`F|_QA<%`iFILY zcL%3S=aZ99j9;zQ8jHi`Cz*s83;b!i$bScIsiyYsQpKGnLxs@XZ`sxFo;f`d&vv`0 z=?;>2&is$k zWbmDk55H9pfeoq}4@32W)-%KYan)+mitkwv$T&}?z zd75>%>`l1SLJ|i#jP=i_3LzLOG%{K`D(7nO?tH7Ej`jU$tonn3Ei!=4pPg~H`alv? zPHScev#*BM-jq{OX8xsnTG05_!nZ!=1H~#s{#N0=+%X5>!C0v9ujnv=u$T@%`GLCr zc-Wy0@X9K_+r7&Vf47J1XRPuxeX(;NZc_2B!{x})!1L;Yw>^dL0J|k{E>O&z?+k&v z8lkBOJNXUo8>+?JJoe31A9g_aDPVY9>$S*8DHCqZw8|?LFAS{4h_+v~N_gg220M7o zJ*zBk>c3AI?Q8W8Xb?VlBJmhTr2^e_@nWy(+{xLP|D?irPT${g=LP z@6x~?|A~B1nJcGBi#ZGY3e^0erv`zzftv7iz^NV*sf8U$dnkTc7B=wrF>oz@M^#D( zqnu52C>X*xp}F^3lpQum9;5+Up1or*S~ax6oWrL<0~_x~@4bE0iT2qFjja8L<>`O= z!sM!7g^BQS;+(0iB{n#CU0LAlpq_ahrZv0d?I5J-n|U^IuM}Q>kuu~K;fE6hUmObI zBl7##%jY2N%XM9!>favQ;Mee`aNKET+!hhZHhK*Jj{Xu)kDZ{O(*1qXPka{9Yb7xH z@2={ZUH}vNeOC827S2Qgm&@CHGYu&glhK_TL-MJq_WPS2;&9&ug$fIt zo1CkF_lx#38bm?K+bCfc8O~JkpK12ec&=Jrw8_1wpqL}IzM(rP{Xx{sq-FcM~#KqWtuu+3TBDr%+?2mRmJP&9FF%ke|zg`~K|lA{J^#{cLf< z9a_E3ZgB3Btx1NvsTKb8dtR?WU+s-Vqcg&SJXi80Y0Pfw3q}0tlwu~kXE$?H$hZ(cx z3v%T1(Pubh(hMHIeI5)?6r4KD&Jq;6ail_pX{RPf((f$$2;rBAqwE&pE%X~`MrqMY zJflpY_6t|h@%%<9%%!b5@p}>DYbUhtKg@P==4Y5ESQv-XwwR%^{X#4NQNhvCb> z^zitKl6yMv&st~ZJ60;x`VfVpD=t(w`lN8LKj`MBv33;n-Ftr0?WnTiX({}dKHw=X zXKrKPRI<*tOpDdU^O@y_Wx+%% zHhap&8~mfa+eX}RS@M!?krjIgR;p7Icjy<@Uepisy)20WJdN+cDSGhWi_R~1^n6S$ zt{L9rejEdjF+{%w6w`9^gY^c_K6Ftk7XQ(df-J}*N954!M@znd$MIH6|EAfu^gX|T zx=dDG2^e0Ywm&EA)_t095A>H0?ZwbzSKh-GAIj*SYOJS2*1nt^RMpMgs(Ym^@9-pA z<-UWB_aoZZdyRvH$>o|M%8+cg2A5z%E5mUJ`f?|Q)8z2?$xx*IyFpPv=Z$bLQ_jF} ztX%OW4q|FKvPRS=*)iFe&6D!}=nO}?+L5?!{#t;3fwn{hq$q8k86U!ZO<&sg!1-?2 zAaM;mzDO+=--coLGp+q2cq%6UNXm#E(;~vkBkSL}MzK4l;A)cmqy=iJzB(~>(Y$P9 zd9tT(E6LA9LD$GEJ2oVzqlzD=U6QS4P}Za>_pVs=v8>>)kvkIye*IiD8r`WBuokV2 z82Dw_+P_4{N{UbfTzM?Pq8oOuNFDAz5lEp;cM4A!kq4DX^yM7SSm5i<3%B zjk**Ga;;ekcQSs?DtZuto5IyCv^Vd zHPP)1m@oeH#Q9>*h@|CjQ>;JTeYWrDzbCck7)o9)5TCtE4X#@G3)A4e1}j5?vf)w{ z`3yaZhO_~?Yx|3sE)KV=);B~51dvVWC-@1SS1tEdAxdiZ{?Z!;Ebyg%l4 zKLW-!HOfYd!7m0_Y3N8E|+8&ux`?<=N-ovFrT2Q|? zA$?gZr1S3NE9v`x>37JiXXgyVP}%&IA+m^ek`|@CiVoO{lqA)hm5GDdRp9vvhmc z_37~(qv9vEDnV%k zRVB36>0K33YlEerw_Mb?r$oqjmmlKEw+l459X8Tnv+i)yoYtpIi7IW?Grl(~h_FO3 zL;>PxM&IO{>QvYjtla>TmjuPDE??39IoTf(Z&kt-QMyAOyN8#C9y0gUCfYOpBFHT1 zNg*OeBKgh_=kq-3}rdXJP?6#~1N4C7nSCsF~pi2=5Ri>R+T-J$-oW`1Xb_0hRE?lA8KY}67DI%Bkoh0gzBJ?maC!Z+6RUxqn)7>$4vpl zP9?@Y$KkZA^Er8t{QOwS)S%COztf1Pg7VeWK!y@F%Rc?}gC*`=R3^g5p(uPTr5EgN z|45%f!XG*%g!nsGgKuKX2kYfsSN&l{dFb#93VFb8Sg~MUUB?rNHtE5>BJ-(qC+1Be zlzCusxOjrrDZ>GY2WCcS5I1*5x?VCZ*j=(~w=g!-lV;{@YB)5$BoCbd()}JJf6AZH zyJg|4@fo2svGAB}xCpz)O|XAxK*5%ce7OTWwd#R9p>>HAwt2uDBp3JnHN@{3HFs~6 zebS4ZgBD!CciKB&_wyMc?rP?U+~0lgqu%NRVcN3`TM+UyEsTGod;)E4iWTSXT~lS? z3*uXdw*WO?K_C>o2F0IQj}LFn-o&KoU148`=neWi{B)?hw%kO3UH1a3N0k0~+dRuw z_A!CSxmKMW9zC6OJdw9yqq^e z;2s)gq=aYov;*VpT~FHg@J{bRASJX7(vNl#0VYzptWq@6^YZ$0PW!-65*3?O-}hUvi_%rdn07-gT1m|##qG83tNO18wrrNr-g>zl=ZrqSw8dpbF> z9!mng*sR6bf;(8#F3%&ovah?BK1Q#^9!=|#Z}L@Ll(Vk_tuD8guW=v{*#;=+K74h& zFnJY+b&2z9a6V-@uP;@NU{V0q?>Bnh;DJ}sc1Nezq6c#yf40*`?rQE9W5ue){W@dP>hF2xtEwdc66nwQAs7y&cWoHm!! z*UwE>hJ2`tcsdOrXtc8EK!bp6b}!?lPKSUstMk%k(p-myc+%t5=sQLZ&)gn_vhKHE z>CcA39G)V--Xa0W5_vYJ z&zYj!urMMWyn~e7M;w)<;+74L6gw0F$4X?Y9$gvr=K&>Rz0B0lM-mQ^UukHSwu;2^sixPjTBRSX4|$$n zR2gsr#63oR#+m0$sD-V2;D@#)g7B@T}#2bVv0 z1l1$24DVx{b2wGvtXNh?-_oG9Y+x&;gda9v<#UQcSo(y9VQ#da11PZ(kN$r5>dM;< z`dS~r-2<(th@n&M>3-ZutByBr!R2y~+bGD+GDLA=mqybuDt7DSne+XtLkIi78nEOi zTnt;@dQ+IZSNixL_|afLU_W~^ygMqhxatsY&-F6vQWYl*x^l`DqvV*#OUf82O?zlT zqW(EN>=l4@0-hPLb{lY8>bFI+wgTxc-C;0bKj79I1d6dMlP&ao-z6UiD8+GOtor-> z)hqkY1`#xV8YOhsFG^1#S|nKlhw+Dvq8?vLl{(j~*zKut@RShQ*+cWnkWQPEYh=8_ zoGRL@fN?+)0`UX4W%3HfUy_|=9r+qcO-~_Go56!}sZ+XPX5rYlHx6T!fJ`YbJ&DCM zNb6kAxIoRD<=JyHlDPc051175vU69=Q6fbfp=T}kox!7nE#G8E=~a>AR|5W>|K8W|Sd4%bfFHc#T;FVK>kKQ`J%*2PXWY`J zZcp3oOcCMr`%diq6||dSarW%x`}ikA8uM6=Oz6dFYgwghoywAvM?NqBVUpOl@;tV| z_I369aK^a(oP$#_+zf{&%evW<|LdkZiBBYDK&CixS+tGj0IEIvWDfW9Unm zl`3tc;_dSi-Wo+sndGGm^R*sU_NYLfld8`J?hJ=BxqQPuTqMq2J65kW5fNi#df)q@ zUyWp>au=Obh;1i$=h1V-QvK)T!h|3C5gFJDR6&GZOS$n=6)i^u*n#fv5U#&xj$CyN zU4dPYZG)`0!NFA;3|SD5alg^#3Iwc$Pv9vGqv#!W(V~?F!Eg^1yYft90pGQ51jlb# zFpShV7?_bLN#StN`=m>g!W=%@KSV&00oW)XqK+Mggh_;T*?PyHF>@Inz^mNadk12& zncc8QCDSSgwpve0uO>O=4G)>KrT5kW{&Uh#izGpV&wLfGlrB=2Y|D#35?BPjcWn_b zOq91dsp7ob(JN)cy~Ti`LM3ez>z*E1hx|YttNqxveTwh7{5P~686Dz=2*y(Wda20Z z_ySKN#i^iA0%B5ppit)d3~M*+?n~&7y;TU`m2GwO;;zN?q+nAS1vu9p(?$$j`o3{?hN@%*GTfF4EBkF?Fe>;af7JNi)oe`Klnhpg3e4H z?q2h7mRF;6=Qw3A^b=n0P!yP6r}@B*e0JBc)Igl>%&*E&Cx6+4P@ zAv=N&Xj!?fr7G5xK`%1c+N#QL#>>`Ov)l+ArqT_$v+ljkuJD7xnzvQ-X|BqqL(c*y zp-+ngnCiEfhsU(%emUFwi28f?bvW9BR#^sgT?=}IraD?+e_8QOdYf_iv{Q5${fkuv zoFU4}Q;VN#(Ow_M+#1f6R#LQ?m4Ji`xt9iI^4$%snm*an!i=1^G#S#_N}Aph$>!7e zt?ZZp-RFeBM{MjF3cbY#X}DM(tIMQLaXRGF9ch6$j#6;aDlOV`x|I890g%Vd3}ZbY z4r*vH3f)PRk};g`5g4pxlZl=q*=?m=I>yE61rLc6ss+Gapk7-WXU2se0P*=Id$dOK zg}#kyT0bwayAO;d)bo>ur9=StoN0`YCEAms4^*{jHHPaALZyLrJK?E$5nJ7d6p#oGOD5u-*66aCH4te_b_F& z*Xn;8gORd6*4(mZi^ZAE|_+&-##6AY^<&p;%`=Uw`XAPCgX%I!)S6$CE0*Nlc<7fU^<#9@vgP+*fJ z%ezy(3v92Lji>00PzG4mU!cyS2wO`cv9-rMg3c*?ki7Lx@Yzv=rW5EuPbek$HvFMrjGRCA3lmzI*amuz z-?c07^fN4<7_Cn7#9Ebh#>Zw^{LHT%M+F_m7lp-@uAMTsK2Q1}GJbnjr9w5#56a?) zAKfB87nxC=7-y(Eks)!H8W69%5BF<`pWDyqq)aIGAXcJeM!je;Xg|_3_9ZK40UeGt zv~I5-R@llHpT5dJ49s;cnY}+AM1YoDF0(!m3@(a#+fYoeU-VcdO%aBp>K?@@S ze!>3I9ltTc-tB&np3+{WGAQu5JI$}Lq<|L4Vq^~78WauDL_i090nfO0=DmvZzvSv+ zaw~MTF3>e$EXROAi)hUetxp!YtFAV}L4z9lZ*WH4tt#qH z8Gv*fENMui-VD`o^4Q`3QnF<)>2(z;XIaYDIqbjg~R1fc-GrkUnVKkEluWt zVka$*#wNaDnsG5h?>ZtWFbY_N+v1qR^>fgjOXW6ZlY|=@n*!N_C}q#c-)gUT&VsTF z%7oOZv_wGy(Kv2;G~OI;())S(zvar3_DD(6ehn&&njl{&w387+^`!-LnF$jf(zqI1 z1!}z@;G%5?$DjH*vElRUw2gITh569ND^^(7cKEwet*Q_dvIMRmvcLJ7SK72(ln>|; zD+449Zza=8a_?`LX}bmNi+_k9M%qIzYuoF)1s6+s&WSWH!9U(2&-Q4?m7zYN)#d~u zu8FT!-VTi_O)_%>gzFRV$6S`D+b`6*po5J&u5IDlFA=Ij0wCLW$|Py4KHUGV91-E0 zA&}dXAMwg6Nz@6q8!k*fXW&a!Z14~2yn9JS`BT{dS{8mu9snn9;uLjv;ihj80Mg|@ z|ImqcAJUx<#E?;bvwLuUUTLK&z<^(nHWBf^n6W5N z$3BvCW#Qvm&VvWjP>?-&FYeE)(kPJ;`+cQDKF&5Sdrzwh3;x!W$AklZL1_bf#_x{)cWjKCNvr#IUVb+nkb@iP3e2y#Uw zk*GM2MED3GdByVXajwEj@_)7C{(%Bbb{c<%!~z&PH?FlTtq>CK7O4%4q(~IS6rEdY z;A)lyzDPcBJp+F?@KCRkHsQ2~qa4jZuYq$epnme) z5{4c}P<6!H9$ElT0W6;`>KAcy+YKc6dnpKPbYyD$$&=#4;17y)MFdfEwA#$Top(d% z78b{3YW+u^!%0IH%XRP|5)2?B%|A~!@Zk)Zr33TK0X>A0L^(Ws3jT3_3hP_!r@P3_ z6dc$E4i4^|*5S8!kSEIV5)E{bNMda+~P>3k%1a=mO%e(fym8a#h>y z_kPyI)YumM3iw1506dUmKv7c~yv+E9e0 zqL3Tua)!Z23&6M+ZJDqR%yw6Ljl{4K0~yRYToT`Uo-2v=I=M8r@nQI z^!K~UWB4?RneY#DXr3+aCEbZ)exY#Zv53J@w^dFbTev6N%nNxk5QFMJe zuB!IRTQ;IfkdsKO&QvTu|C|$hujuRgL%WzkXCEPmO)z%O_4PZs6V6?>TxhQ{p>4F3 zBbv%JuJFw@38&3ICZ)Ig^ZuDT-a;a64o^*~uSjY{t5&ZAK{Nx~P;5a_As-DhCJMcC) zm9I6{m0a_+Jt>>`dVO=n)6)zyhkLpSq0!nlu-k;Q$;T^((rYFbSDMVNkf5r$V%x|_ z4d5f2-48 zEq+J+5wTBz9pavj$(xnRbAGtjJhqvxj|xLT-EE#aP#t4R6)%OqW#Ip7XPA&h&jSzp zSLVa5F<(dM7D15Og>$RRsd?mRoSD(^s^42Ao~}OMJwgg1E_GZ>; zJEEua4~ds5Il@5U3q$w5}gLG+msT5E0eM&+L0|XI`_V-VH;k;L$Elc zVk$igLNdclaEXi#PxpW>L+OB=j#`I_zEMYKjxl6Tp%VF%61djak`7rL50^z5x=C0* zEQ@7G$AnL!MYAnZ+>6_r3|ubwhn5roNH8Zd(y+JgPWkvxLyW;^Y{j6@jp)`u#fkGw z!I%Mj#n*1)NxbB`2(vE$*AM-Bq1bNgpvt{>4o?1j5y7BiYM?EEohs24nCx@}ec1bW z+&@oq3Nd&;f{ESLGgC56SfS26; z$U~-_KG*du85&hHGmq>l0YjZEA#_ey_CRtBbFv1&q9}^;(a?1oIC)NDQ1D5DeX8Kc zq(T#fQA;tSA^gZR^i53mA07U1P#W8j)h{{io_K^V6^)l6h#2T8T66^p+C5*td3jKY z_0+#I14{(%B_l_6CgiTjOeY5o@X`Sl8j;e7Ba0Fpd&Ms|ReQ2pE&}mpL!Nq_e>Fxq z*fj>%@|_qIXPBZxS%J2N%uggA^6^!PtD}>Ipz#GhgsFT0*tSXdkE;D0NS#6YKK1W= z%U;z!ZK$SRv{`H6E>t_pjl>w}io0%c(2CVFqI&yPxKLOy7=Dq}@=n9?r z=Ok_7WGW1&Fh|`M0`((WH@Z!-#L4#Xg9{1l!Dc9c)!2!#+eR?>PI3dXlf>^|#CqPPbNGOt%gkvBmlvu7(UiIC0dpkwe`8&6dNcS!yEotXq``bVcbOguaRo zw2;==5&tA%9L4CyV;lJ?dmuxm2;yAw1-J;8s)PK6{A9j@LAA~^%_%8!v6Wx2y#b@c@`RFjU?{?=mQ=7`3eh+|R?1g#TKE*Z%~G30zX$z&;-@1>2?Cp8)x6tWo{iTT z-X@?DmFNI7tU74g7kA=j0uWw!2j1n&<2 zeyU=qBGg7;Y(P&CX7wZOw*|DK6>c@tJU7L|7isU(qrqygfo-{4)i91^#q28f*m~`S zbp$L=9a0MJ^V@N&`=M)6fOw6|t<}1wYLksSuJ`xL{}QPII}?^Dd>2N(Hz3EV^`s)b zZqzo@Kk{_^7zbMq{xd&zIZH?UuMVxS00^`(yQl=S(3@=t4Y=`3H^shQ^Kwjh6l^k| zjCrU?%-jG1&ZO*gGn1f>HPM9Al3hUWQ+*=rYUOXYlPJ-#5Ck^}ZKE;1DiIjti z*lYwLS$Wl{)4&LBq!mF>>J#ZaGcMrYAs}|}T*ShC)9)I>M3j8<|Dpt&a5@jD&)rs9 zD{;$gY-Gqv5ROtsK0Gt~v+_6|%#OJ!d+l?ag1@e{+$w@L#TKmYEt-ST(=+o z&@VP~j;%zptU(*(lPm5O!ukLa#&ceJ+-O6(P?cp&Ty%V!eo9rj~}AG0*EZ+ z<+90&-R1T^Tu;?ev;wqNG4`q~uB3a}Dh!dBH^+v)NtM~*tSBD842v7u(cffS>ycENTPAKpaRjMKMv T{hK%bRnf~zDoIp}nFRk2T@(J+ literal 0 HcmV?d00001 diff --git a/readeck/Assets.xcassets/logo.imageset/logo.png b/readeck/Assets.xcassets/logo.imageset/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..dcff68b217db5ccf8b6f3b8b172fd06cb009c098 GIT binary patch literal 16328 zcmX|IWmsInl7(Ri9^BpCg8Sg^?iO4V+%32hB)EI9Ai*sV9D=)BaCh6A_jdQk{l?Bz zcUMbrU(Nt8OcJHO1A|+4~Fq_zfw|6dPR>3pGI!2Mz99VQJfk*E5UTQ4M8n zO>Hg7k5Uq^TUX_$-$x@ne2pbKhZ#SRVWHJVLgu^kvHtwBpGqDbQ{yCBL{qWbYeI9N zmK;z&3m#yug{29ENaR7iCo{ngf*6k6e#{jF%R%%D;)w%GYMJL3OcB3B1$~1+p^=%O z1oeC5iid9LH4Vi1+FRp&%lSZ^uFGVPXzN2%!V*_bpB;(+=H8Z3|&Prv| z*aGt~bon;fUVae-vY>l>?WYb~*7mQlf{UNUPugNV1Z%(2Tk`oM%>@RUf@H|Tpv8S* zL92wfn~mC<3ucQ9Eifa)ZMC;MuGswwcLwoiWG2Z_7!j)NXh!MXwN&wbj8647RY;|^ z6h@;T%xp0Q7m{EAF?{epG+Er&{V5?*5A@EGGC1=*#riQ(^7>2F2gKI9a$;mpyIC4iu*60pd`VKG&v*9ImuiMDZ& z_TwOUtQ>JVZIT3Yt+G({7p?d_KfiZwDaBs+;@#%5AaW5mG)m5!64^ zRpztg8Fh<+ih~d#efzri9>p){#GT2jwx3+toPzXj7+Gndmk1UdgVBxtPa#T%cFLt> z&rUR(Yw;paP8-Av24iZ|n0G{7n1;gRIF_XS-MVll z&AWgOnNSnz_p$??u+&_u>TlI+Lryb=i2Ob-&Qh=^=m3(S0Y$#c6Qjb!%eYk)e&iiB z#Hl!*(R}z}NAd}|K&RP~=h!U>m`)_s&ttzO?cNvW-J{Qsl9)R^wEY=L8_@W?6Wu3f z77PMq02;S`hxkb$@6T{)b@FnlBFHPkxgnYL%wT^eAWjksvot2G?mZd=^odMHDScs@ zCoMRTHAleMoffU&(t?Nh>o*yD6$pe9nhGtJ&4tyrh2gv&?(=f>)6ckf79PeatZjrl zWKpqw@UUP`bcody7{lyacUaHQ^Yv*VQ&s;N)z0G|KBe)$2Q5fV+9dxC9WiXWgsCOG zltJ}XAy?IZv)y;`fGqNYsE|%;TmS?ItaPxMC|WyPe#6VO@5wfV)fb(1m^CYnwe2*o zPsS`11R?;Im381ZAM{nixJ}~IC!uW>|D_7wML!;DEesAUH0vZN44JP`lLqj}Bhdv* z?PmGIECp$-Pn%Q&3{mN%Yu(YKfP{}>Ync6pFPBkENP-t7E3ub_ahJQ7{4A`-kWa@3 zx6n;i3c&K-hT^U2EUXC)?!8fZQW?9yJR;d0nLTW4HZr4Smw*m>2Pl{m{{7fDi2k`_ zXXQQ>t8VhTmuBa2NIctd$y7AUKJ_zD9$&-Nm@mxpRdv_cyOPcM3uZYkc|6 zD{f?d9|kO#02uca6ep)Ch`CDpV%@LZLiIm`5(&S7m>Pv=>8pt0JnsK6E@Q zAarg2Q+~I!YB@PxHa1@^beFgFo|Ug~El$UF>#tdB8I<8Fv-2 z>P{+Q4U31o;$olr<9a{*n9p&sFU0dXp~{+;fkKd=R5+6iRTt_0DnWeGk((H@>tU3_ z`gANbz#UaLA>7N84RpzM>RNYhsxz(DC--u(zpfK|q&g^>HNI+h^QW>ZksYdGhG$=)OCB>!;`4Czu;7+h2%l%cZ{QNvwB+9$t*iceM?8C z5(3y23UAB0>uU-9=tc(7=dxrbhN>&#F)pk-==GN`0Vo&{kPVsvOUB8uAA@`T zxuI3uKOQwT4UTtOB5Ci7n^Er%h}&&508!KMLfEy|tERq(hm<+qJc;@#aoh}5nKE%t z%f+ZN#t`VBf0M}o>0zKzVKS74Rvf2|mP387rI!Z7KLuCBnimLx1qO+ox8twr@g`{L ztm??8k>U4qs`VMFHDXIRku-kO#t;y3*qdA^H?r%#8tAmVyB+_WDpy*`P&I-?eu}h0 zThN(^o3?2s^bePxT*^=Q#A@YXoJgBC@T7O(s#)x|t?%8whmCcI5^wm$P8QHU74@FW zi=>?;2KMWm74FfMqGt1U#Z>EK(Sv&Qlhlm#^96hkr!*8o5ud+*qod6er+{mou@cvY zVt((WRIwXMgnRo?5Y`>~z-r(_D`1L$DGpk*`e6o=3hr7?!$_VqLyw44<_;$JlCcgb zr?gcdfk2~qgni&BD%L1lnD^u=|LIpt(X7-bgV?*X$7g(s^SvfXSCT`rR}<%X7dn<)QK! zh{aU%n^ya@uxFcHw0r--WLH--INDcc`3Zb#INKR@Xx3K(hL$C@mWuoO(O9kLvb{y9 zuIs;3r;{|#RdgmpDmKInG`13!L+rHr%Jbd`X#`Wu08km_;jw_fKj>)#_?ZQ8>aRZQJeCdeHTpq*G@ zp31A{UQP>mYGwlx-MIZ7buW+H5rbJD4zgHkqOjv23{}&`6EJ*JrA1EpJ5d0rx_4|m z_4O`9Q1waG%S9luE41kXp=hdALQJTJ$xrSPN3I%}z#aOP)eyK(m-ioY3>*jN9hQIR z_Et1hlW&snBz02zAye}J#`PKVaB!0KeEs0zGhf|LabPKasMc(Ev|jQ4PDe}TC;x~i zr}R%2)t{N^fOn*R?R>1K+^1Gm`$D!3b_Rvo%*FAt#^OV;fMN~4=)yktJ;Xk*z-p& z{$yECak1r27&E){YGuY~a4D(JE?Is>bzl69F6lSPQfLxO0tocxU81&F9Fr8jZ0=zx zG^i_?v#HQqHn?Dg5h!Mr%ayo@19k}>2T0a?nESjJHf zxtm>Z_j_8luVuB~No9@9Trk<1uHDw_u5-|M!Z}bFgPt^})w-?jIB!#JQ-*L%we2dN z)fL!{O_~m0P}&fj*JB?4o^t7Y&IBYbUl7{)(LWRl}%?fr(_o^W#1 zghpfjTvJ7CZ9XUnlkT)0o7*%+9?WLdB|lm5@#w+tX)>;tvfbuPF0+mWJ?Nyt`xUDb zT~yPt|E&2hN%H)vQbjwl9VVJ*+)}TutB=*qmuv`Lg{3%@G})r_e5srC<`on2kT{a+ zjl|6kIU-e^3^5i8_;!y}c*;YSh$axc<$PXdb-ru=ip|nyl713DZ>lWhc8C_jps*1& zDU6I42Sk=noX&}ha;x2M(f`5RP=$LR>g=U9?qNN+!Aym#5>W$ktT)Q6HpI9)rZuma z8{2YrRFsM3SL>&~k56{m7k^@_;0D&ulJD`#(j-qLmfw)lwn3BJY$DNN`SynpCVSLQ znW<9MEJ{F-!QjG%Y(MJdI;A1!s%<9B%@M*$W$E}AF%?r}=;AnnlWB9U?dTU^g&fCE z>LB6P_|WI_yzVTd+?Rv~+CJ=l`FvQ;k&mW>q%cv(rYtQV4P_JWSL1L>7ZYMp_9HUWmmkQjZ zj+O(d3u$bFY&G>fbJ5ud9;7Z6=xkNKuDeSjYnFM*6z5i< z#wB=4CX>_mLNPoB8Xt*H3oxp>4@~wmdob(21C$$Q1)Yw!M)o=DZ%QLy61k^v`ZUSf}iJAzG!l}$g?kRz{#*gZf`w4gLf7E*z8 zO33|R90F)d5@f}gLtA-4ve2K+upN4=T2PXt&74uVn%nZVJ{4Lnap!Y;DBhKND(sAZ zS|*kP)iH|+9mQ?8DX-aO>aHze#&PC=Gi;8SRn+4yzD4{Fqkl+Ph6fB-sw~|eGqtl9 z6{RUd1A4Iy-o7~X*2laeameqm7<4QUL*Lf@zAoR;scZ~?!5UXf&@I^uZJJAGk#S8u)hT*_QaGf%St z-xqeCHnX27sD|1X&t*G9FJGve6O}}&_rX%-11)fnaD#81&*>f7KGDrg6nK$4SUxyP zPHBU1{;iF{#}}YW2c~ogtBa0x$XC06bZjsUdg9M$>71PlU+PT^w-=fQDl`elvG7mt z6z?eaGOnc;+;j>;Y6pA=(%{#teZreZ6f^- z)hSvsbJ^cma)&^(YSQC~`ua6{UDH2QvVF2E&YgbaeM@#2wPpn?6B4T%@opz!dM2=) zSi4pEQNwOZX(8R()YE!LXtDB6mMxtI8UJ|3j5!QEmjh#!_Yxgu-+h%MtQ$v$CJOqt zsV7;1$m_K-NSG*Cf%c(I&u`+pZ(>f^`zs^fGE-Ok3p{bzSRfwTmg%bAZ4^J>rPx$_ zsWt>lSvOy=8m=oa_wipFo3mTg7=JeA*&C0?CdI)o0h9u?Sn{nlgNJ*MtAF+}~qS95hsJJBP z>pdKyrB_*m)R`O=T8H3({L$&zPKw|@wwx5$sL1)=Sbd)O$d}!%L#6p^_Yob5k3iRU z*MCzKrx-2AmO1PV&M(zxI)lO8KmU&RXR2!x9X)Fudgs^1K*e`hBd1pN7H9!ZSnty* z`SC-VLC*y2MmDUEiR_tOZOBBZ)m_em49{|45;`=A&&1h;Ia)s!u%%M}XgoboQ>vNE zK~3`ch#bv7m$gXPNLi86jbhavMlKADm|JMgWN95dP>~2xfc4PdbkezgE$I_Kl>i4P zXe>8k&VJ|=`Vr(HIuzCYiWT4g{o1Dr_vb|hyp#6&1s0b7c!9oRMEEE_JlzfD;Yo9C zT*h9d>&^Nw$4%#4JB4+bn8`Pd`_G3bzRkn#-yIWxbP@qryIxl%;p$X|go_-1O{ey6 zc|fK;d(5iZMb&c%OPif(s@S9{4o1ZLsND~(XTtGaEcC{qyE6#S-?ZFTGF#_t5zY14 zI%K(o5560V3BkxutEP}L%aHM#cO36=7o@TtVIk;7BAhqIpHD~Xr#qr8f3YJk;hRsY z39k7gz`Z#NVU|MpNghN6)~bI*f@@DZYv-@FB(~>NfUNfIw+5K%$bP;^RJ11qwBu>mpSPP1sQR+kS<3gQ3rKw)nybTy#AE}O`?zV`;}f!4lKJy z1jmFS*q0=lDs82vE&RSN)v6wSTjbsRB%+GIk!Av`=40wls%r$W7@^cBvJ-;$gLu}XGBiU?Q98E(IRit zO+Kfl*gOgNLbBH@ux`_bSP5pahhRST(l(lY7>sq1{$hoemxpxZ57?+l%>;yy>gLZmvw3vs>k^fMC$_v`F|_QA<%`iFILY zcL%3S=aZ99j9;zQ8jHi`Cz*s83;b!i$bScIsiyYsQpKGnLxs@XZ`sxFo;f`d&vv`0 z=?;>2&is$k zWbmDk55H9pfeoq}4@32W)-%KYan)+mitkwv$T&}?z zd75>%>`l1SLJ|i#jP=i_3LzLOG%{K`D(7nO?tH7Ej`jU$tonn3Ei!=4pPg~H`alv? zPHScev#*BM-jq{OX8xsnTG05_!nZ!=1H~#s{#N0=+%X5>!C0v9ujnv=u$T@%`GLCr zc-Wy0@X9K_+r7&Vf47J1XRPuxeX(;NZc_2B!{x})!1L;Yw>^dL0J|k{E>O&z?+k&v z8lkBOJNXUo8>+?JJoe31A9g_aDPVY9>$S*8DHCqZw8|?LFAS{4h_+v~N_gg220M7o zJ*zBk>c3AI?Q8W8Xb?VlBJmhTr2^e_@nWy(+{xLP|D?irPT${g=LP z@6x~?|A~B1nJcGBi#ZGY3e^0erv`zzftv7iz^NV*sf8U$dnkTc7B=wrF>oz@M^#D( zqnu52C>X*xp}F^3lpQum9;5+Up1or*S~ax6oWrL<0~_x~@4bE0iT2qFjja8L<>`O= z!sM!7g^BQS;+(0iB{n#CU0LAlpq_ahrZv0d?I5J-n|U^IuM}Q>kuu~K;fE6hUmObI zBl7##%jY2N%XM9!>favQ;Mee`aNKET+!hhZHhK*Jj{Xu)kDZ{O(*1qXPka{9Yb7xH z@2={ZUH}vNeOC827S2Qgm&@CHGYu&glhK_TL-MJq_WPS2;&9&ug$fIt zo1CkF_lx#38bm?K+bCfc8O~JkpK12ec&=Jrw8_1wpqL}IzM(rP{Xx{sq-FcM~#KqWtuu+3TBDr%+?2mRmJP&9FF%ke|zg`~K|lA{J^#{cLf< z9a_E3ZgB3Btx1NvsTKb8dtR?WU+s-Vqcg&SJXi80Y0Pfw3q}0tlwu~kXE$?H$hZ(cx z3v%T1(Pubh(hMHIeI5)?6r4KD&Jq;6ail_pX{RPf((f$$2;rBAqwE&pE%X~`MrqMY zJflpY_6t|h@%%<9%%!b5@p}>DYbUhtKg@P==4Y5ESQv-XwwR%^{X#4NQNhvCb> z^zitKl6yMv&st~ZJ60;x`VfVpD=t(w`lN8LKj`MBv33;n-Ftr0?WnTiX({}dKHw=X zXKrKPRI<*tOpDdU^O@y_Wx+%% zHhap&8~mfa+eX}RS@M!?krjIgR;p7Icjy<@Uepisy)20WJdN+cDSGhWi_R~1^n6S$ zt{L9rejEdjF+{%w6w`9^gY^c_K6Ftk7XQ(df-J}*N954!M@znd$MIH6|EAfu^gX|T zx=dDG2^e0Ywm&EA)_t095A>H0?ZwbzSKh-GAIj*SYOJS2*1nt^RMpMgs(Ym^@9-pA z<-UWB_aoZZdyRvH$>o|M%8+cg2A5z%E5mUJ`f?|Q)8z2?$xx*IyFpPv=Z$bLQ_jF} ztX%OW4q|FKvPRS=*)iFe&6D!}=nO}?+L5?!{#t;3fwn{hq$q8k86U!ZO<&sg!1-?2 zAaM;mzDO+=--coLGp+q2cq%6UNXm#E(;~vkBkSL}MzK4l;A)cmqy=iJzB(~>(Y$P9 zd9tT(E6LA9LD$GEJ2oVzqlzD=U6QS4P}Za>_pVs=v8>>)kvkIye*IiD8r`WBuokV2 z82Dw_+P_4{N{UbfTzM?Pq8oOuNFDAz5lEp;cM4A!kq4DX^yM7SSm5i<3%B zjk**Ga;;ekcQSs?DtZuto5IyCv^Vd zHPP)1m@oeH#Q9>*h@|CjQ>;JTeYWrDzbCck7)o9)5TCtE4X#@G3)A4e1}j5?vf)w{ z`3yaZhO_~?Yx|3sE)KV=);B~51dvVWC-@1SS1tEdAxdiZ{?Z!;Ebyg%l4 zKLW-!HOfYd!7m0_Y3N8E|+8&ux`?<=N-ovFrT2Q|? zA$?gZr1S3NE9v`x>37JiXXgyVP}%&IA+m^ek`|@CiVoO{lqA)hm5GDdRp9vvhmc z_37~(qv9vEDnV%k zRVB36>0K33YlEerw_Mb?r$oqjmmlKEw+l459X8Tnv+i)yoYtpIi7IW?Grl(~h_FO3 zL;>PxM&IO{>QvYjtla>TmjuPDE??39IoTf(Z&kt-QMyAOyN8#C9y0gUCfYOpBFHT1 zNg*OeBKgh_=kq-3}rdXJP?6#~1N4C7nSCsF~pi2=5Ri>R+T-J$-oW`1Xb_0hRE?lA8KY}67DI%Bkoh0gzBJ?maC!Z+6RUxqn)7>$4vpl zP9?@Y$KkZA^Er8t{QOwS)S%COztf1Pg7VeWK!y@F%Rc?}gC*`=R3^g5p(uPTr5EgN z|45%f!XG*%g!nsGgKuKX2kYfsSN&l{dFb#93VFb8Sg~MUUB?rNHtE5>BJ-(qC+1Be zlzCusxOjrrDZ>GY2WCcS5I1*5x?VCZ*j=(~w=g!-lV;{@YB)5$BoCbd()}JJf6AZH zyJg|4@fo2svGAB}xCpz)O|XAxK*5%ce7OTWwd#R9p>>HAwt2uDBp3JnHN@{3HFs~6 zebS4ZgBD!CciKB&_wyMc?rP?U+~0lgqu%NRVcN3`TM+UyEsTGod;)E4iWTSXT~lS? z3*uXdw*WO?K_C>o2F0IQj}LFn-o&KoU148`=neWi{B)?hw%kO3UH1a3N0k0~+dRuw z_A!CSxmKMW9zC6OJdw9yqq^e z;2s)gq=aYov;*VpT~FHg@J{bRASJX7(vNl#0VYzptWq@6^YZ$0PW!-65*3?O-}hUvi_%rdn07-gT1m|##qG83tNO18wrrNr-g>zl=ZrqSw8dpbF> z9!mng*sR6bf;(8#F3%&ovah?BK1Q#^9!=|#Z}L@Ll(Vk_tuD8guW=v{*#;=+K74h& zFnJY+b&2z9a6V-@uP;@NU{V0q?>Bnh;DJ}sc1Nezq6c#yf40*`?rQE9W5ue){W@dP>hF2xtEwdc66nwQAs7y&cWoHm!! z*UwE>hJ2`tcsdOrXtc8EK!bp6b}!?lPKSUstMk%k(p-myc+%t5=sQLZ&)gn_vhKHE z>CcA39G)V--Xa0W5_vYJ z&zYj!urMMWyn~e7M;w)<;+74L6gw0F$4X?Y9$gvr=K&>Rz0B0lM-mQ^UukHSwu;2^sixPjTBRSX4|$$n zR2gsr#63oR#+m0$sD-V2;D@#)g7B@T}#2bVv0 z1l1$24DVx{b2wGvtXNh?-_oG9Y+x&;gda9v<#UQcSo(y9VQ#da11PZ(kN$r5>dM;< z`dS~r-2<(th@n&M>3-ZutByBr!R2y~+bGD+GDLA=mqybuDt7DSne+XtLkIi78nEOi zTnt;@dQ+IZSNixL_|afLU_W~^ygMqhxatsY&-F6vQWYl*x^l`DqvV*#OUf82O?zlT zqW(EN>=l4@0-hPLb{lY8>bFI+wgTxc-C;0bKj79I1d6dMlP&ao-z6UiD8+GOtor-> z)hqkY1`#xV8YOhsFG^1#S|nKlhw+Dvq8?vLl{(j~*zKut@RShQ*+cWnkWQPEYh=8_ zoGRL@fN?+)0`UX4W%3HfUy_|=9r+qcO-~_Go56!}sZ+XPX5rYlHx6T!fJ`YbJ&DCM zNb6kAxIoRD<=JyHlDPc051175vU69=Q6fbfp=T}kox!7nE#G8E=~a>AR|5W>|K8W|Sd4%bfFHc#T;FVK>kKQ`J%*2PXWY`J zZcp3oOcCMr`%diq6||dSarW%x`}ikA8uM6=Oz6dFYgwghoywAvM?NqBVUpOl@;tV| z_I369aK^a(oP$#_+zf{&%evW<|LdkZiBBYDK&CixS+tGj0IEIvWDfW9Unm zl`3tc;_dSi-Wo+sndGGm^R*sU_NYLfld8`J?hJ=BxqQPuTqMq2J65kW5fNi#df)q@ zUyWp>au=Obh;1i$=h1V-QvK)T!h|3C5gFJDR6&GZOS$n=6)i^u*n#fv5U#&xj$CyN zU4dPYZG)`0!NFA;3|SD5alg^#3Iwc$Pv9vGqv#!W(V~?F!Eg^1yYft90pGQ51jlb# zFpShV7?_bLN#StN`=m>g!W=%@KSV&00oW)XqK+Mggh_;T*?PyHF>@Inz^mNadk12& zncc8QCDSSgwpve0uO>O=4G)>KrT5kW{&Uh#izGpV&wLfGlrB=2Y|D#35?BPjcWn_b zOq91dsp7ob(JN)cy~Ti`LM3ez>z*E1hx|YttNqxveTwh7{5P~686Dz=2*y(Wda20Z z_ySKN#i^iA0%B5ppit)d3~M*+?n~&7y;TU`m2GwO;;zN?q+nAS1vu9p(?$$j`o3{?hN@%*GTfF4EBkF?Fe>;af7JNi)oe`Klnhpg3e4H z?q2h7mRF;6=Qw3A^b=n0P!yP6r}@B*e0JBc)Igl>%&*E&Cx6+4P@ zAv=N&Xj!?fr7G5xK`%1c+N#QL#>>`Ov)l+ArqT_$v+ljkuJD7xnzvQ-X|BqqL(c*y zp-+ngnCiEfhsU(%emUFwi28f?bvW9BR#^sgT?=}IraD?+e_8QOdYf_iv{Q5${fkuv zoFU4}Q;VN#(Ow_M+#1f6R#LQ?m4Ji`xt9iI^4$%snm*an!i=1^G#S#_N}Aph$>!7e zt?ZZp-RFeBM{MjF3cbY#X}DM(tIMQLaXRGF9ch6$j#6;aDlOV`x|I890g%Vd3}ZbY z4r*vH3f)PRk};g`5g4pxlZl=q*=?m=I>yE61rLc6ss+Gapk7-WXU2se0P*=Id$dOK zg}#kyT0bwayAO;d)bo>ur9=StoN0`YCEAms4^*{jHHPaALZyLrJK?E$5nJ7d6p#oGOD5u-*66aCH4te_b_F& z*Xn;8gORd6*4(mZi^ZAE|_+&-##6AY^<&p;%`=Uw`XAPCgX%I!)S6$CE0*Nlc<7fU^<#9@vgP+*fJ z%ezy(3v92Lji>00PzG4mU!cyS2wO`cv9-rMg3c*?ki7Lx@Yzv=rW5EuPbek$HvFMrjGRCA3lmzI*amuz z-?c07^fN4<7_Cn7#9Ebh#>Zw^{LHT%M+F_m7lp-@uAMTsK2Q1}GJbnjr9w5#56a?) zAKfB87nxC=7-y(Eks)!H8W69%5BF<`pWDyqq)aIGAXcJeM!je;Xg|_3_9ZK40UeGt zv~I5-R@llHpT5dJ49s;cnY}+AM1YoDF0(!m3@(a#+fYoeU-VcdO%aBp>K?@@S ze!>3I9ltTc-tB&np3+{WGAQu5JI$}Lq<|L4Vq^~78WauDL_i090nfO0=DmvZzvSv+ zaw~MTF3>e$EXROAi)hUetxp!YtFAV}L4z9lZ*WH4tt#qH z8Gv*fENMui-VD`o^4Q`3QnF<)>2(z;XIaYDIqbjg~R1fc-GrkUnVKkEluWt zVka$*#wNaDnsG5h?>ZtWFbY_N+v1qR^>fgjOXW6ZlY|=@n*!N_C}q#c-)gUT&VsTF z%7oOZv_wGy(Kv2;G~OI;())S(zvar3_DD(6ehn&&njl{&w387+^`!-LnF$jf(zqI1 z1!}z@;G%5?$DjH*vElRUw2gITh569ND^^(7cKEwet*Q_dvIMRmvcLJ7SK72(ln>|; zD+449Zza=8a_?`LX}bmNi+_k9M%qIzYuoF)1s6+s&WSWH!9U(2&-Q4?m7zYN)#d~u zu8FT!-VTi_O)_%>gzFRV$6S`D+b`6*po5J&u5IDlFA=Ij0wCLW$|Py4KHUGV91-E0 zA&}dXAMwg6Nz@6q8!k*fXW&a!Z14~2yn9JS`BT{dS{8mu9snn9;uLjv;ihj80Mg|@ z|ImqcAJUx<#E?;bvwLuUUTLK&z<^(nHWBf^n6W5N z$3BvCW#Qvm&VvWjP>?-&FYeE)(kPJ;`+cQDKF&5Sdrzwh3;x!W$AklZL1_bf#_x{)cWjKCNvr#IUVb+nkb@iP3e2y#Uw zk*GM2MED3GdByVXajwEj@_)7C{(%Bbb{c<%!~z&PH?FlTtq>CK7O4%4q(~IS6rEdY z;A)lyzDPcBJp+F?@KCRkHsQ2~qa4jZuYq$epnme) z5{4c}P<6!H9$ElT0W6;`>KAcy+YKc6dnpKPbYyD$$&=#4;17y)MFdfEwA#$Top(d% z78b{3YW+u^!%0IH%XRP|5)2?B%|A~!@Zk)Zr33TK0X>A0L^(Ws3jT3_3hP_!r@P3_ z6dc$E4i4^|*5S8!kSEIV5)E{bNMda+~P>3k%1a=mO%e(fym8a#h>y z_kPyI)YumM3iw1506dUmKv7c~yv+E9e0 zqL3Tua)!Z23&6M+ZJDqR%yw6Ljl{4K0~yRYToT`Uo-2v=I=M8r@nQI z^!K~UWB4?RneY#DXr3+aCEbZ)exY#Zv53J@w^dFbTev6N%nNxk5QFMJe zuB!IRTQ;IfkdsKO&QvTu|C|$hujuRgL%WzkXCEPmO)z%O_4PZs6V6?>TxhQ{p>4F3 zBbv%JuJFw@38&3ICZ)Ig^ZuDT-a;a64o^*~uSjY{t5&ZAK{Nx~P;5a_As-DhCJMcC) zm9I6{m0a_+Jt>>`dVO=n)6)zyhkLpSq0!nlu-k;Q$;T^((rYFbSDMVNkf5r$V%x|_ z4d5f2-48 zEq+J+5wTBz9pavj$(xnRbAGtjJhqvxj|xLT-EE#aP#t4R6)%OqW#Ip7XPA&h&jSzp zSLVa5F<(dM7D15Og>$RRsd?mRoSD(^s^42Ao~}OMJwgg1E_GZ>; zJEEua4~ds5Il@5U3q$w5}gLG+msT5E0eM&+L0|XI`_V-VH;k;L$Elc zVk$igLNdclaEXi#PxpW>L+OB=j#`I_zEMYKjxl6Tp%VF%61djak`7rL50^z5x=C0* zEQ@7G$AnL!MYAnZ+>6_r3|ubwhn5roNH8Zd(y+JgPWkvxLyW;^Y{j6@jp)`u#fkGw z!I%Mj#n*1)NxbB`2(vE$*AM-Bq1bNgpvt{>4o?1j5y7BiYM?EEohs24nCx@}ec1bW z+&@oq3Nd&;f{ESLGgC56SfS26; z$U~-_KG*du85&hHGmq>l0YjZEA#_ey_CRtBbFv1&q9}^;(a?1oIC)NDQ1D5DeX8Kc zq(T#fQA;tSA^gZR^i53mA07U1P#W8j)h{{io_K^V6^)l6h#2T8T66^p+C5*td3jKY z_0+#I14{(%B_l_6CgiTjOeY5o@X`Sl8j;e7Ba0Fpd&Ms|ReQ2pE&}mpL!Nq_e>Fxq z*fj>%@|_qIXPBZxS%J2N%uggA^6^!PtD}>Ipz#GhgsFT0*tSXdkE;D0NS#6YKK1W= z%U;z!ZK$SRv{`H6E>t_pjl>w}io0%c(2CVFqI&yPxKLOy7=Dq}@=n9?r z=Ok_7WGW1&Fh|`M0`((WH@Z!-#L4#Xg9{1l!Dc9c)!2!#+eR?>PI3dXlf>^|#CqPPbNGOt%gkvBmlvu7(UiIC0dpkwe`8&6dNcS!yEotXq``bVcbOguaRo zw2;==5&tA%9L4CyV;lJ?dmuxm2;yAw1-J;8s)PK6{A9j@LAA~^%_%8!v6Wx2y#b@c@`RFjU?{?=mQ=7`3eh+|R?1g#TKE*Z%~G30zX$z&;-@1>2?Cp8)x6tWo{iTT z-X@?DmFNI7tU74g7kA=j0uWw!2j1n&<2 zeyU=qBGg7;Y(P&CX7wZOw*|DK6>c@tJU7L|7isU(qrqygfo-{4)i91^#q28f*m~`S zbp$L=9a0MJ^V@N&`=M)6fOw6|t<}1wYLksSuJ`xL{}QPII}?^Dd>2N(Hz3EV^`s)b zZqzo@Kk{_^7zbMq{xd&zIZH?UuMVxS00^`(yQl=S(3@=t4Y=`3H^shQ^Kwjh6l^k| zjCrU?%-jG1&ZO*gGn1f>HPM9Al3hUWQ+*=rYUOXYlPJ-#5Ck^}ZKE;1DiIjti z*lYwLS$Wl{)4&LBq!mF>>J#ZaGcMrYAs}|}T*ShC)9)I>M3j8<|Dpt&a5@jD&)rs9 zD{;$gY-Gqv5ROtsK0Gt~v+_6|%#OJ!d+l?ag1@e{+$w@L#TKmYEt-ST(=+o z&@VP~j;%zptU(*(lPm5O!ukLa#&ceJ+-O6(P?cp&Ty%V!eo9rj~}AG0*EZ+ z<+90&-R1T^Tu;?ev;wqNG4`q~uB3a}Dh!dBH^+v)NtM~*tSBD842v7u(cffS>ycENTPAKpaRjMKMv T{hK%bRnf~zDoIp}nFRk2T@(J+ literal 0 HcmV?d00001 diff --git a/readeck/Assets.xcassets/splash.imageset/Contents.json b/readeck/Assets.xcassets/splash.imageset/Contents.json new file mode 100644 index 0000000..4adc1f1 --- /dev/null +++ b/readeck/Assets.xcassets/splash.imageset/Contents.json @@ -0,0 +1,26 @@ +{ + "images" : [ + { + "filename" : "readeck.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "readeck 1.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "readeck 2.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "original" + } +} diff --git a/readeck/Assets.xcassets/splash.imageset/readeck 1.png b/readeck/Assets.xcassets/splash.imageset/readeck 1.png new file mode 100644 index 0000000000000000000000000000000000000000..a9ff749b6ff30e699fb59003a1ea53fcf15e6ca0 GIT binary patch literal 15329 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
  • sdZ}<%l|*t0_Y? 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 literal 0 HcmV?d00001 diff --git a/readeck/Assets.xcassets/splash.imageset/readeck 2.png b/readeck/Assets.xcassets/splash.imageset/readeck 2.png new file mode 100644 index 0000000000000000000000000000000000000000..a9ff749b6ff30e699fb59003a1ea53fcf15e6ca0 GIT binary patch literal 15329 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
  • sdZ}<%l|*t0_Y? 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 literal 0 HcmV?d00001 diff --git a/readeck/Assets.xcassets/splash.imageset/readeck.png b/readeck/Assets.xcassets/splash.imageset/readeck.png new file mode 100644 index 0000000000000000000000000000000000000000..a9ff749b6ff30e699fb59003a1ea53fcf15e6ca0 GIT binary patch literal 15329 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
  • sdZ}<%l|*t0_Y? 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 literal 0 HcmV?d00001 diff --git a/readeck/Assets.xcassets/splashBackground.colorset/Contents.json b/readeck/Assets.xcassets/splashBackground.colorset/Contents.json new file mode 100644 index 0000000..491e23f --- /dev/null +++ b/readeck/Assets.xcassets/splashBackground.colorset/Contents.json @@ -0,0 +1,20 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x60", + "green" : "0x4E", + "red" : "0x01" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/readeck/Assets.xcassets/splashBg.colorset/Contents.json b/readeck/Assets.xcassets/splashBg.colorset/Contents.json index 8b258f9..5e290f2 100644 --- a/readeck/Assets.xcassets/splashBg.colorset/Contents.json +++ b/readeck/Assets.xcassets/splashBg.colorset/Contents.json @@ -5,8 +5,8 @@ "color-space" : "srgb", "components" : { "alpha" : "1.000", - "blue" : "0x5A", - "green" : "0x4A", + "blue" : "0x5B", + "green" : "0x4B", "red" : "0x1F" } }, @@ -23,9 +23,9 @@ "color-space" : "srgb", "components" : { "alpha" : "1.000", - "blue" : "0x5A", - "green" : "0x4A", - "red" : "0x1F" + "blue" : "0x4C", + "green" : "0x40", + "red" : "0x21" } }, "idiom" : "universal" diff --git a/readeck/Info.plist b/readeck/Info.plist index 47ba9df..a61a416 100644 --- a/readeck/Info.plist +++ b/readeck/Info.plist @@ -25,9 +25,9 @@ UILaunchScreen UIColorName - splashBg + splashBackground UIImageName - readeck + splash diff --git a/readeck/Splash.storyboard b/readeck/Splash.storyboard new file mode 100644 index 0000000..0dcded1 --- /dev/null +++ b/readeck/Splash.storyboard @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/readeck/UI/BookmarkDetail/BookmarkLabelsView.swift b/readeck/UI/BookmarkDetail/BookmarkLabelsView.swift index 3c9556e..06eda4e 100644 --- a/readeck/UI/BookmarkDetail/BookmarkLabelsView.swift +++ b/readeck/UI/BookmarkDetail/BookmarkLabelsView.swift @@ -5,32 +5,111 @@ struct BookmarkLabelsView: View { @State private var viewModel: BookmarkLabelsViewModel @Environment(\.dismiss) private var dismiss - init(bookmarkId: String, initialLabels: [String]) { + init(bookmarkId: String, initialLabels: [String], viewModel: BookmarkLabelsViewModel? = nil) { self.bookmarkId = bookmarkId - self._viewModel = State(initialValue: BookmarkLabelsViewModel(initialLabels: initialLabels)) + self._viewModel = State(initialValue: viewModel ?? BookmarkLabelsViewModel(initialLabels: initialLabels)) + + UIPageControl.appearance().currentPageIndicatorTintColor = UIColor(Color.primary) + UIPageControl.appearance().pageIndicatorTintColor = UIColor(Color.primary).withAlphaComponent(0.2) + } var body: some View { NavigationView { - VStack(spacing: 16) { - // Add new label section - addLabelSection + VStack(spacing: 12) { + // Add new label + HStack(spacing: 12) { + TextField("Enter label...", text: $viewModel.newLabelText) + .textFieldStyle(RoundedBorderTextFieldStyle()) + .onSubmit { + Task { + await viewModel.addLabel(to: bookmarkId, label: viewModel.newLabelText) + } + } + + Button(action: { + Task { + await viewModel.addLabel(to: bookmarkId, label: viewModel.newLabelText) + } + }) { + Image(systemName: "plus.circle.fill") + .font(.title2) + .frame(width: 32, height: 32) + } + .disabled(viewModel.newLabelText.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty || viewModel.isLoading) + .foregroundColor(.accentColor) + } + .padding(.horizontal) - Divider() - .padding(.horizontal, -16) + // All available labels + if !viewModel.allLabels.isEmpty { + VStack(alignment: .leading, spacing: 8) { + Text("All available tags") + .font(.headline) + .padding(.horizontal) + + TabView { + ForEach(Array(viewModel.labelPages.enumerated()), id: \ .offset) { pageIndex, labelsPage in + LazyVGrid(columns: [GridItem(.flexible()), GridItem(.flexible()), GridItem(.flexible()), GridItem(.flexible())], alignment: .leading, spacing: 8) { + ForEach(labelsPage.filter { !viewModel.currentLabels.contains($0.name) }, id: \ .id) { label in + UnifiedLabelChip( + label: label.name, + isSelected: viewModel.currentLabels.contains(label.name), + isRemovable: false, + onTap: { + Task { + await viewModel.toggleLabel(for: bookmarkId, label: label.name) + } + } + ) + } + } + .frame(maxWidth: .infinity, alignment: .top) + .padding(.horizontal) + } + } + .tabViewStyle(PageTabViewStyle(indexDisplayMode: .automatic)) + .frame(height: 180) + .padding(.top, -20) + } + } - // Current labels section - currentLabelsSection + // Current labels + if !viewModel.currentLabels.isEmpty { + VStack(alignment: .leading, spacing: 8) { + Text("Current labels") + .font(.headline) + .padding(.horizontal) + + LazyVGrid(columns: [GridItem(.flexible()), GridItem(.flexible()), GridItem(.flexible()), GridItem(.flexible())], alignment: .leading, spacing: 8) { + ForEach(viewModel.currentLabels, id: \.self) { label in + UnifiedLabelChip( + label: label, + isSelected: true, + isRemovable: true, + onTap: { + // No action for current labels + }, + onRemove: { + Task { + await viewModel.removeLabel(from: bookmarkId, label: label) + } + } + ) + } + } + .padding(.horizontal) + } + } Spacer() } - .padding() + .padding(.vertical) .background(Color(.systemGroupedBackground)) .navigationTitle("Manage Labels") .navigationBarTitleDisplayMode(.inline) .toolbar { ToolbarItem(placement: .navigationBarLeading) { - Button("Cancel") { dismiss() } @@ -46,131 +125,17 @@ struct BookmarkLabelsView: View { } message: { Text(viewModel.errorMessage ?? "Unknown error") } - } - } - - private var addLabelSection: some View { - VStack(alignment: .leading, spacing: 12) { - Text("Add new label") - .font(.headline) - .foregroundColor(.primary) - - HStack(spacing: 12) { - TextField("Enter label...", text: $viewModel.newLabelText) - .textFieldStyle(RoundedBorderTextFieldStyle()) - .onSubmit { - Task { - await viewModel.addLabel(to: bookmarkId, label: viewModel.newLabelText) - } - } - - Button(action: { - Task { - await viewModel.addLabel(to: bookmarkId, label: viewModel.newLabelText) - } - }) { - Image(systemName: "plus.circle.fill") - .font(.title2) - .foregroundColor(.white) - .frame(width: 32, height: 32) - .background( - Circle() - .fill(Color.accentColor) - ) - } - .disabled(viewModel.newLabelText.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty || viewModel.isLoading) + .task { + await viewModel.loadAllLabels() + } + .ignoresSafeArea(.keyboard) + .onTapGesture { + UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil) } } - .padding() - .background( - RoundedRectangle(cornerRadius: 12) - .fill(Color(.secondarySystemGroupedBackground)) - ) - } - - private var currentLabelsSection: some View { - VStack(alignment: .leading, spacing: 8) { - HStack { - Text("Current labels") - .font(.headline) - .foregroundColor(.primary) - - Spacer() - - if viewModel.isLoading { - ProgressView() - .scaleEffect(0.8) - } - } - - if viewModel.currentLabels.isEmpty { - VStack(spacing: 8) { - Image(systemName: "tag") - .font(.title2) - .foregroundColor(.secondary) - Text("No labels available") - .font(.subheadline) - .foregroundColor(.secondary) - } - .frame(maxWidth: .infinity) - .padding(.vertical, 32) - } else { - LazyVGrid(columns: [ - GridItem(.adaptive(minimum: 80, maximum: 150)) - ], spacing: 4) { - ForEach(viewModel.currentLabels, id: \.self) { label in - LabelChip( - label: label, - onRemove: { - Task { - await viewModel.removeLabel(from: bookmarkId, label: label) - } - } - ) - } - } - } - } - .padding() - .background( - RoundedRectangle(cornerRadius: 12) - .fill(Color(.secondarySystemGroupedBackground)) - ) - } -} - -struct LabelChip: View { - let label: String - let onRemove: () -> Void - - var body: some View { - HStack(spacing: 6) { - Text(label) - .font(.caption) - .fontWeight(.medium) - .foregroundColor(.primary) - .lineLimit(1) - .truncationMode(.tail) - - Button(action: onRemove) { - Image(systemName: "xmark.circle.fill") - .font(.caption) - .foregroundColor(.secondary) - } - } - .padding(.horizontal, 10) - .padding(.vertical, 6) - .background( - RoundedRectangle(cornerRadius: 16) - .fill(Color.accentColor.opacity(0.15)) - .overlay( - RoundedRectangle(cornerRadius: 16) - .stroke(Color.accentColor.opacity(0.4), lineWidth: 1) - ) - ) } } #Preview { - BookmarkLabelsView(bookmarkId: "test-id", initialLabels: ["wichtig", "arbeit", "persönlich"]) -} + BookmarkLabelsView(bookmarkId: "test-id", initialLabels: ["wichtig", "arbeit", "persönlich"], viewModel: .init(MockUseCaseFactory(), initialLabels: ["test"])) +} diff --git a/readeck/UI/BookmarkDetail/BookmarkLabelsViewModel.swift b/readeck/UI/BookmarkDetail/BookmarkLabelsViewModel.swift index 7b47811..4fac783 100644 --- a/readeck/UI/BookmarkDetail/BookmarkLabelsViewModel.swift +++ b/readeck/UI/BookmarkDetail/BookmarkLabelsViewModel.swift @@ -2,8 +2,9 @@ import Foundation @Observable class BookmarkLabelsViewModel { - private let addLabelsUseCase = DefaultUseCaseFactory.shared.makeAddLabelsToBookmarkUseCase() - private let removeLabelsUseCase = DefaultUseCaseFactory.shared.makeRemoveLabelsFromBookmarkUseCase() + private let addLabelsUseCase: PAddLabelsToBookmarkUseCase + private let removeLabelsUseCase: PRemoveLabelsFromBookmarkUseCase + private let getLabelsUseCase: PGetLabelsUseCase var isLoading = false var errorMessage: String? @@ -11,8 +12,38 @@ class BookmarkLabelsViewModel { var currentLabels: [String] = [] var newLabelText = "" - init(initialLabels: [String] = []) { + + var allLabels: [BookmarkLabel] = [] { + didSet { + let pageSize = Constants.Labels.pageSize + labelPages = stride(from: 0, to: allLabels.count, by: pageSize).map { + Array(allLabels[$0.. Void + let onRemove: (() -> Void)? + + init(label: String, isSelected: Bool = false, isRemovable: Bool = false, onTap: @escaping () -> Void, onRemove: (() -> Void)? = nil) { + self.label = label + self.isSelected = isSelected + self.isRemovable = isRemovable + self.onTap = onTap + self.onRemove = onRemove + } + + var body: some View { + Button(action: onTap) { + HStack(spacing: 6) { + Text(label) + .font(.caption) + .fontWeight(.medium) + .foregroundColor(isSelected ? .white : .primary) + .lineLimit(1) + .truncationMode(.tail) + + if isRemovable, let onRemove = onRemove { + Button(action: onRemove) { + Image(systemName: "xmark.circle.fill") + .font(.caption) + .foregroundColor(isSelected ? .white.opacity(0.8) : .secondary) + } + .buttonStyle(PlainButtonStyle()) + } + } + .padding(.horizontal, 10) + .padding(.vertical, 6) + .frame(minHeight: 32) + .background( + RoundedRectangle(cornerRadius: 16) + .fill(isSelected ? Color.accentColor : Color.accentColor.opacity(0.15)) + .overlay( + RoundedRectangle(cornerRadius: 16) + .stroke(Color.accentColor.opacity(0.4), lineWidth: 1) + ) + ) + } + .buttonStyle(PlainButtonStyle()) + } +} + +#Preview { + VStack(spacing: 16) { + UnifiedLabelChip( + label: "Sample Label", + isSelected: false, + isRemovable: false, + onTap: {} + ) + + UnifiedLabelChip( + label: "Selected Label", + isSelected: true, + isRemovable: false, + onTap: {} + ) + + UnifiedLabelChip( + label: "Removable Label", + isSelected: false, + isRemovable: true, + onTap: {}, + onRemove: {} + ) + + UnifiedLabelChip( + label: "Selected & Removable", + isSelected: true, + isRemovable: true, + onTap: {}, + onRemove: {} + ) + } + .padding() +} \ No newline at end of file