1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2989],{2013:(e,t,r)=>{r.d(t,{EJ:()=>p,yR:()=>h,SC:()=>C,vx:()=>A});var n=r(95155),a=r(12115),i=r(20063);let o=[/^(https?:)?\/\//,/^mailto:/i,/^tel:/i,/^sms:/i,/^whatsapp:/i,/^skype:/i,/^ftp:/i,/^file:/i,/^#/],c=new Set(["session","token","secret","key","password","auth","api_key","apikey","access_token","refresh_token","currency"]),u=new Set(["utm_source","utm_medium","utm_campaign","utm_term","utm_content","utm_id","gclid","fbclid","msclkid","dclid"]);function s(e){if(!e)return!1;let t=e.trim();for(let e of o)if(e.test(t)){if(t.startsWith("//")||/^mailto:|^tel:|^sms:|^whatsapp:|^skype:/i.test(t))return!0;if(t.startsWith("#")&&t.length>1)return!1;return!0}return!1}function l(e){if(!e)return"";let t=e.indexOf("#"),r=e.indexOf("?");if(-1!==t&&-1!==r&&r>t)return e.substring(r);try{return new URL(e,"http://localhost").search}catch{if(-1===r)return"";if(-1===t)return e.substring(r);return e.substring(r,t)}}function d(e){let t={};return e&&"?"!==e&&new URLSearchParams(e.startsWith("?")?e.substring(1):e).forEach((e,r)=>{let n=t[r];n?Array.isArray(n)?n.push(e):t[r]=[n,e]:t[r]=e}),t}function m(e){let t,{href:r,currentUrl:n,options:a={}}=e;if(!r)return{url:n||"/",isExternal:!1,href:n||"/"};let i=r.trim();if(s(i))return{url:i,isExternal:!0,href:i};if(i.startsWith("#")&&i.length>1){let e=(n||window.location.href).split("#"),t=e[0],r=e.slice(1).join("#"),[a]=t.split("?"),o="",c=t.indexOf("?");if(-1!==c)o=t.substring(c);else{let e=r.indexOf("?");-1!==e&&(o=r.substring(e))}return{url:`${a}${i}${o}`,isExternal:!1,href:`${a}${i}${o}`}}let o=function(e){if(!e)return"";let t=e.trim();return t.startsWith("/")||t.startsWith("http")||t.startsWith("#")||t.startsWith("mailto")||t.startsWith("tel")?t:`/${t}`}(i),m=function(e){if(!e)return"";try{return new URL(e,"http://localhost").pathname}catch{let t=e.indexOf("#"),r=e.indexOf("?");if(-1===r&&-1===t)return e;let n=-1===r?t:-1===t?r:Math.min(r,t);return e.substring(0,n)}}(o),h=function(e){if(!e)return"";let t=e.indexOf("#");if(-1===t)return"";let r=e.substring(t+1),n=r.indexOf("?");return -1!==n?"#"+r.substring(0,n):e.substring(t)}(o)||a.hash||"",y=l(o);if(m.includes("#")){let[e,t]=m.split("#");m=e,h=t?`#${t}`:""}else h&&!h.startsWith("#")&&(h=`#${h}`);let g=d(l(n||window.location.href||"/"));t=y?d(y):{};let p=[];Object.entries(t).forEach(([e,t])=>{p.push([e,t])});let P=new Set(Object.keys(t));if(a.replace||Object.entries(g).forEach(([e,t])=>{c.has(e.toLowerCase())||P.has(e)||p.push([e,t])}),a.query&&Object.entries(a.query).forEach(([e,t])=>{if(void 0!==t){let r=p.findIndex(([t])=>t===e);-1!==r?p[r]=[e,t]:p.push([e,t])}}),a.exclude){let e=new Set(a.exclude.map(e=>e.toLowerCase())),t=p.filter(([t])=>!e.has(t.toLowerCase()));p.length=0,p.push(...t)}a.query&&Object.entries(a.query).forEach(([e,t])=>{if(u.has(e.toLowerCase())&&void 0!==t){let r=p.findIndex(([t])=>t===e);-1!==r?p[r]=[e,t]:p.push([e,t])}});let f={};p.forEach(([e,t])=>{f[e]=t});let C=function(e){let t=[];return Object.entries(e).forEach(([e,r])=>{null!=r&&(Array.isArray(r)?r.forEach(r=>{null!=r&&t.push(""===r?encodeURIComponent(e):`${encodeURIComponent(e)}=${encodeURIComponent(r)}`)}):t.push(""===r?encodeURIComponent(e):`${encodeURIComponent(e)}=${encodeURIComponent(r)}`))}),t.length>0?`?${t.join("&")}`:""}(f),A=m;return h&&(A+=h),C&&"?"!==C&&(A+=C),{url:A,isExternal:!1,href:A}}function h(e,t,r){return m({href:e,currentUrl:t,options:r}).url}var y=r(52619),g=r.n(y);function p({href:e,query:t,exclude:r,hash:o,replace:c=!1,external:u,children:s,onClick:l,target:d,rel:h,className:y,style:p,title:P,id:f,"aria-label":C,"aria-disabled":A,...S}){let w=(0,i.useRouter)(),I=(0,i.usePathname)(),[b,L]=(0,a.useState)(!1);(0,a.useEffect)(()=>{L(!0)},[]);let E=b?window.location.href:I||"/",$=(0,a.useMemo)(()=>m({href:e,currentUrl:E,options:{query:t,exclude:r,hash:o,replace:c}}),[e,E,t,r,o,c]),v=(0,a.useMemo)(()=>void 0!==u?u:$.isExternal,[u,$.isExternal]),x="_blank"===d,D=(0,a.useCallback)(e=>{if(!l||(l(e),!e.defaultPrevented))v||!x&&c&&(e.preventDefault(),w.replace($.href,{scroll:!0}))},[l,v,c,w,$.href,x]);if(v)return(0,n.jsx)("a",{href:$.href,target:d,rel:h||("_blank"===d?"noopener noreferrer":void 0),className:y,style:p,title:P,id:f,"aria-label":C,"aria-disabled":A,onClick:l,...S,children:s});if(x)return(0,n.jsx)("a",{href:$.href,target:"_blank",rel:h||"noopener noreferrer",className:y,style:p,title:P,id:f,"aria-label":C,"aria-disabled":A,onClick:l,...S,children:s});let[_,R]=$.href.split("?");return(0,n.jsx)(g(),{href:`${_}${R?`?${R}`:""}`,replace:c,className:y,style:p,title:P,id:f,"aria-label":C,"aria-disabled":A,onClick:D,...S,children:s})}let P=new Set([" "," ","\n","\r","\f"]),f=new Set(['"',"'"]);function C(e,t,r){return e?function(e,t,r){let n=function(e){let t=[],r=0;for(;r<e.length;){let n=e.indexOf("<",r);
1if(-1===n)break;let a=e.substring(n+1).toLowerCase();if(!a.startsWith("a ")&&!a.startsWith("a>")){r=n+1;continue}let i=function(e,t){let r=t;for(;r<e.length;){let t=e[r];if('"'===t||"'"===t){for(r++;r<e.length&&e[r]!==t;)r++;r++}else{if(">"===t)return r;r++}}return -1}(e,n);if(-1===i)break;let o=function(e){let t=e.toLowerCase(),r=t.indexOf("href=");if(-1===r)return null;if(r>0){if("h"!==t[r])return null;let n=e[r-1];if(n&&!P.has(n)&&"/"!==n&&">"!==n)return null}let n=function(e,t){let r=t;for(;r<e.length&&P.has(e[r]);)r++;if(r>=e.length)return null;let n=e[r];if(!f.has(n)){let t=r;for(;t<e.length;){let r=e[t];if(P.has(r)||">"===r||"/"===r)break;t++}return{value:e.substring(r,t),quote:"",endPos:t}}let a=++r;for(;r<e.length&&e[r]!==n;)r++;let i=r;return r++,{value:e.substring(a,i),quote:n,endPos:r}}(e,r+5);if(!n)return null;let a=n.endPos,i=e.substring(r,a);return{href:n.value,quote:n.quote||void 0,hrefAttrString:i}}(e.substring(n+1,i));if(o){let r=e.substring(i+1).match(/<\/a>/i),a="";if(r&&void 0!==r.index){let t=r.index;a=e.substring(n,i+1+t+r[0].length)}else a=e.substring(n,i+1);t.push({openStart:n,openEnd:i+1,fullMatch:a,href:o.href,quote:o.quote,hrefAttrString:o.hrefAttrString})}r=i+1}return t}(e);if(0===n.length)return e;let a=e;for(let e=n.length-1;e>=0;e--){let i=n[e];if(s(i.href)){let e=a.substring(i.openStart,i.openEnd);if(e.includes('target="_blank"')&&!e.includes("rel=")){let t=e.replace('target="_blank"','target="_blank" rel="noopener noreferrer"');a=a.substring(0,i.openStart)+t+a.substring(i.openEnd)}continue}let o=m({href:i.href,currentUrl:t,options:r}),c=i.quote||'"',u=i.hrefAttrString.match(/^([a-zA-Z][a-zA-Z0-9-_:.]*)=/),l=u?u[1]:"href",d=`${l}=${c}${o.href}${c}`,h=a.substring(i.openStart,i.openEnd).replace(i.hrefAttrString,d);a=a.substring(0,i.openStart)+h+a.substring(i.openEnd)}return a}(e,t||window.location.href,r):e}let A=(e,t,r,n="push")=>{e[n]({pathname:e.pathname,query:t},r,{shallow:!0})}},8730:(e,t,r)=>{r.d(t,{A:()=>o,M:()=>i});var n=r(12115);let a=(0,n.createContext)(null),i=()=>{let e=(0,n.useContext)(a);return{...e,asset:t=>t.startsWith("/")?`${e.bpdAssetsBaseUrl}${t}`:t,localAsset:t=>t.startsWith("/")?`https://${e.host}${t}`:t,shouldShowReviewsIoSection:e?.reviewsIoSection,shouldShowMillionDollarLandingPage:e?.millionDollarLandingPage,shouldShowPopUp:e?.popUpEnabled,priceFromFetchPeriodDays:e?.priceFromFetchPeriodDays,priceFromFetchPeriodDaysPerProviders:e?.priceFromFetchPeriodDaysPerProviders,isRefundableBookingEnabled:e?.isRefundableBookingEnabled,shouldShowNewSearchByDate:e?.isNewSearchByDateEnabled,isDisplayTimeSelectorOnCalendar:e?.isDisplayTimeSelectorOnCalendar,productIdsWithTimeSelector:e?.productIdsWithTimeSelector}},o=a.Provider},9763:(e,t,r)=>{r.d(t,{Tk:()=>a});var n=r(80207);let a=(0,n.J1)` 2 query ClientInfo($host: String!) { 3 clientInfo(host: $host) { 4 clientIP 5 countryName 6 cityName 7 isoCountryCode 8 timeZone 9 subdivisionName 10 currencyCode 11 } 12} 13 `},20377:(e,t,r)=>{r.d(t,{D:()=>a});let n={BACKPACKER_DEALS:"backpackerdeals",TRAVELLO:"travello",FLIGHT_CENTRE:"flightcentre",GAP_360:"gap360",SPACESHIPS:"spaceships",WIKICAMPS:"wikicamps",SYDNEY_EXPERT:"sydneyexpert",YHA:"yha",JUCY:"jucy",LOLA_BUBNER:"lolahubner",THE_BOUTIQUE_COLLECTION:"theboutiquecollection",TRAVEL_ASSOCIATES:"travelassociates",ISSY:"issy",AUSTRALIA_YOUR_WAY:"australia-your-way",CAIRNS:"cairns",CMR:"cmr",STUDENTS:"students",BROWNS:"browns",AUS_TRAVEL_TIPS:"austraveltips",LPK:"lpk",BARMY_ARMY:"barmyarmy",LINK_AIRWAYS:"linkairways",WAKACAMPA:"wakacampa",AWESOME_CAMPERS:"awesomecampers"},a=e=>{let t={[n.BACKPACKER_DEALS]:["backpackerdeals"],[n.TRAVELLO]:["travello"],[n.FLIGHT_CENTRE]:["flightcentre"],[n.GAP_360]:["gap360"],[n.SPACESHIPS]:["spaceships"],[n.WIKICAMPS]:["wikicamps"],[n.SYDNEY_EXPERT]:["sydneyexpert"],[n.YHA]:["yha"],[n.JUCY]:["jucy"],[n.LOLA_BUBNER]:["lolahubner"],[n.THE_BOUTIQUE_COLLECTION]:["theboutiquecollection"],[n.TRAVEL_ASSOCIATES]:["travelassociates"],[n.ISSY]:["issy"],[n.AUSTRALIA_YOUR_WAY]:["australiayourway"],[n.CAIRNS]:["cairns"],[n.CMR]:["cmr"],[n.STUDENTS]:["students"],[n.BROWNS]:["browns"],[n.AUS_TRAVEL_TIPS]:["austraveltips"],[n.LPK]:["lpk"],[n.BARMY_ARMY]:["barmyarmy"],[n.LINK_AIRWAYS]:["linkairways"],[n.WAKACAMPA]:["wakacampa"],[n.AWESOME_CAMPERS]:["awesomecampers"]},r=r=>t[r].includes(e);return{isBackpackerdealsChannel:r(n.BACKPACKER_DEALS),isTravelloChannel:r(n.TRAVELLO),isMasterChannel:r(n.BACKPACKER_DEALS)||r(n.TRAVELLO),isFlightCentreChannel:r(n.FLIGHT_CENTRE),isGap360Channel:r(n.GAP_360),isSpaceShipsChannel:r(n.SPACESHIPS),isWikiCampsChannel:r(n.WIKICAMPS),isSydneyExpertChannel:r(n.SYDNEY_EXPERT),isYhaChannel:r(n.YHA),isJucyChannel:r(n.JUCY),isLolaHubnerChannel:r(n.LOLA_BUBNER),isBoutiqueCollectionChannel:r(n.THE_BOUTIQUE_COLLECTION),isTravelAssociatesChannel:r(n.TRAVEL_ASSOCIATES),isIssyChannel:r(n.ISSY),isAustraliaYourWayChannel:r(n.AUSTRALIA_YOUR_WAY),isCairnsChannel:r(n.CAIRNS),isCmrChannel:r(n.CMR),isStudentsChannel:r(n.STUDENTS),isBrownsChannel:r(n.BROWNS),isAustraveltipsChannel:r(n.AUS_TRAVEL_TIPS),isLpkChannel:r(n.LPK),isBarmyArmyChannel:r(n.BARMY_ARMY),isLinkAirwaysChannel:r(n.LINK_AIRWAYS),isWakacampaChannel:r(n.WAKACAMPA),isAwesomeCampersChannel:r(n.AWESOME_CAMPERS)}}},27805:(e,t,r)=>{r.d(t,{Gu:()=>i});var n=r(78231);r(12115);
13let a={sm:480,md:768,lg:1024,xl:1140,xxl:1400,navXl:1149,lgSearch:992},i=()=>{let e=(0,n.A)(`(min-width: ${a.lgSearch}px)`,!1),t=(0,n.A)(`(min-width: ${a.navXl}px)`,!1),r=(0,n.A)(`(min-width: ${a.xxl}px)`,!1),i=(0,n.A)(`(min-width: ${a.xl}px)`,!1),o=(0,n.A)(`(min-width: ${a.lg}px)`,!1);return{lgSearchUp:e,navXlUp:t,xxlUp:r,xlUp:i,lgUp:o,mdUp:(0,n.A)(`(min-width: ${a.md}px)`,!1),smUp:(0,n.A)(`(min-width: ${a.sm}px)`,!0)}}},32085:(e,t,r)=>{r.d(t,{WM:()=>x,pV:()=>b});var n=r(80207);let a=(0,n.J1)` 14 fragment ImageCard on Image { 15 id 16 card500: imgSrc(transform: {width: 500, height: 300, withoutHost: true}) 17 ogImage: fileName 18 fileName 19 altText 20} 21 `;(0,n.J1)` 22 fragment CityCard on BPD_City { 23 id 24 name 25 uniqueName 26 uri { 27 url 28 } 29 productCount 30 image { 31 ...ImageCard 32 } 33} 34 ${a}`,(0,n.J1)` 35 fragment CityCardV2 on ProductCityWithStatistic { 36 id 37 city { 38 id 39 name 40 uniqueName 41 uri { 42 url 43 } 44 image { 45 ...ImageCard 46 } 47 metaData { 48 priority 49 } 50 country { 51 id 52 name 53 uniqueName 54 } 55 } 56 productCount 57} 58 ${a}`,(0,n.J1)` 59 fragment CategoryCard on BPD_Category { 60 id 61 uri { 62 url 63 } 64 name 65 uniqueName 66 productCount 67 image { 68 ...ImageCard 69 } 70} 71 ${a}`,(0,n.J1)` 72 fragment CategoryCardV2 on ProductCategoryWithStatistic { 73 id 74 category { 75 id 76 name 77 uniqueName 78 uri { 79 url 80 } 81 image { 82 id 83 ...ImageCard 84 } 85 metaData { 86 priority 87 } 88 } 89 productCount 90} 91 ${a}`,(0,n.J1)` 92 fragment CountryCard on BPD_Country { 93 id 94 name 95 uniqueName 96 uri { 97 url 98 } 99 productCount 100 image { 101 ...ImageCard 102 } 103} 104 ${a}`,(0,n.J1)` 105 fragment CountryCardV2 on ProductCountryWithStatistic { 106 id 107 country { 108 id 109 name 110 uniqueName 111 uri { 112 url 113 } 114 image { 115 ...ImageCard 116 } 117 } 118 productCount 119} 120 ${a}`;let i=(0,n.J1)` 121 fragment HeroImage on Image { 122 id 123 top3000: imgSrc(transform: {width: 3000, height: 750, withoutHost: true}) 124 top2400: imgSrc(transform: {width: 2400, height: 2400, withoutHost: true}) 125 top1600: imgSrc(transform: {width: 1600, height: 1600, withoutHost: true}) 126 top1400: imgSrc(transform: {width: 1400, height: 1400, withoutHost: true}) 127 top1200: imgSrc(transform: {width: 1200, height: 375, withoutHost: true}) 128 top1140: imgSrc(transform: {width: 1140, height: 1140, withoutHost: true}) 129 top1024: imgSrc(transform: {width: 1024, height: 1024, withoutHost: true}) 130 top800: imgSrc(transform: {width: 800, height: 800, withoutHost: true}) 131 top768: imgSrc(transform: {width: 768, height: 768, withoutHost: true}) 132 top500: imgSrc(transform: {width: 500, height: 500, withoutHost: true}) 133 top480: imgSrc(transform: {width: 480, height: 480, withoutHost: true}) 134 altText 135 fileName 136} 137 `,o=(0,n.J1)` 138 fragment ProductImage on ProductImage { 139 image { 140 ...HeroImage 141 } 142 isMainImage 143 position 144 productImageId 145 title 146 status 147} 148 ${i}`,c=(0,n.J1)` 149 fragment ProductLocation on ProductLocation { 150 city 151 country 152} 153 `,u=(0,n.J1)` 154 fragment ProductPartnerImage on Image { 155 id 156 partnerLogo: imgSrc(transform: {width: 250, height: 250, withoutHost: true}) 157 altText 158 fileName 159} 160 `,s=(0,n.J1)` 161 fragment ProductPartner on Merchant { 162 id 163 name 164 email 165 website 166 otherInfo 167 salesEmail 168 companyLogo { 169 ...ProductPartnerImage 170 } 171 companyName 172 companyPhone 173 contactNumber 174 accountsEmail 175 contactPerson 176} 177 ${u}`,l=(0,n.J1)` 178 fragment ProductMoney on Money { 179 currencyCode 180 amount 181 convertedAmount(currencyCode: $currencyCode) 182} 183 `,d=(0,n.J1)` 184 fragment ProductLegacyPrice on ProductLegacyPrice { 185 price { 186 ...ProductMoney 187 } 188 value { 189 ...ProductMoney 190 } 191 type 192} 193 ${l}`,m=(0,n.J1)` 194 fragment ProductLegacyDisplayPrice on ProductLegacyDisplayPrice { 195 adultPrice { 196 ...ProductLegacyPrice 197 } 198 childPrice { 199 ...ProductLegacyPrice 200 } 201 familyPrice { 202 ...ProductLegacyPrice 203 } 204} 205 ${d}`,h=(0,n.J1)` 206 fragment ProductLegacy on ProductLegacy { 207 priceFrom { 208 ...ProductMoney 209 } 210 displayPrice { 211 ...ProductLegacyDisplayPrice 212 } 213 recommendedRetailPrice { 214 ...ProductMoney 215 } 216 shortId 217 updatedAt 218 subheader 219 countDownLimit 220 excludedBookingInfo 221 bookingUrl 222 openDatedBooking 223 showMerchant 224 hasNoIndexMetaTag 225 hidePickupOnFrontend 226 isDisplayGooglePay 227 isDisplayPaypal 228 isDisplayApplePay 229 isDisplayAfterpay 230 defaultDeparturePoint 231 isDisplayHotelPickupWarning 232} 233 ${l} 234${m}`,y=(0,n.J1)` 235 fragment ProductDiscountAmount on ProductDiscount { 236 discountAmount { 237 currencyCode 238 convertedAmount(currencyCode: $targetCurrency) 239 } 240} 241 `,g=(0,n.J1)` 242 fragment ProductVariantMoney on Money { 243 currencyCode 244 amount 245 convertedAmount(currencyCode: $targetCurrency) 246} 247 `,p=(0,n.J1)` 248 fragment ProductVariantPartner on Merchant { 249 id 250 name 251 email 252 website 253 otherInfo 254 salesEmail 255 companyLogo { 256 ...ProductPartnerImage 257 } 258 companyName 259 companyPhone 260 contactNumber 261 accountsEmail 262 contactPerson 263} 264 ${u}`,P=(0,n.J1)` 265 fragment ProductVariantLegacyPrice on ProductLegacyPrice { 266 price { 267 ...ProductVariantMoney 268 } 269 value { 270 ...ProductVariantMoney 271 } 272 type 273} 274 ${g}`,f=(0,n.J1)` 275 fragment ProductVariantLegacyDisplayPrice on ProductLegacyDisplayPrice { 276 adultPrice { 277 ...ProductVariantLegacyPrice 278 } 279 childPrice { 280 ...ProductVariantLegacyPrice 281 } 282 familyPrice { 283 ...ProductVariantLegacyPrice 284 } 285} 286 ${P}`,C=(0,n.J1)` 287 fragment ProductVariantLegacy on ProductLegacy { 288 priceFrom { 289 ...ProductVariantMoney 290 } 291 displayPrice { 292 ...ProductVariantLegacyDisplayPrice 293 } 294 recommendedRetailPrice { 295 ...ProductVariantMoney 296 } 297 shortId 298 updatedAt 299 subheader 300 countDownLimit 301 excludedBookingInfo 302 bookingUrl 303 openDatedBooking 304 showMerchant 305 hasNoIndexMetaTag 306 hidePickupOnFrontend 307 isDisplayGooglePay 308 isDisplayPaypal 309 isDisplayApplePay 310 isDisplayAfterpay 311 defaultDeparturePoint 312 isDisplayHotelPickupWarning 313} 314 ${g} 315${f}`,A=(0,n.J1)` 316 fragment VariantProduct on Product { 317 productId 318 resSystemType 319 title 320 status 321 nextAvailableDate 322 discounts { 323 ...ProductDiscountAmount 324 } 325 priceFrom { 326 ...ProductVariantMoney 327 } 328 priceFromAnP { 329 ...ProductVariantMoney 330 }
331 pickupDetails { 332 locationTitle 333 } 334 shortDescription { 335 text 336 } 337 labels 338 partner { 339 ...ProductVariantPartner 340 } 341 duration { 342 label 343 maxDuration 344 minDuration 345 } 346 uri { 347 slug 348 url 349 } 350 legacy { 351 ...ProductVariantLegacy 352 } 353} 354 ${y} 355${g} 356${p} 357${C}`,S=(0,n.J1)` 358 fragment ProductPageProduct on Product { 359 productId 360 resSystemType 361 priceFrom { 362 amount 363 convertedAmount 364 currencyCode 365 } 366 priceFromAnP { 367 amount 368 convertedAmount 369 currencyCode 370 } 371 nextAvailableDate 372 address { 373 address 374 } 375 categories { 376 category { 377 id 378 image { 379 altText 380 banner: fileName 381 } 382 name 383 uniqueName 384 } 385 isMainCategory 386 } 387 bookingRequired 388 title 389 status 390 instantConfirmation 391 itinerary { 392 itineraryItems { 393 description { 394 text 395 } 396 locationTitle 397 title 398 } 399 tourEndLocationTitle 400 tourStartLocationTitle 401 } 402 images { 403 productImages { 404 ...ProductImage 405 } 406 } 407 uri { 408 country 409 city 410 slug 411 url 412 } 413 location { 414 ...ProductLocation 415 } 416 ratingScore 417 totalReviews 418 shortDescription { 419 text 420 } 421 pickupDetails { 422 locationTitle 423 } 424 termsAndConditions { 425 text 426 } 427 exclusions { 428 text 429 } 430 faqs { 431 question 432 answer { 433 text 434 } 435 } 436 fullDescription { 437 text 438 } 439 labels 440 supplierTermsAndConditions { 441 text 442 } 443 benefits { 444 text 445 } 446 cancellationPolicy { 447 text 448 } 449 videoLinks 450 icons { 451 hints 452 name 453 src 454 value 455 } 456 travelInstructions { 457 text 458 } 459 enquireOnly 460 partner { 461 ...ProductPartner 462 } 463 duration { 464 label 465 maxDuration 466 minDuration 467 } 468 legacy { 469 ...ProductLegacy 470 } 471 variantProducts { 472 ...VariantProduct 473 } 474 recentReviews { 475 id 476 ratingScore 477 reviewCreatedAt 478 text 479 title 480 userName 481 } 482 skuProduct: bpd_shortId 483} 484 ${o} 485${c} 486${s} 487${h} 488${A}`;(0,n.J1)` 489 fragment ProductPage on BPD_ProductPage { 490 id 491 product { 492 ...ProductPageProduct 493 } 494} 495 ${S}`,(0,n.J1)` 496 fragment LevyFields on Levy { 497 label 498 value { 499 amount 500 currencyCode 501 } 502} 503 `,(0,n.J1)` 504 fragment TravelloPriceFields on TravelloPrice { 505 seatUsed 506} 507 `;let w=(0,n.J1)` 508 fragment ProductPaymentOptions on BPD_PaymentOptions { 509 laybuy 510 braintree 511 afterpay { 512 region 513 order_minimum 514 order_maximum 515 } 516} 517 `,I=(0,n.J1)` 518 fragment Product on Product { 519 productId 520 resSystemType 521 title 522 labels 523 enquireOnly 524 partner { 525 ...ProductVariantPartner 526 } 527 duration { 528 label 529 maxDuration 530 minDuration 531 } 532 uri { 533 slug 534 url 535 } 536 nextAvailableDate 537 recommendedRetailPrice { 538 ...ProductVariantMoney 539 } 540 priceFrom { 541 ...ProductVariantMoney 542 } 543 priceFromAnP { 544 ...ProductVariantMoney 545 } 546 discounts { 547 ...ProductDiscountAmount 548 } 549 variantProducts { 550 ...VariantProduct 551 } 552 parentProduct { 553 productId 554 requireAdultFareForChild 555 } 556 legacy { 557 ...ProductVariantLegacy 558 } 559 cashbackAmount { 560 ...ProductVariantMoney 561 } 562 requireAdultFareForChild 563} 564 ${p} 565${g} 566${y} 567${A} 568${C}`;(0,n.J1)` 569 query ProductDiscounts($productId: String!, $targetCurrency: String!) { 570 product(productId: $productId) { 571 productId 572 discounts { 573 ...ProductDiscountAmount 574 } 575 } 576} 577 ${y}`,(0,n.J1)` 578 query PaymentOptions($host: String!, $pathname: String!) { 579 bpd_page(host: $host, pathname: $pathname) { 580 id 581 ... on BPD_ProductPage { 582 paymentOptions { 583 ...ProductPaymentOptions 584 } 585 } 586 } 587} 588 ${w}`,(0,n.J1)` 589 query Product($productId: String!, $targetCurrency: String!) { 590 product(productId: $productId, targetCurrency: $targetCurrency) { 591 ...Product 592 } 593} 594 ${I}`;let b=(0,n.J1)` 595 fragment ProductCardImage on Image { 596 id 597 card_2x: imgSrc(transform: {width: 500, height: 500, withoutHost: true}) 598 card_1x: imgSrc(transform: {width: 300, height: 300, withoutHost: true}) 599 card: imgSrc(transform: {width: 250, height: 250, withoutHost: true}) 600 altText 601} 602 `,L=(0,n.J1)` 603 fragment ProductCardMoney on Money { 604 currencyCode 605 amount 606 convertedAmount(currencyCode: $targetCurrency) 607} 608 `,E=(0,n.J1)` 609 fragment ProductCardLegacyPrice on ProductLegacyPrice { 610 price { 611 ...ProductCardMoney 612 } 613 value { 614 ...ProductCardMoney 615 } 616 type 617} 618 ${L}`,$=(0,n.J1)` 619 fragment ProductCardLegacyDisplayPrice on ProductLegacyDisplayPrice { 620 adultPrice { 621 ...ProductCardLegacyPrice 622 } 623 childPrice { 624 ...ProductCardLegacyPrice 625 } 626 familyPrice { 627 ...ProductCardLegacyPrice 628 } 629} 630 ${E}`,v=(0,n.J1)` 631 fragment ProductCardLegacy on ProductLegacy { 632 priceFrom { 633 ...ProductCardMoney 634 } 635 displayPrice { 636 ...ProductCardLegacyDisplayPrice 637 } 638 recommendedRetailPrice { 639 ...ProductCardMoney 640 } 641 countDownLimit 642 hasNoIndexMetaTag 643 hidePickupOnFrontend 644} 645 ${L} 646${$}`,x=(0,n.J1)` 647 fragment ProductCard on Product { 648 productId 649 title 650 images(first: 1) { 651 productImages { 652 image { 653 ...ProductCardImage 654 } 655 } 656 } 657 location { 658 country 659 city 660 } 661 uri { 662 country 663 city 664 url 665 } 666 priceFrom { 667 ...ProductCardMoney 668 } 669 discounts { 670 discountType 671 discountAmount { 672 convertedAmount 673 currencyCode 674 amount 675 } 676 displayName 677 } 678 saveDiscountAmount { 679 ...ProductCardMoney 680 } 681 totalReviews 682 ratingScore 683 labels 684 duration { 685 label 686 maxDuration 687 minDuration 688 } 689 legacy { 690 ...ProductCardLegacy 691 } 692 totalUnitSold { 693 label 694 number 695 } 696 customTag { 697 text 698 textColor 699 backgroundColor 700 } 701 cashbackAmount { 702 ...ProductVariantMoney 703 } 704} 705 ${b} 706${L} 707${v} 708${g}`},34331:(e,t,r)=>{r.d(t,{Ay:()=>c,Zo:()=>a,yl:()=>o});var n=r(23390);let a=(0,n.Yf)(e=>e.currency,e=>e.selectedCurrency),i=(0,n.Z0)({name:"currency",initialState:function(){try{window.localStorage?.removeItem("selectedCurrency")}catch{}return{}}(),reducers:{selectCurrency(e,t){e.selectedCurrency=t.payload}}}),{selectCurrency:o}=i.actions,c=i},36598:(e,t,r)=>{function n(e){return e}r.d(t,{YL:()=>n}),r(87358)},44115:(e,t,r)=>{r.d(t,{R:()=>n});let n=()=>({id:3,name:"AUD",isoSymbol:"AUD",uniRate:1,symbol:"AUD $"})},70667:(e,t,r)=>{r.d(t,{zu:()=>P,WD:()=>f});var n=r(95155),a=r(12115),i=r(33785),o=r(414),c=r(9763),u=r(36117),s=r.n(u),l=r(98300);let d=e=>"object"==typeof e&&null!==e,m=e=>"string"==typeof e||void 0===e,h=(0,a.createContext)({}),y=new Map,g=new Map;async function p(e,t){let r=y.get(e);if(r)return r;let n=g.get(e);if(void 0!==n)return n;let a=t().then(t=>{let r=t?.data??{};return r.clientInfo&&(y.set(e,r),(e=>{if(void 0===window.localStorage||!e?.clientInfo)return;let t=e.clientInfo,r={clientIP:t.clientIP,countryName:t.countryName,cityName:t.cityName,isoCountryCode:t.isoCountryCode,timeZone:t.timeZone,subdivisionName:t.
708subdivisionName,currencyCode:t.currencyCode},n=s()(),a={updatedAt:n.valueOf(),expiresAt:n.add(l.kq,"millisecond").valueOf(),clientInfo:r};try{window.localStorage.setItem(l.dZ,JSON.stringify(a))}catch(e){console.error("Failed to save client info to localStorage",e)}})(r)),r}).finally(()=>{g.delete(e)});return g.set(e,a),a}function P({host:e,children:t}){let r=(0,o.m)(),u=y.get(e)??(()=>{let e;if(void 0===window.localStorage)return null;let t=window.localStorage.getItem(l.dZ);if(!t)return null;try{e=JSON.parse(t)}catch{try{window.localStorage.removeItem(l.dZ)}catch{}return null}if(!(e=>{if(!d(e))return!1;let{updatedAt:t,expiresAt:r,clientInfo:n}=e;return"number"==typeof t&&Number.isFinite(t)&&"number"==typeof r&&Number.isFinite(r)&&(e=>{if(!d(e))return!1;let{clientIP:t,countryName:r,cityName:n,isoCountryCode:a,timeZone:i,subdivisionName:o,currencyCode:c}=e;return m(t)&&m(r)&&m(n)&&m(a)&&m(i)&&m(o)&&m(c)})(n)})(e)){try{window.localStorage.removeItem(l.dZ)}catch{}return null}let{expiresAt:r,clientInfo:n}=e;if(s()().isAfter(s()(r))){try{window.localStorage.removeItem(l.dZ)}catch{}return null}return{clientInfo:n}})()??{},[g,P]=(0,a.useState)(u);u.clientInfo&&!y.has(e)&&y.set(e,u);let f=(0,a.useRef)(!0);(0,i.A)(()=>()=>{f.current=!1});let C=async()=>e?{data:(await r.query({query:c.Tk,variables:{host:e},fetchPolicy:"network-only"})).data}:{};(0,i.A)(()=>{g.clientInfo||(async()=>{var t;let r=await p(e,C);if(!f.current)return;let n=r.clientInfo;(t=g.clientInfo)===n||t&&n&&t.clientIP===n.clientIP&&t.countryName===n.countryName&&t.cityName===n.cityName&&t.isoCountryCode===n.isoCountryCode&&t.timeZone===n.timeZone&&t.subdivisionName===n.subdivisionName&&t.currencyCode===n.currencyCode||P(r)})()});let A=(0,a.useMemo)(()=>g,[g]);return(0,n.jsx)(h.Provider,{value:A,children:t})}let f=()=>(0,a.useContext)(h)},98300:(e,t,r)=>{r.d(t,{$i:()=>u,OV:()=>i,QE:()=>a,Sx:()=>p,XS:()=>c,dZ:()=>y,eD:()=>g,gM:()=>s,gg:()=>n,kq:()=>h,mS:()=>l,os:()=>m,sK:()=>o,xb:()=>d});let n="/cars-rental",a="/campervans-rental",i={LOCALHOST:"localhost-v3"},o="https://assets.backpackerdeals.com",c=`${o}/uploads/content/og-image-default.jpg`,u="(max-width: 768px) 100vw, 50vw",s="query-histories",l=10,d="Recent Searches",m="/search-results?text=",h=36e5,y="client_info_v1",g="backpackerdeals",p="DD MMM, YYYY"}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.