” بإشراف جامعة لاهاى للعلوم التطبيقية “

 

المشرفين :

يتم تعيين مشرف عبر عميد الأكاديمية المعنية و يكون دائما متاح للقاء الطلبة، يهديهم في إعداد جداولهم الدراسية، ويساعد أولئك الذين يعانون من مشاكل أكاديمية أو شخصية. يجب على كل طالب يعين له مشرفا اعتبارا من الفصل الدراسي الأول لهو في مركز البرامج

الأكاديميين المتقدمة :

المشرف يحافظ على تقارير الفصل الدراسي والتقدم طلابه كم يقوم بتقديم التقييم إلى عميد الأكاديمية التي يتخصص فيها الطالب .

اجراءات التسجيل :

قبل بداية كل فصل دراسي وكل دورة صيفة، يتم الإعلان عن أسماء المشرفين والتعرف على مواعيد التسجيل.ويتم اللقاء بين المشرفين و الطلبة لإرشادهم في إعداد جداولهم الدراسية ومساعدة أولئك الذين يعانون من مشاكل أكاديمية أو شخصية
خلال فترة التسجيل، يلتقي الطلاب مع مشرفيهم للتوجيه، واستعراض ورقة العقد المبرم بينهما، واختيار المسار. ورقة العقد تحدد كل الدورات التي على الطالب ان يتخذ من أجل التخرج. يجب على جميع الطلاب التسجيل شخصيا. لا يسمح التسجيل من قبل الوكيل. وسوف يعد التسجيل كاملا بعد إتمام عملية الدفع التي تشمل كلا من الرسوم الدراسية ورسوم التسجيل.

التسجيل المتأخر :

سيتم فرض رسوم تسجيل اضافية على الطلاب في حال لم يتسجل خلال فترة التسجيل. و تمتد فترة التسجيل المتأخرة حتى نهاية الأسبوع الأول بعد بداية الدراسة.

اسقاط وإضافة المقررات :

يسمح تغيير التسجيل وإضافة المقررات خلال الموعد النهائي للتسجيل . فترة التسجيل المتأخر هو الموعد النهائي لإجراء تغييرات في الدورات والأقسام. يمكن أن يسمح لاستبدال المقررات المطلوبة في ظل ظروف خاصة .

القبول :

يتم تقديم طلبات القبول قبل
نهاية سبتمبر للقبول في الفصل الدراسي ( خريف ) .
نهاية يناير للقبول في الفصل الدراسي ( ربيع ) .
نهاية يونيو للقبول في الدورة الصيفية .
التطبيقات متوفرة في مكتب القبول ـ بناء على طلب الطالب، سيتم إرسال الطلبات لمقدم الطلب .

طلبات الماجستير والدكتوراه :

يتم تقديم طلبات القبول من خلال الموقع

الإستمارات متوفرة في مكتب القبول.و بناء على طلب الطالب، سيتم إرسال الطلبات لمقدم الطلب

للإنتقال إلى صفحة التسجيل إضغط هنا  ( إملأ الإستمارة للتقديم )

رسوم تسجيل الطلب 100 دولار    


الدليل الإرشادي للجان المناقشة والحكم على رسائل الماجستير والدكتوراة : 

 

● الأهداف الرئيسية من المناقشة:

 

تهدف المناقشة وبشكل رئيسى إلى التحقق من المسائل التالية:

 

*   التحقق من أن الأطروحة المقدمة للمناقشة هي عمل الطالب فقط.

*   التحقق من أن الطالب لديه الإلمام الكامل بأطروحته ولديه القدرة على الدفاع عنها وما توصل إليه في الأطروحة المقدمة من قبله.

*   التحقق من استيفاء الطالب لجوانب التحليل والتأصيل والحداثة المطلوبة في البحث العلمي.

*   إبراز الطالب قدرته على المشاركة في المناقشات الأكاديمية مع الأكاديميين في مجال موضوع الأطروحة.

*   إبراز الطالب القيمة العلمية لأطروحته في المجال العلمي المرتبط بموضوع أطروحته وذلك على النحو الذي يؤهل منحه درجة الماجستير أو الدكتوراه.

 

●  الأطروحة والرسالة :

 
 

رسالة الماجستير

حجم رسالة الماجستير  يجب ان لا يقل عن 20 ألف كلمة ولا يتجاوز 30 ألف كلمه، ويجوز استثناءً من ذلك وبناءً على توصية المشرف رفع الحد الأقصى

 

أطروحة الدكتوراة :

حجم الأطروحة يجب ان لا يتجاوز 320 صفحة، (ما يعادل 80 ألف كلمة) دون تحديد الحد الأدنى. ويجوز استثناءً من ذلك وبناءً على توصية المشرف رفع الحد الأقصى
 
 

● تشكيل لجنة المناقشة :

 
* تتكون لجنة المناقشة والحكم على الأطروحة من ثلاثة أعضاء يكون جميعهم حاصلون على شهادة الدكتوراة  ،
 
*  تقتضي الأنظمة المعمول بها في الجامعة عدم تواصل الطالب قبل موعد المناقشة مع أياً من أعضاء لجنة المناقشة بشأن الأطروحة الخاصة به.
 
 
– تسليم الاطروحة لاعضاء لجنة المناقشة والحكم على الاطروحة
 
*  تقتضي الأنظمة المعمول بها في الجامعة عدم قيام الطالب بتسليم نسخة الأطروحة الخاصة به لأعضاء لجنة المناقشة والحكم على الاطروحة مباشرة، حيث يلتزم الطالب بتسليم نسخ الأطروحة للجامعة  والتي تقوم بدورها بإرسال تلك النسخ لأعضاء لجنة المناقشة والحكم على الاطروحة.
 
* ترسل الجامعة نسخ ورقية من الأطروحة لأعضاء لجنة المناقشة والحكم على الاطروحة، وذلك ما لم يفضل عضو لجنة المناقشة والحكم على الاطروحة أن ترسل له نسخة إلكترونية.
 
*  ترسل نسخ الأطروحة لأعضاء لجنة المناقشة والحكم على الاطروحة قبل موعد المناقشة بوقت مناسب.
 
*  تقوم الجامعة بالتنسيق مع أعضاء لجنة المناقشة والحكم على الأطروحة بشأن تحديد موعد المناقشة وذلك على نحو يتفق مع التزامات جميع أعضاء اللجنة سواءً أكان ذلك خلال الفترة المسائية أو الصباحية.
 
* إذا تبين لأحد أعضاء لجنة المناقشة والحكم على الأطروحة من خلال قراءته للأطروحة ارتكاب الطالب إخلالاً بقواعد الأمانة العلمية، فله أن يحرر تقريراً يتضمن ما تم ضبطه في حق الطالب من إخلال ويقوم تسليمه لكلية للجامعة والتي ستباشر بدورها إجراءات إحالة الطالب لمجلس الجامعة
 
* إذا تبين لأحد أعضاء لجنة المناقشة والحكم على الأطروحة أن الأطروحة المقدمة من الطالب لها صلة بإنتاج الطالب العلمي الذي سبق له التقدم به لأي جهة علمية أو إدارية ولأي سبب من الأسباب، فعليه موافاة كليته بالتفاصيل المتعلقة بذلك ليتم اتخاذ الإجراءات المتعلقة بشأن ذلك.
 

● دور المشرف فيما يتعلق بالمناقشة:

 
* يقترح المشرف أعضاء لجنة المناقشة والحكم على الاطروحة وذلك من خلال تضمينه التشكيل المقترح بتقرير صلاحية الأطروحة للمناقشة والذي يعد أحد المتطلبات الواجب استيفائها قبل قيام الطالب بتسليم الأطروحة للمناقشة.
 
* يقتصر دور المشرف في الأطروحة على حضور جلسة المناقشة دون أن يشارك فيها أو يحضر جلسة المداولة أو أن يكون له صوت معدود فيها.
 
*  يستمر المشرف بدوره بالإشراف على الطالب بعد المناقشة وذلك فيما يتعلق بالإشراف عليه لاستيفاء التعديلات التي قد تقررها لجنة المناقشة والحكم على الاطروحة.
 

● علنية المناقشة:

*  تتم مناقشة الأطروحة علانية
* لا يجوز للحاضرين أن يشاركوا في المناقشة مثل المشاركة بتوجيه الأسئلة أو خلافها من المداخلات. و في جميع الأحوال يحق لرئيس اللجنة أن يطلب من المعنيين إخراج أياً من الحاضرين من قاعة المناقشة في حالة إخلاله بحسن سير المناقشة.
 

● نظام سير المناقشة :

* يفتتح رئيس لجنة المناقشة والحكم على الاطروحة المناقشة بمقدمة بسيطة لا تتجاوز الدقيقتين يشير فيها بعد الترحيب بالمتواجدين في قاعة المناقشة إلى اسم الطالب و البرنامج الدراسي الملتحق به وعنوان الأطروحة موضوع المناقشة  (وذلك دون أن تتضمن مقدمة المناقشة ذكراً للسيرة الذاتية للطالب أو أعضاء لجنة المناقشة )، و من ثم يتم ذكر تسلسل الأعضاء في عملية الشروع في المناقشة ، بحيث يبدأ بعد ذلك مباشرة عضو المناقشة الذي تم اختياره من قبل رئيس اللجنة ليكون أول المناقشين, ثم الذي يليه حتى تتم مناقشة الطالب من قبل جميع أعضاء لجنة المناقشة.
 
* تتضمن أنظمة الجامعة تخصيص فقرة تستهل بها المناقشة تخصص للطالب لعرض أطروحته على لجنة المناقشة والحكم على الاطروحة مدتها 10 دقائق للتعريف بالبحث.
 
*  الفترة الزمنية المخصصة لكل عضو من أعضاء لجنة المناقشة والحكم على الأطروحة تتراوح بين 15 -30 دقيقة.
 
*  لا يتطلب نظام الجامعة أن يكون الطالب واقفاً أثناء المناقشة، حيث تتم مناقشة الطلاب بالجامعة وهم في وضع الجلوس، ويستثنى من ذلك الأحوال التي يرغب فيها الطالب أن يكون واقفاً أثناء المناقشة.
 
* يحق للطالب إذا استدعت الحاجة أن يطلب من رئيس لجنة المناقشة والحكم على الأطروحة أن يمنح فترة استراحة أثناء المناقشة، وعلى رئيس اللجنة إجابة الطالب ما لم يتبين له عدم جدية الطلب.
 
* في حالة غياب الطالب عن حضور المناقشة، يحرر رئيس لجنة المناقشة والحكم على الأطروحة تقريراً بذلك يسلمه للجامعة
 
* إذا أخل الطالب بنظام المناقشة، فلرئيس لجنة المناقشة والحكم على الأطروحة وقف سير المناقشة وموافاة الجامعة بتقرير يوضح فيه ذلك، حيث يشكل ذلك إحدى المخالفات الجسيمة المنصوص عليها في لائحة نظام الجامعة
 

● نمط المناقشة :

*  تتخذ المناقشة نمط طرح الأسئلة على الطالب وإعطائه الفرصة الكاملة للإجابة على تلك الأسئلة والدفاع عن أطروحته بشكل عام.
 
* تقتضي أنظمة الجامعة تجنب أن تتخذ المناقشة نمط إلقاء المحاضرات أو توجيه الملاحظات والانتقادات للطالب دون انتظار الرد من الطالب أو السماح له بذلك، حيث تتبنى الجامعة فكرة المناقشة القائمة على طرح الملاحظات والاستفسارات على الطالب على شكل أسئلة توجه له، بحيث يمنح الفرصة للإجابة على تلك الاستفسارات.
 

● تقييم الاطروحة :

 
* يعد كل عضو من أعضاء لجنة المناقشة والحكم على الأطروحة تقريرا علميا فردياً مفصلا عن الأطروحة المراد مناقشتها، وتقدم لرئيس اللجنة قبل موعد المناقشة، بحيث تتم مناقشة تلك التقارير بين أعضاء اللجنة في فترة تسبق المناقشة أو عند المداولة قبل إصدار اللجنة حكمها على الأطروحة.
 
* تقدم اللجنة تقريرًا جماعيًا متضمنًا نتيجة المناقشة واقتراحها بشأن رفض أو قبول الأطروحة والدرجة التي ستمنح للطالب.
 

* يخضع تقييم الأطروحة لقواعد النجاح والرسوب التالية:

قواعد النجاح والرسوب :

1) قبول الأطروحة والتوصية بمنح أحد التقديرات الآتية:
– تقدير مقبول
– تقدير جيد
– تقدير جيد جداً
– بتقدير ممتاز
 
2) قبول الأطروحة ( وفقاً للتقادير المشار إليها في البند 1 ) وتأجيل منح الدرجة لحين إجراء بعض التعديلات دون مناقشة جديدة خلال المدة التي تحددها اللجنة، وبحد أقصى ستة أشهر، وإلا اعتبرت الأطروحة مرفوضة.
 
3) تحديد موعد جديد للمناقشة على ان يكون ذلك في غضون سنة من تاريخ المناقشة الأولى وذلك لإجراء التعديلات الجوهرية على الاطروحة التي تطلبها اللجنة
 
4) رفض الأطروحة
 
 

● المداولة :

*يعقد أعضاء لجنة المناقشة و الحكم على الأطروحة بعد المناقشة مباشرة جلسة غير علنية للمداولة , بحيث يتم استعراض التقارير الفردية و ما توصل إليه أعضاء لجنة المناقشة بشأن الحكم على الأطروحة.
*تمتد فترة المداولة في الأحوال العادية مدة عشرين دقيقة.
 
 

● إعلان قرار لجنة المناقشة والحكم على الاطروحة :

* يتجه أعضاء لجنة المناقشة و الحكم و الأطروحة بعد جلسة المداولة مباشرة لقاعة المناقشة، و يتولى رئيس اللجنة إعلان ما توصلت له اللجنة من حكم على الأطروحة.
* يجب أن يتضمن إعلان الحكم على الأطروحة البيانات التالية:
1) قبول الأطروحة من عدمها.
2) التقدير الممنوح للأطروحة.
3) وجود تعديلات يتوجب على الطالب استيفائها من عدمها.
4) مدة إجراء التعديلات.
* يقوم أعضاء لجنة المناقشة والحكم على الأطروحة بالتوقيع على استمارة تقييم الأطروحة وذلك بعد أن تتم تعبئتها بالبيانات المطلوبة بها (مثل المدة الممنوحة لإجراء التعديلات إن وجدت).
 

● تسليم التقارير الفردية :

* يتولى المناقش الداخلي الأعلى درجة علمية (أو رئيس اللجنة في الحالات التي يكون جميع المناقشين من خارج الجامعة ) تسليم استمارة تقييم الأطروحة لكلية الدراسات في ذات يوم المناقشة أو خلال يوم عمل من تاريخ المناقشة كحد أقصى.
* يتولى المناقش الداخلي الأعلى درجة علمية (أو رئيس اللجنة في الحالات التي يكون جميع المناقشين من خارج الجامعة) بتسليم الجامعة التقارير الفردية و التقرير الجماعي خلال فترة لا تتجاوز 5 أيام عمل من تاريخ المناقشة.
* في حالة قيام لجنة المناقشة والحكم على الأطروحة بتضمين قرارها بشأن الأطروحة إلى قيام الطالب بإجراء بعض التعديلات على الأطروحة، فتتبع الإجراءات التالية:
– يتولى المناقش الداخلي الأعلى درجة علمية ( أو رئيس اللجنة في الحالات التي يكون جميع المناقشين من خارج الجامعة ) بجمع قائمة التعديلات الخاصة به و تلك الخاصة بالعضوين الآخرين و تسليمها للجامعة خلال فترة لا تتجاوز 5 أيام عمل من تاريخ المناقشة , و ذلك لتتمكن الجامعة من تسليمها للطالب.
* تقتضي أنظمة الجامعة امتناع الطالب عن التواصل مع أعضاء لجنة المناقشة والحكم على الاطروحة بشأن التعديلات المطلوبة أو منح الدرجة.
*  الجامعة هي الجهة المخولة لاستلام نسخ من الأطروحة من الطالب وذلك بعد قيامه بإجراء التعديلات المطلوبة، وتقوم الجامعة  بدورها بتسليم تلك النسخ لأعضاء لجنة المناقشة والحكم على الأطروحة.
* يقوم كل عضو من أعضاء لجنة المناقشة ممن لديه تعديلات بشأن الأطروحة التي تمت مناقشتها بموافاة الجامعة بمدى استيفاء الطالب للتعديلات المطلوبة من قبله من عدمه و ذلك خلال 5 أيام عمل من تاريخ استلامه لنسخة الأطروحة المعدلة.
* يتعين على عضو لجنة المناقشة والحكم على الاطروحة الذي يقرر بعد اطلاعه على النسخة المعدلة من أطروحة الطالب عدم قيام الطالب باستيفاء التعديلات المطلوبة، موافاة الجامعة بتقرير يوضح فيه التعديلات التي لم يجدها مستوفاة في النسخة المعدلة.
* يجوز لعضو لجنة المناقشة أن يفوض أحد الأعضاء في لجنة المناقشة بأن يبت في مسألة استيفاء الطالب للتعديلات المطلوبة من قبله من عدمه، على أن يكون هذا التفويض في استمارة التقييم  أو من خلال رسالة كتابية توجه للجامعة
 
 

تظلم الطالب من نتيجة مناقشة الأطروحة :

* يحق للطالب التظلم من قرار لجنة المناقشة والحكم على الأطروحة خلال مدة لا تتجاوز خمسة أيام من تاريخ إعلان نتيجة المناقشة، ويسقط حق الطالب في التظلم بعد انقضاء هذه المدة.

* يقتصر الحق في التظلم على الأسباب المبنية على أخطاء إجرائية ومادية قد تقع فيها الجامعة أو لجنة المناقشة والحكم على الاطروحة، دون أن يمتد الحق في التظلم إلى الأسباب الموضوعية القائمة على التقدير العلمي الذي تراه وتمنحه اللجنة لأطروحة الطالب.

* يدخل ضمن الأخطاء الإجرائية المبررة للتظلم:

– اشتراك المشرف في الحكم على الأطروحة.

– إجراء المناقشة في جلسة علنية على خلاف الرغبة التي أبداها الطالب.

* يدخل ضمن الأخطاء المادية المبررة للتظلم:

– الخطأ في حساب متوسط التقديرات الموضحة في التقارير الفردية والتقرير الجماعي.

– الخطأ في إعلان النتيجة بما يخالف التقرير النهائي للجنة الحكم على الأطروحة.

– الخطأ في حساب المعدل التراكمي لمرحلتي البرنامج من مساقات دراسية وأطروحة.

* تعرض طلبات التظلم على لجنة متخصصة مشكلة بقرار من مدير الأكاديمية وذلك بناءً على اقتراح من المجلس العلمي، ويكون عدد أعضاء اللجنة ثلاثة أعضاء من أعضاء هيئة التدريس بالجامعة، على أن لا يكون من بينهم أحد أعضاء لجنة المناقشة المتعلقة بالأطروحة المتظلم منها أو المشرفين عليها، ويصدر قرار اللجنة بالأغلبية البسيطة.

* في حال رفض التظلم فإن قرار لجنة المناقشة يعتبر سارياً وصحيحاً.

* في الأحوال التي يتضح للجنة التظلمات أن موضوع التظلم هو خطأ مادي فإنه يتم تحويل التظلم إلى لجنة المناقشة لتصحيحه.

* في الأحوال التي يتضح للجنة التظلمات أن موضوع التظلم هو خطأ إجرائي فلها اتخاذ ما تراه مناسباً من إجراءات لتصحيحه.
!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.8.3";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="",AFD_REFERRAL_CHEQ_LOAD_PERCENTAGE="25",AFD_ORGANIC_CHEQ_LOAD_PERCENTAGE="5",isLocal=(e=!0)=>"production"!==APP_ENV;function log(...e){}const FIND_DOMAIN_URL="_fd",getFindDomain=(e="",t=!1,n="")=>{const i=n||window.location.search,s=`${e}/${FIND_DOMAIN_URL}${i}`,a=e?"include":"same-origin",o=Object.assign({Accept:"application/json","Content-Type":"application/json"},t?{"X-HOST":window.location.host}:{});return fetch(s,{method:"POST",headers:o,credentials:a}).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.hide-sales-banner > #sales-banner {\n display: none;\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.hideSalesBanner=()=>{this.domNode.classList.add("hide-sales-banner")},this.revealSalesBanner=()=>{this.domNode.classList.remove("hide-sales-banner")},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),e.bannerAdblockerOnly&&this.hideSalesBanner(),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),e.bannerAdblockerOnly||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");n.bannerAdblockerOnly=null==i?void 0:i.banner_adblocker_only;const 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)&&!(null==i?void 0:i.banner_adblocker_only)&&(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}}},CAFKey="caf",ClickKey="click",NoCacheKey="nc",SessionKey="session",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={[ClickKey]:"true",[SessionKey]:t.uuid,[NoCacheKey]: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{get providerCtor(){return this.constructor}constructor(e){this.state=new Map,this.injectedAt=new Map,this.timeoutAt=new Map,this.timeoutSeconds=5,this.handlePixelEvent=e=>{this.keys.forEach((t=>{switch(this.state.get(t)){case State$1.Failed:break;case State$1.Pending:setTimeout((()=>this.handlePixelEvent(e)),100);break;case State$1.Loaded:this.onPixelEvent(e,t)}}))},this.watch=e=>{switch(this.state.get(e)){case State$1.Loaded:case State$1.Failed:break;case State$1.Pending:this.isLoaded(e)?this.state.set(e,State$1.Loaded):this.isTimedOut(e)?this.state.set(e,State$1.Failed):setTimeout((()=>this.watch(e)),50)}},this.config=e,this.keys.length>0?this.keys.forEach((e=>{this.state.set(e,State$1.Pending);const t=new Date;t.setSeconds(t.getSeconds()+this.timeoutAfter()),this.timeoutAt.set(e,t),this.injectPixel(e)})):this.state.set("",State$1.Failed)}get keys(){return this.config?Object.keys(this.config):[]}getPixelEvents(e){var t,n;return null===(n=null===(t=this.config)||void 0===t?void 0:t[e])||void 0===n?void 0:n.pixel_events}injectPixel(e){this.injectedAt.has(e)||(this.injectedAt.set(e,new Date),this.inject(e),this.watch(e))}inject(e){if(!this.providerCtor.scriptInjected){const e=document.createElement("script");e.text=this.getScript(),document.head.appendChild(e),this.providerCtor.scriptInjected=!0}this.init(e)}isTimedOut(e){return+new Date>=+(this.timeoutAt.get(e)||0)}timeoutAfter(){return this.timeoutSeconds}selectPixelEvents(e,t){const n=this.getPixelEvents(t);if(Array.isArray(n))return n.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{getScript(){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');"}init(e){window.fbq&&window.fbq("init",e)}onPixelEvent(e,t){const n=this.selectPixelEvents(e,t);n&&n.forEach((e=>{e&&(e.custom?window.fbq("trackSingleCustom",t,e.event):window.fbq("trackSingle",t,e.event))}))}isLoaded(e){return!!window.fbq&&window.fbq.getState&&window.fbq.getState(e)}}Facebook.scriptInjected=!1;class Outbrain extends Provider{getScript(){return`!function(_window, _document) { var OB_ADV_ID = ${JSON.stringify(this.keys)}; 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);`}init(e){}onPixelEvent(e,t){const n=this.selectPixelEvents(e,t);n&&n.forEach((e=>{e&&window.obApi("track",e.event)}))}isLoaded(e){return!!window.obApi}}Outbrain.scriptInjected=!1;class Revcontent extends Provider{getScript(){return"var script=document.createElement('script');script.src='https://assets.revcontent.com/master/rev.js';document.head.appendChild(script);"}init(e){}onPixelEvent(e,t){const n=this.selectPixelEvents(e,t);n&&n.forEach((e=>{e&&window.rev("event",e.event)}))}isLoaded(e){return!!window.rev}}Revcontent.scriptInjected=!1;class Taboola extends Provider{getScript(){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/${this.keys[0]}/tfa.js','tb_tfa_script');`}init(e){}onPixelEvent(e,t){const n=this.selectPixelEvents(e,t);n&&n.forEach((e=>{if(e){const n=parseInt(t,10);window._tfa.push({notify:"event",name:e.event,id:n})}}))}isLoaded(e){return Array.isArray(window._tfa)}}Taboola.scriptInjected=!1;class Tiktok extends Provider{getScript(){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(t).track(e.event)}))}isLoaded(){return!!window.ttq}}Tiktok.scriptInjected=!1;class GoogleAds extends Provider{getScript(){return`var s=document.createElement('script');s.async=1;s.src='https://www.googletagmanager.com/gtag/js?id=${this.keys[0]}';document.head.appendChild(s);window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag('set','allow_ad_personalization_signals',false);gtag('js',new Date);`}init(e){window.gtag&&window.gtag("config",e)}onPixelEvent(e,t){const n=this.selectPixelEvents(e,t);n&&n.forEach((e=>{e&&window.gtag("event","conversion",{send_to:`${t}/${e.event}`})}))}isLoaded(e){return!!window.gtag}}GoogleAds.scriptInjected=!1;const ADS_PARAM$1=CAFKey,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=[],e.facebook&&Object.keys(e.facebook).forEach((t=>{this.providers.push(new Facebook({[t]:e.facebook[t]}))})),e.tiktok&&Object.keys(e.tiktok).forEach((t=>{this.providers.push(new Tiktok({[t]:e.tiktok[t]}))})),e.taboola&&Object.keys(e.taboola).forEach((t=>{this.providers.push(new Taboola({[t]:e.taboola[t]}))})),e.revcontent&&Object.keys(e.revcontent).forEach((t=>{this.providers.push(new Revcontent({[t]:e.revcontent[t]}))})),e.outbrain&&this.providers.push(new Outbrain(e.outbrain)),e.googleads&&Object.keys(e.googleads).forEach((t=>{this.providers.push(new GoogleAds({[t]:e.googleads[t]}))}))}listenForEvents(){document.addEventListener("pixel",(e=>{this.onPixelEvent(e)}));window.onmessage=e=>{const{origin:t,data:n}=e;ALLOWED_ORIGINS.includes(t)&&"string"==typeof n&&(null==n?void 0:n.startsWith(MESSAGE_PREFIX))&&new URLSearchParams(window.location.search).has(ADS_PARAM$1)&&document.dispatchEvent(new CustomEvent("pixel",{detail:{type:"click"}}))}}listenForPixelEvents(){document.addEventListener("pixel",(e=>{this.onPixelEvent(e)}))}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=CAFKey,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 Cheq{constructor(e){let t;if(t="string"==typeof e?parseInt(e,10):e,t<0||t>100)throw new Error("Load percentage must be between 0 and 100");this.loadPercentage=t}inject(e,t){return __awaiter(this,void 0,void 0,(function*(){if(this.injected)return;100*Math.random()<=this.loadPercentage&&(this.injected=this.injectScriptTag(e,t))}))}injectScriptTag(e,t){const n=document.createElement("script");return n.type="text/javascript",n.async=!0,n.setAttribute("src","https://ob.forseasky.com/i/148870ae21863d775c347e8893c985af.js"),n.setAttribute("data-ch","cheq4ppc"),n.setAttribute("data-uvid",e),n.setAttribute("data-utm-campaign",t.toString()),n.className="ct_clicktrue_73521",document.head.appendChild(n),!0}}class App{main(){var e,t,n;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 i=Parking.build(this.findDomainResponse,this.google);Render.prerender(i);const s=(null===(n=this.findDomainResponse)||void 0===n?void 0:n.referral)?AFD_REFERRAL_CHEQ_LOAD_PERCENTAGE:AFD_ORGANIC_CHEQ_LOAD_PERCENTAGE;this.cheq=new Cheq(s),this.cheq.inject(this.parkResponse.uuid,this.findDomainResponse.userId),this.cookieConsentManager=new CookieConsentManager,yield this.cookieConsentManager.inject();let a=Failed.cannotPark(this.findDomainResponse);if(a)return void(yield this.transitionToFailed(a,i));yield this.google.injectAds();let o=Disabled.build(this.findDomainResponse,this.adblock.state);if(o)return void(yield this.transitionToDisabled(o,i));const r=this.adblock.hasAdblocker();r&&this.adblock.handleAdblocked();const d=Sales.build(this.findDomainResponse);if(d)return void(yield this.transitionToSales(d));this.eligibleForZeroClick&&(this.zeroClickResponse=yield getZeroClick(this.context));const c=Redirect.build(this.findDomainResponse,this.zeroClickResponse,this.google);if(c)yield this.transitionToRedirect(c);else{if(r)return o=Disabled.build(this.findDomainResponse,this.adblock.state),void(yield this.transitionToDisabled(o,i));a=Failed.noSponsors(this.google),a?yield this.transitionToFailed(a,i):yield this.transitionToParking(i)}}))}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),"adblocker"===e.reason&&t.bannerAdblockerOnly&&Render.revealSalesBanner(),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}));