Jet prověřovat možnosti lesnického projektu do Mongolska v druhé polovině listopadu není zrovna nejlepší nápad, ale nebylo na vybranou. Chvílemi jsem čekal, že za stromem vykoukne docent Chocholoušek a hodí na nás sítě. Jelikož jsem se chtěl principiálně vyhnout Rusku, letěli jsme s Turkish Airlines přes Istanbul a s mezipřistáním v kyrgyzském Biškeku. Tam se během hodinky člověk po pětihodinovém letu z Turecka protáhne a navíc je tam celkem levná „ohnivá voda“, na přežití v podmínkách nejistých kuchyní v jurtách.

Hlavní město Ulánbátar (Rudý bojovník), je město, kde bydlí asi ¼ všech obyvatel země, kterým vede ve směru východ – západ jedna hlavní ulice (ulice Míru), což je asi jediný jednotící prvek města. Jinak se město rozrůstá podle prvního pohledu naprosto živelně, všude se staví panelová sídliště, i když podstatně pohlednější něž za socialismu. Kolorit města dokreslují rozsáhlá „jurtoviště“, která tvoří předměstí. Pastevci opouštějí houfně tradiční způsob života a stěhují se do hlavního města. Jsou chudí, tak si sotva pronajmou, nebo v lepším případě koupí pár čtverečních metrů půdy, na kterých si postaví jurtu. Časem se stane místem pro život dřevěný domek, ale jurta zůstane. Jelikož je takovýto rozvoj města vzhledem k lokálním topeništím využívající uhlí nepřijatelný, vláda podporuje masově výstavbu panelových domů s centrálním vytápěním a hypotéky, které snad umožní tento kardinální problém země vyřešit.

Obrázek 1. Gandan, jeden z mále socialismus přeživších klášterů.

Jednání jsme zahájili představením projektu na našem velvyslanectví, kde nás přijala paní velvyslankyně Ivana Grollová. Mimo jiné nás upozornila na prohlubující se finanční krizi, do které se země dostala mimo jiné i díky celosvětovým poklesům ceny uhlí a která právě zapříčinila i pád vlády. Doporučila nám orientaci na soukromý sektor, pokud to bude možné, jelikož spolufinancování projektu státem v době pády vlády, bude velkým problém a na nutnost mít jasno, kdo bude výsledky našeho projektu užívat po jeho skončení.

Dále naše kroky vedly k našim hlavním budoucím partnerům, MŽP a FRDC. Na ministerstvu nás přijal ředitel divise zachování a obnovy lesa pan Banzragch. Přítomen byl i ředitel FRDC, pan Gantulga. Pan ředitel Banzragch zdůraznil velkou potřebu dlouhodobé spolupráce s ČR v oblasti lesnické genetiky a dalších oblastech lesního hospodářství, které by nemělo být ohraničeno jen třemi lety projektu a vyzvedl význam Křtinské deklarace. Probírala se možnost vybavení školky FRDC v Ulánu a byla vyslovena žádost o nastavení evropských standardů pro laboratoř pro zjišťování kvality semene, která je také v režii FRDC. Projekt by se měl zaměřit na dvě hlavní dřeviny, borovici a modřín a byla vyslovena velká potřeba založení prvního modelového semenného sadu modřínu v Mongolsku, včetně zapojení místních odborníků regionálních poboček FRDC a jejich školení během projektu ve všech jeho odbornostech. Pan ředitel zmínil i problémy s luštěním borovice. Náš návrh projektu na základě návrhů na rozšíření ze strany ČRA zněl zhruba takto. Projekt vidíme nyní ve třech okruzích – OPRL, genetika, lesní školka + zalesňování, včetně novinek dnes vyřčených – laboratoř + semenný sad. V prvním roce by proběhla rekognoskace v oblasti OPRL, výběr porostů pro sběr osiva a stromů pro odběr roubů pro semenný sad a za spolufinancování vybraným partnerem by se vybavila technologií lesní „vzorová“ školka. Druhý rok bychom se zaměřili na tvorbu vzdělávacích materiálů, provoz školky, roubování a založení semenného sadu, výběr plochy pro druhou školku a její výstavba z prostředků MNG (pouze technologie z ČR). Třetí rok by probíhalo vzdělávání v rámci university Darchan a učiliště v Suchbátaru, zaškolování, případný technologický dohled nad výstavba třetí školky již plně z prostředků MNG, předání provozů do MNG správy, práce s veřejností, závěrečný workshop pro odborníky ze všech částí MNG. Možností nad rámec projektu, je uspořádat zde workshop pro signatáře Křtinské deklarace, pokud by se na podobný workshop sehnaly externí finance.

Obrázek 2 Zimní Lámův palác

Na návštěvu MŽP navazovala cesta do FRDC. Zde jsme poznali dalšího partnera, pana Ganzorika, ředitele pro školky a pro zalesňování a se kterým jsme nejdříve odjeli do školky. Školka FRDC leží na okraji asi 60 ti hektarového pozemku na dně jednoho z bočních údolů na severním předměstí Ulánbátaru. Tvoří jí jedna velká garáž, malý domeček, kde je sklad osiva, kam chtějí přesunout laboratoř, která nyní sídlí v pronajatých prostorech ve městě, jurta, sněžná jáma a několik foliáků. Část pozemků je pronajat soukromé zahraniční firmě UBT, která má očividně na svém území, kromě obrovského, automatem spojeným s meteorologickou stanicí řízeného skleníku za 1 mil USD, větší pořádek, než státní část. Je škoda, že ač se zaměstnanci státu pohybují po pozemcích soukromé firmy naprosto přirozeně, pozemky nejsou ani odděleny plotem, tak si inspiraci v podobě pořádku k sobě nepřenesou. Zjistili jsme cenu foliáků, okoukly základy závlah, jelikož většina již byla před zimou uklizena, viděli desítku terénních UAZů, zarůstajících buření, o kterých ale říkali, že na jaře budou rozděleny do regionálních jednotek a desítku malých čínských traktůrků s vleky a nějakou výbavou s údajně stejným osudem.

Obrázek 3. Školka FRDC

Po návratu do kanceláře pana Gantulgy jsme se zajímali zejména o podobu a dostupnost lesních hospodářských plánů (LHP), chemických přípravků a pravidel pro oblast lesnické genetiky. Podoba LHP je díky vlivu SSSR stejná, jakou jsme viděli na Kamčatce. Zde dnes již je mají údajně v GIS formě. Obdrželi jsme část seznamu povolených chemických přípravků. S případným dovozem nepovolených je údajně velký problém. Ve chvíli kdy píši tyto řádky a s vědomím problémů s vízy, o kterých se místní partneři jako o problému nezmiňovali, tak si je ani neumím představit… Také jsme obdrženy návrh pravidel z oblasti lesnické genetiky, které zpracovali botanici, a po diskusi by měly být zapracovány do lesního zákona.

Nastoleno bylo také téma školky. Poté co jsme viděli ve školce stávající a také vzhledem k její poloze, kde je vystavena bez jakékoli ochrany lesních porostů v okolí všem extrémním vlivům počasí, kdy v Ulánu může být v létě +40 a v zimě – 40o C, se nám jeví tato lokalita jako naprosto nevhodná. Pan ředitel Ganzorik vyjmenovává další možné lokality:

  • údolí řeky TUUL (povodí řeky = 3% plochy MNG), 100 km na severovýchod od UB. V další debatě lokalita vyloučena jako první vzorová školka, jelikož jsou lesy poměrně daleko a je zde jen – NP Terelč a ne hospodářské lesy, kde by se dalo předvést zalesňování.
  • Lokalita university v Ulánu v okolí Batsumberu – letní kemp a malá školka, asi 60 km na sever. Po osobní návštěvě vidíme, že prostor pro školku je omezený už nyní. Musela by se najít poblíž úplně nová plocha. Poté by lokalita v bočním údolí pod lesem byla reálná.
  • Šarin-Gol – pracuje zde starší nadšený člověk, dřívější profesor na universitě. Později zpochybněna jako vzorová školka, jelikož zde není moc prostoru pro rozšíření, ale jsou zde úspěšné výsadby a další školka je nedaleko. Jak se později ukázalo, oním člověkem je pan Dr. Tsedendash a školkou nedaleko, školka družstva Sharingol.

 

Obrázek 4. V Kanadě postavený a v Mongolsku znovu sestavený srub je nadstandardní restaurací

K návrhům sdělujeme naše stanovisko, že potřebujeme v rámci projektu zajisti celou linku. Předmětem projektu by měla být linka počínající výběrem geneticky vhodných porostů, přes sklizeň semen, lesní školku až po péči o zalesněné plochy. Sadební materiál se musí vracet do oblasti získaného semene, nutné najít oblast, kde bude instalace celé technologie možná a úplná.

 

Mongolsko je země, kde pracuje mnoho rozvojových organizací, jak mezinárodních pod hlavičkou OSN, jako třeba FAO, tak národních, jako třeba německá GIZ. Ta zde má přes 100 zaměstnanců, lesnictvím se zabývá jen malá část z nich. GIZ reprentovaná vedoucím dlouhodobého projektu panem Klaus Smith-Corsitto. V jeho kanceláři představujeme obrysy projektu a získáváme informace o rámcových úlohách donorů v Mongolsku, doporučil nám kontakty zejména s UNDP a s UN REDD+, a konkrétní úloze GIZ v rámci mongolského lesnictví. GIZ připravuje pro Mongolsko změnu lesního zákona v oblasti genetických zdrojů a „Forest strategy“, provozují tři lesní školky a zpracovávají videa. Pod jejich vedením proběhla NIL, která se začne v roce 2015 zpracovávat. Šéf projektu GIZ zdůraznil, že budeme mít velké problémy se spolufinancováním, GIZ musel mnoho projektů pozastavit. Na závěr jsme oboustranně vyjádřili potřebu a zájem spolupracovat.

Obrázek 5. Modřín sibiřský – Larix sisbirica

O víkendu jsme nejen navštívili jedny z mála socialismus přeživších budhistických památek v hlavním městě, ale zajeli se podívat i do !oprvdového lesa“.

památekKromě návštěvy MŽP, FRDC a GIZ, nás paní velvyslankyně Ivana Grollová seznámila s manžely, kteří oba studovali v ČR a v Mongolsku se věnují podnikání ve zpracování obilí (firma Altan Taria – Zlatý klas), a mimo jiné ukazují místním pastevcům, že se z nich mohou stát v určitých oblastech Mongolska i úspěšní farmáři.

Obrázek 6. S trochou sněhu si jak poradí bez problému

Po týdnu v Ulánu jsme se přesunuli na sever do 200 km vzdáleného Sharingolu a Dachanu. Sahringol je malé okresní město plné paneláků v těsné blízkosti obrovského povrchového dolu na uhlí. Posledních 30 km z asfaltky vedoucí z Ulánu do Ruska je nutno jet po vyježděné stepy. Okresní město má spojení s civilizací jen železnicí, pro odvoz uhlí a podobnými (ne)komunikacemi. Na kraji města na benzínce nás uvítala velmi energická paní Oyuntuya a po chvíli jsme již uháněli dalších 30 km kolem hald zlatých dolů na východ na kraj rozsáhlých lesů jižní tajgy, které sahají až do provincie Chentí na východě země, kde se mění ve stepy přecházející do Číny. U malé říčky na kraji řídkých borových lesů má družstvo malou školku s dřevěným domem, kde bylo připraveno pohoštění. Školka je jednoduchá, bez jakékoli mechanizace a technologického vybavení, ale je z ní cítit znalosti místních podmínek a nadšení pro věc. Jsou zde borové a modřínové semenáčky a jednoleté sazenice včetně dalších, které se budou na jaře vysazovat. Školka produkuje prostokořené sazenice. V pozdním odpoledni, kdy teplota klesla již na -16o C nás paní Oyuntuya zavedla k panu doktoru Tsedendashovi, který v šedesáti letech skončil na universitě, opustil Ulán a žije v divočině v malé dřevěné chatce, za níž má malou školku a v bezprostředním okolí úspěšné výsadby. Je vidět, že paní Oyuntuya má dobrého učitele. Pan doktor nás provedl po školce a uctil vařenou gazelou, kterou ulovil před nedávnem v Gob. Ujistil, že je na netu, načeš odhrnul několik věcí a ukázal monitor. Vše provozuje díky solárnímu panelu a baterii. Poté vzpomínal, jak za ním v létě přijela manželka s dcerou…

Již za Již za úplné tmy a značného mrazu jsme absolvovali návštěvu malé pily, která stojí v Sharingolu v bezprostřední blízkosti domu paní Oyuntuyi, kterou obsluhovali za

Obrázek 7. Školka družstva Domogd Sharingol

skromného osvětlení asi 4 dělníci a na které řezali krásné borové výřezy. Poté jsme ještě shlédly čínskou linku na pelety, které dělají ze zbytků z pily a truhlárnu, která však stojí, jelikož nemají dost dělníků. Poté jsme se přesunuli za „průvodcování“ syna paní Oyuntuyi do Darchanu. Byl to jedný způsob, jinak bychom v noci cestu rozhodně nenašli, ačkoli jsme měli řidiče, ale z Ulánu. Před cestou ještě paní Oyuntuya volala gubernátora provincie Darchan-Uul a druhý den jsme dopoledne seděli v jeho kanceláři a představovali záměry projektu, které se postupně díky novým kontaktům a okolnostem rozrůstaly. Dobré kontakty, říkali jsme si…

Obrázek 8. Školka pana Dr. Tsedendashe

Pan gubernátor na schůzce prohlásil, že pokud vybereme pro spolupráci a dovybavení školku družstva Domogd Sharingol, tak provincie zajistí nutnou spoluúčast. Jednání se účastnila místní televize a po jednání bylo krátké interview. Redaktorka se představila dobrou češtinou, studovala žurnalistiku na Karlově universitě v Praze. Podobně dopadlo i jednání na universitě. Universita se zabývá výchovou odborníků v mnoha odvětvích včetně zemědělství a nyní i lesnictví. Součástí university je i výzkumné centrum. Po úvodním

Obrázek 9. S paní Oyountuyou a Dr. Tsedendashem

setkání s panem rektorem, prorektorem a vedoucí výzkumného centra jsme se jeli podívat do oblasti Zulzaga, která leží asi 20 km východně od města a je pro něj i rekreační oblastí. Stepí bez jasné cesty jsme asi po půlhodině dojeli do řídkého borového lesa na písečné duně nad říčkou. Stejnou říčkou, která pramení nad školkou družstva Sharingol. V řídkých borovicích je zde několik dřevěných domků a chatek pro letní rekreaci. Místo je to krásné, ale školka by musela být na velké ploše, jelikož jsou zde jen menší plochy bez stromů, což by prodražilo závlahy. Lokalita má elektriku a poblíž je i vrt na pitnou vodu. Zálivková voda by se musela čerpat z asi 400 m vzdálené říčky a to s převýšením cca 70 m. Již ne tak krásné, ale pro školku jistě vhodnější byla plocha dole pod dunou u říčky. Pastviny s meandry, místy porostlé břízou a jilmem (Ulmus pumila) sice již nejsou v pronájmu university, ale to údajně není problém.

Obrázek 10. Úspěšné výsadby borovice u Suchbátaru

Další dva dny jsme strávili prohlídkou úspěšných výsadeb borovice lesní na rozlehlých plochách jihovýchodně od města Suuchbátar na severní hranici s Ruskem a výběrem případné plochy pro školku u firmy Altan Taria. Borové mlaziny se zbytky starších jedinců s příměsí břízy rostou na ploše cca 70 600 ha, z čehož borovice pokrývá přibližně 70%, která byla dlouhodobě pod tlakem opakujících se požárů a nelegálních těžeb, kterou asi v roce 2002 vyhlásilo MŽP za chráněnou oblast borovice. Úspěch vyžadoval nejen vybudování školek, ale zejména dohodu s obyvateli, místními pastevci. V oblasti platí absolutní zákaz pastvy. Jejich stáda jsou největším nebezpečím výsadeb a zřejmě i hlavní příčinou žalostné úspěšnosti výsadeb v zemi. Výsadby nám ukázal šéf celého projektu, který už postavou vzbuzoval respekt a pohledem by snad mohl řezat diamanty. Celkem mu věřím, když říká, že s místními lidmi se dohodl. Plocha se částečně obnovila přirozenou cestou. Umělá obnova proběhla na ploše 20 300 ha a to zejména borovicí, ale i modřínem (Larix sibirica) a to zejména na úpatí hor na jihovýchodním obzoru. Většinu aktivit financuje stát prostřednictvím MŽP, ale např. 2 700 ha bylo zalesněno z korejského projektu. Sazenice borovic sázejí do řad 1 – 2 m od sebe. Řady jsou od sebe 3 – 4 m, což znamená cca 2 500 – 3 000 ks/ha. Jde o nejúspěšnější velkoplošné výsadby v Mongolsku.

Obrázek 11. Mlýn firmy Altan Taria

V hotelu firmy Altan Taria by se dalo jíst ze země. Hotel je vybudouván zejména pro potřeby firmy a je v areálu zrekonstruovaného velkého mlýna v centru Suchbátaru. Firma funguje na světovém standardu. U večeře jsme Mikovi, zástupci ředitele mlýnu řekli, že nám nejde internet. Po krátkém telefonátu nám oznámil, že než dojíme, tak bude vše v pořádku. A bylo. Ještě v Ulánu nám paní Tsatsral, spolumajitelka firmy, která u nás studovala práva, krásnou češtinou vypráví historii firmy. Zdevastovaný mlýn v Suuchbátaru koupili v privatizaci, jako první. Pracovali s manželem, který má ČVÚT v Praze, 12 hodin denně. Pro chvíle odpočinku si vyhlídli na dohled od města, cca 20 km v údolí řeky Selengy, největší řeky v Mongolsku, která se vlévá do Bajkalu, místo, kde zbudovali malý kemp. Pod kempem byla nějaká malá farma, kterou koupili a přebudovali v moderní farmu americko – australského tipu. Alespoň tak nám připadala. Farma dnes nejen zásobuje závodní jídelnu mlýna, kde se stravuje denně více než 200 zaměstnanců, ale louží i jako příklad možného změny způsobu života místních pastevců, zejména těch, kteří žijí

Obrázek 12. Děti ze Zuunburenu si pochutnávají na musli z Čech

v obdobně příhodných podmínkách pro pěstování obilí. Funguje jako demonstrační objekt. Vycházejí z v Mongolsku fungujícího pravidla, že co lidé vidí fungovat, tím se inspirují. Farma leží v somonu (okresu) Zuunburen, jehož středem je malé městečko. K jeho výročí 50 let existence firma Alatan Taria postavila na příjezdové komunikaci ve směru od jejich farmy Internet cafe. Slouží jako „družina“ místním školákům. Mají zde nejen počítače, ale i knihovnu s knížkami a časopisy, které si mohou půjčit, ale také číst na místě. Paní za pultem jim uvaří čaj, nebo prodá nějakou sušenku. Děti měly z návštěvy povyražení, hned chtěli vědět, kde leží Česká republika a jak vypadá Praha. Ve vedlejší místnosti je přednášková místnost s veškerým potřebným vybavením pro cca 40 – 50 lidí. Provoz je samozřejmě pro firmu ztrátový. Další firma paní Tsatsral, Star estates o keré lze najít informace na stránkách Altan Taria, která poskytuje v jakémsi „kondominiu“ v centru Ulánu ubytování velvyslancům a VIP zahraničním pracovníkům jistě ztrátová není. Není mnoho těch, kteří nedělají jen věci, které přináší zisk. Jen více takových Mongolsko!

Mika nám ukázal kromě farmy i dvě místa, kde by se mohla školka vybudovat. Jendo v rámci farmy, kde již je elektrika, voda i internet. Jde ale o plochu uprostřed širokého plochého údolí, vystavené větrům a bez jakéhokoli krytu okolního porostu. Druhým místem je okraj řídkého borového lesa, který má firma pronajatý (cca 100 ha), které leží nad kempem a ze kterého je krásný výhled na velkou část širokého údolí řeky Selengy a na protější stráně, porostlé stejně řídkými borovými lesy. Nádherné místo, ale vše, elektrika, voda a internet by se muselo přivést z farmy, resp. z kempu. Pronajatý mladý les borovic vzniklý po požáru v roce 1989, se snaží se chránit před ilegálními těžaři a lovci. Vzniká zde otázka lovu, resp. legální „myslivosti“. Ilegální těžba a lov jsou přísně trestány, a to i několika měsíci vězení. S tresty je ale současně nutná spolupráce s místními obyvateli v oblasti ochrany lesa a zvěře a nutná je také jejich důsledná kontrola při plnění daných povinností. Je to prostor pro nevládní iniciativy.

Obrázek 13. Altaj z výšky 10 km

Mongolsko jsme opouštěli plni nových zážitků a informací. Samozřejmě mnoho nových otázek se při pohledu na bílé štíty Altaje a následně Ťian – Šanu z výšky 10 km vynořuje, stejně jako možnosti, jak z původně úzce zaměřeného projektu udělat projekt ucelený, který v sobě bude obsahovat jak prvky nutné pro fungování dlouhodobé péče o lesy z pohledu státní správy, tak ale jasné a praktické příklady v podobě lesních školek a výsadeb a semenného sadu. Navíc, díky propojení se školstvím a vzděláváním, je zde předpoklad, že se metodiky a technologie začnou šířit i do dalších oblastí Mongolska.

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).version={})}(this,(function(exports){"use strict";function __awaiter(e,t,n,i){return new(n||(n=Promise))((function(s,a){function o(e){try{d(i.next(e))}catch(e){a(e)}}function r(e){try{d(i.throw(e))}catch(e){a(e)}}function d(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,r)}d((i=i.apply(e,t||[])).next())}))}var Blocking;"function"==typeof SuppressedError&&SuppressedError,function(e){e.PENDING="pending",e.NONE="none",e.BLOCKED="blocked",e.ALLOWED="allowed"}(Blocking||(Blocking={}));class Adblock{constructor(e){this.state=Blocking.PENDING,this._mocked=!1,e?(this.state=e,this._mocked=!0):this.state=Blocking.ALLOWED}inject(){return __awaiter(this,void 0,void 0,(function*(){}))}hasAdblocker(){if(void 0===window.google)return!0;const e=document.querySelectorAll("style");return Array.from(e).some((e=>!!e.innerHTML.includes("adblockkey")))}handleAdblocked(){this.removeAdblockKey(),this.state=Blocking.BLOCKED}removeAdblockKey(){var e;null===(e=document.documentElement.dataset)||void 0===e||delete e.adblockkey}get isBlocked(){return this.state===Blocking.BLOCKED}get isAllowed(){return this.state===Blocking.ALLOWED}toContext(){return{user_has_ad_blocker:null,is_ad_blocked:null}}}const OBFUSCATING_BASE_64_PREFIX="UxFdVMwNFNwN0wzODEybV",encode=e=>OBFUSCATING_BASE_64_PREFIX+btoa(unescape(encodeURIComponent(JSON.stringify(e))));function decode$1(e){return JSON.parse(decodeURIComponent(escape(atob(e.replace(OBFUSCATING_BASE_64_PREFIX,"")))))}var version="0.5.2";const APP_ENV="production",TRACKING_DOMAIN="https://click-euw1.bodis.com/",SALES_JS_URL="https://parking.bodiscdn.com/js/inquiry.js",GOOGLE_CAF_TIMEOUT_SCRIPTS="0",GOOGLE_CAF_TIMEOUT_CALLBACKS="0",GOOGLE_MV3_URL_PARAMS="abp=1&bodis=true",APP_VERSION=version,COOKIE_CONSENT_JS_URL="",isLocal=(e=!0)=>"production"!==APP_ENV;function log(...e){}const FIND_DOMAIN_URL="_fd",getFindDomain=(e="",t=!1)=>{const n=`${e}/${FIND_DOMAIN_URL}${window.location.search}`,i=e?"include":"same-origin",s=Object.assign({Accept:"application/json","Content-Type":"application/json"},t?{"X-HOST":window.location.host}:{});return fetch(n,{method:"POST",headers:s,credentials:i}).then((e=>e.text())).then(decode$1)};var ZeroClickReasons;!function(e){e.CAF_TIMEDOUT="caf_timedout",e.CAF_ADLOAD_FAIL_RS="caf_adloadfail_rs",e.CAF_ADLOAD_FAIL_ADS="caf_adloadfail_ads",e.DISABLED_GB="disabled_gb",e.DISABLED_AB="disabled_ab",e.DISABLED_DS="disabled_ds",e.AD_BLOCKED="ad_blocked",e.PREFERRED="preferred"}(ZeroClickReasons||(ZeroClickReasons={}));const getZeroClick=e=>__awaiter(void 0,void 0,void 0,(function*(){const t=Object.assign(Object.assign({},e),{type:"zc_fetch"});return fetch("/_zc",{method:"POST",body:JSON.stringify({signature:encode(t)}),headers:{Accept:"application/json","Content-Type":"application/json"}}).then((e=>__awaiter(void 0,void 0,void 0,(function*(){try{return decode$1(yield e.text())}catch(e){return{}}}))))})),waiter=(e,t)=>new Promise((n=>{t(e),e<=0&&n();let i=e;const s=()=>{i>0?(i-=1,t(i),setTimeout(s,1e3)):n()};s()})),decode=()=>JSON.parse(atob(window.park||""));var PAGE_STYLES='* {\n font-smoothing: antialiased;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nhtml, body {\n width: 100%;\n margin: 0;\n}\n\nhtml {\n background-color: #2B2B2B;\n height: 100%;\n}\n\nbody {\n min-height: 90%;\n font-family: Arial, sans-serif;\n letter-spacing: 1.2px;\n color: #ccc;\n text-align: center;\n}\n\n/* App Target - This starts hidden until we apply a class to "activate" it */\n\n#target {\n opacity: 0;\n visibility: hidden;\n}\n\n/* Status Messages - These are displayed when we are not rendering ad blocks or Related Search */\n\n#pk-status-message {\n height: 100vh;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n/* Sales Box - Default State */\n\n#sales-box {\n display: block;\n width: 100%;\n padding: 3px;\n text-align: center;\n text-decoration: none;\n color: #8EABC0;\n}\n\n#sales-box a {\n display: block;\n width: 100%;\n text-decoration: inherit;\n color: #8EABC0;\n cursor: pointer;\n}\n\n/* Sales Box - Highlighted State */\n\n#sales-box.is-highlighted {\n position: relative;\n z-index: 1;\n background: #032438 linear-gradient(to top, #044368 0%, #000 100%);\n box-shadow: 0 0 15px 0 #000;\n border-bottom: 3px solid #262626;\n}\n\n#sales-box.is-highlighted a {\n line-height: 1.3;\n display: inline-block;\n font-size: 18px;\n color: #fff;\n text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5);\n background: none;\n}\n\n/* Ellipsis Loader */\n\n.pk-loader {\n display: inline-block;\n position: relative;\n width: 80px;\n height: 80px;\n}\n\n.pk-loader div {\n position: absolute;\n top: 33px;\n width: 13px;\n height: 13px;\n border-radius: 50%;\n background: #ccc;\n animation-timing-function: cubic-bezier(0, 1, 1, 0);\n}\n\n.pk-loader div:nth-child(1) {\n left: 8px;\n animation: pk-anim-1 0.6s infinite;\n}\n\n.pk-loader div:nth-child(2) {\n left: 8px;\n animation: pk-anim-2 0.6s infinite;\n}\n\n.pk-loader div:nth-child(3) {\n left: 32px;\n animation: pk-anim-2 0.6s infinite;\n}\n\n.pk-loader div:nth-child(4) {\n left: 56px;\n animation: pk-anim-1 0.6s infinite;\n animation-direction: reverse;\n}\n\n.pk-loader-text {\n position: fixed;\n font-size: 12px;\n right: 20px;\n bottom: 20px;\n font-weight: lighter;\n}\n\n/* Utilities */\n\n.pk-message-title {\n font-size: 2em;\n font-weight: bold;\n}\n\n.pk-page-ready {\n opacity: 1 !important;\n visibility: visible !important;\n}\n\n@media only screen and (max-width: 600px) {\n .hidden-xs {\n opacity: 0;\n visibility: hidden;\n }\n}\n\n/* Animation */\n\n@keyframes pk-anim-1 {\n 0% {\n transform: scale(0);\n }\n 100% {\n transform: scale(1);\n }\n}\n\n@keyframes pk-anim-2 {\n 0% {\n transform: translate(0, 0);\n }\n 100% {\n transform: translate(24px, 0);\n }\n}\n';const APP_TARGET="#target",MESSAGE_SELECTOR="#pk-status-message",PAGE_READY_CLASS="pk-page-ready",MESSAGE_TEMPLATE='
';class Renderer{constructor(e){this._domIsReady=!1,this.revealPage=()=>{this.domNode&&this.domNode.classList.add(PAGE_READY_CLASS)},this.injectMetaDescription=e=>{if(!e||0===e.length)return;window.document.title=e;const t=document.createElement("meta");t.setAttribute("name","description"),t.setAttribute("content",`See relevant content for ${e}`),document.getElementsByTagName("head")[0].appendChild(t)},this.domNode=document.querySelector(e)}get domIsReady(){return this._domIsReady}set domIsReady(e){this._domIsReady=e,e&&this.injectStyles(PAGE_STYLES)}message(e,t=""){if(this.injectHTML(MESSAGE_TEMPLATE),this.domNode){const t=this.domNode.querySelector(MESSAGE_SELECTOR);t&&(t.innerHTML=e)}t&&this.injectMetaDescription(t)}salesBanner(e){if(!e)return;const{href:t,position:n,message:i,theme:s,status:a}=e,o=document.createElement("div"),r=n||"",d="HIGHLIGHT"===s?"is-highlighted":"";o.innerHTML=t?`\n
\n ${i}\n
\n `:`\n
\n ${i}\n
\n `,"BOTTOM"===n?(o.style.marginTop="30px",document.body.appendChild(o)):document.body.prepend(o)}loading(e){let t="a few";e>0&&(t=`${e}`),this.message(`\n
\n
\n
\n
\n
\n
\n \n `)}adBlockMessage(){this.message("\n

Ad block detected

\n Please disable your ad blocker and reload the page.\n ")}errorParkingUnavailable(){this.message("\n

An Error Occurred

\n

Parking is currently unavailable. We'll be right back.

\n ")}errorParkingServicesDisabled(){this.message("\n

An Error Occurred

\n

Services for this domain name have been disabled.

\n ")}errorParkingNoSponsors(e){this.message(`\n
\n No sponsors\n
\n \n ${window.location.hostname} currently does not have any sponsors for you.\n \n `,e)}imprint(e){if(!e)return;const t=document.querySelector("#imprint-text");t&&(t.innerHTML=e.replace(/(?:\r\n|\r|\n)/g,"
"))}injectStyles(e){if(!e)return;const t=document.createElement("style");t.innerHTML=e.toString(),document.head.appendChild(t)}injectScript(e){if(!e)return;const t=document.createElement("script");t.type="text/javascript",t.src=e,document.body.appendChild(t)}injectJS(js){js&&0!==js.length&&eval(js)}injectHTML(e){this.domNode?(e&&(this.domNode.innerHTML=e),this.domIsReady=!0):(this.domIsReady=!1,console.error("An error occurred when trying to render this page. DOM node not found."))}prerender(e){this.injectMetaDescription(e.domain),this.injectHTML(e.html)}template(e){var t;this.domIsReady||this.prerender(e),this.injectStyles(e.stylesheet),this.imprint(e.imprint),this.salesBanner(e.salesBanner),this.injectJS(e.javascript),null===(t=e.scripts)||void 0===t||t.forEach((e=>{this.injectScript(e)}))}}const Render=new Renderer(APP_TARGET);var Type;!function(e){e[e.Failed=0]="Failed",e[e.Disabled=1]="Disabled",e[e.Redirect=2]="Redirect",e[e.Parking=3]="Parking",e[e.Sales=4]="Sales"}(Type||(Type={}));let State$2=class{get trackingType(){return this._trackingType}set trackingType(e){this._trackingType=e}get track(){return!!this.trackingType}};class Disabled extends State$2{constructor(){super(...arguments),this.type=Type.Disabled}static build(e,t){let n;switch(t===Blocking.BLOCKED&&(n="adblocker"),e.cannotPark){case"disabled_mr":case"disabled_rc":n=e.cannotPark}if(n){const t=new Disabled;return t.reason=n,t.domain=e.domainName,t}}get message(){switch(this.reason){case"adblocker":return"

Content blocked

Please turn off your ad blocker.";case"disabled_mr":return`

Invalid URL

Referral traffic for ${this.domain} does not meet requirements.`;default:return`

No sponsors

${this.domain} currently does not have any sponsors for you.`}}get trackingType(){switch(this.reason){case"adblocker":return"ad_blocked_message";case"disabled_mr":return"invalid_referral";case"disabled_rc":return"revenue_cap_reached";default:return"no_sponsors_message"}}toContext(){return{cannotPark:this.reason}}}class Failed extends State$2{constructor(){super(...arguments),this.type=Type.Failed}static cannotPark({cannotPark:e}){switch(e){case"disabled_b":case"prohibited_ua":case"disabled_fr":case"revenue_cap_reached":case"disabled_mr":case"disabled_rc":case"disabled_cp":case"invalid_domain":{const t=new Failed;return t.reason=e,t}}}static noSponsors({cannotLoadAds:e}){if(e){const e=new Failed;return e.reason="no_sponsors",e}}static fromError(e){const t=new Failed;return t.reason="js_error",t.error=e,t}get track(){return!!this.trackingType}get message(){switch(this.reason){case"disabled_fr":case"disabled_rc":case"no_sponsors":return`\n

No Sponsors

\n

${this.domain} currently does not have any sponsors for you.

`;case"disabled_mr":return`\n

Invalid URL

\n

Referral traffic for ${this.domain} does not meet requirements.

`;case"js_error":return"\n

An Error Occurred

\n

Parking is currently unavailable. We'll be right back.

\n ";default:return"\n

An Error Occurred

\n

Services for this domain name have been disabled.

\n "}}get trackingType(){switch(this.reason){case"disabled_rc":return"revenue_cap_reached";case"disabled_mr":return"invalid_referral";case"adblock":return"ad_blocked_message";case"no_sponsors":return"no_sponsors_message"}}get domain(){return window.location.hostname}toContext(){return{cannotPark:this.reason}}}function unpackPHPArrayObject(e,t){const n=e[t];if(n&&!Array.isArray(n))return n}class Parking extends State$2{constructor(){super(...arguments),this.type=Type.Parking}static build(e,t){const n=new Parking;n.domain=e.domainName,n.html=e.template,n.scripts=e.scripts||[],n.javascript=e.inlineJs,n.stylesheet=e.styles,n.imprint=e.imprintText;const i=unpackPHPArrayObject(e,"salesSettings"),s=(null==i?void 0:i.status)&&"NOT_FOR_SALE"!==(null==i?void 0:i.status);if(s){const{status:e,location:t,message:s,link:a,type:o}=i;n.salesBanner={message:s,href:a,position:t,theme:o,status:e}}return t.wantsToServeAds?n.trackingType="ctr":s&&window.location.pathname.startsWith("/listing")?n.trackingType="sales":n.trackingType="visit",n}toContext(){return{}}}class Sales extends State$2{constructor(){super(...arguments),this.type=Type.Sales}static build(e){const t=unpackPHPArrayObject(e,"salesSettings");if(!t)return;const{status:n}=t;return["NOT_FOR_SALE","EXTERNAL_MARKET","URL"].includes(n)?void 0:window.location.pathname.startsWith("/listing")?new Sales:void 0}toContext(){return{}}get trackingType(){return"sales"}init(e){window.context=e;const t=document.createElement("script");t.type="text/javascript",t.src=SALES_JS_URL,document.head.append(t)}}class Redirect extends State$2{constructor(){super(...arguments),this.type=Type.Redirect}static build(e,t,n){const i=unpackPHPArrayObject(e,"salesSettings"),{zeroClickDelay:s,skenzoRedirect:a,skenzoUrl:o,showInquiryForm:r,canZeroClick:d,cannotPark:c}=e;if(window.location.pathname.startsWith("/listing")&&["EXTERNAL_MARKET","URL"].includes(null==i?void 0:i.status)){if(null==i?void 0:i.external)return Redirect.toState(i.external,"sales");if(null==i?void 0:i.link)return Redirect.toState(i.link,"sales")}if(n.cannotLoadAds&&n.wantsToServeAds)return Redirect.toState(n.noAdsRedirectUrl,"no_ads_redirect");if(d&&(null==t?void 0:t.reason)){if(null==t?void 0:t.redirect)return Redirect.toState(t.redirect,"zc_redirect",s);if(a&&o)return Redirect.toState(o,"skenzo_redirect")}return(null==i?void 0:i.status)&&"NOT_FOR_SALE"!==(null==i?void 0:i.status)&&(n.cannotLoadAds||n.cannotLoadAds&&!d||r)?Redirect.toState(`${window.location.origin}/listing`):void 0}static toState(e,t,n=0){const i=new Redirect;return i.url=e,i.delay=n,i.trackingType=t,i}toContext(){return{}}}const browserState=()=>{var e,t,n,i,s;const{screen:{width:a,height:o},self:r,top:d,matchMedia:c,opener:l}=window,{documentElement:{clientWidth:h,clientHeight:u}}=document;let p;try{p=(new Date).getTimezoneOffset()/60*-1}catch(e){p=null}return{popup:!(!l||l===window),timezone_offset:p,user_preference:null===(e=null===Intl||void 0===Intl?void 0:Intl.DateTimeFormat())||void 0===e?void 0:e.resolvedOptions(),user_using_darkmode:Boolean(c&&c("(prefers-color-scheme: dark)").matches),user_supports_darkmode:Boolean(c),window_resolution:{width:null!=h?h:0,height:null!=u?u:0},screen_resolution:{width:null!=a?a:0,height:null!=o?o:0},frame:d===r?null:{innerWidth:null!==(t=null==r?void 0:r.innerWidth)&&void 0!==t?t:0,innerHeight:null!==(n=null==r?void 0:r.innerHeight)&&void 0!==n?n:0,outerWidth:null!==(i=null==r?void 0:r.outerWidth)&&void 0!==i?i:0,outerHeight:null!==(s=null==r?void 0:r.outerHeight)&&void 0!==s?s:0}}},TRACKING_URL="_tr",buildSignature=({callbacks:e,context:t},n)=>{var i,s,a,o;return Object.assign({ad_loaded_callback:null==e?void 0:e.adLoadedCallback,app_version:version,caf_client_id:null===(i=null==t?void 0:t.pageOptions)||void 0===i?void 0:i.pubId,caf_timed_out:null==e?void 0:e.cafTimedOut,caf_loaded_ms:null==e?void 0:e.cafLoadedMs,channel:null===(s=null==t?void 0:t.pageOptions)||void 0===s?void 0:s.channel,desktop:t.desktop,terms:null===(a=null==t?void 0:t.pageOptions)||void 0===a?void 0:a.terms,fd_server_datetime:t.fd_server_datetime,fd_server:t.fd_server,flex_rule:t.flex_rule,host:t.host,ip:t.ip,ivt:null===(o=null==t?void 0:t.pageOptions)||void 0===o?void 0:o.ivt,js_error:t.js_error,mobile:t.mobile,no_ads_redirect:t.noAdsRedirect,page_headers:t.page_headers,page_loaded_callback:null==e?void 0:e.pageLoadedCallback,page_method:t.page_method,page_request:t.page_request,page_time:t.page_time,page_url:t.page_url,reportable_channel:t.reportableChannel,reportable_style_id:t.reportableStyleId,tablet:t.tablet,template_id:t.templateId,type:n,user_has_ad_blocker:t.user_has_ad_blocker,uuid:t.uuid,zeroclick:t.zeroClick},browserState())},trackVisit=({callbacks:e,context:t},n,i="")=>{const s=`${i}/${TRACKING_URL}`,a=i?"include":"same-origin",o=buildSignature({callbacks:e,context:t},n);let r={};"click"===n&&(r={click:"true",session:t.uuid,nc:Date.now().toString()}),fetch(s,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},credentials:a,body:JSON.stringify(Object.assign({signature:encode(o)},r))})};var State$1;!function(){if(!window.CustomEvent){function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};const n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}e.prototype=window.Event.prototype,window.CustomEvent=e}}(),function(e){e[e.Pending=0]="Pending",e[e.Loaded=1]="Loaded",e[e.Failed=2]="Failed"}(State$1||(State$1={}));class Provider{constructor(e){this.timeoutSeconds=5,this.handlePixelEvent=e=>{switch(this.state){case State$1.Failed:break;case State$1.Pending:setTimeout((()=>this.handlePixelEvent(e)),100);break;case State$1.Loaded:this.onPixelEvent(e)}},this.watch=()=>{switch(this.state){case State$1.Loaded:case State$1.Failed:break;case State$1.Pending:this.isLoaded()?this.state=State$1.Loaded:this.isTimedOut()?this.state=State$1.Failed:setTimeout(this.watch,50)}},this.config=e,this.identifier&&this.identifier.length>0?(this.state=State$1.Pending,this.timeoutAt=new Date,this.timeoutAt.setSeconds(this.timeoutAt.getSeconds()+this.timeoutAfter()),this.injectPixel()):this.state=State$1.Failed}get identifier(){var e;return null===(e=this.config)||void 0===e?void 0:e.key}get pixelEvents(){var e;return null===(e=this.config)||void 0===e?void 0:e.pixel_events}injectPixel(){this.injectedAt||(this.injectedAt=new Date,this.inject(),this.watch())}inject(){const e=document.createElement("script");e.text=this.script,document.head.appendChild(e)}isTimedOut(){return+new Date>=+this.timeoutAt}timeoutAfter(){return this.timeoutSeconds}selectPixelEvents(e){if(Array.isArray(this.pixelEvents))return this.pixelEvents.filter((t=>"term-view"===t.trigger&&"visit"===e||(!(!["term-click","ad-view"].includes(t.trigger)||"ctr"!==e)||"ad-click"===t.trigger&&"click"===e)))}}class Facebook extends Provider{get script(){return`!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js');fbq('init', '${this.identifier}');`}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&(e.custom?window.fbq("trackCustom",e.event):window.fbq("track",e.event))}))}isLoaded(){return!!window.fbq}}class Outbrain extends Provider{get script(){return`!function(_window, _document) {var OB_ADV_ID = '${this.identifier}';if (_window.obApi) {var toArray = function(object) {return Object.prototype.toString.call(object) === '[object Array]' ? object : [object];};_window.obApi.marketerId = toArray(_window.obApi.marketerId).concat(toArray(OB_ADV_ID));return;}var api = _window.obApi = function() {api.dispatch ? api.dispatch.apply(api, arguments) : api.queue.push(arguments);};api.version = '1.1';api.loaded = true;api.marketerId = OB_ADV_ID;api.queue = [];var tag = _document.createElement('script');tag.async = true;tag.src = '//amplify.outbrain.com/cp/obtp.js';tag.type = 'text/javascript';var script = _document.getElementsByTagName('script')[0];script.parentNode.insertBefore(tag, script);}(window, document);`}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&window.obApi("track",e.event)}))}isLoaded(){return!!window.obApi}}class Revcontent extends Provider{get script(){return""}inject(){const e=document.createElement("script");e.src="https://assets.revcontent.com/master/rev.js",document.head.appendChild(e)}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&window.rev("event",e.event)}))}isLoaded(){return!!window.rev}}class Taboola extends Provider{get script(){return"window._tfa = window._tfa || [];!function (t, f, a, x) {if (!document.getElementById(x)) {t.async = 1;t.src = a;t.id=x;f.parentNode.insertBefore(t, f);}}(document.createElement('script'),document.getElementsByTagName('script')[0],'//cdn.taboola.com/libtrc/unip/1451879/tfa.js','tb_tfa_script');"}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&window._tfa.push({notify:"event",name:e.event,id:e.pixel_id})}))}isLoaded(){return Array.isArray(window._tfa)}}class Tiktok extends Provider{constructor(e,t){super(e),this.useAltTikTokEventsForAdsPlatformUser=t}get script(){return`!function (w, d, t) {w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i{e&&window.ttq.instance(this.identifier).track(e.event)}))}isLoaded(){return!!window.ttq}}const ADS_PARAM$1="?caf",MESSAGE_PREFIX="FSXDC,.aCS:",ALLOWED_ORIGINS=["https://www.google.com","https://www.adsensecustomsearchads.com","https://syndicatedsearch.goog","https://googleadservices.com"];class Pixels{static build(e){const t=unpackPHPArrayObject(e,"pixel_tracking_data");if(t)return t.useAltTikTokEventsForAdsPlatformUser=e.is_ads,new Pixels(t)}constructor(e){this.onPixelEvent=e=>{const{detail:{type:t}}=e;switch(t){case"visit":case"ctr":case"click":this.providers.forEach((e=>e.handlePixelEvent(t)))}},this.providers=[new Facebook(e.facebook),new Tiktok(e.tiktok,e.useAltTikTokEventsForAdsPlatformUser),new Taboola(e.taboola),new Revcontent(e.revcontent),new Outbrain(e.outbrain)]}listenForEvents(){document.addEventListener("pixel",(e=>{this.onPixelEvent(e)}));window.onmessage=e=>{const{origin:t,data:n}=e;ALLOWED_ORIGINS.includes(t)&&(null==n?void 0:n.startsWith(MESSAGE_PREFIX))&&window.location.search.startsWith(ADS_PARAM$1)&&document.dispatchEvent(new CustomEvent("pixel",{detail:{type:"click"}}))}}dispatchEvent(e){document.dispatchEvent(new CustomEvent("pixel",{detail:e}))}}var State;!function(e){e[e.Pending=0]="Pending",e[e.Loaded=1]="Loaded",e[e.Failure=2]="Failure",e[e.TimedOut=3]="TimedOut",e[e.Errored=4]="Errored"}(State||(State={}));const CAF_SCRIPT_SRC=`https://www.google.com/adsense/domains/caf.js?${GOOGLE_MV3_URL_PARAMS}`,TIMEOUT_SCRIPTS=Number(GOOGLE_CAF_TIMEOUT_SCRIPTS),TIMEOUT_CALLBACKS=Number(GOOGLE_CAF_TIMEOUT_CALLBACKS);class StateMachine{constructor(){this.state=State.Pending}transitionTo(e){this.state=e}transitionFromPendingTo(e){this.done||(this.state=e)}get loaded(){return this.state===State.Loaded}get timedOut(){return this.state===State.TimedOut}get done(){return this.state!==State.Pending}}class Ads{constructor(e,t){this.state={script:new StateMachine,blocks:new StateMachine},this.blocksLoaded=[],this.injectScriptTags=()=>__awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=document.createElement("script");t.type="text/javascript",t.src=CAF_SCRIPT_SRC,t.addEventListener("load",(()=>e(!0))),t.addEventListener("error",(()=>e(!1))),document.body.appendChild(t),TIMEOUT_SCRIPTS>0&&setTimeout((()=>e(!1)),TIMEOUT_SCRIPTS)}))})),this.onPageLoaded=(e,t)=>{if(this.pageLoaded={requestAccepted:e,status:t},this.state.script.done)return;const n=null==t?void 0:t.error_code;n?(this.state.script.transitionTo(State.Failure),this.failureReason=`caf_pageloaderror_${n}`):this.state.script.transitionTo(State.Loaded)},this.onBlockLoaded=(e,t,n,i)=>{this.blocksLoaded.push({containerName:e,adsLoaded:t,isExperimentVariant:n,callbackOptions:i}),this.state.blocks.done||(t?this.state.blocks.transitionTo(State.Loaded):this.blocksLoaded.length>=this.blocks.length&&(this.state.blocks.transitionTo(State.Failure),this.failureReason=`caf_adloadfail_${e}`))},this.onTimeout=()=>{this.state.script.transitionFromPendingTo(State.TimedOut),this.state.blocks.transitionFromPendingTo(State.TimedOut)},this.blocks=e,this.options=t}get loaded(){return this.state.script.loaded&&!this.blocksLoaded.map((e=>e.adsLoaded)).includes(!1)}waitForBlocks(){return __awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=()=>{const n=performance.now();if(this.state.blocks.done)return this.cafLoadTime=Math.round(n-this.cafStartTime),void e();const i=this.blocksLoaded.map((e=>e.adsLoaded));i.includes(!1)||i.length>=this.blocks.length?e():setTimeout(t,50)};t()}))}))}inject(){return __awaiter(this,void 0,void 0,(function*(){try{const e=yield this.injectScriptTags();return this.cafStartTime=performance.now(),e&&void 0!==window.google?(new window.google.ads.domains.Caf(Object.assign(Object.assign({},this.options),{pageLoadedCallback:this.onPageLoaded,adLoadedCallback:this.onBlockLoaded}),...this.blocks),TIMEOUT_CALLBACKS>0&&setTimeout(this.onTimeout,TIMEOUT_CALLBACKS),yield new Promise((e=>{const t=()=>{this.state.script.done?e():setTimeout(t,10)};t()}))):void this.state.script.transitionTo(State.Failure)}catch(e){return void(this.error=e.toString())}}))}toCallbacks(){return{adLoadedCallback:this.blocksLoaded.slice(-1)[0],pageLoadedCallback:this.pageLoaded,cafTimedOut:this.state.script.timedOut||this.state.blocks.timedOut,cafLoadedMs:this.cafLoadTime,googleAdsFailure:!!this.failureReason}}toContext(){const e={cafScriptWasLoaded:this.state.script.loaded,cafScriptLoadTime:this.cafLoadTime,callbacks:this.toCallbacks};return this.error&&(e.js_error={message:this.error}),this.state.script.loaded||(e.zeroclick={reason:"googleAdsFailure"}),e}mockFailedState(){this.state.blocks.transitionTo(State.Failure),this.state.script.transitionTo(State.Failure)}}class TagManager{constructor(e){this.injected=!1,this.identifier=e}inject(){if(this.injected)return;if(!this.identifier)return;if("TEST"===this.identifier)return;const e=document.createElement("script");e.setAttribute("src",`https://www.googletagmanager.com/gtag/js?id=${this.identifier}`),document.head.appendChild(e),this.track(),this.injected=!0}track(){this.push("js",new Date),this.push("config",this.identifier)}push(e,t){window.dataLayer||(window.dataLayer=[]),window.dataLayer.push(arguments)}}const ADS_PARAM="caf",ADS_TRACKING_URL="_tr",BLOCKS_TYPE="ads",BLOCKS_CONTAINER="rs",KNOWN_CAF_PARAMS=["caf","query","afdToken","pcsa","nb","nm","nx","ny","is","clkt"];class Google{static build({pageOptions:e,preferredLanguage:t,blocks:n,googleAnalytics:i},s,a,o){let r={};e&&(r=Object.assign({},e),r.hl||(r.hl=t));let d=null==e?void 0:e.resultsPageBaseUrl;d||(d=window.location.origin);return new Google(s.uuid,n,r,i,d,o)}constructor(e,t,n,i,s,a){this._blocks=t,this._pageOptions=n,this.uuid=e,this._baseURL=new URL(s),this._signature=a,this.ads=new Ads(this.blocks,this.pageOptions),this.tagManager=new TagManager(i)}injectTagManager(){this.tagManager.inject()}injectAds(){return __awaiter(this,void 0,void 0,(function*(){yield this.ads.inject()}))}waitForBlocks(){return __awaiter(this,void 0,void 0,(function*(){return this.ads.waitForBlocks()}))}get blocks(){return(this._blocks||[]).filter((e=>this.wantsToServeAds?e.type===BLOCKS_TYPE:e.container===BLOCKS_CONTAINER)).map((e=>{const t=this.baseURL;new URLSearchParams(window.location.search).forEach(((e,n)=>{t.searchParams.has(n)||t.searchParams.append(n,e)}));const n=Object.assign({},e);if(n.resultsPageBaseUrl=t.toString(),this.wantsToServeAds){const e=new URLSearchParams;e.append("click","true"),e.append("session",this.uuid);const t=Object.assign({},this._signature);delete t.ad_loaded_callback,delete t.caf_loaded_ms,delete t.caf_timed_out,delete t.flex_rule,delete t.frame,delete t.js_error,delete t.no_ads_redirect,delete t.page_headers,delete t.page_request,delete t.page_loaded_callback,delete t.popup,delete t.screen_resolution,delete t.user_has_ad_blocker,delete t.user_preference,delete t.user_supports_darkmode,delete t.user_using_darkmode,delete t.zeroclick,e.append("signature",encode(t)),n.clicktrackUrl=`${TRACKING_DOMAIN}${ADS_TRACKING_URL}?${e.toString()}`}return n}))}get baseURL(){const e=new URL(this._baseURL.origin);return e.searchParams.append(ADS_PARAM,"1"),this._baseURL.searchParams.forEach(((t,n)=>{e.searchParams.append(n,t)})),e}get pageOptions(){const e=Object.assign({},this._pageOptions);return Object.keys(this._pageOptions).forEach((t=>{t.startsWith("bodis")&&delete e[t]})),e}get cannotLoadAds(){return!this.ads.loaded}get wantsToServeAds(){return new URLSearchParams(window.location.search).has(ADS_PARAM)}get adsMode(){return this.ads.loaded&&this.wantsToServeAds}get adsReady(){return this.wantsToServeAds&&!this.cannotLoadAds}get noAdsRedirectUrl(){const e=new URLSearchParams(window.location.search);return KNOWN_CAF_PARAMS.forEach((t=>e.delete(t))),`${window.location.origin}?${e.toString()}`}get callbacks(){return this.ads.toCallbacks()}toContext(){return Object.assign({blocks:this.blocks,pageOptions:this.pageOptions},this.ads.toContext())}}class CookieConsentManager{constructor(){this.injectScriptTag=()=>__awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=document.createElement("script");t.setAttribute("src",COOKIE_CONSENT_JS_URL),t.addEventListener("load",(()=>this.awaitConsent(e))),t.addEventListener("error",(()=>e(!1))),document.head.appendChild(t)}))}))}inject(){return __awaiter(this,void 0,void 0,(function*(){this.injected||!COOKIE_CONSENT_JS_URL||isLocal()||(this.injected=yield this.injectScriptTag())}))}awaitConsent(e){let t=0;const n=setInterval((()=>{t+=1,20===t&&(clearInterval(n),e(!0)),void 0!==window.__tcfapi&&(window.addEventListener("ConsentActivity",(t=>{const{detail:{status:n}}=t;n&&e(!0)})),clearInterval(n))}),50)}}class App{main(){var e,t;return __awaiter(this,void 0,void 0,(function*(){if(this.parkResponse=decode(),this.findDomainResponse=yield getFindDomain(),!this.findDomainResponse)throw new Error("Domain failed to load.");this.pixels=Pixels.build(this.findDomainResponse),null===(e=this.pixels)||void 0===e||e.listenForEvents(),this.adblock=new Adblock,yield this.adblock.inject(),this.google=Google.build(this.findDomainResponse,this.parkResponse,this.adblock,buildSignature({context:this.context,callbacks:null===(t=this.google)||void 0===t?void 0:t.callbacks},"click")),this.google.injectTagManager();const n=Parking.build(this.findDomainResponse,this.google);Render.prerender(n),this.cookieConsentManager=new CookieConsentManager,yield this.cookieConsentManager.inject();let i=Failed.cannotPark(this.findDomainResponse);if(i)return void(yield this.transitionToFailed(i));yield this.google.injectAds();let s=Disabled.build(this.findDomainResponse,this.adblock.state);if(s)return void(yield this.transitionToDisabled(s));const a=this.adblock.hasAdblocker();a&&this.adblock.handleAdblocked();const o=Sales.build(this.findDomainResponse);if(o)return void(yield this.transitionToSales(o));this.eligibleForZeroClick&&(this.zeroClickResponse=yield getZeroClick(this.context));const r=Redirect.build(this.findDomainResponse,this.zeroClickResponse,this.google);if(r)yield this.transitionToRedirect(r);else{if(a)return s=Disabled.build(this.findDomainResponse,this.adblock.state),void(yield this.transitionToDisabled(s));i=Failed.noSponsors(this.google),i?yield this.transitionToFailed(i):yield this.transitionToParking(n)}}))}transitionToParking(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.template(e),Render.revealPage(),yield this.google.waitForBlocks(),yield this.track()}))}transitionToRedirect(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e;const t=this.track();Render.revealPage(),yield waiter(e.delay,(e=>Render.loading(e))),yield t,window.location.href=e.url,log(`➡ Redirecting [${e.url}]`)}))}transitionToFailed(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.message(e.message),Render.revealPage(),yield this.track()}))}transitionToSales(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,e.init(this.context),yield this.track()}))}transitionToDisabled(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.message(e.message),Render.revealPage(),yield this.track()}))}track(){var e;return __awaiter(this,void 0,void 0,(function*(){if(!this.state.track)return Promise.resolve();try{const t=this.state.trackingType;return null===(e=this.pixels)||void 0===e||e.dispatchEvent({type:t}),trackVisit({context:this.context,callbacks:this.google.callbacks},t)}catch(e){return}}))}get eligibleForZeroClick(){const{cannotPark:e,canZeroClick:t,zeroClick:n}=this.findDomainResponse,{cannotLoadAds:i,wantsToServeAds:s}=this.google;return this.adblock.state!==Blocking.BLOCKED&&(!!t&&(!!e||(!(!i||s)||!!(null==n?void 0:n.reason))))}get context(){var e,t,n,i;const s=this.findDomainResponse,a=this.parkResponse,o=null===(e=this.state)||void 0===e?void 0:e.toContext(),r=null===(t=this.adblock)||void 0===t?void 0:t.toContext(),d=null===(n=this.google)||void 0===n?void 0:n.toContext(),c=browserState(),l=Object.assign(Object.assign({},null===(i=this.findDomainResponse)||void 0===i?void 0:i.zeroClick),this.zeroClickResponse);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({app_version:APP_VERSION},s),a),r),d),o),c),{zeroClick:l})}init(){return __awaiter(this,void 0,void 0,(function*(){try{window.__parkour=this,yield this.main()}catch(e){console.error("app",e);const t=Failed.fromError(e);this.state=t,Render.message(t.message),Render.revealPage()}}))}}(new App).init(),exports.App=App}));