From a34cfa4e78c46e1a964ede019c97448b44068928 Mon Sep 17 00:00:00 2001 From: Mike Griese Date: Wed, 12 Aug 2020 08:40:38 -0500 Subject: [PATCH] Mini-spec for New Tab Menu Customization (#5888) * This is a mini-spec for how I see this working * good bot * These were some typos * Addd a future consideration about the command palette and commands * Update spec to reflect discussion with Carlos * update spec to reflect investigations in Command Palette Addenda 1 * add references to #6899, and minor bits of review feedback * add `remainingProfiles` as a way of adding all the user's other profiles quickly to the menu as well * clarify why we're not doing it in the profiles list * no two commits do not contain a misspelling of separate --- .../#1571 - New Tab Menu Customization.md | 300 ++++++++++++++++++ .../Menu-Customization-000.png | Bin 0 -> 46941 bytes 2 files changed, 300 insertions(+) create mode 100644 doc/specs/#1571 - New Tab Menu Customization/#1571 - New Tab Menu Customization.md create mode 100644 doc/specs/#1571 - New Tab Menu Customization/Menu-Customization-000.png diff --git a/doc/specs/#1571 - New Tab Menu Customization/#1571 - New Tab Menu Customization.md b/doc/specs/#1571 - New Tab Menu Customization/#1571 - New Tab Menu Customization.md new file mode 100644 index 00000000000..210db5499c0 --- /dev/null +++ b/doc/specs/#1571 - New Tab Menu Customization/#1571 - New Tab Menu Customization.md @@ -0,0 +1,300 @@ +--- +author: Mike Griese @zadjii-msft +created on: 2020-5-13 +last updated: 2020-08-04 +issue id: 1571 +--- + +# New Tab Menu Customization + +## Abstract + +Many users have lots and _lots_ of profiles that they use. Some of these +profiles the user might not use that frequently. When that happens, the new tab +dropdown can become quite cluttered. + +A common ask is for the ability to reorder and reorganize this dropdown. This +spec provides a design for how the user might be able to specify the +customization in their settings. + +## Inspiration + +Largely, this spec was inspired by discussion in +[#1571](https://github.com/microsoft/terminal/issues/1571#issuecomment-519504048) +and the _many_ linked threads. + +## Solution Design + +This design proposes adding a new setting `"newTabMenu"`. When unset, (the +default), the new tab menu is populated with all the profiles, in the order they +appear in the users settings file. When set, this enables the user to control +the appearance of the new tab dropdown. Let's take a look at an example: + +```json +{ + "profiles":{ ... }, + "newTabMenu": [ + { "type":"profile", "profile": "cmd" }, + { "type":"profile", "profile": "Windows PowerShell" }, + { "type":"separator" }, + { + "type":"folder", + "name": "ssh", + "icon": "C:\\path\\to\\icon.png", + "entries":[ + { "type":"profile", "profile": "Host 1" }, + { "type":"profile", "profile": "8.8.8.8" }, + { "type":"profile", "profile": "Host 2" } + ] + }, + { "type":"separator" }, + { "type":"profile", "profile": "Ubuntu-18.04" }, + { "type":"profile", "profile": "Fedora" } + ] +} +``` + +If a user were to use this as their new tab menu, that they would get is a menu +that looks like this: + +![fig 1](Menu-Customization-000.png) + +_fig 1_: A _very rough_ mockup of what this feature might look like + +There are five `type`s of objects in this menu: +* `"type":"profile"`: This is a profile. Clicking on this entry will open a new + tab, with that profile. The profile is identified with the `"profile"` + parameter, which accepts either a profile `name` or GUID. The icon for this + entry will be the profile's icon, and the text on the entry will be the + profile's name. +* `"type":"separator"`: This represents a XAML `MenuFlyoutSeparator`, enabling + the user to visually space out entries. +* `"type":"folder"`: This represents a nested menu of entries. + - The `"name"` property provides a string of text to display for the group. + - The `"icon"` property provides a path to a image to use as the icon. This + property is optional. + - The `"entries"` property specifies a list of menu entries that will appear + nested under this entry. This can contain other `"type":"folder"` groups as + well! +* `"type":"action"`: This represents a menu entry that should execute a specific + `ShortcutAction`. + - the `id` property will specify the global action ID (see [#6899], [#7175]) + to identify the action to perform when the user selects the entry. Actions + with invalid IDs will be ignored and omitted from the list. + - The text for this entry will be the action's label (which is + either provided as the `"name"` in the global list of actions, or the + generated name if no `name` was provided) + - The icon for this entry will similarly re-use the action's `icon`. +* `"type":"remainingProfiles"`: This is a special type of entry that will be + expanded to contain one `"type":"profile"` entry for every profile that was + not already listed in the menu. This will allow users to add one entry for + just "all the profiles they haven't manually added to the menu". + - This type of entry can only be specified once - trying to add it to the menu + twice will raise a warning, and ignore all but the first `remainingProfiles` + entry. + - This type of entry can also be set inside a `folder` entry, allowing users + to highlight only a couple profiles in the top-level of the menu, but + enabling all other profiles to also be accessible. + - The "name" of these entries will simply be the name of the profile + - The "icon" of these entries will simply be the profile's icon + +The "default" new tab menu could be imagined as the following blob of json: + +```json +{ + "newTabMenu": [ + { "type":"remainingProfiles" } + ] +} +``` + +### Other considerations + +Also considered during the investigation for this feature was re-using the list +of profiles to expose the structure of the new tab menu. For example, doing +something like: + +```json +"profiles": { + "defaults": {}, + "list": + [ + { "name": "cmd" }, + { "name": "powershell" }, + { "type": "separator" }, + { + "type": "folder" , + "profiles": [ + { "name": "ubuntu" } + ] + } + ] +} +``` + +This option was not pursued because we felt that it needlessly complicated the +contents of the list of profiles objects. We'd rather have the `profiles` list +exclusively contain `Profile` objects, and have other elements of the json +_refer_ to those profiles. What if someone would like to have an action that +opened a new tab with profile index 4, and then they set that action as entry 4 +in the profile's list? That would certainly be some sort of unexpected behavior. + +Additionally, what if someone wants to have an entry that opens a tab with one +pane with one profile in it, and another pane with different profile in it? Or +what if they want the same profile to appear twice in the menu? + +By overloading the structure of the `profiles` list, we're forcing all other +consumers of the list of profiles to care about the structure of the elements of +the list. These other consumers should only really care about the list of +profiles, and not necessarily how they're structured in the new tab dropdown. +Furthermore, it complicates the list of profiles, by adding actions intermixed +with the profiles. + +The design chosen in this spec more cleanly separates the responsibilities of +the list of profiles and the contents of the new tab menu. This way, each object +can be defined independent of the structure of the other. + +## UI/UX Design + +See the above _figure 1_. + +The profile's `icon` will also appear as the icon on `profile` entries. If +there's a keybinding bound to open a new tab with that profile, then that will +also be added to the `MenuFlyoutItem` as the accelerator text, similar to the +text we have nowadays. + +Beneath the list of profiles will _always_ be the same "Settings", "Feedback" +and "About" entries, separated by a `MenuFlyoutSeparator`. This is consistent +with the UI as it exists with no customization. These entries cannot be removed +with this feature, only the list of profiles customized. + +## Capabilities + +### Accessibility + +This menu will be added to the XAML tree in the same fashion as the current new +tab flyout, so there should be no dramatic change here. + +### Security + +_(no change expected)_ + +### Reliability + +_(no change expected)_ + +### Compatibility + +_(no change expected)_ + +### Performance, Power, and Efficiency + +_(no change expected)_ + +## Potential Issues + +Currently, the `openTab` and `splitPane` keybindings will accept a `index` +parameter to say either: +* "Create a new tab/pane with the N'th profile" +* "Create a new tab/pane with the profile at index N in the new +tab dropdown". + +These two were previously synonymous, as the N'th profile was always the N'th in +the dropdown. However, with this change, we'll be changing the meaning of that +argument to mean explicitly the first option - "Open a tab/pane with the N'th +profile". + +A previous version of this spec considered changing the meaning of that +parameter to mean "open the entry at index N", the second option. However, in +[Command Palette, Addendum 1], we found that naming that command would become +unnecessarily complex. + +To cover that above scenario, we could consider adding an `index` parameter to +the `openNewTabDropdown` action. If specified, that would open either the N'th +action in the dropdown (ignoring separators), or open the dropdown with the n'th +item selected. + +The N'th entry in the menu won't always be a profile: it might be a folder with +more options, or it might be an action (that might not be opening a new tab/pane +at all). + +Given all the above scenarios, `openNewTabDropdown` with an `"index":N` +parameter will behave in the following ways. If the Nth top-level entry in the +new tab menu is a: +* `"type":"profile"`: perform the `newTab` or `splitPane` action with that profile. +* `"type":"folder"`: Focus the first element in the sub menu, so the user could + navigate it with the keyboard. +* `"type":"separator"`: Ignore these when counting top-level entries. +* `"type":"action"`: Perform the action. + +So for example: + +``` +New Tab Button ▽ +├─ Folder 1 +│ └─ Profile A +│ └─ Action B +├─ Separator +├─ Folder 2 +│ └─ Profile C +│ └─ Profile D +├─ Action E +└─ Profile F +``` + +And assuming the user has bound: +```json +{ + "bindings": + [ + { "command": { "action": "openNewTabDropdown", "index": 0 }, "keys": "ctrl+shift+1" }, + { "command": { "action": "openNewTabDropdown", "index": 1 }, "keys": "ctrl+shift+2" }, + { "command": { "action": "openNewTabDropdown", "index": 2 }, "keys": "ctrl+shift+3" }, + { "command": { "action": "openNewTabDropdown", "index": 3 }, "keys": "ctrl+shift+4" }, + ] +} +``` + +* ctrl+shift+1 focuses "Profile A", but the user needs to press + enter/space to creates a new tab/split +* ctrl+shift+2 focuses "Profile C", but the user needs to press + enter/space to creates a new tab/split +* ctrl+shift+3 performs Action E +* ctrl+shift+4 Creates a new tab/split with Profile F + +## Future considerations + +* The user could set a `"name"`/`"text"`, or `"icon"` property to these menu + items manually, to override the value from the profile or action. These + settings would be totally optional, but it's not unreasonable that someone + might want this. +* We may want to consider adding a default icon for all folders or actions in + the menu. For example, a folder (like 📁) for `folder` entries, or something + like ⚡ for actions. We'll leave these unset by default, and evaluate setting + these icons by default in the future. +* Something considered during review was a way to specify "All my WSL profiles". + Maybe the user wants to have all their profiles generated by the WSL Distro + Generator appear in a "WSL" folder. This would likely require a more elaborate + filtering syntax, to be able to select only profiles where a certain property + has a specific value. Consider the user who has multiple "SSH + me@\.com" profiles, and they want all their "SSH\*" profiles to + appear in an "SSH" folder. This feels out-of-scope for this spec. +* A similar structure could potentially also be used for customizing the context + menu within a control, or the context menu for the tab. (see [#3337]) + - In both of those cases, it might be important to somehow refer to the + context of the current tab or control in the json. Think for example about + "Close tab" or "Close other tabs" - currently, those work by _knowing_ which + tab the "action" is specified for, not by actually using a `closeTab` action. + In the future, they might need to be implemented as something like + - Close Tab: `{ "action": "closeTab", "index": "${selectedTab.index}" }` + - Close Other Tabs: `{ "action": "closeTabs", "otherThan": "${selectedTab.index}" }` + - Close Tabs to the Right: `{ "action": "closeTabs", "after": "${selectedTab.index}" }` + + + +[#2046]: https://github.com/microsoft/terminal/issues/2046 +[Command Palette, Addendum 1]: https://github.com/microsoft/terminal/blob/master/doc/specs/%232046%20-%20Unified%20keybindings%20and%20commands%2C%20and%20synthesized%20action%20names.md + +[#3337]: https://github.com/microsoft/terminal/issues/3337 +[#6899]: https://github.com/microsoft/terminal/issues/6899 +[#7175]: https://github.com/microsoft/terminal/issues/7175 diff --git a/doc/specs/#1571 - New Tab Menu Customization/Menu-Customization-000.png b/doc/specs/#1571 - New Tab Menu Customization/Menu-Customization-000.png new file mode 100644 index 0000000000000000000000000000000000000000..54ade166f34e15377326e2c0f18feeb7bb0ea8fb GIT binary patch literal 46941 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�%D&*n=DESo9x zTtA9mlu@qnhhD)9MCf;Id-zdnO?sEwjh$o5hy&-r51vtu7aei4bqDj*dMMV{Pv>! zH1vqoHl*mrJn&%EJf0Ppk1<3Rr%l1d%^pgSv`1C*n7){xp_0kYnw5Xv)obMKUMN~@ zzv}SR^Gm^S_w88o;t_3!P%VIVS6pwL;zD(??+KdwZ<5xt>qerV+pKY*&o9grduv$vMpQ^Gjjx{8vsIvUpJDS0N1Gn`Oi+8!F=O|7g*VB29~ zmk_HidkE#4zWp|yy0iJ0!;mLnqH;}d?R3WOFs(&Qw$a5fH-i7OQQ1h%9~0?}RL!M% zb={}DV{hdn!~VxRUOsR9rI#en%f1u*8JFY3Tr|(0qc zqmem`{rj>x8vVehQ0?5tx?&SGw!k-6u?JC-`pz;OiAV?r5yE3 z8T-^8J{M9?@W*1r>-^lPMq35tsp%LH^=+CY*jfv9CO2ua{(rO`OQ>f4w&U^R6ahUkV%v#iBy;fFC&vFo&$q(A3Xn9oJvX33d6|2^B{1_;^{U0& za_lDpIamFBTUrp4?|SkeDBr*dDMeZ{U}23UwidrNqsbL+a#VIFEROg^LQw; zeC}l;Q>>Iq_Mu(lI|rmo7^sjXtUwRi${7`>+QY81pYert=wNqH0lofbPRhaowSvLC z#!if`goCe>L6Dchvr6)#${EE9Uf!?yh44kDf+C5Z*w!5<-fHB4|7z7ippP%?8B+1Y_52cS^@Xnyyx6p~0XU5M%3ou55P!3ln0$F8hDmik zH*Wa&t{d4&&O_9<-{2g)u_~Z6F`|6}h2&ekrY-|`P+KDa>b7GSTLocUcUmnIGVZ{N zQ;qMLR!Pd`nA3LtnO#8`lPd(Jl9Qr^tY$80ph?<`d0@}-XojXFnxFk1^VYzUCv!kP z?&;_=u*;pQvJj7xd-9$4d8)UHu`7G6ugw(fGTs5B%q6Hcq_#Y{Rl&{}HHqfBo7ZpP zg>S>UBG6&|M;fZcSO1}DnK6eX!|vwr-bGpSeO>>MfOMbK?z{lQxG_Z_xH}TNX!aJO z_5~2DzPp|urH<@3BSjn(Krj{Md_fT?K$nAaJH3p&;~z8T;F@jnJTF;L5Ox5hP~!NX zs~fh9NeIaiyM@WCWqTWPfRqZo-+7$Q+t7i8%xKd856W zACc>$B}-V8fkxDI#7>9zeJRR1kcaQ}%Yc>NZxw&5-Uzb!1Rst|$hAbY0wjCTd+Q~w zX>kz-5>}E3ikq;xqmR#7cDNQ_=>FghOuHhYrSB~NB2ms`FG9KKRaJ<2POqIa$ryhf zLzD9$OL+lPOcG2HiK~C5YM~??i`)KkjY+KFQ<$mW*LL#*#FozebcEBpUasjMipRx1ql!r^{aw}3^+8acT^xX*`7?kK3 zU79@Fyte_%xOQhW7d@U%jMiC#GS+JcyI`n_XS}+jWO(`rT}ji}`Izsy^|FMihIuCo%HP2p_)Bp<~aS_d-ta(9)wY)~M&#bRO!(+6fL_C|YZ=iTPgb=QYY6 zG<$)Up9nv*R@e0vj=i>KzrO9LBfF}Yq(}dek|e%tW4LCTXWl5}34i|J_Wr+Dy$zY$ z{XLwqdx!sxE;g){V2?I#ZT|n>!8#Pkzx1A#20}((;#PYH=G6a{jGs;=QlsmR z>Qd!y#5vJ2L}Tz+CV%H>4dxR=%onO&#UCzoL%hbtYPe>sc{Ekgc^@`A)#Hr!JnT0adjydM2rCEp}IFVp({~oD;bhw_4|{0aHS=3_R-R4YQhaAs~%D2T3pREq07=TFkuXr&Biqa--&q^zS&QbK@BfA}p z9Y0@7>3*_-2t}UFmgSiS(Dpju_>dOEomJ*O3U5LT&O3OmaP4&VbxCCZ39BBAfuNL z2eWB;b$cxo@+TuJwLV)%bwlPE@>6TyuF?(9ko?0fVtvZO6mm3m+_`JB*!6pEa}VLb9^Lh{_HlqD4giE=Jd%wb-hjDm+ zEPO>(bn4C<7>^3nE0n&B5ccgB_y`*TF{T?sbg~lQCYK2+A)-2B3W8sMZGj|2BK#zt z%-PQRRM8V^T51IUo~kKsxrmL?&STLUt&e8?@;N&S>|OxCt_0DHYFcr-BW;70lz2#D zsrSW~RjB{Ya{)Q(GVSL*Ue&HojbT+2tB*wP0$v?Dtaq(Ab+%tL0~J0k%x`+~10-hcU&F;VOod zr^iyXvRkD(;svXsRio13<7p=2Cei|!`N*Lg;C-)--wMqpM`!A9H0u>YT^kZXNxa%G zDSYzjko87eHG61w-uQHrr2mF$d-0EIY+qZ=ns|N_U6Fz9X9O-KXJ-J+u_4{}eidooyJK{f(Q`A(Io zJozSxm~8X?##@dFw(3P!M&^TZRvge>ts%cRP5r{uw*%+;0GE719Rjkct8v9SkngR? z;R3%7{o<0asHo$EHvPYSewH5V$R9Yc%Ya5KM!Uiy6H!*{D<-waDwX-@IU0G`*Pa3& znceRL)&*F}_2}dSBGVsaUr zYspCD9W~-vBuWu&f?HUBy{cl?*xrz5q*GDK2WPjv_tm;_3fPE_yb(I#j|;k0)3y+k zXS%Zj6DPFYEkajcp9ft!`1)`g6(BIy+V0;|v-8SEup&XF@+^bi<{=)qm;_okYm231 z7S=ER_?}p9EpEQ}uld#%wN2o0Yp*=ppjd=nT04_J5=y&R;<{9hbv{+s7mz3Nh&-2* z51JdQdwS3`lk6H?sS`O~@=eRd)+b)_gQPgRc?=rZ{M}{20PL9xrFwyNj~3fYS_2Vi zStZJaXiKsIiFyrgcKIxv6cWoXVT4{?V^biBxMcpXOW!udBjX&Hgdc?8>Z#YkL|Mn>WMb>%RIzpWxF= zNe1cMeG|OYa%!ohZT#z50Y|z7?6DQ<4u6k@a8L%n=?S7~nR^X*(JQh&~nu_V^UkL>qey(?;(Pe%~_5ZH`I{OuD%*vG5D=V8b`28X8W;zV*K&L)nLmCsstzc#dBTNaK>IdPtU`ciu~flg9Gv zM}<$OJv`#cl|KE2Og}n)_gFWdE6>qhmUd;0sbYk##X^T9Iv)fIK z%BQ%GEyBm27)D}A7O<*r+2+08B&@^*%wW98n?6%K<8RaKor3W}v(cmIlpMKq?AszE zv1T31Fh$I9W|(W-s7%NsJ$sf;!s1goq-%%|r6%av`^^qH_B+3eqK}ejPP7(0W?XwH?Im@Zn|Mi_ZRfEs#@n?8na;;FUe}Aq|rxSk_ z(Aze5yp33F`Bao29^w5W^n^1(HOCy&%BlKJJ3E9W)m}08j3Ta!PPy{Bo~5oCa42oA ze^k^!2#SCX?TydibDo*2bX6C27qf@Ht`qO^?v|8ZpTB}D0&;_dzAKMuYL7yVJ?e~W zH6NIeq!a~qlUoOyOxtyhj> z^8DgQqf5{;g!-zHkiO(pyTM|XV{V#_Ye0#i170G3ZdMXRv2Ax?DV{4TZwEc2|9wFj zT1#?P*gx+LlbAq-Cz>baHgy%R)oVAW8RnnI2`M&Id`a@|WzF*Ko;}Jj%L)(`uN1eX zc4SmX%_U8K$yof2eMY@**qeX&hs>J!Obh=kEc%yhNt-}3?9&fYg;wy+vj?(6hY`f& zBIwKyzOmuiWpmg+UdG{J)WMovAG#Pb^6{P5`^>Vq`h-Zq7ln{^dZa$&4A}Vc(VMXS zid=smvLAo&5rhnOV@+174+>&_ODL{CamF4 zJzvFBSTaf4vUA_?Bab3uQ(ZN-RWB$vCWIxdSG*OJRba>np9FKHkn{FOf4)fa#S3eF z$f)2sv(LY5ozia}nOyCyrmdm!PB#Msc6c*{2Uu(GvcRb0<6~%EE}#UU^QCXmw0yq# zTtd36myXW-51=jU+B?CRqmB!@}_i=0eFzhU);F0&2!o+kboD zs;D8!3Q>F!F3VIYk{*ou?4N;p6`!TGKsm?LVpUv{q;y1~lpdnjmp!zMEfq8ste~T9 z5R6PSDbsj0Dur+4)4C%*&mAl0D*OT=`aL>dR5!Y+*fzesJgp{4_HR5a@PCA^7CP*f$H1P`7$;C8$H(=+iUBFl~1M#P@HjkJdAz(4(gE zD$SCbU`=>TN@RuRTn$Xp54LO{>07C)?R&?q)o*wBSWI?>2#l8dPk#K4j>5hc4*Tg; zmx}h`eiB6cErBE(cRlV;oSnF~&v+mGUQN@}DzN8OwRNt#ZoLpl# zw*OvB*phCV?YGi%BmbOi8PV6!^(?jMdfczA2x&NCXf27b3i29nsZl9u{c||}QNh>@ zJa{>OB<43dqZIB-J1&(kyb91+28HIDOFBi>z6!=}+*U_lL5#N_gwEW9rg)tLJJ2I4 zyXDE_zeBPziz0Zgr(Yg-T(-N1-*fnY?;-n+o}?X59zZgEexF+6Q2nBm7HihD>oJxt z__)fSVI_4kVO6|oBtnbhh!3Tg85oPJ-!vyV8FxOQtl5seHR*YcRxxA)b%8EoT?!!> zh53|2SJ6!YXqM8qhVSu6|0?!&97w!~-OjXixl^+;Dz9V0#BAD~a4ZQC$7EMSMS6?p zbTEMt65y~t1oeLDyM_es?2UGikXb#cA_AhT?86A*G7vIi5bYjw)-B9zi(rRMVS-^$ zV+8HIU@-yis~4f5%vkPa=X+!Z*FG}LfuQ^1P9TJ%u#tg5TS<_2z^wM8yIXxDwPV2X z{>8m2OC+>AveEAGi5Yq?gxk7ZMrMxvrxx^!L8|eOl?bTuA39bT$Fz2VfDR1@Q}zeb znvYAb4yIR!Nf6k&O}nHA)p)I_vjx9E0Xx>-6ZCQ;ZC(dsr3zfSR=2ViX$JLikM~ha zIR`p}$j)L)@nyvhHaoIZzxmiPR`m|X!Z*h+v;HVSD|mMq^|=|`0bV#+xX}NIIz;GG z#4qmppP5&176>8F19v`p*bNgIG}X2(8_uo92LY|L$sOgZL@ z4RLp19QV*(BwW+5Mw~=oj1%NFny8~)_HC39@36l&@zrSd^8Vb22aogJacTh#yWJZIZ zLpprP)loHZMD=WFR&Ci`0=$^h57MVpaS=FTM`T8H0&7Rs2rG~p~v*zq7p7f+aJWZ1g zhH4sVHLGQp`)qM6JAwx6Kd;U2Tw~+4-ZcDU?)>FGIVgIgx)sm=Bb+^dM)$F15ERGY zkyww~oc+|=YCNjKQ-9Kqf9?mK+4H`J8zFhteb<04-xjleT*S#|4AP5F%G|KjwuB0uV0aBtX^r^voUq4{J8kJrr8k1XlNfWtAi0h-uG?evX;2tVow-zq9N$q z%}~BUZD8C`RL1)Lgg>F7QxMfIxhdtF_BZm$i$yby5HjY#AuXeHcWow2_1aJfXszOC z-z|n08Vv|^b@ConhMbsB)F|8k%-&W@2^Ig!XXI|;t-+S(!~QZGED11M5VR{AaXk-z z`qUw-swX1BPge6;yKtWNN8i6v%z>-(kwG>a1WHdky-lep!2L{xala*8;$n_`f1yUl zNDRtNz(?8u7?CaF=&F{ETKwUlpb7HLSv^kbcqx4MarrjYZMySzhY8RbX#?tV0LOdH zr+=g7F7q>+18jWsCt?~mlEXj!dY?CB@eP=Eltm3wQ$7%_AqRwuD{uaOY3ioG^6~WT z10H_jG_X6-UE!vIXLNhS;^vMk#n+zosn|vy%7>(2#U;L*Cr;tnjL;CK2zi@^fU^D8 zTR_eN~U`;@hE`Ay)hI!yF_G09_T# zpHKvj<=M2=MOG6UJ)?sw&p#%gw(@Sl&6^H-m~8kSo-xCI6>|0|>3`8Q@N5Cu(&Fay zrzg+Z@Z5_1H4|SHSrNj|n+}TJPxJ+3qjNMwU`>Y;TXKHiH(TGjFmvFNHyeqj$>q-ST*>m`a|GZb=$8p!j6L`_psps(p&C5!BQGw8%%t9eM+&MG{Ke$Yg%+ua+-vug@W+yGZCg&qm-Zyq!hDe$2u z5MakJ_Si+Zbx0%kkjuGvwcOn#TZFg$iZxQh8QC85XOGMZLU@}jPo?b8A?MgcB3(dtG_b&{ zn4!xKSo+Ad)sx!3aU!=5N+0l7;R<#zd(Ro__~%a z4-zvww<%x4`=WTt#-TWne<}>s>Ja++v<)7B-$J+h56AT(5@BAtoB#TkU+)C!E@keW zD?ntAYjLtAONIW@gzYIRX(hEM3*7g_2&t}FhZH3A@D(b??+$z$sgYmiE^#UCpL3Wi zOc-}_Nfgha!a+?3+1@YOVVrP)E*y^gpmq}TS zUjHQwkFcbBJ5Nmgjmja44+IrLHV%TzSufjg=0)Wbe}&)^V&WNZl+ZIA2rnYS8`3k- z2mS63&+u1&z}Vbv^L<>x@^rNeRI zScQm~2B?E4Q=7h6W~po#e2IK{V(Pa#o>ijy>@-T0ew5HSpBH=h*`6DeutQrNiHSJ@ z`_nNyiR@Fz4(d{AC9qZr5+J9b9q$;P^YoD}Z|lefXGIJ}Jk@+pV7F6H6SOolnG(s0 zDS&oSaSK`6n@-6O;K_{@kg);i=WzeFhU$-{|12x zZPpr&O<1)#jDs-#V3(d*{=t1`gz*-$ASQu(-aE>2l2rynKp5RSCKb;`$nJ)>7Nm+K zVb*Kz@e%Sy9^BV9AZoW|X(lPF_5Va|^l|FvaO4Aw<<5gII}gr0F6BdGKO0l3uCBjY zgB4Y_TCygR)}k%S?&G7PlSo$|o@sjl3vtl1gdA-=dD-vj2Bzid=4Qb&y42Darp=q_ zQxIL<|6L7t{jy9mrHDd~rgyZax*{^34*MIYazd|FHklJiPMEo&=>A-z9=VwW$&SyO z$CzVE;I8O6jC1o;xo}Yc>AVXwBoo?w`ws=IgOy=g;+k%iMYOd0St^)k-Ax<7USo->Jw-?`NJx8AIQBy6c?oVLWv$A@hYbU^6*Ij}YA z{K}qdx66&K#Ye<6w5*>PWIZcnVhgy|n=1 ztSm7Xn#}x(XWwrlz0hO6D^-H-;4QqHN7L1|&8w*cZ6v)FGL9WFDN{l>6b{CyZfQV* z_^)ooPGITHuO#zOiIdow)CNW#yy<*3&S`W<@JW?vYLovOlRwaBIHVQUS;^~B?xJ*Si$ zV79;F=%-3vM%Kh^eDKJGqW?=F`?q@Gb_Zm;EdN}Ak41RE4)32|VkiaraK2pCT$mgO z;+l3~^vKQ_)=>Rig1?M~?uui~S~(aaE+Y?G2#rwZ=e-crq-}G^25;No2s`|)O-P7sXB{9=P5in;8{Y$+yoO~GGHkveq-XI9zS?A7KKtT`tRJW8R zNj&=5V*{{jGy?L zvtz7N`GH>CDeNKrs`3v?iIDxF-pedM*wten)xl z{NpvrE@D>ExA&P(0>?shLULkX8D&dHG->rpA$Pyd88(=G(3%teoFGPum0J7dfs^$*FmM2z!_;WHP>*AO6?5(}(s)QkR9~bxQ zM%hlC{p_|;HhL%7eD8^-HueE zo@>W!;>lHWnuvTUy|%)UTpB|RPj;Bw(6K*aI`cyqTex|bkpgaFJy{8#X4lhx0pwU~ z{`8v|elCJw*yJ>~#(;!QZ_g{??c8^r5J?tmqhV98c+3SZ620{w>hsbNFGlp#GKD9p!sYI+k zHBW;|k_GKAw^roj5LbFA6OWoF0-(#YqNg(I#`sC%^s{ip`EGeOHJXD7Hv5dD;&-z8 zK3`vPrfPxo3PX*6I2tn%TROFiyXm{@2nnrQf7*Tt7W zqYb(*W`e!~+V+h`Sr(WG zQr7Nm>~hR6i2jwuZkhVtZV_Cyi+NJ@jDQ;0Hz6e2=rO3oyv*5qtfH6xorkuQ8 z(tj`WhV?Zd5N&0EZn)}0d^cS#4Ing>Tl494(@s`f%>j=xgZM7cwTkA@;UGX@2GsdQz`VE@0vq=gX4fAa;Z1|H+cV z2+HyY^cNkgOr$Res6c~@I_7}WcpW`FGv9JHKg^@^>OsA47X2p?`tV5w-St>K7`?-7 zjJ+u0h;4j_&iH~py~MKT#O=<$X`q_*;RB=2;unXS$1j2K0gf|H$dR0EZsig4UVSkU zslIBpD|aD(Z^SsfQ(C`pP+PR-Q0qQIxqH&vzB6}alze2SXv1>D`ByRL&-;Cw=vwx+ zrPJl3{fx_NyrBLDy6=he1Un}`=9~gGN5l}Ks_kWXlX4+mawqiEkm(5IXpZ>+cBgwQ zzA7YYK^Xnn^0J1q%a)~NSR4pP)qWnO{>507lvy${{RT?>bZKm%NW~M9^msb-$m$~M z*iw9{sHw?^qnzO;Rx0g`s6Wm5HglVf5<@7qN%qiX#ci`2IjA!}mxQJCskyYwL0z%V!XzAehtE>{#_pEhDz1yb zZa#MdqdSCj*>xBY=^8_t-6tg7 znff@M1`f%qLS6F=(@a%aD*TE(pj$R>7f|cs9vLN9I}H0TYdCUx%Kx~hF0ublMrK2e z`B-*)xTh!j_hgWE>SAi{O35BiL|zlR)Wmu;C^*vwP(FgA$Kb9wzl^xvT0~oxdb{;l zA$+}pHX;SZ$43oXf?-y_$)mWbQE|aVU|q&s?%L(+qJ)aDbwD5%t@uz&(r)I^ANJ@( z^W^`^qjJ)|S}5Fd-yKcsIG)W(1Gb$8^A?E_Y8R)fZy16s$d8yF^Y)=UbB-M$_|deF ziaUmrBjgRY-0WADS{_Qv>ks;cJM7zX{Oj$S9gKc*zT0p%EaukNnT#m*+(8(l1aD{T zi1hpEX3oP!P5bgazn1ZjEn0=?Yu|wUc!#VHe}rAAxnAb-F~NRRmr;f9iel8<^B(fi z?#^#Irum~hR(BT)iru3Ni;R`Q4sTDOk<~iUb;k}1_4lt!`uX{~IE$5N;fHo#={J2w zb+$>qFN4y@f2*@U;J^Jpm7RGwlABDt9^r?ZCI>ziIyApyFVi_VTUQiZ1L{U3s&vwNKyUE4&D|D*+{jD_Lut3@W^$`dTnbu-t`G8j3Q=OW17OXfI1Z`YYx&Bq<7-< zMdA0jvJ&;lOmWeTJFfpUKv~{#)rcm$0j<5pfhOsuJ4!e5rtT^`p$l6-KjF$@Yl~0c zKl*QxPpL9{WPYeqBy2l>klj5$+kK4+#TXaop6%4kCX{Hjzh`xLGB;Z%cP@K-5E`J(Jm*n`*WM>xMn8Yva=71`@Qdhd#)0~79r0y>1T z^1H+SQ)c_4@0bu}Vd2I4t-ppf#9y8mJwB!q-lerkO(naZa>W@=Rme%Kiu&C9^N(f! zRhoa*i2KBn5yn$z>fg2Y&Dy2C*VUDHyNgfHPRm^tk{u5^3#(tMTN}cYzaAcK3o&nt z95}~NTMmFqIW!PYy1#wU_(RHny+BS9#p3-u@|C*Y9R0RYoMWs@Ykq1i93S)T%y3UzRTS9DWy6v}d|@K&({#k*9UBP^7v{7GSCree_~g~0lB)EFgB9PTF`XKeAU zrkS4l^ZFcXz58e6tn6J>ZbyQK-a;EpLV8JQo)|5zsa^UYvehWgY&U1lLtu6R>pv*= z`rzB9+!fYo+kyU3n+3P6PTo$-vHoHGiX}g40!y;;wwCiP2Ivb`B`&(*w76>dZfBmj zPoJ^V1k=n*<(=Gf&lB4A*5ddb8~^&=7de&|nH28LM>Umlu(+^Wh?UyJafNHp`!K7C z6ahRG;l9^I%Y&rC@Jx&%V=Go_Ebek;Zi+u{m0cC_x;OP?O`C;;wC)*Z<=xdF4id-{ zjh964m3vBvtIcjW{mf7|!iQC6dbgJz{VPlM)1~08wR%|5*SEMg2EDq>QKfSX@9A&P zm`W|>1?1*-K{YQMu8y_he11&Er=NG`zlGWIkUscl4w*$!H1&(VFPqlf{dcSWrP07# zBW*(mF{=`y(BKaHNI(76WtAIcA0Xb{cfpFF`gG(6H1}As!`C-oR2N7U#;msmF2Dr9 zXn^74=@8^yF65<$$As%|=AZW|mp^3ao$o*6XTLb1#o$vfE+wF%=@XMWwfNAzN`r@p z5Cz~RK(NgE;HTh8YuLRtEd|~d5n{Nws?qwSz}{OT>4RgTl+3GoRUEbhBDw~eY%{Os zBq(%g!H^u;42D+cw#K(_{4zOT9f(koPYOIg}`i?+AuK&L2h3f+r+hAfv`-8#D#(2eCu9AnTp(+2XSyqWGaRzRM zx|yt;A%vTAI7iT2FyRN-dP=)Va9QG)&0u9YT!%!WgB|@LLclL(4&48Ot}HH2>~1rX zSdX!HA&APWWFT3``bhtNLplwGLy@;aae3G zWaF^{LVV?xx95T#;f*;w%J1c(lwZ6w_8M**ER{={(`E`#`V8ptPioW%aB0|uutK?9 zW&SPxNswX`hAH5bh4p5?lNld}w9o{w#MmuMeAukMheNwk9d4z~|O{4Ryu9oM7eDs*K=L#Mc7P7keiDG@~xd_6Q0 z4X7RucC$KC0VUC3w;5sQkb4GU-p*C67$hNdQSEq^%nvSA#~qVwBR5b}Qjhj(Whe zieyy1XVmLweJG_1p2Lrghu`B$=}6b_sY}mlucjrNqCTGPzDSj`HFxNK_OuJXpBUy4 zK{)D|H93_okHznuroH%V*QafP>l1Tm6<;RIU-NkcDiF6oJN?>0*X~Bx3tQ?x+foW> zLspk~zlC(Fo-2Z*RR8?E)W378{%V8A?LE4viSmhAUA|%TD@$OwA14FF_Sow0IetYJ3gKYq|n!)CK zXMBCxvIbGTNSD{DV4m8&FN5BmH4F_u%fhc%1eN~1b6TR3`ew(o5_5QV&Qu}E4_v-3 z{z)*&w!mU8j`Y16o8>!&8{GwJ_|Z0m@$omkhvg-qm`aGg_nwzzM-9t?Eh< zM{cc;1)-lS33;`QAKA?h$8y^2)1mkrEMwrTii*$d*=lU1KM!R(`xb>F31MGGtr;FA zz=H&@Yf!pN&7xQK*1wYJ7qdFe@`3qNt4_S=Nu!iL4{H(vlNPojp`o{>w0SZye7}?r zXe4l$_p$D>l%hBkrF-H;o5&gT0TAaSs`RRgTfhoPkrV1Un{DJ22Vs-BO4~|fiMG35 zKgw(eR<5?z8JC?B=a}X1y1P27Q&gn4@hVVE3giw|K~~_5@by@py?kavB9nLIL|#~j zdg4i8O(ysG&vVSdBOW~ovP)-8bNrPlM;rnB2>zQk;R`)9_{m5hU=`WrK(Tq0^~~Au z9((k9U#2KL8J%3-5%NO(lE@r1*)t-PoC&oX9D`(Ixk_AaDe5(KKhS;6_zAYijBC?ygl=o-`DE}6G@36ZfL9%Qsvj|JcB8J%Ze$!C3o*V;vj6Jr-KWi7rk5p%vKoY|+ zAotar<`Bg?z^r_n0cz?>NZ7AsyHhx63LlFA1VMF#7IM}=ivec*G4rSwq2a?RIl25? zd5h)p{f-Op?F`o%1cy#5vkclI-9s`e?>Rr?O@c)!{@Pm!Qj}I;D>JBs=gVEdI~!_? z1KPCIx=JA=2^^MqIq+ zj%-X(;m4ic8&pngH(*U9q(>!$7XnZYD`t!u@H zj4bTAOu}q5Y-lz#h>kId4v**WG9^^Het_;U#$0FMBBs*k-gt^a)T2}OomP1ua?q(^ zR69DJ__VMk1C$=>m>%BMVXnl2{?D#}N?vaqonqrZ(`8bKdiDy^b|hW!k!1#Uj|R=d znT-rbs|A*3VUbetaM)9ExCkrr>%s&uTipN8k3)>5+5+X5>=)Hqj>%}$vkbv8&=lME zL^s(X7&^7wPeU0T96|YNjd#K7PdD{qm7pp_kMUk4s{RzRJ`TFtfjg+*(#9xF(`5U~ zZnMfV6^zz`m&8jS%Z#aAV-Mz0>%F*mp)wZ$`wGkh$P)sb0)^`!CRMx_ZB+z-7UYM`X=Q5JuuIrypGrf~@amtK)1)*wc zu$N~uTnyJ;&Xpktlt#TM^MmH=x9-UnE)ITQ&*v|KgJ!j*VlM}CF(b%2CGHa48xtQ1Y)>N?MQh>dQL3{)Q733mCQ{0xTlv!oGG;crnSr7 z4xUa2pC6Dx*{Pf=wqK5mDxYBA_;EcKE+;Ypo7K&a8=rcI0TRERr;kL)uDuma$-!nCEi`Z-G1XW=lXJcY z<+jjD3rf|Gsx2SWu@5$n_;ES5N*S1-KWb!U!3dir9PN65V85n6-^VfBoZ@@ge&d#H zUth>Darsv4@vGpjUSt(7h0)VJ1jLp3XB~Obr11hOoc*LS53kZL2ywQw#;vltD`f+x z*%M5GzpS{Wzj%MGiVs!9Y6MbY5=3HGLbM^{8zR@?*x08#W5YbRHQ~e<1t)Dk56!@t z#5yk5z;8kE4W?IUGLa4(uVl!Hw0-uDcB@AyFDDXwCkH!r|6JDpDP&-oW7+)esj=&nV=d+y$t$4%u|3(R3Bt`ekCeYAmxI}7j0A@O(vwR9(BZ#ON4d`Fu)ja{xq-*q zrvfpZeSr$|bEeo99QW;+&9~W5#k#(r&cx4yO>x258$l3ZE8@FhonK2MG{nkS`$Dm? zSGs_cTt&u=5uNlL(w8}KE-UYHAFZ1OQ3$MB?rz?eDpp7b5DjnW29^6FaJWyfg8GqX zT3kRTy2t}49*~q=hv7ccoPZehB)yI!X^u^fI0^UO7a|*c+?nq%&h*?2x*sOmD}o!E zW$psd_wv$Lj$g=)!(BBq&r_1%OBe2=`N*h`f+-T^fvPh;ZqiI43`KgkuV0yR2E6>~ zf&LYkSeGFlWP+Vq=0S7WIVkVhR`BfXNucbaE1Vs{Cco~Skmp~v8*JZJ-YpSQ0=9cG zcz%>(;4MHC0_b`#CP;Cv5a1W9@_-)yqAT3hh>}IVATmgOmdB&?gxUp_n3DO+jnUi| z9>5fnMfJ&(qL#3bi9=10=2i#hu#%1;F+5gjwt_!E*-=MeCo^wGyv+qzDMKwb4JPW3T0Lkg6hB!EfjMlB2uPOr8 z@W^WVjnDVi1co9>#2@loc`1E#xJxet$7awZy6P~m&VGW{{QXJ~n~A+ByDmYC`l{w} zNS)+=+LY2|RL6b(#p?s6t7yBqQz5>r6a7u%_T<2K829-gM{s^lKj6Eb^T_Vn$ZmL% zZMvIp^FQ{^O8Y)e`{%!3Nw$RVsiMT@G9}cLz!V%dcB7-egygxavE-{awcQLqc*vD% zc)h*#T$P(N)aaEKRK@!p#>})50HZNiI?`e;R)|0dQG+B25Bl_sdsDRKh_~jOG zrmT93yr&tgBm+7sxW=1_g4Wxf6YYdIwL`1}8S$6m5>~R69etj<#O|*$)9X79!t3+N*XtAi+C`=&6uq+3~piP9w zY6Es!aFZ?4Tv+=LXu$jo$fl2w%(}ic^emxb9l(%f{Dnx(DTGK`3proIExII zX;7)YCWV)+qkr5?t%@5D>BmwYWI^EAwIk0<6R%K^4cjF?Bgt#fUebdz{bSQR6E>4@vGQmq`!USC<|U8Tvw_f@2uLNoH; z7#Q-yOt4Gar>~b=`5@s7yHm3sPQT4_QQlo4%F6?CDk>@hpS3{A3;S}1x1)XutS=C! zzaEXC$z(?Pt9c_Z8T;zhKKc?&Wgq3eY4Y?}*u7bwn6|4sEz95xfSx<0739mt=^sqS zD|!zmr|hoOM{YE2r7Pwy^C_-(H>=UoSMrg1<~y^S8h3&tRu~leZVwBpGRjF+pZ=vk{l~%+%gT2;rgE#+6DQDLdG&e}s^a6Y# z^WW<&ti&#VzUX+|70g3XIgz1)a<-Pnqg0uo6d&Z#WxlcQ=_FX#5x-|O(y_fWy@%Af z!Q3|(kJJR;sK{TT_SOu5Bh!C!wqxmjzwR}H=7jc&%cw}8+o1MqA`#rQ5Z-67Q#y_k z%}eOp?K-ho?T<_8zP{ta78SUCYxH?JU2QpH?R%&HH`m>NMol_Z?SHF@^YQ6^0G)cC zBu3e}<03KQKIPK)2|u_qXyN&i^IP)!k*6k-*@^Y}8P}q+(hkMW|9U}IKPc@rggeu> z-!xyC!h1J&Iv_G2mbAXBIf@NsL1}7_0P2z`+!W9}q?P~jdR5_d#%BbYT>y~LvnW@; z{^&rajX0ikmbTFmnbzfL4`)P9#{H-n3N$(NiwbB;fiZAPJXan8jEO!Wdjz2y5?>t5 zgV&40Y=v-jr)}%ak*k@OHAf~vm6-K2;@2Ho+MInQPQ2AemGnagsch(#F-vi^$`kj@y zw58pz#*f6gQ6(u$XX@+F>w&EM%1)g3Mn3g$zO9ys2V`OKTH>&1t=Fr1#Ye>U_041jA5WOv+xiNEzn7!woxB!IoBQAAFQHqrFV1j$T%h;$+ za<97+?LYP*q3_2zR(%$N^yL|(CG7%!eKL-U_xc+sojOR3GOB+uQeI5lZ{VZWY_s1E z_dg*&tg;R+!Po`U6}o6EiDU7m>8h#gKau$kw@34)Me5^hUbsaLckck_q#Na&PVK5pYHInuqL&)}rMRd+4e4`7QaCoNXX9WZS%z2_TUr(W0H z3r()RzvR0uH;=A(?(fKj4D(EY@$*Hs8&$88&XHQK!j{vDfRmr7p8T~pB@1)RImUn2 zMvyZ?WF`t67ptRzeRZPHiO2CJ{O5(w+bzS7R7@(H42*2vN66T&_G~ta;CN_{lYq8KkBU{ZZ5Y_< z(91rAb^?<+<7-2ghtGF? zp0hc|(VF<8$F^!l?(Xm8glkKPDI;sgt8PSZ3@wp&UXZ=Nh3|5D?@|#2_wLa10mMmd z__|?=wfyn~A9SXbnU0wo=aao!uBN@AvB_f{b9vy z^eK*+*mMsjU6RrE)zT3ZEH|;8e3%iyU5RG>kaFlyo%ZRuA=MAL8^uEz^zvtYa@g&o zVLU!oFO(0>iW!@!Qyc5JW(Oa4>B~Evm(*}fwIj?X@#-kaiLP(kc>dDIss3egfcz5F z>GAA?wRZY`DEHq1yOJ?n$$q>)-{*UHm2U#)RYuz5fFXd27!pOS4$;K2CNnnPezHdI zDTk{IHwd7-4fb*byv`4&4SP=*yn}q6`FuScU}7^L4lLeZ4n@S(24~g>-iEOQ|l+sT&hRShC{2 z7j{$N>V~Oph9=2N6GVAj7^KMHWU@2-H~6Xw)m+o;ckgKl$-6J~o+dD2lOfCB^FGEm zW<^_i)ABJHMy=wpnNmGret$+>P8ArF{Y=PQm4G1eD-W3v^RaIhE>5UY?3LQAv4tI7 zSe@tZrulpB?!Ns-`+csvE6mraUMTj`Zbo##?!?Ulpf4bio}|5Ye`@FBj2dA&zOvO; zsM1K8bx0!lKwSdk^+@I|4KR%}afjs@P=T%bMcnI> zDQ)_rX{?e_Ujnfn1tsktjO!D`qkv(DkG%l@c`ZY&=n$D>o>1dC?*Q#rkyjR$yi!+V z*k=rFGLxcwhefm>q3k?Nhg}a~xFLc|NU3vRZcC4$4-j@o*dk}nu|gF#W~(||$ivTA zR(>yj1F3q{@c+%6qGEj}v~|Ma2ThN4fs%9b}+VA`K6@dFDJ!I$Fs4P`yAf9){fdAnvR4 z#8`*_HBj2Y>`fk-o=)xsqBt{TeTjm7y$1`kd0eE|jhDcyCK$jy#Qi9m^2C2Fwe4iR z4in~NV>md|m@~?uSw}go#?Y(=2aF_A+}BJB3;g&d+ex>wjglSCOcGs)j^g(_jO$Gy zaF6)M82gI!11eE_@2>=`V-TWV za|5S-lOZrvv62)P?|I8_XVf=Ne3{kR4oUUf_`bdsxRv3!q|kCnPWeL^{T~-BY7BiC z=f8^En0EMUts|I!J|)`ixi5~;16VwKlppuID30u(Y#j!vpFXtKh3!JszfiNY@K2Ew zwAg*r0CWX^UfbgQGqJnQ7fK7D^jPXoF%Hd`jE#%xRgw%aU7m~jY8h1ScfboW#JXn1 zNrf2<7!d|=rf+aA4VjH^?#3A{d>2u^s3Nn|VqZ_!g-y~9W)=453#bLQX-1f}h<}#& zY$7&mrZ=DN0$qcf*ikxri@y#s(jdtequhT# zYt>F`E~)9pl1dtBvDA!Cb!l*fsouW&q}XgoYQ|Ra#Vj6gfSYWOQiM)&B6UXsG|lB%ng#nso5#Co^kWc(6qMlZ(WYxX zn;++I$LZ(cw5MRc4*ySziNwurH?;d{ahba`a-7Y|cU8Hgs2nvuK
j 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 literal 0 HcmV?d00001