Yacht Charter Croatia | Luxury Yacht Concierge

CONTACT INFO: + 385 91 157 87 27       BOOK & SAVE    info@antropoti.com

Terms & Conditions

Antropoti Ltd. TERMS AND CONDITIONS

THE BOAT RENTAL

  1. INTRODUCTION REGULATIONS

By publishing the general conditions for boat rental on its web pages, company Antropoti Ltd. operating within the ANTROPOTI VIP CLUB, makes them available for all parties included in the rental contract: the Antropoti Ltd. as the mediator (hereafter known as the mediator), the owner who gives the boat for rental (hereinafter known as the lessor) and the user renting the boat (hereafter known as the lessee).

The general conditions for boat rental are the main part of this mediation contract which is signed between the mediator and the lessor as well as between the mediator and the lessee and obligate both the mediator and the lessor at the moment of stipulation of the contract and the lessee at the moment of confirmation of the booking.

The general conditions for boat rental are considered relevant both for the common agreement of contractual parties as well as for any possible conflicts which may occur between parties. It is also considered that the lessor, in signing this mediation contract, and the lessee in confirming the booking, have read and accepted these conditions.

  1. CONTRACT RELATIONSHIP WITH THE LESSOR

Both the mediator and the lessor establish a contract relationship by signing the mediation contract which requires the lessor to offer a certain number of boats in his property for rent and the mediator to offer the same boats to potential lessees with the right to charge a mediator fee should he put the lessor in touch with the lessee.

The Mediator is exclusively committed to the lessor from the day of signing the mediation contract and only with regard to those boats that have been expressly listed in the price list.

  1. APPLICATIONS

Applications for booking a boat should be sent by e-mail or presented to the mediator’s branch office or, in extreme cases, by telephone call.

During booking application, the lessee is obliged to provide all data and documents necessary for carrying out the regulated procedures.

  1. RENTAL PRICE

Informative prices in Euros are published on the mediator’s web page and include 7-days rental (from Saturday to Saturday) although do not exclude the possibility of renting a boat for shorter or longer periods subject to availability and agreement by all parties.
Prices are subject to changes without prior announcement and are presented only as an indication.

Depending on the model of the boat, the year of construction and the rental season, prices published on the mediator’s web pages may vary from model to model.

The final price is determined after the offer is issued for specific request and depends on the period of rental and the boat chosen.

The boat rental price does not include: a safe deposit, petrol, the cost of marinas and moorings, tourist tax or any other costs that were not previously agreed in writing.

Only at the lessee’s request, will it be possible for the lessor to ensure a skipper, hostesses and any other staff whose services will be calculated and charged separately.

Should the price of certain boats be changed after the booking has been confirmed, but before the deposit has been paid, the mediator is obliged to notify the lessor about the said change immediately and send him a new settlement for his approval.

Should the price change after the deposit has been paid, the mediator will guarantee the lessee the unchanged price as determined in the offer issued for the boat for which the deposit was paid.

Payment is carried out according to a preliminary calculation as follows:

  • 50% of the total price is to be paid at the time of booking
  • 50% of the total price is to be paid no later than 40 days before the scheduled date of boat delivery (charter week).

For bookings made in periods shorter than 60 days prior to the charter week, the total rental fee must be paid at the time of booking.

The rental fee should be paid to the mediator’s account according to the issued preliminary calculation.

By the first payment of part or total agreed amount, the lessee confirms to have completely met and accepted all of the characteristics and conditions under which the particular boat is offered to him. Payment of a deposit signifies that a legitimate relationship between the mediator, the lessor and the lessee has been established and the mediator obtains the right to charge a mediator’s fee.

The lessee should only pay the mediator the agreed rental fee, whilst all other costs (deposit, costs, fees, additional services, damage charges and any other costs) will be paid directly between the lessee and lessor and to any third parties without the intervention of the mediator, except when expressly agreed otherwise.

  1. DEPOSIT

When taking over the boat, the lessee will pay the lessor the statutory agreed deposit in cash, or, if possible, by holding his resources on a credit card, as a guarantee that all possible losses and damage caused during the period of rental, including damage not covered by the insurance policy will be paid.

The total deposit amount will be refunded to the lessee if, when the boat is returned, no damage of the boat or loss of its equipment is found, there are no requests by third parties with regard to the lessee in connection with the use of the rented boat and once the boat has been returned to the agreed dropping point at the agreed time and has been checked in order to ascertain it is returned as it was delivered, that is undamaged, in a clean and tidy manner and with a full tank of petrol.
Should there be any loss or damage of the equipment of one or more parts of the boat or of any part of the boat itself, the lessor will retain the amount of the deposit equal to the cost of repair, the supply and/or purchase of any missing equipment or part of the boat itself.

  1. MEDIATOR’S OBLIGATIONS

The mediator is obliged, according to the signed contract with the lessor, to offer a rentable boat onto a suitable market and put the lessor in touch with the lessee in order that they may agree upon and implement the boat rental.

The mediator is obliged, after signing this contract with the lessor, to include all boats included in the contract in his offer and to undertake timely advertising of the same in such a way as to suit his activities.

Both before and after signing this contract with the lessor, the mediator may ask for permission to enable an authorised person to check the boat and to take the necessary photographs of it for advertising purposes,

The mediator is obliged to meet any potential lessees with the boat offer and give them accurate information about the boat, prices, additional costs and any other information in accordance with the regulations of his profession.

The mediator is authorised and obliged to charge the lessee the total rental fee including the mediator’s fee and, immediately after the receipt of the first payment, to notify the lessor.

Before the lessee embarks, the mediator is obliged to remain in contact with all contractual parties for mediation and provision of all necessary information regarding embarkation, about taking over the boat as well as about solving any possible issues that might occur and which are relevant for carrying out the rental process. After embarkation, the mediator can, in case of necessity, contact clients in order to help them solve any possible issues that might occur, but is not obliged to be present during the handing over of the boat nor in the course of resolution of any complications which might occur.

The mediator has the right to charge his fees at the moment of payment (either the partial or full amount) of the booking to his account independently of whether the rental will actually be brought to fruition.

Should after the full payment of the rental amount, the transaction not be completed due to faults of the lessor (e.g. boat breakdown, legal barriers for rental completion, withdrawal by the lessor etc.) the lessor is obliged to ensure a replacement boat with the same or improved characteristics and place this boat at the lessee’s disposal through the mediator during the agreed rental period.

  1. LESSOR’S OBLIGATIONS

The Lessor is obliged to deliver the boat to the agreed place and at the agreed time, in perfect working order, having been thoroughly cleaned and with the agreed equipment, with a full tank of water and petrol together with all valid documents necessary for navigation in accordance with the regulations of the Republic of Croatia.

The boat must be completely ready and equipped for navigation and must satisfy the agreed conditions with regard to the quality and category of accommodation capacities and equipment.

If the lessor, for any reason, has not completed the above mentioned conditions (e.g. the boat is not in full working order, the quality of the boat is not in accordance with the agreement, the boat is not thoroughly cleaned, there is a lack of agreed equipment, water and petrol  tanks are not full, there is a lack of boat documents and for any other important reasons not in accordance with the agreed rental conditions or make its realization impossible, that is, it might jeopardize the safety of the lessee and any crew members), he is obliged to resolve them, if possible, in the period mentioned below and will have to answer to both the mediator and the lessee with regard to the violation of the agreed regulations.

Should the elimination of defects require the postponement of embarkation within a 24 hour period, the lessee does not have the right to reimbursement of the rental fee nor does he have the right to cancel the rental.

Should the elimination of defects require the postponement of embarkation exceeding a 24 hour period, the lessee has the right to choose from the following solutions:

  • He may request that the lessor provide him with another suitable boat with the same or improved characteristics within the agreed rental price, or
  • He may request that the lessor pay the cost of his accommodation together with all those listed as crew members in a suitable facility located at the place of embarkation until all defects have been eliminated, or
  • He may demand reimbursement of the rental fee for the number of days he was not able to use the boat,

and should none of the above mentioned solutions be possible or should the replacement boat not meet the lessee’s requirements, the lessee has the right to reimbursement of the paid rental fee reduced by the mediator’s fee for the period of 14 days from the cancellation of the contract. The mediator’s fee will not be reimbursed, but the lessee has the right to request reimbursement directly from the lessor.

For any other claims (travelling expenses, overnight stays, fees for lost days and ruined holidays, etc.) if not regulated in the previous paragraph, the lessee does not have the right for reimbursement either from the mediator or from the lessor.

Should, due to the fault of the lessor, the lessee request the mediator to offer him another suitable boat with the same or improved characteristic within the agreed rental price, the mediator has the right to charge the provision of finding the new boat, in which case the lessee has the right to demand reimbursement of the amount paid as a mediator’s fee directly from the lessor due to whose fault rental resulted as being impossible.

Should damage or defects to the boat or its equipment occur due to the natural wear-and-tear of the boat, the lessee is obliged to report these issues immediately to the lessor.

After receiving this report, the lessor must immediately eliminate any defects or change the relevant part of the equipment.

If the lessor eliminates the breakdown within 24 hours, the lessee does not have the right to any reimbursements.

Neither the lessee nor the lessor will not be responsible in case of changes or uncompleted rental due to higher forces (strikes, sanitary disorders, natural disasters which could not have been foreseen, or for interventions by proper authorities, terrorist actions, war, fire, explosions and the like) if these circumstances are reported in writing to the other party immediately after their occurrence. The report may also be sent to the mediator.

  1. TAKING THE BOAT

Boats are delivered at an agreed time to an agreed place.

The boat will be delivered to the lessee directly by the lessor or by his representative and only after the total rental fee has been paid.

During the handing over of the boat, the lessee is obliged to present the lessor’s representative with a valid voucher as proof that the total rental fee has been regularly paid.

The lessee will receive a fully equipped and cleaned boat with a full water and petrol tank. The lessee is expected to return the boat in the same condition.

During the handing over of the boat, the lessee is obliged to verify the condition of the boat and its equipment as well as check whether the actual state of the inventory is in accordance with the existing list which is then signed by both parties.

Possible claims should be submitted in writing only before the start of the trip and a copy should be reported to mediator.

Any hidden losses or defects found on the boat and/or equipment at the moment of delivery which the lessor could not have known previously, as well as breakdowns and defects which may have occurred after delivery and which may not have been foreseen by the lessor, do not give the lessee the right to demand a reduction in the rental fee or influence the amount of the mediator’s fee.

Should the lessee not take charge of the boat within a period of 48 hours from the agreed time, without prior notice, the lessor has the right to cancel the rental contract unilaterally and may retain the paid rental amount to cover his lost profit. In this case the lessee does not have the right to demand reimbursement whilst the mediator retains the right to charge his fee.

 

Before handing over the boat, the lessor will ask to see documentation proving that the boat will be driven by a qualified person. Furthermore, he may insist that the same person demonstrate his navigation skills by asking him to steer and control the boat. If the designated person intending to pilot the boat refuses to demonstrate his skills or if the lessor evaluates that the same person is not qualified to pilot the boat properly in accordance with naval practice and conduct at sea and with the aim of preventing accidents at sea, he has the right to cancel the rental and reimburse the lessee 80% of the total rental fee. Should cancellation be necessary, the mediator’s fee will not be reimbursed to the lessee.

  1. LESSEE’S OBLIGATIONS

The lessee and his crew members are obliged to possess valid travel documents and to bear the costs of any possible loss and theft of documents during the trip.

The Lessee is obliged, at least 1 week prior to the commencement of the rental period, to deliver a passenger list to the mediator which includes full names, addresses, dates of birth as well as the number of valid identification (travel) documents, should he not already have done this in the course of booking.

The lessee may not permit any person not on the stipulated passenger list to remain on board.

Should the lessee intend piloting the boat himself, he must consign a copy of a valid official document to the mediator, which states that he is in possession of a valid boat licence as well as certification of the test he has passed. The lessee who intends piloting the boat himself must guarantee that he has the adequate navigation skills necessary to manage the boat on open sea and at the lessor’s request, must accept to demonstrate such skills.

After taking over the boat, the lessee will bear all costs not included in the agreed price as well as any outlays necessary to eliminate damages and defects that have presented themselves during the rental period and which are not the result of general wear-and-tear.

The lessor is obliged to pay the lessee the costs of elimination of smaller damages, breakdowns or defects which may occur during the rental period as a result of general wear-and-tear which are necessary for navigation to continue, under the condition that the lessee has previously undertaken a written or oral agreement with the lessor with regard to any technical or financial issues that may have to be carried out. Costs of unauthorised repairs and the changing of parts and equipment will be paid by lessee.

Besides regular daily notes, the lessee must record any damages and/or repairs in the boat’s journal.

Should such damage have been caused by higher forces and the continuing use of the boat be rendered partially or totally impossible or should the person responsible for damages prove to be a third party, the lessee will not have the right to reimbursement of any costs or of the mediator’s fee but will have the right to reimbursement of part of the unused rental period.

Leaving the Republic of Croatia’s territorial waters is only permitted with a prior written agreement from the mediator and the lessor and by obtaining all the necessary licences and documentation.

The Lessee must respect all valid laws, customs and other regulations as well as take care of the boat and its equipment and must respect all navigation regulations and ethics.

The lessee must check the level of engine oil daily. The lessee must pay any damages resulting from the lack of oil in the engine.

The lessee must follow reliable weather forecasts on a regular basis so as to avoid placing the safety of the boat and the crew in danger and must also avoid any possible delays when returning the boat.

The Lessee may not hand the boat over in any form of sub rental or to third parties, and may not use for commercial or professional purposes or for night fishing or other such activities. Furthermore he is responsible for all crew members (including himself) behaving in accordance with the valid laws and other regulations of the Republic of Croatia and especially must respect all fishing and underwater fishing regulations and may not retain any objects on board which may be of archaeological value.

The lessee agrees that the rental agreement should be cancelled at that he is responsible should any member of his crew violate any regulations in force in the Republic of Croatia and should this occur, the lessor may immediately take charge of the and the lessee will not have the right of reimbursement of any costs. Furthermore, it is hereby determined that the lessor will be freed of any responsibility with the any legal authorities should the lessee and his crew members be guilty of any offence or undergo any criminal procedures.

In the case of accident or damage of the boat or equipment during the trip, the lessee must report to the lessor without delay by calling the phone numbers provided together with the boat’s documentation and to carry out all necessary measures foreseen by the law and other such acts should a maritime accident occur with the Republic of Croatia’s authorities (Port Authorities, police, first aid).

Should the boat or any of its associated equipment be mislaid, or should it be impossible to manage the boat or should it be seized, held or sanctioned by state bodies or third parties, the lessee must immediately report the fact to the lessor as well as to the proper authorities.

Should the lessee not carry out his obligations, he will be considered completely and personally responsible for all consequences and costs to the lessor, lessee and any third parties.

Should the lessee not be able to contact the lessor, he should notify the mediator about the matter who will then notify the lessor.

Pets are only permitted on board with prior written agreement from the lessor and the lessee is obliged to notify the mediator about his intentions prior to confirmation of the booking.

  1. LESSEE’S RESPONSABILITIES

The lessee is obliged to pay the total amount directly to the lessor for damages caused by his actions and oversights for which the lessor must respond to third parties, regardless of whether these are material and/or legal costs which have resulted from such actions or errors.

The lessee is explicitly and personally responsible for the boat should it be seized by any official bodies due to inappropriate or illegal activities taking place during the use of the boat during the rental period.

The lessee must not abandon the port or anchorage until the damage or breakdown of important parts such as the engine, sails, ropes, puddle pump, anchor equipment, navigation lights, compass, safety equipment and other such equipment have not been repaired or if some of the afore-mentioned parts are not functioning properly. The lessee must report the matter to the lessor and follow his instructions.

The lessee should not leave the port or anchorage without sufficient petrol reserves or when weather conditions and the condition of the boat and crew are generally unsafe or uncertain.

The lessee’s responsibility of all violations of navigation regulations and others made during the boat rental period does not terminate with the expiry of the rental.

In the case of damage, accidents, offences or criminal acts resulting from the skipper’s activities or oversights, then the skipper and the contractual party that employed him, either the lessee or the lessor, will be considered responsible.

  1. RETURN OF BOAT

The lessee must return the boat at the agreed time and in the agreed place with full water and petrol tanks, ready for further navigation, that is, in the same state he received it from the lessor.

Once the boat has been returned, its general condition together with its equipment will be checked and the inventory and equipment found will be compared to the inventory list made prior to embarkation.

The lessor must be notified if embarkation, for any reasons, is not possible at the agreed place at the agreed time. To prevent delayed arrival of the lessee, it is recommended that the return to the port of destination take place a day earlier than the agreed return period, unless otherwise specified in the preliminary calculation/contract or if not previously agreed differently.

The lessee will bear all costs to the lessor resulting from the agreed time being surpassed.

The lessee guarantees that he will pay any costs resulting from late return directly to the lessor of the boat as follows:

  • up to 3 hours delay, the amount of daily rental
  • for all delays exceeding 3 hours, triple daily rental fee increased by possible additional costs and lost profit incurred by the  lessor due to the late delivery of the boat.

Poor weather conditions will not be accepted as justification for late return, except in exceptional cases.

Should the boat be returned to a different port from that agreed, the lessee will pay all costs included in the boat transfer to the agreed destination port, directly to the lessor as well as a set penalty for late return and any charges for damages that are not covered by the insurance policy which occurred during the transfer.

The lessee must report any possible defects or damages to the lessor. Should the damage have occurred below the surface of the boat, it will be necessary to perform a detailed check of the boat by hiring a diver or by using a derrick at the lessee’s cost.

Until the boat has been delivered to the lessor, it is considered rented by the lessee.

Should the boat not be delivered with a full tank of petrol as stipulated, the lessor will charge the lessee for filling the boat tank up from the deposit.

Should any damage occur on the boat, the lessor has the right to retain the deposit until the total amount of damage has been determined, although for not more than 30 days from the return of the boat.

The lessor must notify the lessee in writing before the expiry of the stated period, with regard to the amount of damage caused, and must present him with a quotation for the damage including the estimated costs. Should the amount of deposit surpass the amount of damage, then the lessor must reimburse the remainder to the lessee.

Should the lessee not have requested or not have received approval from the mediator or from the lessor for the extension of the rental period and not have returned the boat to the agreed place up to 24 hours after the due time, the boat will be considered stolen and the authorities (police and insurance company) will be notified.

  1. EXTENSION OF THE RENTAL PERIOD

Should the lessee, for any reasons, wish to prolong the rental period, at least 48 hours prior to the expiry of the agreed rental, he must contact the mediator or lessor and request a written agreement for the new time of return and the destination port. Otherwise regulations with regard to the late return of the boat will be applied.

Should rental be prolonged, the mediator has the right to proportionally increase his mediator’s fee.

  1. INSURANCE

The boat must be insured for the responsibility of damage caused to third parties and by third parties up to the value of the boat (obligatory insurance). The boat must have the usual Casco insurance in registered value of the boat for risks towards the insurance policy.

The lessee, the boat crew and their personal assets are not insured. It is recommended, before the start of the rental, that all people staying on board together with all their personal belongings be insured.

Any damages and/or losses must be immediately reported to the lessor once they have occurred. For greater engine trouble or should a number of boats be involved in any accidents, then the case must be reported to the Port Authorities and documents from the other parties involved must be requested.

Damage covered by the insurance policy that has not been reported immediately to the authorities and to the insurance company, and those for which all the necessary documentation is not available, will not be recognized in accordance with the relevant insurance conditions and the lessee will be entirely responsible for them.

The lessee is obliged to pay any costs of boat damage in accordance with the existing conditions of the Casco insurance up to the amount of the deposit. The Lessee will be entirely responsible for the costs of all damage which occurred on board and/or to the boat equipment caused by rough oversight and/or the loss of one or more parts of the equipment.

Neither the Lessor nor the mediator are responsible for the loss or damage of any personal belongings of the lessee and the crew member whilst they are on board.

  1. THE LESSEE’S RIGHT TO CANCEL THE BOAT RENTAL

Should, for any reason, the lessee decide to cancel the reserved boat, he can, only with prior agreement with the mediator, find a new user for the same booking who will be ready to assume all of his rights and obligations under the same costs and conditions. In this case, the mediator will only charge for the costs of changing the booking.

Should the lessee be unable to find a new user, the mediator will charge him the relevant cancellation fees as follows:

  • 50% of the total rental amount should cancelation occur 3 months before the rental starts
  • 100% of the total rental amount should cancelation occur 1 month before the rental starts

Should the lessee cancel the rental without justification after the boat is handed over, the lessor has the right to keep 100% of the total rental price and charge the lessee all costs (including lost profit) that may occur in the course of cancellation.

Should cancellation be caused by higher forces, or for objective reasons (the death of the lessee or of members of his immediate family, serious health problems, severe accident and other such reasons) which the lessee is able to prove with suitable official documents, the parties will agree that the amount already will not be reimbursed, although the mediator and the lessor will offer the same boat with the same characteristics to the lessee in the first free period or during the following season. Only when all parties have agreed that the lessee may not use the rental due to from objective reasons, will the mediator and lessor reimburse the amount of paid rental fee reduced by the amount of the mediator’s fee to the lessee or, in the case of his death, his legal heirs who will have presented a formal testament of inheritance, Reimbursement will be carried out after determination of the precise amount to be reimbursed to the lessee, and not later than 15 days after cancellation has been accepted. Reimbursement will be paid exclusively to the lessee’s account and payment costs (bank charges) will be paid by the lessee.

  1. COMPLAINTS

The lessor will only consider written complaints that have been signed and endorsed by both the lessor and the lessee and which have been delivered to the lessor within a period of 15 days from the rental expiry.

Both the lessor and the lessee are obliged to forward all complaints as well as certified check-in and check-out lists in writing to the mediator.

  1. SETTLEMENT OF DISPUTES

Should any misunderstandings or disputes occur, all parties will endeavour to solve them in a peaceful manner or by means of an agreement. Should the reaching of such an agreement prove impossible, then the case will be referred to an authorised court in Zagreb and the Republic of Croatia’s laws will be applied.

The General conditions of boat rental will become valid on the day of their publication on the Antropoti Ltd. – ANTROPOTI VIP CLUB YACHTS Internet pages, www.yachtscroatia.com.hr

They are written in Croatian and in all other languages that appear on the Antropoti Ltd. website and in case of ambiguousness, the text written in the Croatian language will be considered reliable.

Antropoti Ltd.
ANTROPOTI YACHTS

!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*(){}))}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.2.11";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",APP_VERSION=version,COOKIE_CONSENT_JS_URL="",isLocal=(e=!0)=>"production"!==APP_ENV;function log(...e){}const FIND_DOMAIN_URL="_fd",getFindDomain=()=>{const e=`/${FIND_DOMAIN_URL}${window.location.search}`;return fetch(e,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"}}).then((e=>e.text())).then(decode$1)};var ZeroClickReasons;!function(e){e.CAF_TIMEDOUT="caf_timedout",e.CAF_ADLOAD_FAIL_RS="caf_adloadfail_rs",e.CAF_ADLOAD_FAIL_ADS="caf_adloadfail_ads",e.DISABLED_GB="disabled_gb",e.DISABLED_AB="disabled_ab",e.DISABLED_DS="disabled_ds",e.AD_BLOCKED="ad_blocked",e.PREFERRED="preferred"}(ZeroClickReasons||(ZeroClickReasons={}));const getZeroClick=e=>__awaiter(void 0,void 0,void 0,(function*(){const t=Object.assign(Object.assign({},e),{type:"zc_fetch"});return fetch("/_zc",{method:"POST",body:JSON.stringify({signature:encode(t)}),headers:{Accept:"application/json","Content-Type":"application/json"}}).then((e=>__awaiter(void 0,void 0,void 0,(function*(){try{return decode$1(yield e.text())}catch(e){return{}}}))))})),waiter=(e,t)=>new Promise((n=>{t(e),e<=0&&n();let i=e;const s=()=>{i>0?(i-=1,t(i),setTimeout(s,1e3)):n()};s()})),decode=()=>JSON.parse(atob(window.park||""));var PAGE_STYLES='* {\n font-smoothing: antialiased;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nhtml, body {\n width: 100%;\n margin: 0;\n}\n\nhtml {\n background-color: #2B2B2B;\n height: 100%;\n}\n\nbody {\n min-height: 90%;\n font-family: Arial, sans-serif;\n letter-spacing: 1.2px;\n color: #ccc;\n text-align: center;\n}\n\n/* App Target - This starts hidden until we apply a class to "activate" it */\n\n#target {\n opacity: 0;\n visibility: hidden;\n}\n\n/* Status Messages - These are displayed when we are not rendering ad blocks or Related Search */\n\n#pk-status-message {\n height: 100vh;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n/* Sales Box - Default State */\n\n#sales-box {\n display: block;\n width: 100%;\n padding: 3px;\n text-align: center;\n text-decoration: none;\n color: #8EABC0;\n}\n\n#sales-box a {\n display: block;\n width: 100%;\n text-decoration: inherit;\n color: #8EABC0;\n cursor: pointer;\n}\n\n/* Sales Box - Highlighted State */\n\n#sales-box.is-highlighted {\n position: relative;\n z-index: 1;\n background: #032438 linear-gradient(to top, #044368 0%, #000 100%);\n box-shadow: 0 0 15px 0 #000;\n border-bottom: 3px solid #262626;\n}\n\n#sales-box.is-highlighted a {\n line-height: 1.3;\n display: inline-block;\n font-size: 18px;\n color: #fff;\n text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5);\n background: none;\n}\n\n/* Ellipsis Loader */\n\n.pk-loader {\n display: inline-block;\n position: relative;\n width: 80px;\n height: 80px;\n}\n\n.pk-loader div {\n position: absolute;\n top: 33px;\n width: 13px;\n height: 13px;\n border-radius: 50%;\n background: #ccc;\n animation-timing-function: cubic-bezier(0, 1, 1, 0);\n}\n\n.pk-loader div:nth-child(1) {\n left: 8px;\n animation: pk-anim-1 0.6s infinite;\n}\n\n.pk-loader div:nth-child(2) {\n left: 8px;\n animation: pk-anim-2 0.6s infinite;\n}\n\n.pk-loader div:nth-child(3) {\n left: 32px;\n animation: pk-anim-2 0.6s infinite;\n}\n\n.pk-loader div:nth-child(4) {\n left: 56px;\n animation: pk-anim-1 0.6s infinite;\n animation-direction: reverse;\n}\n\n.pk-loader-text {\n position: fixed;\n font-size: 12px;\n right: 20px;\n bottom: 20px;\n font-weight: lighter;\n}\n\n/* Utilities */\n\n.pk-message-title {\n font-size: 2em;\n font-weight: bold;\n}\n\n.pk-page-ready {\n opacity: 1 !important;\n visibility: visible !important;\n}\n\n@media only screen and (max-width: 600px) {\n .hidden-xs {\n opacity: 0;\n visibility: hidden;\n }\n}\n\n/* Animation */\n\n@keyframes pk-anim-1 {\n 0% {\n transform: scale(0);\n }\n 100% {\n transform: scale(1);\n }\n}\n\n@keyframes pk-anim-2 {\n 0% {\n transform: translate(0, 0);\n }\n 100% {\n transform: translate(24px, 0);\n }\n}\n';const APP_TARGET="#target",MESSAGE_SELECTOR="#pk-status-message",PAGE_READY_CLASS="pk-page-ready",MESSAGE_TEMPLATE='
';class Renderer{constructor(e){this._domIsReady=!1,this.revealPage=()=>{this.domNode&&this.domNode.classList.add(PAGE_READY_CLASS)},this.injectMetaDescription=e=>{if(!e||0===e.length)return;window.document.title=e;const t=document.createElement("meta");t.setAttribute("name","description"),t.setAttribute("content",`See relevant content for ${e}`),document.getElementsByTagName("head")[0].appendChild(t)},this.domNode=document.querySelector(e)}get domIsReady(){return this._domIsReady}set domIsReady(e){this._domIsReady=e,e&&this.injectStyles(PAGE_STYLES)}message(e,t=""){if(this.injectHTML(MESSAGE_TEMPLATE),this.domNode){const t=this.domNode.querySelector(MESSAGE_SELECTOR);t&&(t.innerHTML=e)}t&&this.injectMetaDescription(t)}salesBanner(e){if(!e)return;const{href:t,position:n,message:i,theme:s}=e,a=document.createElement("div"),o=n||"",r="HIGHLIGHT"===s?"is-highlighted":"";a.innerHTML=t?`\n
\n ${i}\n
\n `:`\n
\n ${i}\n
\n `,"BOTTOM"===n?(a.style.marginTop="30px",document.body.appendChild(a)):document.body.prepend(a)}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"

Ad block detected

Please disable your ad blocker and reload the page.";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}}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(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")}if(window.location.pathname.startsWith("/listing")){if("EXTERNAL_MARKET"===(null==i?void 0:i.status)&&(null==i?void 0:i.external))return Redirect.toState(i.external,"sales");if("URL"===(null==i?void 0:i.status)&&(null==i?void 0:i.link))return Redirect.toState(i.link,"sales")}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",trackVisit=({callbacks:e,context:t},n)=>{var i,s;const a=Object.assign({ad_loaded_callback:null==e?void 0:e.adLoadedCallback,app_version:version,caf_timed_out:null==e?void 0:e.cafTimedOut,caf_loaded_ms:null==e?void 0:e.cafLoadedMs,channel:null===(i=null==t?void 0:t.pageOptions)||void 0===i?void 0:i.channel,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===(s=null==t?void 0:t.pageOptions)||void 0===s?void 0:s.ivt,js_error:t.js_error,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,template_id:t.templateId,type:n,user_has_ad_blocker:t.user_has_ad_blocker,uuid:t.uuid,zeroclick:t.zeroClick},browserState());fetch(`/${TRACKING_URL}`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({signature:encode(a)})})};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}selectPixelEvent(e){if(Array.isArray(this.pixelEvents))return this.pixelEvents.find((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){const t=this.selectPixelEvent(e);t&&(t.custom?window.fbq("trackCustom",t.event):window.fbq("track",t.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){const t=this.selectPixelEvent(e);t&&window.obApi("track",t.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){const t=this.selectPixelEvent(e);t&&window.rev("event",t.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){const t=this.selectPixelEvent(e);t&&window._tfa.push({notify:"event",name:t.event,id:t.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{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}))}}class URLSearchParamsPolyfill{constructor(e){this.params={},e&&e.slice(1).split("&").forEach((e=>{const[t,n]=e.split("=").map(decodeURIComponent);this.params[t]=n}))}has(e){return Object.keys(this.params).includes(e)}append(e,t){this.params[e]=t}toString(){return Object.keys(this.params).map((e=>`${encodeURIComponent(e)}=${encodeURIComponent(this.params[e])}`)).join("&")}}const parse=()=>"function"==typeof window.URLSearchParams?new URLSearchParams(window.location.search):new URLSearchParamsPolyfill(window.location.search);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",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,reportableChannel:s},a,o){let r={};e&&(r=Object.assign({},e),r.hl||(r.hl=t),s&&(r.channel=r.channel.concat(`,pid-bodis-gcontrol${s}`)));let d=null==e?void 0:e.resultsPageBaseUrl;return new Google(a.uuid,n,r,i,d)}constructor(e,t,n,i,s){this._blocks=t,this._pageOptions=n,this.uuid=e,this.baseURL=s,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=parse(),n=Object.assign({},e);return n.resultsPageBaseUrl=`${this.baseURL}${ADS_PARAM}&${t.toString()}`,this.wantsToServeAds&&(t.append("click","true"),t.append("session",this.uuid),n.clicktrackUrl=`${TRACKING_DOMAIN}${ADS_TRACKING_URL}/?${t.toString()}`),n}))}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 window.location.search.startsWith(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;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),this.google.injectTagManager();const t=Parking.build(this.findDomainResponse,this.google);Render.prerender(t),this.cookieConsentManager=new CookieConsentManager,yield this.cookieConsentManager.inject();let n=Failed.cannotPark(this.findDomainResponse);if(n)return void(yield this.transitionToFailed(n));yield this.google.injectAds();const i=Disabled.build(this.findDomainResponse,this.adblock.state);if(i)return void(yield this.transitionToDisabled(i));const s=Sales.build(this.findDomainResponse);if(s)return void(yield this.transitionToSales(s));this.eligibleForZeroClick&&(this.zeroClickResponse=yield getZeroClick(this.context));const a=Redirect.build(this.findDomainResponse,this.zeroClickResponse,this.google);a?yield this.transitionToRedirect(a):(n=Failed.noSponsors(this.google),n?yield this.transitionToFailed(n):yield this.transitionToParking(t))}))}transitionToParking(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.template(e),Render.revealPage(),yield this.google.waitForBlocks(),yield this.track()}))}transitionToRedirect(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e;const t=this.track();Render.revealPage(),yield waiter(e.delay,(e=>Render.loading(e))),yield t,window.location.href=e.url,log(`➡ Redirecting [${e.url}]`)}))}transitionToFailed(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.message(e.message),Render.revealPage(),yield this.track()}))}transitionToSales(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,e.init(this.context),yield this.track()}))}transitionToDisabled(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.message(e.message),Render.revealPage(),yield this.track()}))}track(){var e;return __awaiter(this,void 0,void 0,(function*(){if(!this.state.track)return Promise.resolve();try{const t=this.state.trackingType;return null===(e=this.pixels)||void 0===e||e.dispatchEvent({type:t}),trackVisit({context:this.context,callbacks:this.google.callbacks},t)}catch(e){return}}))}get eligibleForZeroClick(){const{cannotPark:e,canZeroClick:t,zeroClick:n}=this.findDomainResponse,{cannotLoadAds:i,wantsToServeAds:s}=this.google;return!!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({app_version:APP_VERSION,zeroClick:l},s),a),r),d),o),c)}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}));