From c0b042ebd5569e179018af29aa969807d91fa30b Mon Sep 17 00:00:00 2001 From: Rendo Date: Thu, 3 Jul 2025 22:33:54 +0500 Subject: [PATCH] plants translated --- project.godot | 4 + resources/plants/Aloe.tres | 10 +-- resources/plants/Garlic.tres | 8 +- resources/plants/Peashooter.tres | 10 +-- resources/plants/PotatoMine.tres | 10 +-- resources/plants/Snowpea.tres | 11 +-- resources/plants/Spikeweed.tres | 9 +- resources/plants/Sunflower.tres | 10 +-- resources/plants/Threepeater.tres | 10 +-- resources/plants/Wallnut.tres | 8 +- resources/zombies/basic.tres | 2 +- resources/zombies/buckethead.tres | 2 +- resources/zombies/conehead.tres | 2 +- resources/zombies/hobo.tres | 4 +- .../gui/choose_your_seeds/Previewport.cs | 4 +- scripts/resources/DisplayResource.cs | 4 +- translations/plants.csv | 83 ++++++++++++++++++ translations/plants.csv.import | 17 ++++ translations/plants.en.translation | Bin 0 -> 3102 bytes translations/plants.ru.translation | Bin 0 -> 4209 bytes 20 files changed, 140 insertions(+), 68 deletions(-) create mode 100644 translations/plants.csv create mode 100644 translations/plants.csv.import create mode 100644 translations/plants.en.translation create mode 100644 translations/plants.ru.translation diff --git a/project.godot b/project.godot index cf8af86..171ddb1 100644 --- a/project.godot +++ b/project.godot @@ -82,6 +82,10 @@ cheat_zombie_spawn={ ] } +[internationalization] + +locale/translations=PackedStringArray("res://translations/plants.en.translation", "res://translations/plants.ru.translation") + [layer_names] 2d_physics/layer_1="Reserved" diff --git a/resources/plants/Aloe.tres b/resources/plants/Aloe.tres index ae8d7ba..9e2b333 100644 --- a/resources/plants/Aloe.tres +++ b/resources/plants/Aloe.tres @@ -18,16 +18,12 @@ metadata/_custom_type_script = "uid://3m7xks3xq3hl" [resource] script = ExtResource("1_vw2kg") -Layer = 1 -display_name = "Aloe" -display_description = "[p]Aloe heals injured plants.[/p] -[p]Health points: [color=DARK_RED]3 bites[/color][/p] -[p]Reload time: [color=DARK_RED]15 seconds[/color].[/p] -[p]Ability recharge time: [color=DARK_RED]20 seconds[/color].[/p] -[p]Heals plant when it has [color=DARK_RED]third[/color] of its health.[/p]" +name_key = "aloe" +description_key = "aloe_desc" Cost = 75.0 Scene = ExtResource("2_6a4ia") ReloadTime = 15.0 ReloadProgress = 0.0 Preview = ExtResource("1_t4137") customFrame = SubResource("Resource_5me4i") +Layer = 1 diff --git a/resources/plants/Garlic.tres b/resources/plants/Garlic.tres index a2f044e..07baa57 100644 --- a/resources/plants/Garlic.tres +++ b/resources/plants/Garlic.tres @@ -6,11 +6,9 @@ [resource] script = ExtResource("1_e15gf") -display_name = "Garlic" -display_description = "[p]Redirects zombies that bite it.[/p] -[p]Health points: [color=DARK_RED]20 bites[/color][/p] -[p]Reload time: [color=DARK_RED]15 seconds[/color].[/p]" -Cost = 50 +name_key = "garlic" +description_key = "garlic_desc" +Cost = 50.0 Scene = ExtResource("2_81n0p") ReloadTime = 7.5 ReloadProgress = 0.67 diff --git a/resources/plants/Peashooter.tres b/resources/plants/Peashooter.tres index 39b3286..1344b1f 100644 --- a/resources/plants/Peashooter.tres +++ b/resources/plants/Peashooter.tres @@ -6,13 +6,9 @@ [resource] script = ExtResource("1_amvh8") -display_name = "Peashooter" -display_description = "[p]Simply shoots peas at zombies on the lane[/p] -[p]Health points: [color=DARK_RED]3 bites[/color].[/p] -[p]Reload time: [color=DARK_RED]5 seconds[/color].[/p] -[p]Pea damage: [color=DARK_RED]1 pea[/color].[/p] -[p]Firerate: [color=DARK_RED]1.5 seconds[/color].[/p]" -Cost = 75 +name_key = "peashooter" +description_key = "peashooter_desc" +Cost = 75.0 Scene = ExtResource("1_rqf2x") ReloadTime = 5.0 ReloadProgress = 0.0 diff --git a/resources/plants/PotatoMine.tres b/resources/plants/PotatoMine.tres index f7c7cc8..776ad20 100644 --- a/resources/plants/PotatoMine.tres +++ b/resources/plants/PotatoMine.tres @@ -6,13 +6,9 @@ [resource] script = ExtResource("1_33j6b") -display_name = "Potato mine" -display_description = "[p]Explodes when stepped on. Needs some time to prime.[/p] -[p]Health points: [color=DARK_RED]2 bites[/color].[/p] -[p]Reload time: [color=DARK_RED]25 seconds[/color].[/p] -[p]Explosion damage: [color=DARK_RED]600 peas[/color].[/p] -[p]Prime time: [color=DARK_RED]15 seconds[/color].[/p]" -Cost = 25 +name_key = "potatomine" +description_key = "potatomine_desc" +Cost = 25.0 Scene = ExtResource("2_ig2ti") ReloadTime = 25.0 ReloadProgress = 0.9 diff --git a/resources/plants/Snowpea.tres b/resources/plants/Snowpea.tres index 77ed9be..93d6bde 100644 --- a/resources/plants/Snowpea.tres +++ b/resources/plants/Snowpea.tres @@ -6,14 +6,9 @@ [resource] script = ExtResource("1_0cpi0") -display_name = "Snowpea" -display_description = "[p]Shoots slowing peas at zombies.[/p] -[p]Health points: [color=DARK_RED]3 bites[/color].[/p] -[p]Reload time: [color=DARK_RED]5 seconds[/color].[/p] -[p]Pea damage: [color=DARK_RED]1 pea[/color].[/p] -[p]Firerate: [color=DARK_RED]1.5 seconds[/color].[/p] -[p]Slow percentage: [color=STEEL_BLUE]25%[/color].[/p]" -Cost = 175 +name_key = "snowpea" +description_key = "snowpea_desc" +Cost = 175.0 Scene = ExtResource("2_k47h0") ReloadTime = 5.0 ReloadProgress = 0.0 diff --git a/resources/plants/Spikeweed.tres b/resources/plants/Spikeweed.tres index b82b9a7..cfd319b 100644 --- a/resources/plants/Spikeweed.tres +++ b/resources/plants/Spikeweed.tres @@ -6,12 +6,9 @@ [resource] script = ExtResource("1_0bymo") -display_name = "Spikeweed" -display_description = "[p]Attacks zombies that step on it.[/p] -[p]Health points: [color=DARK_RED]3 bites[/color].[/p] -[p]Reload time: [color=DARK_RED]5 seconds[/color].[/p] -[p]Damage per second: [color=DARK_RED]0.9 peas[/color].[/p]" -Cost = 100 +name_key = "spikeweed" +description_key = "spikeweed_desc" +Cost = 100.0 Scene = ExtResource("2_iv8de") ReloadTime = 5.0 ReloadProgress = 0.0 diff --git a/resources/plants/Sunflower.tres b/resources/plants/Sunflower.tres index 8fa5401..7347bf8 100644 --- a/resources/plants/Sunflower.tres +++ b/resources/plants/Sunflower.tres @@ -6,13 +6,9 @@ [resource] script = ExtResource("3_vt4jc") -display_name = "Sunflower" -display_description = "[p]Produces sun over time.[/p] -[p]Health points: [color=DARK_RED]3 bites[/color][/p] -[p]Reload time: [color=DARK_RED]5 seconds[/color].[/p] -[p]Initial sun production time: [color=DARK_RED]12 seconds[/color].[/p] -[p]Sun production time: [color=DARK_RED]24 seconds[/color](After first sun produced).[/p]" -Cost = 50 +name_key = "sunflower" +description_key = "sunflower_desc" +Cost = 50.0 Scene = ExtResource("2_gcyr5") ReloadTime = 5.0 ReloadProgress = 1.0 diff --git a/resources/plants/Threepeater.tres b/resources/plants/Threepeater.tres index 42cb5f4..4a62eef 100644 --- a/resources/plants/Threepeater.tres +++ b/resources/plants/Threepeater.tres @@ -6,13 +6,9 @@ [resource] script = ExtResource("3_3lugi") -display_name = "Threepeater" -display_description = "[p]Shoots peas at zombies in three lanes.[/p] -[p]Health points: [color=DARK_RED]3 bites[/color].[/p] -[p]Reload time: [color=DARK_RED]5 seconds[/color].[/p] -[p]Pea damage: [color=DARK_RED]1 pea[/color] ([color=DARK_RED]3 pea[/color] when in close quarters).[/p] -[p]Firerate: [color=DARK_RED]1.6 seconds[/color].[/p]" -Cost = 300 +name_key = "threepeater" +description_key = "threepeater_desc" +Cost = 275.0 Scene = ExtResource("2_uqpu0") ReloadTime = 5.0 ReloadProgress = 0.0 diff --git a/resources/plants/Wallnut.tres b/resources/plants/Wallnut.tres index f17f614..63b6271 100644 --- a/resources/plants/Wallnut.tres +++ b/resources/plants/Wallnut.tres @@ -6,11 +6,9 @@ [resource] script = ExtResource("1_27l0t") -display_name = "Wallnut" -display_description = "[p]Absorbs zombie damage. Does nothing special[/p] -[p]Health points: [color=DARK_RED]60 bites[/color][/p] -[p]Reload time: [color=DARK_RED]20 seconds[/color].[/p]" -Cost = 50 +name_key = "wallnut" +description_key = "wallnut_desc" +Cost = 50.0 Scene = ExtResource("2_rkn3h") ReloadTime = 20.0 ReloadProgress = 0.0 diff --git a/resources/zombies/basic.tres b/resources/zombies/basic.tres index 9b4796e..6868200 100644 --- a/resources/zombies/basic.tres +++ b/resources/zombies/basic.tres @@ -10,7 +10,7 @@ display_name = "Basic zombie" display_description = "The most basic zombie that zomboss has. Health points: [color=darkred]7 peas[/color]. Walk speed: [color=darkred]0.2 tiles/second[/color]. -Attack speed: [color=darkred]1 Gz[/color]. +Attack speed: [color=darkred]1 Hz[/color]. Attack damage: [color=darkred]1 bite[/color]. " diff --git a/resources/zombies/buckethead.tres b/resources/zombies/buckethead.tres index 3f58abb..52bd77c 100644 --- a/resources/zombies/buckethead.tres +++ b/resources/zombies/buckethead.tres @@ -11,7 +11,7 @@ display_description = "Wears metal to protect his remaining brains. Equivalent o Health points: [color=darkred]7 peas[/color]. Armour points: [color=darkred]39 peas[/color]. Walk speed: [color=darkred]0.2 tiles/second[/color]. -Attack speed: [color=darkred]1 Gz[/color]. +Attack speed: [color=darkred]1 Hz[/color]. Attack damage: [color=darkred]1 bite[/color]." Cost = 5.0 Scene = ExtResource("1_lhcag") diff --git a/resources/zombies/conehead.tres b/resources/zombies/conehead.tres index 43fb0d6..9a20089 100644 --- a/resources/zombies/conehead.tres +++ b/resources/zombies/conehead.tres @@ -11,7 +11,7 @@ display_description = "Armoured vesion of basic zombie. Equivalent of ~3 zombies Health points: [color=darkred]7 peas[/color]. Armour points: [color=darkred]13 peas[/color]. Walk speed: [color=darkred]0.2 tiles/second[/color]. -Attack speed: [color=darkred]1 Gz[/color]. +Attack speed: [color=darkred]1 Hz[/color]. Attack damage: [color=darkred]1 bite[/color]." Cost = 2.0 Scene = ExtResource("1_llf5l") diff --git a/resources/zombies/hobo.tres b/resources/zombies/hobo.tres index b8d6365..847296d 100644 --- a/resources/zombies/hobo.tres +++ b/resources/zombies/hobo.tres @@ -6,13 +6,13 @@ [resource] script = ExtResource("1_u5qpq") -display_name = "Garbage can zombie" +display_name = "Trash can zombie" display_description = "Some time in the past he met a great conqueror. Hates to live without his can. Equivalent of ~8 zombies. Health points: [color=darkred]13 peas[/color]. Armour points: [color=darkred]39 peas[/color]. Walk speed: [color=darkred]0.2 tiles/second[/color]. Run speed: [color=darkred]0.6 tiles/second[/color]. -Attack speed: [color=darkred]1 Gz[/color]. +Attack speed: [color=darkred]1 Hz[/color]. Attack damage: [color=darkred]1 bite[/color]." Cost = 7.0 Scene = ExtResource("1_4myt6") diff --git a/scripts/components/gui/choose_your_seeds/Previewport.cs b/scripts/components/gui/choose_your_seeds/Previewport.cs index 45c899b..bb90799 100644 --- a/scripts/components/gui/choose_your_seeds/Previewport.cs +++ b/scripts/components/gui/choose_your_seeds/Previewport.cs @@ -41,8 +41,8 @@ public partial class Previewport : SubViewport else GetNode("FrameField").Texture = start_Field; current_display = resource.Scene.Instantiate(); - title.Text = resource.display_name; - description.Text = resource.display_description; + title.Text = Tr(resource.name_key); + description.Text = Tr(resource.description_key); AddChild(current_display); if (current_display is IEntity entity) entity.DisableBrain(); diff --git a/scripts/resources/DisplayResource.cs b/scripts/resources/DisplayResource.cs index a499473..fb98245 100644 --- a/scripts/resources/DisplayResource.cs +++ b/scripts/resources/DisplayResource.cs @@ -2,8 +2,8 @@ using Godot; public partial class DisplayResource : Resource { - [Export] public string display_name; - [Export(PropertyHint.MultilineText)] public string display_description; + [Export] public string name_key; + [Export] public string description_key; [Export] public float Cost; [Export] diff --git a/translations/plants.csv b/translations/plants.csv new file mode 100644 index 0000000..f322a3b --- /dev/null +++ b/translations/plants.csv @@ -0,0 +1,83 @@ +keys,en,ru +aloe,Aloe,Алоэ +aloe_desc,"[p]Aloe heals injured plants.[/p] +[p]Health points: [color=DARK_RED]3 bites[/color][/p] +[p]Reload time: [color=DARK_RED]15 seconds[/color].[/p] +[p]Ability recharge time: [color=DARK_RED]20 seconds[/color].[/p] +[p]Heals plant when it has [color=DARK_RED]third[/color] of its health.[/p]","Алоэ лечит израненные растения. +Очки здоровья: [color=dark_red]3 укуса[/color]. +Время перезарядки: [color=dark_red]15 секунд[/color]. +Время перезарядки способности: [color=dark_red]20 секунд[/color]. +Лечит растения [color=DARK_RED]с третью[/color] здоровья." +garlic,Garlic,Чеснок +garlic_desc,"[p]Redirects zombies that bite it.[/p] +[p]Health points: [color=DARK_RED]20 bites[/color][/p] +[p]Reload time: [color=DARK_RED]15 seconds[/color].[/p]","Перенаправляет зомби, которые его кусают. +Очки здоровья: [color=DARK_RED]20 укусов[/color] +Время перезарядки: [color=DARK_RED]15 секунд[/color]." +peashooter,Peashooter,Горохострел +peashooter_desc,"[p]Simply shoots peas at zombies on the lane[/p] +[p]Health points: [color=DARK_RED]3 bites[/color].[/p] +[p]Reload time: [color=DARK_RED]5 seconds[/color].[/p] +[p]Pea damage: [color=DARK_RED]1 pea[/color].[/p] +[p]Firerate: [color=DARK_RED]1.5 seconds[/color].[/p]","Просто стреляет в зомби на линии. +Очки здоровья: [color=DARK_RED]3 укуса[/color]. +Время перезарядки: [color=DARK_RED]5 секунд[/color]. +Урон от гороха: [color=DARK_RED]1 горошина[/color]. +Задержка стрельбы: [color=DARK_RED]1.5 секунды[/color]." +potatomine,Potato mine,Картофельная мина +potatomine_desc,"[p]Explodes when stepped on. Needs some time to prime.[/p] +[p]Health points: [color=DARK_RED]2 bites[/color].[/p] +[p]Reload time: [color=DARK_RED]25 seconds[/color].[/p] +[p]Explosion damage: [color=DARK_RED]600 peas[/color].[/p] +[p]Prime time: [color=DARK_RED]15 seconds[/color].[/p]","Взрывается когда на неё наступают. Требует некоторое время для роста. +Очки здоровья: [color=DARK_RED]2 Укуса[/color]. +Время перезарядки: [color=DARK_RED]25 seconds[/color]. +Урон от взрыва: [color=DARK_RED]600 горошин[/color]. +Время роста: [color=DARK_RED]15 seconds[/color]." +snowpea,Snowpea,Снежный горох +snowpea_desc,"[p]Shoots slowing peas at zombies.[/p] +[p]Health points: [color=DARK_RED]3 bites[/color].[/p] +[p]Reload time: [color=DARK_RED]5 seconds[/color].[/p] +[p]Pea damage: [color=DARK_RED]1 pea[/color].[/p] +[p]Firerate: [color=DARK_RED]1.5 seconds[/color].[/p] +[p]Slow percentage: [color=STEEL_BLUE]25%[/color].[/p]","Стреляет замедляющими горошинами в зомби. +Очки здоровья: [color=DARK_RED]3 укуса[/color]. +Время перезарядки: [color=DARK_RED]5 секунд[/color]. +Урон от гороха: [color=DARK_RED]1 горошина[/color]. +Задержка стрельбы: [color=DARK_RED]1.5 секунды[/color]. +Процент замедления: [color=STEEL_BLUE]25%[/color]." +spikeweed,Spikeweed,Колючка +spikeweed_desc,"[p]Attacks zombies that step on it.[/p] +[p]Health points: [color=DARK_RED]3 bites[/color].[/p] +[p]Reload time: [color=DARK_RED]5 seconds[/color].[/p] +[p]Damage per second: [color=DARK_RED]0.9 peas[/color].[/p]","Атакует наступающих на неё зомби. +Очки здоровья: [color=DARK_RED]3 укуса[/color]. +Время перезарядки: [color=DARK_RED]5 секунд[/color]. +Урон в секунду: [color=DARK_RED]0.9 горошин[/color]." +sunflower,Sunflower,Подсолнух +sunflower_desc,"[p]Produces sun over time.[/p] +[p]Health points: [color=DARK_RED]3 bites[/color][/p] +[p]Reload time: [color=DARK_RED]5 seconds[/color].[/p] +[p]Initial sun production time: [color=DARK_RED]12 seconds[/color].[/p] +[p]Sun production time: [color=DARK_RED]24 seconds[/color](After first sun produced).[/p]","Производит солнце время от времени. +Очки здоровья: [color=DARK_RED]3 укуса[/color] +Время перезарядки: [color=DARK_RED]5 секунд[/color]. +Изначальная задержка выработки солнца: [color=DARK_RED]12 секунд[/color]. +Задержка выработки солнца: [color=DARK_RED]24 секунды[/color](После первого солнца)." +threepeater,Threepeater,Тристрел +threepeater_desc,"[p]Shoots peas at zombies in three lanes.[/p] +[p]Health points: [color=DARK_RED]3 bites[/color].[/p] +[p]Reload time: [color=DARK_RED]5 seconds[/color].[/p] +[p]Pea damage: [color=DARK_RED]1 pea[/color] ([color=DARK_RED]3 pea[/color] when in close quarters).[/p] +[p]Firerate: [color=DARK_RED]1.6 seconds[/color].[/p]","Стреляет в зомби по трём линиям. +Очки здоровья: [color=DARK_RED]3 укуса[/color]. +Время перезарядки: [color=DARK_RED]5 секунд[/color]. +Урон от гороха: [color=DARK_RED]1 горошина[/color] ([color=DARK_RED]3 горошины[/color] вблизи). +Задержка стрельбы: [color=DARK_RED]1.6 секунд[/color]." +wallnut,Wallnut,Стенорех +wallnut_desc,"[p]Absorbs zombie damage. Does nothing special[/p] +[p]Health points: [color=DARK_RED]60 bites[/color][/p] +[p]Reload time: [color=DARK_RED]20 seconds[/color].[/p]","Принимает на себя урон от зомби. Ничего интересного. +Очки здоровья: [color=DARK_RED]60 укусов[/color] +Время перезарядки: [color=DARK_RED]20 секунд[/color]." diff --git a/translations/plants.csv.import b/translations/plants.csv.import new file mode 100644 index 0000000..3a2532f --- /dev/null +++ b/translations/plants.csv.import @@ -0,0 +1,17 @@ +[remap] + +importer="csv_translation" +type="Translation" +uid="uid://dw0l3ejdd3xym" + +[deps] + +files=["res://translations/plants.en.translation", "res://translations/plants.ru.translation"] + +source_file="res://translations/plants.csv" +dest_files=["res://translations/plants.en.translation", "res://translations/plants.ru.translation"] + +[params] + +compress=true +delimiter=0 diff --git a/translations/plants.en.translation b/translations/plants.en.translation new file mode 100644 index 0000000000000000000000000000000000000000..b6310f1cd2f42e3731f7c22320dc701cd24c0bd5 GIT binary patch literal 3102 zcmc&%e`s4(6n;s&EPaXXIyH$dwh6_#6*XzLWjNDnYSJldZAdDXZrST=`qsWRO=4bR zQ!x`{Vu!AC4h93EP#A-4Dq4_%e+aWWH`Erb`iDO@>O?`&DN?A&i{E|8OJ3VFt;HV? zKJLBeo^$Ux-#Pc*#2@fKMCHD6v;-R9R-iqW;0O7qxZaL98xg{6f{#WZ&VFTRx-G+B zja_VU$+Fe7S}2)-I44At@es#^qailTB%+KE;vyVXsho?jgB(=>$si{PY#%33>oJfl zI7)|ZKP&Vz3AQK9Q8!`OlMD@TiJXA!BqZW|q%UhGgyMWG0U<@HfI2{0X_w7bEK;Ul zV7K*BTZt~dWeJg4vp~rRWE3BU5}QP%M}H$=0c4eW^zDEXAS^ZmtpJ(#qurP5%lhju zwg5c<@r!^t-c~z~4xx!qBFhi|-uBrqNF@y!*;|&s_3NkKTtfC75NroXBFS9KbI;s( z2LnPI!OK6LesUhc5qpB`{LZS+;lOQBz86qKM(pNlt{+E35#I><=KQfYFj!n`T7(bT zetfk2mNGbS8M03Ra$0JEccJ7CM>!a}GOD24pwVsUG**cRPd?~6;-e$t-uGN$upvA9 zaLVwlOH)-wi@TtoG}LG4MvvRShw*zo!EO6(PG}RUDyX#bzp445a#o$U(G_eOb~Jra zYofDeVsPPZ?yeiQ-PTj>^UD}J>?Mrhsu2NmmVLp^&!{4m6n#+t|p6JpZvhTO)YzrM+N{1pe2MqoZK8RPMFGat7b(5I$D=_Q2 zgt2k@#pfm8MpYl(u3k%~7E``BRf_bM%9Jm4y8PAoe1a8L4e69j^g`}hwAN?6MJ*y? zk*%^MT)nINo+`D>g7*)XL37Y}ajH%2ny#rG79ai5WSj_B&c4#^iia0&w=`7>Cms1r zt;B~izeT*v9~8;8nNgFH6@8)poOXLUwM^Cf;)r0?hlTJGh(w2C94prb>Vh_C+%4(U z`8rY^&cDG#;S8_Dgo3_OMEv`ek>@;spwpX1eC35gtZEE&c)hJmbL(T?pkv3K((ROs zOkys^4{$>q*PG+cUG{-l9LSybCa>$t-2cg)2i22)nn^YmJ0|vsc;Dh0l0r&G4uqpa zTs#+&PcUsBG1AxW_#RcYrf9HgsoQ*&h44s)P21UYEe&_fM~^L2;Eoa(dZ4teW4ppO zqYiFy-+iH9`*j^HnT?plty1uWBC%tmRXzQkUcN^Hikpr~LFI4R=ev5HBVFn8C4zDqhKI&#AeiyqCP k!v{k2v{~D^!Yib>K%HxOAd9{EB&X8v9r9bpkADV#0q!0_G5`Po literal 0 HcmV?d00001 diff --git a/translations/plants.ru.translation b/translations/plants.ru.translation new file mode 100644 index 0000000000000000000000000000000000000000..566223676e4292d3458559894ed636f0fd55c8e3 GIT binary patch literal 4209 zcmd^DUuaup6u;^^wW}MOe;Md5im-~bX=Xbdia1+e)*)mQ23^h4^xB2BNy$we`eM_p zR@bgwJFqg*;l>zxg{hjaL@7|lFk)`!PFzhtn zJ@@<0`OfeB%>su4FKPB?6TX=?gB}FEGMI=AMBXxb5644MvpRqq5fbZ7Bs^~)X=ti-$g?MhITJF1BPja`V3RM z8xQh?p>4tPc*r~+OoV#+4edTW_6&tj7zvxfn#@Ez6792&nc;Y3Faf5f-2r+6Bqi-@ zZeGjM;F~9XZE>xU_u^9(kUG3%Fw}Q^NP?(?^)To!&j*hZTxK<3y#u6!)Rw2P_JP_! z&w=)XIzjwCfbXOBTJ2|*I;aQ4*JKJ#AKYc$Y3XMDiht_&gWtSXuW8%CV^aM2U%&ot z4uW!EFtI88?&Z<9f0+e;C)P|eKVE+0b)dfuYo?o#z1z+M;#F*Bf=YSr)?+uPv6Nn8 z&-L933^pLD#<7P9|0JEc_CoM94jlu7N%4<MXATRdujr?%4*~R_v1U@|LkHTg{{W*O2aideZ>igUV-}mf z1&`^^t{b1#;e0uM7biD8Fa%t7U@sFV&n{3Ml+syRqM|tCEOb2Q#2Dqph)#K05W|$F zWy*n;#W>}3W{9L1k*vI!YO1G?v44^BIxSEZ!iK3x88IQI_UT>WSbr@3d~YazA{aM% zyZ7iKMT;UOl9cXhmM^;@U z*=FS+I8j}<1`j!+s(DDGb9`OUC|1n`QlY|ePh)`3!*12vCDp7J%B zxX}=F46GV~m)HN-<8&Qvtkxr&&oKMhnv%0P$pIh#(oJTs55Vgp{0)vfw0omgAYLiIsrqnw;p@>5>X^$HetSslQb> zjc_d5YkI_#Ixyp+Qi*t*&sXL`j~utGxn@?1K%$giL8DIqc8=y{&HdcfFp4+jnSn|P z7v|t1018jM2Y14y?jbv}ET%V)YJ&WKnm6@!U3v!yFI&aefty)qly09pbhx9VGq}I= z)sAj|>yu6-aPAf1ok`gz)9AG*a%tJS>_m|r6?tRj5=ynECv+W$<6 zXt$T_#&p8-69z>!ud#=C@bF%?5j}@HLf&oWT4nX})+3e%8JGyfG!>i%j}f4-VQ)f! zTaKaUpQcQwJy&&SX@^*6i`RGC@v)XAM^c1fwca*6}%R+bQm7&Wz($C!Icm!^a?v!+{42gt5dLp~15) b*fsgG?cbY7s}1z{DI|Zi^Y5(y{