diff --git a/_tourism/ukraine/karpaty2018.zmp/18.bmp b/_tourism/ukraine/karpaty2018.zmp/18.bmp
new file mode 100644
index 00000000..47d65f27
Binary files /dev/null and b/_tourism/ukraine/karpaty2018.zmp/18.bmp differ
diff --git a/_tourism/ukraine/karpaty2018.zmp/24.bmp b/_tourism/ukraine/karpaty2018.zmp/24.bmp
new file mode 100644
index 00000000..595f438b
Binary files /dev/null and b/_tourism/ukraine/karpaty2018.zmp/24.bmp differ
diff --git a/_tourism/ukraine/karpaty2018.zmp/GetUrlScript.txt b/_tourism/ukraine/karpaty2018.zmp/GetUrlScript.txt
new file mode 100644
index 00000000..168fbb2a
--- /dev/null
+++ b/_tourism/ukraine/karpaty2018.zmp/GetUrlScript.txt
@@ -0,0 +1,57 @@
+function GetCode(const url: AnsiString): Cardinal;
+var
+  VResponseCode: Cardinal;
+  VResponseHeader, VResponseData: AnsiString;
+begin
+  Result := 1;
+  if Assigned(Downloader) then begin
+    VResponseHeader := '';
+    VResponseData := '';
+    VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData);
+    Result := VResponseCode;
+  end;
+end;
+
+var
+  BaseUrl: string;
+  code: Cardinal;
+  z_ok, z_no: integer;
+  r: integer;
+begin
+  ResultURL := '';
+  z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть
+  z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет
+
+  // Масштаба нет - говорить не о чем
+  if getz >= z_no then exit;
+
+  // Выбор зеркала, если не указана версия
+  if version = '' then
+    r := random(2)
+  else
+    r := StrToInt(version);
+
+  case r of
+    0: BaseUrl := GetURLBase;
+    1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, 'http://91.237.82.95:8088', 'https://maps.melda.ru');
+  end;
+
+  // Проверяем наличие масштаба
+  if getz > z_ok then begin
+    code := GetCode(BaseUrl+inttostr(getz-1)+'/');
+
+    // Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное"
+    // Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется.
+    if code = 404 then z_no := getz-1 else z_ok := getz-1;
+
+    // Сохраняем актуализированные границы для последующих вызовов
+    ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no);
+
+    // Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем
+    if getz >= z_no then exit;
+  end;
+
+  // Ок, качаем тайлик
+  ResultURL:= BaseUrl+inttostr(getz-1)+'/'+inttostr(getx)+'/'+inttostr(gety)+'.png';
+
+end.
diff --git a/_tourism/ukraine/karpaty2018.zmp/info.txt b/_tourism/ukraine/karpaty2018.zmp/info.txt
new file mode 100644
index 00000000..c335feb4
--- /dev/null
+++ b/_tourism/ukraine/karpaty2018.zmp/info.txt
@@ -0,0 +1,6 @@
+��� ����� � ����� �� ������� "�������������" ����������� �� ���������� <br><br>
+<br>
+<br>������� ������� ��� ����� �� ������ ����-�� <A href=https://cloud.mail.ru/public/64hJ/Eun9HcSD4>https://cloud.mail.ru/public/64hJ/Eun9HcSD4</a>
+<br>
+���� � ��� ���� ��� ��������� ���� ������ - ����� ����� �� ���� garl@mail.ru <br>
+<br>
diff --git a/_tourism/ukraine/karpaty2018.zmp/params.txt b/_tourism/ukraine/karpaty2018.zmp/params.txt
new file mode 100644
index 00000000..00c6fed6
--- /dev/null
+++ b/_tourism/ukraine/karpaty2018.zmp/params.txt
@@ -0,0 +1,20 @@
+
+[PARAMS]
+pnum=17
+GUID={8debebc0-b593-49f5-8046-53339fcf7044}
+ParentSubMenu_ru=Туристические\Украина
+ParentSubMenu_uk=Туристичний\Україна
+ParentSubMenu=Hike\Ukraine
+name_ru=Карпаты 500м
+name=Chornogora-Marmarosy
+DefURLBase=http://91.237.82.95:8088/pub/tourism/ukraine/050_karpaty2018/
+projection=1
+sradiusa=6378137
+sradiusb=6378137
+NameInCache=050_karpaty2018
+Ext=.png
+ContentType="image/png"
+defaultContentType="image/png"
+MaxConnectToServerCount=1
+IsUseDownloaderInScript=1
+License=(c) Издательство Стежки та мапи
\ No newline at end of file