עסקים ובעלי מקצוע מומלצים בצפון: חיפה, קריות, נשר, טירת הכרמל, עכו ועוד

√ גני ילדים, מעונות, משפחתונים בקריות

  • הבית של פיסטוק
  • משפחתון שרית

בסיווג גני ילדים, מעונות, משפחתונים מומלצים בקריות תוכלו למצוא גן ילדים בצפון, גן ילדים בקריות, פעוטון בקריות, משפחתון בקריות, מעונות קריות, גן ילדים, מעונות יום, מעון, גני ילדים, גני ילדים פרטיים, גנים פרטיים בקריות, משפחתונים, משפחתון, משפחתונים, פעוטון, פעוטונים, גן ילדים פרטי… חברות מומלצות ונותני שירות מומלצים באזורים: קריות, חיפה, צפון, עכו, נשר, קרית אתא, קרית ביאליק, קרית מוצקין, קרית חיים וגם קרית ים.

****
גנון 2000 גני ילדים בקריות 04-8733996 אהרון 16 קרית מוצקין
מעון נעמ"ת – זיידן גני ילדים בקריות 04-8761566 קדיש לוז 10 קרית מוצקין
מעון נעמ"ת – נוה גנים גני ילדים בקריות 04-8755270 דרך עכו 257 קרית מוצקין
גן יהודית גני ילדים בקריות 04-8735058 הרב עוזיאל 3 קרית מוצקין
מעון נעמ"ת – שטייר גני ילדים בקריות 04-8737860 גרושקביץ 15 קרית מוצקין
מעון נעמ"ת – שיפמן גני ילדים בקריות 04-8757917 קדיש לוז 18 קרית מוצקין
פלא – גן גני ילדים בקריות 04-8759339 עדולם 27 קרית ים
גן רחל גני ילדים בקריות 04-8777987 יהודה הלוי 16/1 קרית ים
מעון נעמ"ת – אדלשטיין גני ילדים בקריות 04-8758548 בר יהודה 1 קרית ים
גן נינט 04-8708121 אהבת ציון 11 קרית ים
גן כיף לי גני ילדים ומעונות בקריות 050-4733908 י"ל פרץ 16 קרית ים
קיבוץ שמיר חינוך גני ילדים ומעונות בקריות 04-6947262 שמיר
קטנטנים – תינוקיה 050-6652230 י"ל פרץ 7/2 קרית ים
אמונה – רבקה גני ילדים בקריות 04-8701834 מורדי הגטאות 8 קרית מוצקין
מעון גונן לילד-מ.ג.ל גני ילדים בקריות 04-8717171 הילדים 17 קרית מוצקין
פעוטון חן גני ילדים בקריות 04-8701876 משה שרת קרית חיים
כמו בקיבוץ גני ילדים בקריות 04-8732143 רנ"ס 28 קרית מוצקין
בית תינוקות – בראשית גני ילדים בקריות 04-8706025 הרב הרצוג 4 א קרית מוצקין
גן נועה גני ילדים בקריות 04-8735729 יוספטל 27 קרית מוצקין
קיבוצון געש גני ילדים ומעונות בקריות 09-9521170 געש
פעוטון גן לי-אור גני ילדים ומעונות בקריות 04-8730715 טשרניחובסקי שאול 15 קרית ים
גן תורני מדעי גני ילדים בקריות 050-4155575 שפירא 6 קרית ים
מעון נעמ"ת – ז`בוטינסקי גני ילדים בקריות 04-8701542 י"ל פרץ 15 קרית ים
המשפחתון ויצ"ו 04-8750285 אלי כהן 10 קרית ים
גן עולם הילדים גני ילדים ומעונות בקריות 04-8731384 ברזילי 11 קרית ים
גן גוזל גני ילדים בקריות 052-3731338 קפלן 6 קרית ים
גן ריקי גני ילדים ומעונות בקריות 04-8420226 הנוטר 32 קרית חיים
משפחתון של שרית גני ילדים ומעונות בקריות 04-8734444 בוסל יוסף 62 קרית חיים
מעון נעמ"ת – אייזנשטיין גני ילדים ומעונות בקריות 04-8413300 אהרונוביץ יוסף 10 קרית חיים
מירב ואסתר גני ילדים בקריות 04-8735006 שד' הרא"ה 17 קרית חיים
איגום – שיטון גני ילדים בקריות 04-8777340 הראשונים 41 קרית חיים
גן לי טף 04-8725463 הגדוד העברי 34 קרית חיים
גן אפרוחים 04-8494063 השקד 20 קרית חיים
גן במבי גני ילדים ומעונות בקריות 04-8418278 הפלוגות 25 קרית חיים
גן הפרחים גני ילדים בקריות 04-8735799 חפצי בה 51 קרית חיים
איגום – שיטון גני ילדים בקריות 04-8723826 אלכסנדר זייד 33 קרית חיים
גן תורני מדעי גני ילדים בקריות 077-9101582 הארזים 8 קרית חיים
פעוטון אילנה 04-8403803 קרית חיים
במבי בקריה גני ילדים ומעונות בקריות 04-8400724 הראשונים 31 קרית חיים
חן לי גני ילדים בקריות 052-4089361 קרפל 25 קרית חיים
חלומוטף גני ילדים בקריות 04-8416870 אלכסנדר זייד 94 קרית חיים
הגן הורוד בע"מ גני ילדים בקריות 04-8493464 חומה ומגדל 39 מזרח קרית חיים
גני אורלי גני ילדים ומעונות בקריות 04-8702012 עשת אביגדור 71 קרית חיים
גן יפה רביד גני ילדים בקריות 04-8428444 ליויק 24 קרית חיים
הבית של פיסטוק 04-8721882 השר שיטרית 8 קרית חיים
הגן של מורן גני ילדים בקריות 04-8491397 ששת הימים 24 קרית חיים
הגן של ברני גני ילדים ומעונות בקריות 04-8413874 חומה ומגדל 27 קרית חיים
צהרון תות גני ילדים ומעונות בקריות 050-7484004 חומה ומגדל 28 קרית חיים
פעוטון אורלי גני ילדים בקריות 04-8706417 הארזים 95 קרית חיים
פעוטון טיף וטף גני ילדים ומעונות בקריות 04-8721965 שבטי ישראל 55 קרית חיים
צהרון ספורטלנד גני ילדים בקריות 04-8708133 הקיבוצים 60 קרית חיים
המשפחתון של דלית גני ילדים ומעונות בקריות 04-8492564 השר שיטרית 20 קרית חיים
צהרון בבית 052-2618877 אלכסנדר זייד 27 קרית חיים
גני חב"ד-ויסגלס יצחק גני ילדים ומעונות בקריות 04-8452263 סמ' יאיר 2 קרית אתא
ויצ"ו הסתדרות עולמית 04-8442060 בן עמי 13 קרית אתא
גן תורני מדעי גני ילדים ומעונות בקריות 077-5270160 יצחק שדה 36 קרית אתא
גן חב"ד 04-8451363 שד' גיורא יוספטל 7 קרית אתא
גן הציונות גני ילדים ומעונות בקריות 04-8454944 שד' הציונות 36 קרית אתא
גן דינה גני ילדים ומעונות בקריות 04-8448366 יעקב כהן 20 קרית אתא
"טל השחר" 04-8435555 בורוכוב 1 קרית אתא
גן אילנה גני ילדים ומעונות בקריות 04-8482277 ואן גוך 46 קרית אתא
קידס קלאב 04-8444323 זבולון 14 קרית אתא
איגום – אגדה גני ילדים ומעונות בקריות 04-8438837 סמ' ירמיהו 11 קרית אתא
גן שושן 04-8455524 יצחק בן צבי 64 קרית בנימין, קרית אתא
מעון מרגלית גני ילדים ומעונות בקריות 04-8448838 שד' הציונות 22 קרית אתא
גן דבורה 04-8457439 אליעזר בן יהודה 26 קרית אתא
הקטנטנים של מאירי גני ילדים ומעונות בקריות 04-8440035 חנקין 26 קרית אתא
מעון מרגלית 04-8455965 יצחק שדה 34 קרית אתא
מעון מרגלית גני ילדים ומעונות בקריות 04-8435619 חנקין 14 קרית אתא
פעוטון לילך 04-8443263 יהודה הנשיא 24 קרית אתא
משפחתון האפרוחים גני ילדים ומעונות בקריות 04-8438405 אבן גבירול 11 קרית אתא
צהרון "חוויה" 04-8481275 האורן 73 קרית אתא
גחליליות 050-5802610 אסף שמחוני 22 קרית אתא
"גן השומר" רונית שמעון גני ילדים ומעונות בקריות 04-8441171 השומר 9 קרית אתא
מעון נעמ"ת – וולדנברג 04-8456433 משה הס 19 קרית אתא
פעוטון ניצנים גני ילדים ומעונות בקריות 04-8445192 הרצל 22 קרית אתא
פעוטון גנית 04-8447884 הרצל 64 קרית אתא
פעוטון וצהרון יקניטון גני ילדים ומעונות בקריות 04-8480251 מארק שאגל 71 גבעת טל קרית אתא
המכללה לגיל הרך גני ילדים ומעונות בקריות 04-8490086 שרת משה 75 ק' חיים מזרחית קרית חיים
גן רותי 04-8724597 שרת משה 52 קרית חיים
גן מלי 04-8704884 הגפן 39 קרית ביאליק
שבלולים גני ילדים ומעונות בקריות 04-8708276 הדקלים 5 א קרית ביאליק
פעוטון "אהבה" גני ילדים ומעונות בקריות 04-8735521 קרן היסוד 17 א קרית ביאליק
גן-אילון + צהרון קרית ביאליק גני ילדים ומעונות בקריות 04-8753753, 04-8482526 פלמ"ח 3 קרית ביאליק
גן האוניברסיטה הקטנה 04-8706429 סולד הנרייטה 30 קרית ביאליק
גן המייסדים גני ילדים ומעונות בקריות 04-8743668 המייסדים 48 קרית ביאליק
גן ורדה 04-8765949 רחל 7 קרית ביאליק
גן עדנה גני ילדים ומעונות בקריות 04-8705730 דגניה 2 קרית ביאליק
ילדודס גני ילדים ומעונות בקריות 04-8715715 דגניה 1 קרית ביאליק
הגן שלנו 04-8731637 הגפן 1 קרית ביאליק
פעוטונית – שושן 04-8491156 הגנה 4/4 קרית ביאליק
גן פשוש 04-8768887 קרן היסוד 114 קרית ביאליק
גן מעון "גוץ לי" גני ילדים ומעונות בקריות 04-8745474 מנשה 10 קרית ביאליק
חינוך אידיאלי גני ילדים ומעונות בקריות 04-8405253 הגליל 26 קרית ביאליק
חינוך איכותי בקיבוץ גזר 08-9270744 גזר
קטנטנים גני ילדים ומעונות בקריות 04-8779222 זבולון 12 קרית ביאליק
טיפטיפון 04-8772697 גוש חלב 14 קרית ביאליק
גן חדוה גני ילדים ומעונות בקריות 04-8766995 נפתלי 24/3 קרית ביאליק
כוכב נולד גני ילדים ומעונות בקריות 04-8715471 קק"ל 30 קרית ביאליק
נוריות – צהרון גני ילדים ומעונות בקריות 04-8772054 דן 2 קרית ביאליק
חלומות גני ילדים ומעונות בקריות 04-8762462 מרכז מסחרי קרית ביאליק
מעון נעמ"ת – ק. שמריהו 04-8769447 פלמ"ח 51 קרית ביאליק
מעון קט גני ילדים ומעונות בקריות 04-8774468 הרקפות 17 צור שלום, קרית ביאליק
מעון גן גורים 04-8715489 הנרקיסים 14 קרית ביאליק
הגן הקסום גני ילדים ומעונות בקריות 04-8733676 ורד 1 קרית ביאליק
גן חלומות 04-8455448 אליעזר בן יהודה 15 קרית אתא
****

בסיווג זה תמצאו: גני ילדים בקריות, מעונות בקריות, משפחתונים בקריות ובנוסף: גנים לילדים בקריות, מעונות בקריות, פעוטונים בקריות, משפחתונים בקריות, גן ילדים בקריות, גני ילדים בקריות, משפחתון בקריות, צהרון בקריות, פעוטון בקרית מוצקין, צהרון בקרית ים, גן ילדים בקרית אתא, גני ילדים בקרית חיים, פעוטונים בקרית ביאליק ועוד…, בצפון, באזור צפון, בקריות, קריות, אמינות, מומלצים, מומלצות, חוות דעת, מומלץ, אמינים, זולים, מחירים נוחים, השוואת מחירים, מקצועיים, קרית אתא, קרית ביאליק, קרית מוצקין, קרית ים, עכו, נשר, קרית חיים, קרית שמואל.
***

המשפחתון של שרי-קרית חיים‏ – ‪facebook.com‬‏
מודעהwww.facebook.com/pages
משפחתון וגן הילדים שלי (גילאי 0-3) מקום שמגיעים אליו כל בוקר עם חיוך

רישום גני ילדים ובתי ספר‏ – ‪shared-parenting.co.il‬‏
מודעהwww.shared-parenting.co.il/
לשנת הלימודים התשע"ז. כל הפרטים לקבלת הרישום לשני ההורים .כנסו כאן!
כל המיידע ממיטיב המומחים · הורות משותפת = טובת הילד · עמותה ללא מטרות רווח

קבלת מידע הנוגע לילד
מחשבון מזונות
קבלת מידע בנוגע לילד
משמורת משותפת

כל המידע על הרשמה למעונות‏ – ‪wizo.org.il‬‏
מודעהwww.wizo.org.il/
הרשמה למעונות היום של ויצו מעונות איכותיים עם צוות עובדים נהדר

תוצאות חיפוש

גני ילדים, מעונות, משפחתונים בקריות – קריות באינטרנט

www.krayot.com/business/index.php?cat=81

כל מה שרציתם לדעת על גני ילדים, מעונות, משפחתונים בקריות באתר קריות באינטרנט. רשימת חברות מומלצות ועסקים מומלצים בצפון. גני ילדים, מעונות, משפחתונים בקריות גם בתמונות.

גני ילדים, משפחתון, מעונות בחיפה – דפי זהב

www.d.co.il › גני ילדים, משפחתון, מעונות › אזור חיפה והקריות

מחפשים גן ילדים בחיפה? zap דפי זהב מציגים רשימה של מעונות יום ומשפחתונים בחיפה. היכנס לאתר zap דפי זהב ומצא מאמרים מקצועיים, חוות דעת והמלצות שיסייעו לכם בבחירת גני …

גני ילדים בקריית מוצקין, מעונות יום ומשפחתונים בקריית מוצקין – zap …

www.d.co.il › גני ילדים, משפחתון, מעונות › אזור חיפה והקריות

מחפשים גן ילדים בקריית מוצקין? zap דפי זהב מציגים רשימה של מעונות יום ומשפחתונים בקרייתמוצקין. היכנס לאתר zap דפי … גני ילדים, משפחתון, מעונות בקריית מוצקין. סוג שירות ?

גני ילדים בקריות ביקורות והמלצות גני ילדים

www.gan4u.co.il/business?Area=8

13 בינו׳ 2014 – בנוסף תוכלו לקרוא את כל הפרטים המלאים אודות הגנים בקריות ולרר פרטים כגון שעות פעילות וכמות מטפלות. גן · מעון · משפחתון · פעוטון · צהרון …

גני ילדים, מעונות, משפחתונים בקריות • מומלצים 24/7 √√√

haifakrayot.com › מומלצים › עסקים מומלצים בקריות

בסיווג גני ילדים, מעונות, משפחתונים מומלצים בקריות תוכלו למצוא גן ילדים בצפון, גן ילדים בקריות,פעוטון בקריות, משפחתון בקריות, מעונות קריות, גן ילדים, מעונות.

אינדקס יהלום בקריות – כל העסקים בקריות בקליק – גני ילדים בקריות

www.yahalom-krayot.biz › סיווג עסקים בקריות באות ג'

מעון גונן לילד-מ.ג.ל, גני ילדים בקריות, 04-8717171, הילדים 17 קרית מוצקין. פעוטון חן, גני ילדים בקריות, 04-8701876, משה שרת קרית חיים. כמו בקיבוץ, גני ילדים בקריות, 04- …

באליגן: גני ילדים, המלצות, מעונות, משפחתונים, צהרונים, מטפלות

www.baligan.co.il/

בבאליגן תוכלו למצוא המלצות על גני ילדים, המלצות על מעונות, משפחתונים וצהרונים מומלצים, … זוהר ענתות 1, חיפה, ישראל 04-8337984 3 הורים itamargolin sunday_gsn yafit79 …

גני ילדים בקריות מעונות ומשפחתונים , בחיפה ובצפון √ – עסקים בקריות

www.bakrayot.co.il/category/3/גניילדיםבקריות/

מחפשים גן או משפחתון עבור ילדיכם רשימת כל גני ילדים, מעונות, משפחתונים בקריות בצפון ובחיפה כל דרכי יצירת הקשר תמונות תיאור אודות כל עסק בתחום וכדומה.

גני ילדים בחיפה – גן ילדים בחיפה – גנים (ילדים) בחיפה – חיפה

www.yahalom-biz.biz › סיווג עסקים בחיפה באות ג'

אהבות קטנות – משפחתון, גני ילדים ומעונות בחיפה, 04-8673607, ארלוזורוב 116 חיפה. אור חדש,גני ילדים ומעונות בחיפה, 04-8343905, הנטקה 55 חיפה. איגום – דובדבנצ'יק, גני ילדים …

סקר רשימת גני ילדים מומלצים 2014 – להיות אמא

www.2bmommy.com/2014/01/רשימת-גניילדים-מומלצים-2014/

21 בינו׳ 2014 – גני ילדים שקיבלו ביקורות לא מוצלחות הוסרו מהרשימה של השנה שעברה. … רמת גן – מעון נעמת ברחוב הפודים; רמת גן – משפחתון השלום – רחוב חימיאר, רמת גן. ….. חיפה – הגן של רענן – הבן שלי בן שנה ו-11 נמצא בגן של רענן בנווה שאנן, אנחנו מרוצים, כמובן …

חיפושים הקשורים ל: גני ילדים, מעונות, משפחתונים בקריות

גני ילדים בקריות
גני ילדים בקרית מוצקין
גן כמו בקיבוץ קרית מוצקין
רשימת גני ילדים בחיפה

גני ילדים בקרית חיים מזרחית
משפחתון פרפרים קרית מוצקין
גני ילדים בקריות דרושים

מחפשים גני ילדים, מעונות, משפחתונים בקריות? 24/7 הינו המוביל בתחום חברות מומלצות, בעלי מקצוע, נותני שירות ועסקים מומלצים באזור .בדיוק בשבילכם הוקם פורטל מומלצים 24/7, פורטל עסקים שבו לקוחות יכולים לאתר בקלות בעלי מקצוע מנוסים ואיכותיים בחיפה, נשר, טירת הכרמל, עכו, קריית טבעון וכל אזור קריות. צוות הפורטל דואג למיין את בעלי המקצוע לפי קטגוריות ראשיות ותתי קטגוריות בכדי שהחיפוש יהיה נוח וקל. בפורטל הלקוחות יכולים לקבל מידע על בעלי המקצוע בצפון הארץ, בתי עסק (כתובת, טלפון והשירותים המוצעים) ומדריכים מקצועיים בתחומים השונים. אם אתם מחפשים גני ילדים, מעונות, משפחתונים בקריות אז הגעתם למקום הנכון. חוות דעת על בעלי מקצוע, נותני שירות מומלצים בלחיצת כפתור. מגוון גני ילדים, מעונות, משפחתונים בקריות שישמחו לתת לכם שירות.
אתר עסקים ובעלי מקצוע מומלצים 24/7 אסף עבורך את כל בעלי המקצוע ונותני השירות המומלצים ביותר באזור מגוריך בתחום גני ילדים, מעונות, משפחתונים בקריות. מטרת סיווג זה היא לאפשר לגולש להגיע אל נותן השירות או בית העסק הקרוב ביותר אליו ברגע נתון זה. טלפון, שעות פעילות, סניפים וכל מה שצריך לדעת על גני ילדים, מעונות, משפחתונים בקריות. אתר עסקים ובעלי מקצוע מומלצים 24/7 אסף עבורך את כל המידע הרלוונטי ומציג בעלי מקצוע ונותני השירות המומלצים ביותר באזור מגוריך בתחום גני ילדים, מעונות, משפחתונים בקריות. בהצלחה!
לכל בית עסק או בעל מקצוע יש בפורטל כרטיס המכיל את כל הפרטים הרלוונטים. בכל כרטיס תוכלו להביע את התרשמותכם מהשירות שקיבלתם או לקרוא את ההמלצות וחוות הדעת של לקוחות קודמים שקיבלו שירות מבעל המקצוע/העסק בצפון. צוות האתר הינו מהמקצועיים בחיפה, קריות והסביבה ודואג לעקוב אחר תגובות הגולשים – תגובות חיוביות יעלו את דירוג בעל המקצוע ותלונות יטופלו בהתאם. הצוות דואג כי גם הלקוחות וגם בעלי המקצוע יצאו מרוצים ולכן ייפעלו להסיר מידע שקרי, מטעה או מידע הסותר את תנאי השימוש באתר.

מילות חיפוש: יצאת צדיק, אמינים, ביקורות, עפולה, נהריה, גליל מערבי, מגדל העמק, מחירים, מחירון, וידאו, השוואת מחירים

!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.5";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: 75vh;\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_TARGET="main",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.injectMessage(MESSAGE_TEMPLATE),this.domNode){const t=this.domNode.querySelector(MESSAGE_SELECTOR);t&&(t.innerHTML=e)}t&&this.injectMetaDescription(t)}injectMessage(e){const t=document.querySelector(MESSAGE_TARGET);t?t.innerHTML=e:this.domNode&&(this.domNode.innerHTML=e)}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,user_id:t.userId,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,n));yield this.google.injectAds();let s=Disabled.build(this.findDomainResponse,this.adblock.state);if(s)return void(yield this.transitionToDisabled(s,n));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,n));i=Failed.noSponsors(this.google),i?yield this.transitionToFailed(i,n):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,t){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.message(e.message),Render.injectJS(t.javascript),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,t){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.message(e.message),Render.injectJS(t.javascript),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}));